{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Common/services/ArrivalService.ts","webpack:///./src/Task/components/OneRiskWaiver.vue?8f56","webpack:///./src/Task/components/RentalProfileTask.vue?6e03","webpack:///./src/Task/components/OneRiskWaiver.vue?58a1","webpack:///./src/Common/views/Welcome.vue?0031","webpack:///./src/Admin/components/AdminTaskTypes.vue?730e","webpack:///./src/Admin/components/AdminLanguage.vue?31c9","webpack:///./src/Task/components/ChildRegistrationForm.vue?4dd4","webpack:///./src/Common/views/NotFound.vue?f242","webpack:////home/vsts/work/1/s/node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/Admin/components/AdminActivities.vue?e2d3","webpack:///./src/Common/components/AxSelect.vue?6f44","webpack:///./src/Admin/components/AdminCollections.vue?e932","webpack:///./src/Admin/services/AdminService.ts","webpack:///./src/Common/components/AppLoader.vue?ecdc","webpack:///./src/Common/components/Navigation.vue?61bd","webpack:///./src/Location/services/LocationService.ts","webpack:///./src/Profile/enums/ETicketDeliveryMode.ts","webpack:///./src/Authentication/views/OidcCallback.vue?03d0","webpack:///./src/Activity/store/actions.ts","webpack:///./src/Activity/store/getters.ts","webpack:///./src/Activity/store/mutations.ts","webpack:///./src/Activity/store/state.ts","webpack:///./src/Activity/store/index.ts","webpack:///./src/Admin/store/actions.ts","webpack:///./src/Admin/store/getters.ts","webpack:///./src/Admin/store/mutations.ts","webpack:///./src/Admin/store/state.ts","webpack:///./src/Admin/store/index.ts","webpack:///./src/Location/store/actions.ts","webpack:///./src/Location/store/getters.ts","webpack:///./src/Location/store/mutations.ts","webpack:///./src/Location/store/state.ts","webpack:///./src/Location/store/index.ts","webpack:///./src/Profile/models/ETicketDelivery.ts","webpack:///./src/Profile/models/ETicketDownload.ts","webpack:///./src/Profile/models/ETicketSummary.ts","webpack:///./src/Profile/store/actions.ts","webpack:///./src/Profile/store/getters.ts","webpack:///./src/Profile/store/mutations.ts","webpack:///./src/Profile/store/state.ts","webpack:///./src/Profile/store/index.ts","webpack:///./src/Settings/store/state.ts","webpack:///./src/Settings/store/getters.ts","webpack:///./src/Settings/store/actions.ts","webpack:///./src/Settings/store/mutations.ts","webpack:///./src/Settings/store/index.ts","webpack:///./src/Task/store/actions.ts","webpack:///./src/Task/store/getters.ts","webpack:///./src/Task/store/mutations.ts","webpack:///./src/Task/store/state.ts","webpack:///./src/Task/store/index.ts","webpack:///./src/Common/store/index.ts","webpack:///./src/Admin/components/AdminTasks.vue?9a86","webpack:///./src/Task/components/TaskBase.ts","webpack:///./src/Task/components/SignWaiver.vue?b6c7","webpack:///./src/App.vue?56c8","webpack:///./src/Task/components/SignWaiver.vue?554d","webpack:///./src/Task/views/CheckIn.vue?1fa0","webpack:///./src/Task/components/PhotoTask.vue?39c1","webpack:///./src/Admin/components/AdminAccess.vue?e464","webpack:///./src/Profile/services/ProfileService.ts","webpack:///./src/Admin/components/AdminReporting.vue?cd80","webpack:///./src/Common/components/Icon.vue?2aad","webpack:///./src/Common/components/Icon.vue","webpack:///./src/Common/components/Icon.vue?1c2b","webpack:///./src/Common/components/Icon.vue?a176","webpack:///./src/Profile/models/FulfillmentTransaction.ts","webpack:///./src/Profile/services/MediaService.ts","webpack:///./src/Common/components/AppHeader.vue?9809","webpack:///./src/Common/services/CollectionService.ts","webpack:///./src/Task/components/OneRiskWaiver.vue","webpack:///./src/Admin/components/AdminTheme.vue?0c5b","webpack:///./src/Common/components/AxSelect.vue?8312","webpack:///./src/Common/components/AxSelect.vue","webpack:///./src/Common/components/AxSelect.vue?f052","webpack:///./src/Common/components/AxSelect.vue?cd59","webpack:///./src/Activity/services/ActivityService.ts","webpack:///./src/Authentication/views/Logout.vue?2a7a","webpack:///./src/Profile/enums/ETicketStatus.ts","webpack:///./src/Task/components/RentalProfileForm.vue?d8bb","webpack:///./src/Common/utils/registerComponentHooks.ts","webpack:///./src/Common/plugins/axios.js","webpack:///./src/plugins/vuetify-mask.ts","webpack:///./src/App.vue?5581","webpack:///./src/Common/components/Navigation.vue?13cd","webpack:///./src/Common/components/Navigation.vue","webpack:///./src/Common/components/Navigation.vue?5957","webpack:///./src/Common/components/Navigation.vue?0a26","webpack:///./src/Common/components/AppHeader.vue?a82d","webpack:///./src/Common/components/AppHeader.vue","webpack:///./src/Common/components/AppHeader.vue?c382","webpack:///./src/Common/components/AppHeader.vue?9e0a","webpack:///./src/Common/components/AppFooter.vue?1c96","webpack:///./src/Common/components/AppFooter.vue","webpack:///./src/Common/components/AppFooter.vue?6c99","webpack:///./src/Common/components/AppFooter.vue?bc04","webpack:///./src/Common/components/AppLoader.vue?421c","webpack:///src/Common/components/AppLoader.vue","webpack:///./src/Common/components/AppLoader.vue?6c1c","webpack:///./src/Common/components/AppLoader.vue","webpack:///./src/App.vue","webpack:///./src/App.vue?f3a8","webpack:///./src/App.vue?4807","webpack:///./src/Settings/services/SettingsService.ts","webpack:///./src/Common/directives/vfocus.ts","webpack:///./src/Common/filters/date.filter.ts","webpack:///./src/Common/filters/firstLetter.filter.ts","webpack:///./src/Common/filters/long.date.filter.ts","webpack:///./src/Common/views/About.vue?f59b","webpack:///./src/Common/views/About.vue","webpack:///./src/Common/views/About.vue?6336","webpack:///./src/Common/views/About.vue?0d49","webpack:///./src/Admin/components/AdminLocations.vue?ab29","webpack:///./src/Admin/components/AdminLocations.vue","webpack:///./src/Admin/components/AdminLocations.vue?791b","webpack:///./src/Admin/components/AdminLocations.vue?a639","webpack:///./src/Admin/components/AdminTaskTypes.vue?79c1","webpack:///./src/Admin/components/AdminTaskTypes.vue","webpack:///./src/Admin/components/AdminTaskTypes.vue?f546","webpack:///./src/Admin/components/AdminTaskTypes.vue?6979","webpack:///./src/Admin/components/AdminTasks.vue?12ac","webpack:///./src/Admin/components/AdminTasks.vue","webpack:///./src/Admin/components/AdminTasks.vue?99b3","webpack:///./src/Admin/components/AdminTasks.vue?3c92","webpack:///./src/Admin/components/AdminActivities.vue?4dd0","webpack:///./src/Admin/components/AdminActivities.vue","webpack:///./src/Admin/components/AdminActivities.vue?3548","webpack:///./src/Admin/components/AdminActivities.vue?7afc","webpack:///./src/Admin/components/AdminAccess.vue?12e0","webpack:///./src/Admin/components/AdminAccess.vue","webpack:///./src/Admin/components/AdminAccess.vue?477f","webpack:///./src/Admin/components/AdminAccess.vue?e9b0","webpack:///./src/Admin/components/AdminLanguage.vue?cbf7","webpack:///./src/Admin/schemas/languageSettings.ts","webpack:///./src/Admin/schemas/passCheckerSettings.ts","webpack:///./src/Admin/schemas/bleLanguageSettings.ts","webpack:///./src/Admin/components/AdminLanguage.vue","webpack:///./src/Admin/components/AdminLanguage.vue?114f","webpack:///./src/Admin/components/AdminLanguage.vue?680c","webpack:///./src/Admin/components/AdminTheme.vue?e99f","webpack:///./src/Admin/schemas/themeSettings.ts","webpack:///./src/Admin/schemas/bleThemeSettings.ts","webpack:///./src/Admin/components/AdminTheme.vue","webpack:///./src/Admin/components/AdminTheme.vue?3f12","webpack:///./src/Admin/components/AdminTheme.vue?8606","webpack:///./src/Admin/components/AdminGeneralSettings.vue?972d","webpack:///./src/Admin/components/AdminGeneralSettings.vue","webpack:///./src/Admin/components/AdminGeneralSettings.vue?9bbf","webpack:///./src/Admin/components/AdminGeneralSettings.vue?ec24","webpack:///./src/Admin/components/AdminReporting.vue?f93e","webpack:///./src/Reports/services/ReportService.ts","webpack:///./src/Admin/components/AdminReporting.vue","webpack:///./src/Admin/components/AdminReporting.vue?a2f8","webpack:///./src/Admin/components/AdminReporting.vue?9a4b","webpack:///./src/Admin/components/AdminApi.vue?d9b4","webpack:///./src/Api/services/ApiService.ts","webpack:///./src/Admin/components/AdminApi.vue","webpack:///./src/Admin/components/AdminApi.vue?f4ca","webpack:///./src/Admin/components/AdminApi.vue?f169","webpack:///./src/Admin/components/AdminCollections.vue?87bc","webpack:///./src/Admin/components/AdminCollections.vue","webpack:///./src/Admin/components/AdminCollections.vue?e3cd","webpack:///./src/Admin/components/AdminCollections.vue?7ba8","webpack:///./src/Admin/routes.ts","webpack:///./src/Authentication/views/Logout.vue?69e7","webpack:///src/Authentication/views/Logout.vue","webpack:///./src/Authentication/views/Logout.vue?76a9","webpack:///./src/Authentication/views/Logout.vue","webpack:///./src/Authentication/views/OidcCallback.vue?3373","webpack:///src/Authentication/views/OidcCallback.vue","webpack:///./src/Authentication/views/OidcCallback.vue?988f","webpack:///./src/Authentication/views/OidcCallback.vue","webpack:///./src/Authentication/routes.ts","webpack:///./src/Location/components/SetLocation.vue","webpack:///./src/Location/components/SetLocation.vue?09d4","webpack:///./src/Location/components/SetLocation.vue?e003","webpack:///./src/Location/routes.ts","webpack:///./src/Profile/routes.ts","webpack:///./src/Task/components/PhotoTask.vue?1a42","webpack:///./src/Task/components/SlimCropper.vue?6ebd","webpack:///src/Task/components/SlimCropper.vue","webpack:///./src/Task/components/SlimCropper.vue?3fe8","webpack:///./src/Task/components/SlimCropper.vue","webpack:///./src/Task/components/PhotoTask.vue","webpack:///./src/Task/components/PhotoTask.vue?bc5d","webpack:///./src/Task/components/PhotoTask.vue?d1b2","webpack:///./src/Task/components/RentalProfileTask.vue?2d09","webpack:///./src/Task/components/RentalProfileForm.vue?b3c8","webpack:///./src/Task/components/ContactTaskBase.ts","webpack:///./src/Task/models/RentalProfile.ts","webpack:///./src/Task/components/RentalProfileForm.vue","webpack:///./src/Task/components/RentalProfileForm.vue?e182","webpack:///./src/Task/components/RentalProfileForm.vue?c90b","webpack:///./src/Task/components/RentalProfileTask.vue","webpack:///./src/Task/components/RentalProfileTask.vue?c00b","webpack:///./src/Task/components/RentalProfileTask.vue?94a9","webpack:///./src/Task/components/ChildRegistrationTask.vue?0753","webpack:///./src/Task/components/ChildRegistrationForm.vue?0115","webpack:///./src/Task/models/ChildRegProfile.ts","webpack:///./src/Task/components/ChildRegistrationForm.vue","webpack:///./src/Task/components/ChildRegistrationForm.vue?d277","webpack:///./src/Task/components/ChildRegistrationForm.vue?9057","webpack:///./src/Task/components/ChildRegistrationTask.vue","webpack:///./src/Task/enums/TaskTypeEnum.ts","webpack:///./src/Task/components/ChildRegistrationTask.vue?c0a2","webpack:///./src/Task/components/ChildRegistrationTask.vue?6a6d","webpack:///./src/Task/views/CheckIn.vue?d9a7","webpack:///./src/Task/views/CheckIn.vue","webpack:///./src/Task/views/CheckIn.vue?356d","webpack:///./src/Task/views/CheckIn.vue?56da","webpack:///./src/Task/routes.ts","webpack:///./src/Common/views/Welcome.vue?b283","webpack:///./src/Common/views/Welcome.vue","webpack:///./src/Common/views/Welcome.vue?5273","webpack:///./src/Common/views/Welcome.vue?d0cc","webpack:///./src/Common/views/NotFound.vue?603d","webpack:///./src/Common/views/NotFound.vue","webpack:///./src/Common/views/NotFound.vue?9fb2","webpack:///./src/Common/views/NotFound.vue?8a1d","webpack:///./src/Common/views/AccessDenied.vue?1c21","webpack:///./src/Common/views/AccessDenied.vue","webpack:///./src/Common/views/AccessDenied.vue?bdb2","webpack:///./src/Common/views/AccessDenied.vue?feb8","webpack:///./src/Common/router/router.ts","webpack:///./src/Common/filters/short.date.filter.ts","webpack:///./src/plugins/vuetify.ts","webpack:///./src/main.ts","webpack:///./src/Task/components/ChildRegistrationTask.vue?6d9e","webpack:///./src/Admin/components/AdminTheme.vue?7494","webpack:///./src/Task/components/SlimCropper.vue?277b","webpack:///./src/Admin/components/AdminLocations.vue?3977","webpack:///./src/Task/components/WaiverTask.vue?3ca4","webpack:///./src/Task/components/SignWaiver.vue?ec05","webpack:///./src/Task/components/SignWaiver.vue","webpack:///./src/Task/components/SignWaiver.vue?7a41","webpack:///./src/Task/components/SignWaiver.vue?3bec","webpack:///./src/Task/components/OneRiskWaiver.vue?70cd","webpack:///./src/Task/components/OneRiskWaiver.vue?a30e","webpack:///./src/Task/components/OneRiskWaiver.vue?e515","webpack:///./src/Task/components/WaiverTask.vue","webpack:///./src/Task/components/WaiverTask.vue?9ef1","webpack:///./src/Task/components/WaiverTask.vue?e838","webpack:///./src/Common/components/AppFooter.vue?795d","webpack:///./src/Vendor/slimcropper/slim.global.js","webpack:///./src/Common/views/AccessDenied.vue?fd46","webpack:///./src/Task/services/TaskService.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","ArrivalService","axiosStatic","axios","interceptors","response","use","status","setupAxios","map","webpackContext","req","id","webpackContextResolve","keys","AdminService","baseUrl","store","getters","this","http","method","url","headers","Authorization","serviceError","flag","generalError","setting","adminEmailAccess","LocationService","location","locationActivity","locationId","locationActivityId","ETicketDeliveryMode","actions","fetchActivityContacts","commit","ActivityService","FetchActivityContacts","activityContacts","forEach","ac","fetchActivities","FetchActivities","activitiesResponse","allActivities","modifiedActivities","activity","modifiedDate","moment","modifiedDateUtc","format","hasTasks","activityTasks","resetActivityContacts","activities","state","selectedActivity","find","contacts","filter","isSelected","selectedActivityTasks","at","tasks","mutations","addActivityTasks","newTasks","exists","oldTasks","newActivityTasks","setActivityContacts","actContacts","setActivities","namespaced","fetchAdminSettings","FetchAdminSettings","adminSettingsResponse","adminSettings","fetchAdminEmailAccess","FetchAdminEmailAccess","reset","settings","emailAccess","addAdminSettings","setAdminSettings","setAdminEmailAccess","admin","setLocationByName","locName","decodeURIComponent","newLocation","locations","replace","toLowerCase","defaultLocation","isDefault","editLocation","isEditProfileLocation","setLocationById","clearLocation","localStorage","removeItem","fetchLocations","FetchLocations","locationsResponse","allLocations","modifiedLocations","hasDefaultActivity","defaultActivityId","fetchCurrentLocation","dispatch","currentLocation","storedKey","getItem","parseInt","fetchEditLocation","fetchDefaultLocation","previousLocation","setCurrentLocation","setItem","toString","setTemporaryLocation","setEditLocation","setDefaultLocation","setLocations","locationName","ETicketDelivery","deliveryMode","recipient","isSent","createDateUtc","updateDateUtc","ETicketDownload","appVersion","device","downloadDate","ETicketSummary","delivery","download","ETicketStatus","Unknown","fetchProfile","ProfileService","FetchProfile","profileResponse","profileContacts","contactId","firstName","lastName","photo","isHeadOfHouseHold","fetchContactBLE","bleContact","MediaService","FetchBLEData","bleDataResult","ticketSummary","eticket","emptyTicket","NoMedia","bleContacts","signedIn","headOfHouseHoldContact","headOfHouseHold","addContact","contact","oldContacts","contactsWithoutNewId","addContactBLE","contactBLE","oldContactBLEs","resetContacts","profile","appSettings","languageSettings","themeSettings","environment","oneRiskSettings","theme","isDevelopment","toUpperCase","setTheme","root","documentElement","style","setProperty","buttons","primary","backgroundColor","color","secondary","footer","footerBkgImageUrl","footerBkgImageOpacity","borderColor","textColor","sidebar","sidebarBkgImageUrl","sidebarBkgImageOpacity","general","logoUrl","arrivalTitleImageWidth","loaderPrimaryColor","loaderSecondaryColor","addSettings","frontEndSettings","oneRiskUrl","oneRiskSecret","pointOfSaleSystem","dateFormat","JSON","parse","fetchTasks","TaskService","FetchTasks","tasksResponse","allTasks","modifiedTasks","task","fetchTaskTypes","FetchTaskTypes","taskTypesResponse","allTaskTypes","setCurrentTaskByRoute","routeName","rootGetters","desiredRoute","foundTaskKey","taskTypeKeys","ttk","foundTask","taskType","taskTypeId","advanceTask","currentTask","currentTaskPosition","findIndex","nextTask","firstTask","completeCurrentTask","completedTask","isComplete","contactTasks","taskTypes","setContactTasks","setCurrentTask","resetContactTasks","setTasks","setTaskTypes","Vue","Vuex","destination","version","pageLoading","features","appInsights","exportKey","browserInfo","hasFeature","featureName","f","setBrowserInfo","setDestination","setAppInsights","setPageLoading","loading","setFeatures","setExportKey","trackEvent","context","theEvent","gtm","Store","TaskBase","contactTask","a","isSkipped","CompleteContactTask","newContactTask","isReadOnly","__decorate","Prop","required","default","Component","ipCode","externalOrderId","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","none","_e","staticRenderFns","Icon","component","FulfillmentTransaction","orderId","transactionId","confirmations","ids","infoRecId","hasBLEMedia","hasSentLink","hasConnectedMedia","bleInfo","Connected","Sent","Unsent","convertBLEResponse","ticketError","ticketId","convertFulfillmentRespsonse","CollectionService","collection","collectionItem","OneRiskWaiver","encodedData","Date","getTime","Math","floor","random","oneRiskData","header","alg","typ","encodedHeader","Buffer","from","stringify","encodedPayload","crypto","require","jwtSecret","signature","createHmac","update","digest","jwt","conjunction","names","index","ct","addEventListener","receiveMessage","$emit","startsWith","origin","oneRiskResponseData","messageType","signingData","agree","signerName","waiverHTML","closeWindow","alert","body","log","ex","Getter","Mutation","components","_v","_s","label","directives","rawName","expression","disabled","size","on","$event","$$selectedVal","Array","options","selected","val","_value","selectedOptionValue","multiple","placeholder","domProps","_l","option","optionKey","optionText","staticStyle","AxSelect","selectOptions","selectedOption","opt","classes","join","String","Boolean","Model","Number","PropSync","Watch","activityProduct","activityId","activityProductId","activityTask","activityTaskId","registerHooks","config","_axios","Plugin","install","defineProperties","$axios","VuetifyMask","class","appClasses","$route","meta","hidePageBackground","user","signOut","Navigation","Action","title","description","AppHeader","language","application","subtitle","AppFooter","App","limitToMobile","styles","backgroundImageUrl","overlayBackgroundWithGradient","linearGradient","background","backgroundRepeat","backgroundSize","backgroundPosition","State","AppLoader","VApp","SettingsService","scripts","metaTag","tagToAdd","insertBefore","VueFocus","inserted","el","node","focus","vNode","oldValue","nextTick","date","word","charAt","locationsTableHeaders","scopedSlots","_u","fn","ref","item","model","callback","$$v","selectedLocations","locationSchema","availableActivities","$set","updateLocation","removeLocation","removeLocationActivity","proxy","addLocationActivity","addLocation","AdminLocations","properties","readOnly","isEnabled","usePosTransactionsAndOrders","activityLocations","checkInCompleteText","firstValue","getLocations","getActivities","thisLocation","currentLocationAvailableActivities","elem","AddLocation","clearedLocation","UpdateLocation","AddLocationActivity","RemoveLocation","RemoveLocationActivity","text","align","sortable","VBtn","VCard","VCardActions","VCardSubtitle","VCardText","VCardTitle","VCol","VContainer","VDataTable","VForm","VIcon","VLayout","VRow","VSelect","VSimpleTable","taskTypesTableHeaders","selectedTaskTypes","currentTaskType","taskTypeSchema","updateTaskType","AdminTaskTypes","isDeleted","enableShoeSize","enableStance","effectiveDays","getTaskTypes","UpdateTaskType","RemoveTaskType","tasksTableHeaders","onTaskSelected","updateTaskValid","taskSchema","newTaskFormOptions","updatingTask","updateTask","deletingTask","removeTask","newTaskValid","newTask","$v","validWaivers","addTask","AdminTasks","ageMin","ageMax","isOptional","oneOf","const","posWaiverId","externalWaiverId","consolidateWaivers","useTodayAsValidationDate","startEffectiveDate","endEffectiveDate","validationDate","enableAgreeCheckbox","enableTextSignature","enableWetSignature","customComment","initialValidation","removeAdditionalProperties","selTask","modifiedTask","toISOString","substr","getTasks","$refs","newTaskForm","validate","AddTask","UpdateTask","RemoveTask","VAlert","VSpacer","activitiesTableHeaders","onActivitySelected","currentActivity","activitySchema","updatingActivity","updateActivity","deletingActivity","removeActivity","removeActivityTask","newActivityTask","linkingTask","addActivityTask","newActivityValid","newActivityOptions","newActivity","addActivity","AdminActivities","imageUrl","items","activityProducts","isLocationDefaultActivity","taskId","productId","selActivity","editActivity","thisActivity","currentActivityAvailableTasks","newActivityForm","AddActivity","clearedActivity","UpdateActivity","RemoveActivityTask","RemoveActivity","AddActivityTask","emailsTableHeaders","emailAccessRecords","itemsPerPage","page","pageCount","selectedEmails","setItemsPerPage","currentEmail","email","currentAdminEmailValid","adminEmailSchema","emailFormOptions","removeEmailAccess","newAdminEmailValid","newAdminEmailAccess","addEmailAccess","AdminAccess","createdDateUtc","getEmailAccessRecords","newEmailForm","AddAdminEmailAccess","DeleteAdminEmailAccess","isNaN","VPagination","VTextField","valid","combinedLangSchema","formOptions","_g","_b","updating","confirmUpdate","updateSettings","fetching","fetchDefaultSettings","overwriteValues","schema","tile","mandatory","home","checkInTitle","checkInTitleNoItems","checkInTitleEditProfile","checkInButton","startEditProfileButton","membersTitle","posCheckInInstructions","posCheckInInstructionsNoItems","editProfileInstructions","editProfileButtonText","selectFamilyTitle","selectFamilyInstructions","qrCodesTitle","rentalProfile","skierAbilityUrl","skierAbilityText","welcome","signInButton","signInNote","checkIn","checkInCompleteTitle","checkInAgainText","passChecker","passCheckerTitle","PassCheckerButtonText","passValidTitle","passValidText","passInvalidTitle","passInvalidText","noProductText","invalidRequestErrorTitle","invalidRequestErrorText","inactiveMediaErrorTitle","inactiveMediaErrorText","hostlistErrorTitle","hostlistErrorText","invalidProductErrorTitle","invalidProductErrorText","bleConnect","pageTitle","pageInstructions","assigningMediaMessage","mediaConnectedMessage","activateMediaMessage","bleHomepageButton","noBLEMediaMessage","noFamilyMessage","mobileShareTitle","mobileShareMessage","resendLinkText","refreshButtonText","sendButtonText","sendEmailButtonText","sendSMSButtonText","changeSendTypeText","addMobilePassStepTitle","addMobilePassStepInstructions","addMobilePassStepButton","cancelAddMobilePassStepButton","addingPassMessage","activatePhoneStepTitle","activatePhoneStepInstructions","activatePhoneConfirmation","activatePhoneSubText","activatePhoneAction","activatePhoneInsteadButton","sendMemberLinkButton","sendLinkInsteadButton","bleActivationFootnote","AdminLanguage","rootDisplay","LanguageSettingsSchema","PassCheckerSettingsSchema","BLELanguageSettingsSchema","getSettings","$store","hasPassChecker","hasBLEConnect","bleProperties","bleLanguageSchema","passCheckerProperties","passCheckerSettingsSchema","fetchHeaders","Headers","append","fetchInit","methood","fetchRequest","Request","fetch","ok","json","lang","defaultLanguage","currentLanguage","newLanguage","merge","newSettings","newLangSettings","UpdateAdminSettings","VCheckbox","VDialog","combinedSettingsSchema","logoWelcomeWidth","enum","favicon","showArrivalTitleAsImage","arrivalTitleImageUrl","footerBackgroundColor","mediaCard","showMediaPasses","resortName","heroImageUrl","logoImageUrl","labelColor","foregroundColor","enableBleHomeScreen","desktopLogoImageUrl","mobileLogoImageUrl","AdminTheme","ThemeSettingsSchema","BLESettingsSchema","combinedSchema","bleSchema","defaultThemeSettings","currentThemeSettings","newThemeSettings","generalSettings","saving","notification","icon","visible","AdminGeneralSettings","isSkiDataEnabled","googleAnalyticsTagId","resortCodes","resortGroupCodes","salesLocationIds","passCheckerLocationId","cookieConsentScript","cookieConsentStyles","fetchSettings","allSettings","VSnackbar","statusCode","_f","lastRefreshDate","reRunningReport","reRunReport","getLocationText","isLocationDisabled","startDate","parseDate","startDateFormatted","startDateMenu","endDate","endDateFormatted","endDateMenu","getCustomerReport","customerEntitlementsRequest","downloadingCustomerEntitlementsReport","getCustomerEntitlementsReport","ReportService","toDateString","includePrintableMedia","isCsvExport","includeDetails","AdminReporting","formatDate","ipCodesCommaSeparated","GetCustomerReportStatus","ReRunCustomerReport","fileDownloadName","GetCustomerReport","URL","createObjectURL","Blob","link","click","GetCustomerEntitlementsReport","split","year","month","day","padStart","stringValue","VDatePicker","VMenu","VSwitch","VTextarea","apiKey","nickname","token","removeApiKey","showCreateTokenForm","toggleShowCreateTokenForm","newApiKey","addApiKey","ApiService","AdminApi","getApiKeys","FetchApiKeys","apiKeys","CreateApiKey","RemoveApiKey","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","collectionsTableHeaders","collections","onCollectionSelected","currentCollection","collectionSchema","updatingCollection","updateCollection","collectionItemsTableHeaders","collectionItems","onCollectionItemSelected","currentCollectionItem","collectionItemSchema","newCollectionOptions","newCollectionItem","addCollectionItem","updateCollectionItem","deletingCollectionItem","removeCollectionItem","newCollection","addCollection","AdminCollections","collectionId","selectedCollection","editCollection","selectedCollectionItem","editCollectionItem","getCollections","FetchCollections","thisCollection","addingCollection","newCollectionForm","AddCollection","clearedCollection","UpdateCollection","deletingCollection","DeleteCollection","DeleteCollectionItem","addingCollectionItem","AddCollectionItem","UpdateCollectionItem","checkAdminAccess","to","next","matched","some","record","requiresAdminAuth","IsAdminAuthenticated","routes","path","redirect","isPublic","beforeEnter","children","Locations","TaskTypes","Tasks","Activities","Language","Theme","Access","Settings","Reporting","Api","Collections","_m","mounted","$router","catch","methods","mapActions","oidcSignInCallback","Logout","OidcCallback","vuexOidcProcessSilentSignInCallback","SetLocation","setWithName","setWithId","params","setLocation","failure","requiresLocation","showFooter","showHeader","slimOptions","photoHash","editPhoto","instance","props","editPhotoHash","initialImage","img","$el","Slim","destroyed","destroy","computed","photoStyle","watch","PhotoTask","ratio","forceSize","service","remove","upload","edit","instantEdit","didConfirm","onPhotoConfirmed","didUpload","onPhotoUpload","signatureEvent","category","action","noninteraction","photoUploading","currentContactTask","addPhotoEvent","set","initials","substring","newHash","generateHash","SlimCropper","VSheet","relatedObject","setNextContactTask","setCurrentContactTask","skipContactTask","isHidden","hasProfile","profileAbility","profileHeight","profileWeight","shoeSize","goofy","abilityValues","getValidationErrors","editProfile","heightValues","weightValues","isMetric","showSkipButton","showCancelButton","cancel","cancelLabel","isUpdating","completeRental","updateLabel","ContactTaskBase","RentalProfile","ageRefs","abilityRefs","heightRefs","weightRefs","shoeSizeRefs","selectedAge","selectedAbility","selectedHeight","selectedWeight","selectedShoeSize","selectedGoofy","updateDate","RentalProfileForm","profileKey","errors","$dirty","isRentalProfileComplete","listKey","listDescription","dinLookupValue","v","heightV","heightEngV","trim","heightMetV","weightV","weightEngV","weightMetV","$touch","$error","newRelatedObject","Emit","RentalProfileTask","waiverTask","completeContactTask","updateRentalProfileEvent","incompleteTasks","firstCompletedContactTask","newChildRegProfile","childRegProfile","primaryEmergencyContact","primaryEmergencyPhone","alternateEmergencyContact1","alternateEmergencyPhone1","drugAllergy","foodAllergy","medication","specialCondition","getErrorMessages","telephoneDropdownOptions","telephoneInputOptions","clearNone","addNone","completeRegistration","ChildRegProfile","ChildRegistrationForm","initialChildRegProfile","given_name","family_name","disabledDialCode","tabindex","showDialCode","defaultTextValue","vuelidateObject","VueTelInput","VMessages","ChildRegistrationTask","updateChildRegistrationEvent","scrollTo","completeContactTasks","TaskType","currentContactTasks","onCompleteTask","CheckIn","1","2","3","4","typeId","TaskTypeCol","Photo","photoContactTasks","ChildRegistrationProfile","childRegistrationContactTasks","rentalProfileContactTasks","Waiver","waiverContactTasks","immediate","WaiverTask","titleClasses","signingIn","onSignIn","Welcome","NotFound","AccessDenied","Router","router","base","process","scrollBehavior","savedPosition","hash","y","goTo","About","AuthenticationRoutes","LocationRoutes","ProfileRoutes","TaskRoutes","AdminRoutes","beforeEach","vuexOidcCreateRouterMiddleware","beforeResolve","Vuetify","customProperties","cspNonce","variations","productionTip","changeFavicon","documentHead","highResSrc","querySelector","etcIcons","setFavicon","Vuelidate","directive","FetchSettings","ApplyCookieConsent","ApplyTheme","enabledFeatures","oidcSettings","tagIds","aspenwareGoogleAnalyticsTagId","clientGoogleAnalyticsTagId","dateFilter","shortDateFilter","longDateFilter","firstLetterFilter","VueGtm","defer","enabled","debug","loadScript","vueRouter","ignoredViews","trackOnNextTick","isMobile","isAndroid","isIOS","isChrome","isSafari","isFirefox","isOpera","isEdge","osVersion","browserVersion","browserName","logUser","oidcCallbacks","userLoaded","userUnloaded","accessTokenExpiring","accessTokenExpired","silentRenewError","userSignedOut","oidcError","payload","automaticSilentRenewError","oidcStore","vuexOidcCreateStoreModule","dispatchEventsOnWindow","registerModule","ApplicationInsights","instrumentationKey","applicationInsightsKey","enableAutoRouteTracking","loadAppInsights","vuetify","inject","isDark","h","created","$mount","hasOneRisk","waiverTasks","signingWaiver","onSaveSignature","onSkip","processingOneRisk","onSaveOneRiskWaiver","affirmationHtml","waiver","rolText","allContactNames","clearSignature","signNamePlaceholder","skipWaiver","saveSignature","SignWaiver","affirmationStatement","age","canvas","signaturePad","SignaturePad","resizeCanvas","isEmpty","newSignature","toDataURL","waiverHtmlText","waiverElement","getElementById","waiverHtmlDoc","implementation","createHTMLDocument","waiverDiv","innerHTML","walkTheDOM","copyStyles","XMLSerializer","serializeToString","clear","max","devicePixelRatio","width","offsetWidth","height","offsetHeight","getContext","scale","cssText","orginalElement","elementStyles","getComputedStyle","elementKeys","propertyValue","getPropertyValue","func","firstChild","nextSibling","foundElement","dumpCSSText","currentContactTaskIndex","toLocaleString","dobArray","dateOfBirth","re","formattedDob","expDateArray","posExpirationDateMs","displayFormat","integration","waivers","waiverId","pos","posProductId","posProductCode","posExpirationDate","guests","posGuestId","dob","phone","address","street1","street2","country","city","postal","generateCustomComment","signedWaiverObject","rolAccepted","signatureDate","todaysDate","comment","signWaiverEvent","duration","offset","easing","navigator","nAgt","userAgent","appName","fullVersion","parseFloat","majorVersion","nameOffset","verOffset","indexOf","lastIndexOf","includes","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","Event","loadImage","file","oUrl","noRevoke","revokeObjectURL","isInstanceOf","_type","crossOrigin","readFile","urlAPI","webkitURL","obj","transformCoordinates","getTransformedOptions","newOptions","aspectRatio","crop","naturalWidth","naturalHeight","maxWidth","maxHeight","renderImageToCanvas","sourceX","sourceY","sourceWidth","sourceHeight","destX","destY","destWidth","destHeight","drawImage","hasCanvasOption","minWidth","minHeight","pixelRatio","downsamplingRatio","tmp","useCanvas","scaleUp","scaleDown","min","left","top","right","bottom","contain","cover","FileReader","fileReader","originalHasCanvasOption","originalTransformCoordinates","originalGetTransformedOptions","orientation","ctx","styleWidth","styleHeight","translate","rotate","PI","opts","hasblobSlice","webkitSlice","mozSlice","blobSlice","arguments","metaDataParsers","jpeg","parseMetaData","that","maxMetaDataSize","noMetaData","DataView","markerBytes","markerLength","parsers","buffer","dataView","maxOffset","byteLength","headLength","getUint16","disableImageHead","imageHead","Uint8Array","subarray","ExifMap","getExifThumbnail","hexData","b","getUint8","exifTagTypes","getValue","dataOffset","fromCharCode","ascii","littleEndian","getUint32","5","9","getInt32","10","getExifValue","tiffOffset","tagSize","values","str","tagType","parseExifTag","exif","parseExifTags","dirOffset","tagsNumber","dirEndOffset","parseExifData","disableExif","thumbnailData","disableExifThumbnail","Thumbnail","disableExifSub","disableExifGps","snabbt","tickRequests","runningAnimations","completedAnimations","transformProperty","vendorPrefix","match","OLink","arg1","arg2","arg3","elements","aggregateChainer","chainers","len","chainer","preprocessOptions","setValue","finish","rollback","snabbtSingleElement","clone","cloneObject","isFunction","delay","complete","hasAllDoneCallback","allDone","hasCompleteCallback","valueFeeder","matrix","element","setupAttentionAnimation","stopAnimation","detachChildren","clearOphanedEndStates","currentState","currentAnimationState","start","stateFromOptions","end","animOptions","setupAnimationOptions","animation","createAnimation","updateElement","queue","unshift","tick","time","isStopped","completed","loop","restart","queueTick","pop","manual","movement","createState","createAttentionAnimation","currentAnimation","animatedElement","stop","indexOfElement","arr","animations","concat","contains","detachElement","findAnimationState","animationList","getCurrentState","findUltimateAncestor","ancestor","useFromPrefix","position","rotation","rotationPost","skew","scalePost","opacity","optionOrDefault","startState","endState","polyFillrAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","tickAnimations","finishedAnimations","perspective","createEaser","transformOrigin","manualCallback","tweener","startTime","currentTime","stopped","started","manualValue","manualDelayFactor","createValueFeederTweener","createStateTweener","manualDuration","resetFrom","setReverse","updateCurrentTransform","curr","_manualValue","tweenValue","tween","forceUpdate","asMatrix","getProperties","updateElementTransform","updateElementProperties","initialVelocity","equilibriumPosition","spring","createSpringEasing","tweenPosition","tweenRotation","tweenRotationPost","tweenScale","tweenSkew","currentMovement","equilibrium","updateMovement","linearEasing","ease","cos","easeIn","easeOut","pow","startPosition","velocity","springConstant","deceleration","springDeceleration","mass","springMass","springForce","abs","EASING_FUNCS","easerName","easeFunction","lastValue","easer","assignTranslate","x","z","assignRotateX","rad","sin","assignRotateY","assignRotateZ","assignSkew","ax","ay","tan","assignScale","assignIdentity","copyArray","createMatrix","Float32Array","asCSS","css","toFixed","assignedMatrixMultiplication","rotateX","radians","rotateY","rotateZ","res","resultState","tweenWidth","tweenHeight","tweenOpacity","dX","dY","dZ","dAX","dAY","dAZ","dBX","dBY","dBZ","dSX","dSY","dSkewX","dSkewY","dWidth","dHeight","dOpacity","oldStart","currentMatrix","reverse","def","cssPerspective","cssMatrix","setElementTransform","stackBlur","mul_table","shg_table","getImageDataFromCanvas","top_x","top_y","HTMLCanvasElement","imageData","getImageData","processCanvasRGBA","radius","processImageDataRGBA","putImageData","yp","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pr","pg","pb","pa","rbs","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackEnd","stackIn","stackOut","mul_sum","shg_sum","g","toBlob","quality","binStr","atob","charCodeAt","_createClass","descriptor","configurable","writable","Constructor","protoProps","staticProps","_typeof","iterator","constructor","_classCallCheck","TypeError","lowMemory","isLowMemoryDevice","test","MSStream","getDataset","dataset","attr","attrName","attributes","toCamelCase","getElementAttributes","getOffsetByEvent","offsetX","layerX","offsetY","layerY","mergeOptions","additives","optionsToMerge","Key","ESC","RETURN","Events","DOWN","MOVE","UP","MimeTypes","jpg","jpe","png","gif","bmp","ImageExtensionsRegex","className","addEvents","events","scope","removeEvents","removeEventListener","getEventOffset","changedTouches","pageX","pageY","rect","angle","cx","cy","x1","y1","x2","y2","rx1","ry1","rx2","ry2","getEventOffsetScroll","pageXOffset","scrollLeft","pageYOffset","scrollTop","lowercaseFirstLetter","string","capitalizeFirstLetter","last","array","limit","inArray","needle","send","requestDecorator","progress","success","xhr","XMLHttpRequest","loaded","total","open","onreadystatechange","readyState","responseText","_obj","resetTransforms","webkitTransform","transform","bytesToMegaBytes","getCommonMimeTypes","types","mimeType","isJPEGMimeType","getExtensionByMimeType","mimetype","getMimeTypeFromResponseType","responseType","getFileName","leftPad","padding","getDateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getFileNameByFile","getFileTypeByFile","getFileNameWithoutExtension","blobToFile","blob","File","lastModified","now","lastModifiedDate","resourceIsBase64Data","resource","loadRemoteURL","fetcher","fetchRequestDecorator","loadRequestDecorator","cb","loadURL","cloneFile","statusText","base64ToByteString","dataURI","dataPart","dataPartCleaned","base64ToBlob","filename","byteString","ab","ArrayBuffer","ia","getMimeTypeFromDataURI","createBlob","BB","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","bb","getBlob","getImageAsCanvas","getAutoCropRect","ratioOut","w","ratioIn","transformCanvas","transforms","filters","minSize","isTilted","space","px","py","pw","ph","scalarX","scalarY","scalar","scaleCanvas","sharpen","bounds","targetWidth","round","targetHeight","getPixels","_filter","createImageData","mix","weights","katet","sqrt","half","dstData","dstBuff","srcBuff","sy","sx","dstOff","scy","scx","srcOff","wt","sizeDist","dx","dy","cloneCanvasScaled","original","duplicate","canvasHasDimensions","copyCanvas","blurCanvas","covers","image","scaleRect","divideRect","resetFileInput","input","form","dupe","cloneData","output","jpegCompression","nodeName","dataUri","matches","flattenData","forcedType","async","server","field","downloadCanvas","msSaveBlob","display","toggleDisplayBySelector","selector","nodeListToArray","nl","removeElement","wrap","wrapper","polarToCartesian","centerX","centerY","angleInDegrees","angleInRadians","describeArc","startAngle","endAngle","arcSweep","percentageArc","CropArea","resizers","ne","se","sw","nw","_element","_interaction","_minWidth","_minHeight","_ratio","_rect","_space","_rectChanged","_init","lines","handler","_btn","btn","_redraw","dispatchEvent","_onStartDrag","_onDrag","_onStopDrag","preventDefault","_this","ImageEditor","CropAreaEvents","_options","_output","_rotating","_input","_preview","_previewBlurred","_blurredPreview","_cropper","_straightCrop","_previewWrapper","_currentWindowSize","_btnGroup","_maskFrame","_dirty","_wrapperRotation","_wrapperScale","_this2","_container","_wrapper","_stage","_previewMask","Buttons","prop","_utilsGroup","buttonRotateClassName","buttonRotateTitle","_onClick","_onGridChange","_onGridInput","_onKeyDown","_onResize","keyCode","_confirm","_cancel","classList","_rotate","innerWidth","innerHeight","_redrawCropper","area","_updateWrapperScale","_redrawWrapper","_redrawCropMask","wrapperWidth","wrapperHeight","_this3","_updateWrapperRotation","_hideCropper","_showCropper","fromOpacity","_this4","mask","preview","cancelAnimationFrame","_previewSize","_this5","tilted","relativeCrop","imageRatio","sh","offsetLeft","offsetTop","resize","clientWidth","clientHeight","fromRotation","fromPosition","fromScale","dirty","childNodes","_this6","add","getBoundingClientRect","buttonCancelClassName","buttonConfirmClassName","buttonCancelLabel","buttonConfirmLabel","buttonCancelTitle","buttonConfirmTitle","FileHopper","DragDropEvents","_accept","_allowURLs","_dragPath","dataTransfer","files","areValidDataTransferFiles","areValidDataTransferItems","kind","_this7","_onDragOver","_onDragLeave","_onDrop","remote","getData","parsed","filesValidity","isValidDataTransfer","dropEffect","dataValidity","_this8","mimetypes","Popover","_inner","_this9","_this10","intSplit","isWrapper","CropType","AUTO","INITIAL","MANUAL","Rect","HopperEvents","ImageEditorEvents","SlimButtons","SlimPopover","SlimCount","SlimLoaderHTML","SlimUploadStatusHTML","stringToSize","removeTimer","timers","timer","_uid","post","part","_originalElement","_originalElementInner","_originalElementAttributes","_state","_timers","_inputReference","_isRequired","_imageHopper","_imageEditor","_progressEnabled","_data","_resetData","_drip","_hasInitialImage","_initialCrop","_initialRotation","_isBeingDestroyed","supported","_fallback","_manualTransform","dimensions","setRatio","_this11","_isFixedRatio","parts","_cropAuto","_scaleDropArea","_load","blockPush","_doUpload","_doDownload","_doRemove","_doDestroy","_doEdit","_crop","_isInitialising","_getFileInput","_getInitialImage","_updateState","_this12","_addState","_getInputElement","initialData","Image","defaultInputName","removeAttribute","initialImageSrc","initialImageName","resultHTML","_isImageOnly","labelLoading","hasAttribute","accept","allowURLs","_isButtonAllowed","_updateProgress","_onInit","_this13","done","didInit","saveInitialImage","containsImage","_save","_toggleButton","loader","paths","querySelectorAll","ringWidth","_this14","ring","_stopProgressLoop","_this15","repeat","button","_throwError","statusNoSupport","_onChange","_onCancel","_onConfirm","_onFileOver","_onFileOut","_onDropFile","_onInvalidFile","_onInvalidFileDrop","didThrowError","_removeState","_removeError","_this16","list","_openFileDialog","willRemove","drip","_getDrip","statusFileType","statusImageTooSmall","statusFileSize","maxFileSize","statusLocalUrlProblem","dragPath","_this17","jump","_this18","_replaceTimeout","_startProgressLoop","_loadTimeout","load","exit","willFetch","willLoad","_onRemoteURLProblem","_onOverWeightFile","internalCanvasSize","internalCanvasSizeLowMemory","rewind","_onImageTooSmall","didLoad","revealCanvas","dropReplace","intro","_getIntro","isDetached","_canInstantEdit","_loadCanvas","isUploading","_showButtons","_onLocalURLProblem","ready","_this19","applyTransforms","_applyTransforms","transformedImage","willUpload","_startProgress","_stopProgress","willCropInitial","_this20","filterSharpen","forceMinSize","outputImage","_ctx","_ctx2","_onTransformCanvas","transformedData","didTransform","willTransform","_this21","buttonRotateLabel","_getRatioSpacerElement","marginBottom","didCancel","_hideEditor","_isAutoCrop","_this22","images","_getInOut","outro","zIndex","_showPreview","cropType","_this23","save","_this24","allowUpload","dataBase64","willSave","_store","didSave","_upload","_storeServerResponse","_this25","requestOutput","fileData","formData","statusNode","willRequest","onProgress","onSuccess","statusUploadSuccess","onError","html","statusContentLength","didReceiveServerError","statusUnknownResponse","uploadMethod","serviceFormat","_this26","FormData","uploadBase64","copyImageHead","popoverClassName","show","_this27","hide","_this28","_this29","_appendEditor","showRotateButton","rotateButton","inner","_showEditor","_hideButtons","_hideStatus","_this30","_clearState","out","_getOutro","_hideResult","didRemove","_this31","forceType","_this32","matchesAttributeInList","replaceChild","attribute","setSize","setRotation","setForceSize","defaults","defaultError","capitalized","instances","isAttachedTo","toLabel","toFunctionReference","levels","level","passThrough","defaultFalse","defaultTrue","defaultLabel","defaultFunction","defaultSize","toFloat","toInt","toRect","buttonOptions","operamini","croppers","getOptionsFromAttributes","valueTransformer","slim","completeEndpoint"],"mappings":"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AI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAGxDC,EAAY,CACZ,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,G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","file":"js/app.be85e524.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"admin\":\"admin\",\"checkIn\":\"checkIn\",\"profile\":\"profile\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"d3ca51f2\",\"checkIn\":\"cb770489\",\"profile\":\"177c30dc\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"admin\":1,\"checkIn\":1,\"profile\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"admin\":\"admin\",\"checkIn\":\"checkIn\",\"profile\":\"profile\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"a4968c07\",\"checkIn\":\"3ea0e328\",\"profile\":\"2b284008\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import axios, { AxiosStatic } from 'axios'\nimport store from '../store/index'\n\nexport default class ArrivalService {\n public static http: AxiosStatic = ArrivalService.setupAxios()\n\n static setupAxios(): AxiosStatic {\n // Create Axios Instance\n const axiosStatic = axios\n\n // Create interceptor for 401 requests\n axiosStatic.interceptors.response.use(\n (response) => response,\n (error) => {\n const status = error.response ? error.response.status : null\n if (status === 401) {\n // Get new refresh token\n // store.dispatch('authenticateOidcSilent')\n // if (store.getters['oidcStore/oidcIsAuthenticated']) {\n // error.config.headers.Authorization = `Bearer ${store.getters['oidcStore/oidcAccessToken']}`\n // error.config.baseURL = store.getters['settings/baseUrl']\n // return axiosStatic.request(error.config)\n // } else{\n // // Redirect user to welcome page\n // window.location.href = '/';\n // }\n }\n return Promise.reject(error)\n }\n )\n\n return axiosStatic\n }\n}\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneRiskWaiver.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RentalProfileTask.vue?vue&type=style&index=0&id=032efbfa&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneRiskWaiver.vue?vue&type=style&index=1&id=ff0a3d64&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=21bb2bf0&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTaskTypes.vue?vue&type=style&index=0&id=dfa0aa0a&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminLanguage.vue?vue&type=style&index=0&id=31fc0996&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildRegistrationForm.vue?vue&type=style&index=0&id=8b93b7ee&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=style&index=0&id=323ca5c5&lang=scss&scoped=true&\"","var map = {\n\t\"./af\": \"f826\",\n\t\"./af.js\": \"f826\",\n\t\"./ar\": \"0fa2\",\n\t\"./ar-dz\": \"8ec6\",\n\t\"./ar-dz.js\": \"8ec6\",\n\t\"./ar-kw\": \"36f4\",\n\t\"./ar-kw.js\": \"36f4\",\n\t\"./ar-ly\": \"0e86\",\n\t\"./ar-ly.js\": \"0e86\",\n\t\"./ar-ma\": \"3d3d\",\n\t\"./ar-ma.js\": \"3d3d\",\n\t\"./ar-sa\": \"cfe1\",\n\t\"./ar-sa.js\": \"cfe1\",\n\t\"./ar-tn\": \"0608\",\n\t\"./ar-tn.js\": \"0608\",\n\t\"./ar.js\": \"0fa2\",\n\t\"./az\": \"9cec\",\n\t\"./az.js\": \"9cec\",\n\t\"./be\": \"609d\",\n\t\"./be.js\": \"609d\",\n\t\"./bg\": \"3f4f\",\n\t\"./bg.js\": \"3f4f\",\n\t\"./bm\": \"43e9\",\n\t\"./bm.js\": \"43e9\",\n\t\"./bn\": \"d345\",\n\t\"./bn-bd\": \"3037\",\n\t\"./bn-bd.js\": \"3037\",\n\t\"./bn.js\": \"d345\",\n\t\"./bo\": \"fe43\",\n\t\"./bo.js\": \"fe43\",\n\t\"./br\": \"927d\",\n\t\"./br.js\": \"927d\",\n\t\"./bs\": \"1808\",\n\t\"./bs.js\": \"1808\",\n\t\"./ca\": \"2a24\",\n\t\"./ca.js\": \"2a24\",\n\t\"./cs\": \"8bb4\",\n\t\"./cs.js\": \"8bb4\",\n\t\"./cv\": \"1788\",\n\t\"./cv.js\": \"1788\",\n\t\"./cy\": \"8cb6\",\n\t\"./cy.js\": \"8cb6\",\n\t\"./da\": \"9fca\",\n\t\"./da.js\": \"9fca\",\n\t\"./de\": \"3f20\",\n\t\"./de-at\": \"a8f1\",\n\t\"./de-at.js\": \"a8f1\",\n\t\"./de-ch\": \"2b68\",\n\t\"./de-ch.js\": \"2b68\",\n\t\"./de.js\": \"3f20\",\n\t\"./dv\": \"6a7c\",\n\t\"./dv.js\": \"6a7c\",\n\t\"./el\": \"7f03\",\n\t\"./el.js\": \"7f03\",\n\t\"./en-au\": \"e33b\",\n\t\"./en-au.js\": \"e33b\",\n\t\"./en-ca\": \"563d\",\n\t\"./en-ca.js\": \"563d\",\n\t\"./en-gb\": \"6e59\",\n\t\"./en-gb.js\": \"6e59\",\n\t\"./en-ie\": \"a02d\",\n\t\"./en-ie.js\": \"a02d\",\n\t\"./en-il\": \"2dd2\",\n\t\"./en-il.js\": \"2dd2\",\n\t\"./en-in\": \"b674\",\n\t\"./en-in.js\": \"b674\",\n\t\"./en-nz\": \"2e16\",\n\t\"./en-nz.js\": \"2e16\",\n\t\"./en-sg\": \"49e7\",\n\t\"./en-sg.js\": \"49e7\",\n\t\"./eo\": \"3645\",\n\t\"./eo.js\": \"3645\",\n\t\"./es\": \"8669\",\n\t\"./es-do\": \"1ef1\",\n\t\"./es-do.js\": \"1ef1\",\n\t\"./es-mx\": \"aa4f\",\n\t\"./es-mx.js\": \"aa4f\",\n\t\"./es-us\": \"2adb\",\n\t\"./es-us.js\": \"2adb\",\n\t\"./es.js\": \"8669\",\n\t\"./et\": \"7672\",\n\t\"./et.js\": \"7672\",\n\t\"./eu\": \"666c\",\n\t\"./eu.js\": \"666c\",\n\t\"./fa\": \"691e\",\n\t\"./fa.js\": \"691e\",\n\t\"./fi\": \"b486\",\n\t\"./fi.js\": \"b486\",\n\t\"./fil\": \"e425\",\n\t\"./fil.js\": \"e425\",\n\t\"./fo\": \"60e4\",\n\t\"./fo.js\": \"60e4\",\n\t\"./fr\": \"bc2c\",\n\t\"./fr-ca\": \"028a\",\n\t\"./fr-ca.js\": \"028a\",\n\t\"./fr-ch\": \"de9b\",\n\t\"./fr-ch.js\": \"de9b\",\n\t\"./fr.js\": \"bc2c\",\n\t\"./fy\": \"de08\",\n\t\"./fy.js\": \"de08\",\n\t\"./ga\": \"c134\",\n\t\"./ga.js\": \"c134\",\n\t\"./gd\": \"680a\",\n\t\"./gd.js\": \"680a\",\n\t\"./gl\": \"3a5c\",\n\t\"./gl.js\": \"3a5c\",\n\t\"./gom-deva\": \"3ab2\",\n\t\"./gom-deva.js\": \"3ab2\",\n\t\"./gom-latn\": \"9bbd\",\n\t\"./gom-latn.js\": \"9bbd\",\n\t\"./gu\": \"3123\",\n\t\"./gu.js\": \"3123\",\n\t\"./he\": \"a3bb\",\n\t\"./he.js\": \"a3bb\",\n\t\"./hi\": \"74d5\",\n\t\"./hi.js\": \"74d5\",\n\t\"./hr\": \"3d1a\",\n\t\"./hr.js\": \"3d1a\",\n\t\"./hu\": \"8930\",\n\t\"./hu.js\": \"8930\",\n\t\"./hy-am\": \"5368\",\n\t\"./hy-am.js\": \"5368\",\n\t\"./id\": \"4d1d\",\n\t\"./id.js\": \"4d1d\",\n\t\"./is\": \"d8c2\",\n\t\"./is.js\": \"d8c2\",\n\t\"./it\": \"b571\",\n\t\"./it-ch\": \"26a2\",\n\t\"./it-ch.js\": \"26a2\",\n\t\"./it.js\": \"b571\",\n\t\"./ja\": \"f409\",\n\t\"./ja.js\": \"f409\",\n\t\"./jv\": \"24ca\",\n\t\"./jv.js\": \"24ca\",\n\t\"./ka\": \"57b4\",\n\t\"./ka.js\": \"57b4\",\n\t\"./kk\": \"7af1\",\n\t\"./kk.js\": \"7af1\",\n\t\"./km\": \"368b\",\n\t\"./km.js\": \"368b\",\n\t\"./kn\": \"c931\",\n\t\"./kn.js\": \"c931\",\n\t\"./ko\": \"8472\",\n\t\"./ko.js\": \"8472\",\n\t\"./ku\": \"41c3\",\n\t\"./ku.js\": \"41c3\",\n\t\"./ky\": \"7229\",\n\t\"./ky.js\": \"7229\",\n\t\"./lb\": \"febd\",\n\t\"./lb.js\": \"febd\",\n\t\"./lo\": \"b36b\",\n\t\"./lo.js\": \"b36b\",\n\t\"./lt\": \"2654\",\n\t\"./lt.js\": \"2654\",\n\t\"./lv\": \"6e31\",\n\t\"./lv.js\": \"6e31\",\n\t\"./me\": \"f72d\",\n\t\"./me.js\": \"f72d\",\n\t\"./mi\": \"2bcd\",\n\t\"./mi.js\": \"2bcd\",\n\t\"./mk\": \"c0de\",\n\t\"./mk.js\": \"c0de\",\n\t\"./ml\": \"e75d\",\n\t\"./ml.js\": \"e75d\",\n\t\"./mn\": \"b37a\",\n\t\"./mn.js\": \"b37a\",\n\t\"./mr\": \"a76b\",\n\t\"./mr.js\": \"a76b\",\n\t\"./ms\": \"2bf0\",\n\t\"./ms-my\": \"2b02\",\n\t\"./ms-my.js\": \"2b02\",\n\t\"./ms.js\": \"2bf0\",\n\t\"./mt\": \"e717\",\n\t\"./mt.js\": \"e717\",\n\t\"./my\": \"e2e2\",\n\t\"./my.js\": \"e2e2\",\n\t\"./nb\": \"bdfc\",\n\t\"./nb.js\": \"bdfc\",\n\t\"./ne\": \"75c0\",\n\t\"./ne.js\": \"75c0\",\n\t\"./nl\": \"3e8e\",\n\t\"./nl-be\": \"de3b\",\n\t\"./nl-be.js\": \"de3b\",\n\t\"./nl.js\": \"3e8e\",\n\t\"./nn\": \"90a3\",\n\t\"./nn.js\": \"90a3\",\n\t\"./oc-lnc\": \"8195\",\n\t\"./oc-lnc.js\": \"8195\",\n\t\"./pa-in\": \"bf7a\",\n\t\"./pa-in.js\": \"bf7a\",\n\t\"./pl\": \"210f\",\n\t\"./pl.js\": \"210f\",\n\t\"./pt\": \"12e3\",\n\t\"./pt-br\": \"294f\",\n\t\"./pt-br.js\": \"294f\",\n\t\"./pt.js\": \"12e3\",\n\t\"./ro\": \"7a04\",\n\t\"./ro.js\": \"7a04\",\n\t\"./ru\": \"75cb\",\n\t\"./ru.js\": \"75cb\",\n\t\"./sd\": \"f957\",\n\t\"./sd.js\": \"f957\",\n\t\"./se\": \"4169\",\n\t\"./se.js\": \"4169\",\n\t\"./si\": \"951b9\",\n\t\"./si.js\": \"951b9\",\n\t\"./sk\": \"1c1d\",\n\t\"./sk.js\": \"1c1d\",\n\t\"./sl\": \"eb2c\",\n\t\"./sl.js\": \"eb2c\",\n\t\"./sq\": \"7c7d\",\n\t\"./sq.js\": \"7c7d\",\n\t\"./sr\": \"5f14\",\n\t\"./sr-cyrl\": \"20a0\",\n\t\"./sr-cyrl.js\": \"20a0\",\n\t\"./sr.js\": \"5f14\",\n\t\"./ss\": \"3a89\",\n\t\"./ss.js\": \"3a89\",\n\t\"./sv\": \"87ac\",\n\t\"./sv.js\": \"87ac\",\n\t\"./sw\": \"91c3\",\n\t\"./sw.js\": \"91c3\",\n\t\"./ta\": \"41cd\",\n\t\"./ta.js\": \"41cd\",\n\t\"./te\": \"5a49\",\n\t\"./te.js\": \"5a49\",\n\t\"./tet\": \"0e56\",\n\t\"./tet.js\": \"0e56\",\n\t\"./tg\": \"2495\",\n\t\"./tg.js\": \"2495\",\n\t\"./th\": \"db96\",\n\t\"./th.js\": \"db96\",\n\t\"./tk\": \"593b\",\n\t\"./tk.js\": \"593b\",\n\t\"./tl-ph\": \"b593\",\n\t\"./tl-ph.js\": \"b593\",\n\t\"./tlh\": \"04f0\",\n\t\"./tlh.js\": \"04f0\",\n\t\"./tr\": \"d11d\",\n\t\"./tr.js\": \"d11d\",\n\t\"./tzl\": \"6da8\",\n\t\"./tzl.js\": \"6da8\",\n\t\"./tzm\": \"11af\",\n\t\"./tzm-latn\": \"2eac\",\n\t\"./tzm-latn.js\": \"2eac\",\n\t\"./tzm.js\": \"11af\",\n\t\"./ug-cn\": \"f551\",\n\t\"./ug-cn.js\": \"f551\",\n\t\"./uk\": \"89a5\",\n\t\"./uk.js\": \"89a5\",\n\t\"./ur\": \"faa7\",\n\t\"./ur.js\": \"faa7\",\n\t\"./uz\": \"c23b\",\n\t\"./uz-latn\": \"d399\",\n\t\"./uz-latn.js\": \"d399\",\n\t\"./uz.js\": \"c23b\",\n\t\"./vi\": \"6811\",\n\t\"./vi.js\": \"6811\",\n\t\"./x-pseudo\": \"52a9\",\n\t\"./x-pseudo.js\": \"52a9\",\n\t\"./yo\": \"f28c\",\n\t\"./yo.js\": \"f28c\",\n\t\"./zh-cn\": \"39cf\",\n\t\"./zh-cn.js\": \"39cf\",\n\t\"./zh-hk\": \"25ad\",\n\t\"./zh-hk.js\": \"25ad\",\n\t\"./zh-mo\": \"1689\",\n\t\"./zh-mo.js\": \"1689\",\n\t\"./zh-tw\": \"2dba\",\n\t\"./zh-tw.js\": \"2dba\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"2981\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminActivities.vue?vue&type=style&index=0&id=96311fb2&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AxSelect.vue?vue&type=style&index=0&id=c226abec&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminCollections.vue?vue&type=style&index=0&id=5673119b&lang=scss&scoped=true&\"","import store from '@/Common/store'\nimport { ServiceError } from '@/Common/interfaces/ServiceError'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport AdminSetting from '../interfaces/AdminSetting'\nimport AdminEmailAccess from '../interfaces/AdminEmailAccess'\nimport ArrivalService from '@/Common/services/ArrivalService'\n\nclass AdminService extends ArrivalService {\n public static async FetchAdminSettings(): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/admin/settings`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async UpdateAdminSettings(setting: AdminSetting): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'PUT',\n url: `${baseUrl}/api/admin/settings`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: setting,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async FetchAdminEmailAccess(): Promise {\n let result: any = []\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/admin/access/email`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async AddAdminEmailAccess(adminEmailAccess: AdminEmailAccess | null): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/admin/access/email`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: adminEmailAccess,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async UpdateAdminEmailAccess(adminEmailAccess: AdminEmailAccess): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'PUT',\n url: `${baseUrl}/api/admin/access/email`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: adminEmailAccess,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async DeleteAdminEmailAccess(id: number): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'DELETE',\n url: `${baseUrl}/api/admin/access/email/${id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async IsAdminAuthenticated(): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/admin/authenticated`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n}\n\nexport default AdminService\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLoader.vue?vue&type=style&index=0&id=726265f4&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=354c6ea8&lang=scss&scoped=true&\"","import Location from '../interfaces/location'\nimport store from '@/Common/store'\nimport LocationActivity from '../interfaces/LocationActivity'\nimport ArrivalService from '@/Common/services/ArrivalService'\n\nclass LocationService extends ArrivalService{\n public static async FetchLocations(): Promise {\n let response: Location[] | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/locations`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n public static async AddLocation(location: Location) {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'post',\n url: `${baseUrl}/api/locations`,\n data: location,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n } catch (error) {\n // ...\n }\n }\n public static async UpdateLocation(location: Location) {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'PUT',\n url: `${baseUrl}/api/locations/${location.id}`,\n data: location,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n } catch (error) {\n // ...\n }\n }\n public static async AddLocationActivity(locationActivity: LocationActivity) {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'post',\n url: `${baseUrl}/api/locations/${locationActivity.locationId}/activities`,\n data: locationActivity,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n } catch (error) {\n // ...\n }\n }\n\n public static async RemoveLocationActivity(locationId: number, locationActivityId: number) {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'DELETE',\n url: `${baseUrl}/api/locations/${locationId}/activities/${locationActivityId}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n } catch (error) {\n // ...\n }\n }\n\n public static async RemoveLocation(locationId: number) {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'DELETE',\n url: `${baseUrl}/api/locations/${locationId}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n } catch (error) {\n // ...\n }\n }\n}\n\nexport default LocationService\n","enum ETicketDeliveryMode {\n Unknown = 0,\n Email = 1,\n SMS = 2 \n}\nexport default ETicketDeliveryMode","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OidcCallback.vue?vue&type=style&index=0&id=7817cf84&lang=scss&scoped=true&\"","import { ActionTree } from 'vuex'\nimport Activity from '../interfaces/Activity'\nimport ActivityService from '@/Activity/services/ActivityService'\nimport { ActivityState } from './types'\nimport { RootState } from '@/Common/store/types'\nimport moment from 'moment'\n\nexport const actions: ActionTree = {\n async fetchActivityContacts({ commit }): Promise {\n const locationId = 1\n\n const activityContacts = await ActivityService.FetchActivityContacts(locationId)\n\n activityContacts.forEach((ac: any) => {\n commit('addActivityContact', ac)\n })\n },\n async fetchActivities({ commit }): Promise {\n const activitiesResponse = await ActivityService.FetchActivities()\n const allActivities = activitiesResponse || null\n const modifiedActivities = allActivities.map((activity) => {\n return {\n ...activity,\n modifiedDate: moment(activity.modifiedDateUtc).format('MM/DD/YY hh:MM a'),\n hasTasks: activity.activityTasks && activity.activityTasks.length > 0 ? true : false,\n }\n })\n\n commit('setActivities', modifiedActivities)\n\n return modifiedActivities\n },\n resetActivityContacts({ commit }): any {\n commit('resetActivityContacts')\n },\n}\n","import Activity from '../interfaces/Activity'\nimport type ActivityContact from '../interfaces/ActivityContact'\nimport { ActivityState } from './types'\nimport ActivityTasks from '../interfaces/ActivityTasks'\nimport { GetterTree } from 'vuex'\nimport { RootState } from '@/Common/store/types'\nimport Task from '../../Task/interfaces/Task'\n\nexport const getters: GetterTree = {\n activities(state): Activity[] | null {\n return state.activities\n },\n activityContacts(state): ActivityContact[] | null {\n return state.activityContacts\n },\n activityTasks(state): ActivityTasks[] | null {\n return state.activityTasks\n },\n selectedActivity(state): ActivityContact | null {\n return (\n state.activityContacts?.find((ac) => {\n return ac.contacts.filter((c) => c.isSelected).length > 0\n }) || null\n )\n },\n selectedActivityTasks(state, getters): Task[] | null {\n if (getters.selectedActivity && state.activityTasks) {\n const at = state.activityTasks.find((at) => at.activity.id == getters.selectedActivity.activity.id)\n return at ? at.tasks : null\n }\n return null\n },\n}\n","import Activity from '../interfaces/Activity'\nimport type ActivityContact from '../interfaces/ActivityContact'\nimport { ActivityState } from './types'\nimport ActivityTasks from '../interfaces/ActivityTasks'\nimport { MutationTree } from 'vuex'\n\nexport const mutations: MutationTree = {\n addActivityTasks(state, newTasks: ActivityTasks) {\n // tslint:disable-next-line:max-line-length\n const exists = state.activityTasks\n ? state.activityTasks.find((at) => at.activity.id == newTasks.activity.id)\n : false\n if (!exists) {\n const oldTasks = state.activityTasks || []\n const newActivityTasks = [...oldTasks, newTasks]\n state.activityTasks = newActivityTasks\n }\n },\n setActivityContacts(state, actContacts: ActivityContact[]) {\n state.activityContacts = actContacts\n },\n setActivities(state, activities: Activity[]) {\n state.activities = activities\n },\n resetActivityContacts(state) {\n state.activityContacts = null\n },\n}\n","import { ActivityState } from './types'\n\nexport const state: ActivityState = {\n activityContacts: null,\n activityTasks: null,\n activities: null\n}\n","import { ActivityState } from './types'\nimport { Module } from 'vuex'\nimport { RootState } from '@/Common/store/types'\nimport { actions } from './actions'\nimport { getters } from './getters'\nimport { mutations } from './mutations'\nimport { state } from './state'\n\nconst namespaced: boolean = true\n\nexport const activity: Module = {\n namespaced,\n state,\n getters,\n actions,\n mutations,\n}\n","import { ActionTree } from 'vuex'\nimport { AdminState } from './types'\nimport { RootState } from '@/Common/store/types'\nimport AdminSetting from '../interfaces/AdminSetting'\nimport AdminService from '../services/AdminService'\nimport AdminEmailAccess from '../interfaces/AdminEmailAccess'\n\nexport const actions: ActionTree = {\n async fetchAdminSettings({ commit }): Promise {\n const adminSettingsResponse = await AdminService.FetchAdminSettings()\n const adminSettings = adminSettingsResponse || null\n\n commit('setAdminSettings', adminSettings)\n\n return adminSettings\n },\n async fetchAdminEmailAccess({ commit }): Promise {\n const response = (await AdminService.FetchAdminEmailAccess()) || null\n\n commit('setAdminEmailAccess', response)\n\n return response\n },\n reset({ commit }): any {\n commit('resetSettings')\n },\n}\n","import { GetterTree } from 'vuex'\nimport { AdminState } from './types'\nimport { RootState } from '@/Common/store/types'\n\nexport const getters: GetterTree = {\n settings(state): any {\n return state.adminSettings\n },\n emailAccess(state): any {\n return state.emailAccess\n },\n}\n","import { MutationTree } from 'vuex'\nimport AdminEmailAccess from '../interfaces/AdminEmailAccess'\nimport AdminSetting from '../interfaces/AdminSetting'\nimport { AdminState } from './types'\n\nexport const mutations: MutationTree = {\n addAdminSettings(state, settings: AdminSetting) {\n state.adminSettings = settings\n },\n setAdminSettings(state, setting: AdminSetting) {\n state.adminSettings = setting\n },\n setAdminEmailAccess(state, emailAccess: AdminEmailAccess[]) {\n state.emailAccess = emailAccess\n },\n}\n","import { AdminState } from './types'\n\nexport const state: AdminState = {\n adminSettings: null,\n emailAccess: null,\n}\n","import { AdminState } from './types'\nimport { Module } from 'vuex'\nimport { RootState } from '@/Common/store/types'\nimport { actions } from './actions'\nimport { getters } from './getters'\nimport { mutations } from './mutations'\nimport { state } from './state'\n\nconst namespaced: boolean = true\n\nexport const admin: Module = {\n namespaced,\n state,\n mutations,\n getters,\n actions,\n}\n","import { ActionTree } from 'vuex'\nimport Location from '../interfaces/location'\nimport LocationService from '@/Location/services/LocationService'\nimport { LocationState } from './types'\nimport { RootState } from '@/Common/store/types'\nimport moment from 'moment'\n\nexport const actions: ActionTree = {\n setLocationByName({ commit, state }, name: string): any {\n const locName = decodeURIComponent(name)\n const newLocation = state.locations?.filter(\n (l: any) => l.name.replace(' ', '-').toLowerCase() === locName.replace(' ', '-').toLowerCase()\n )\n if (newLocation && newLocation!.length > 0) {\n commit('setCurrentLocation', newLocation![0])\n } else if (state.locations) {\n const defaultLocation = state.locations?.filter((l: any) => l.isDefault === true)\n const editLocation = state.locations?.filter((l: any) => l.isEditProfileLocation === true)\n if (defaultLocation!.length > 0) {\n commit('setCurrentLocation', defaultLocation![0])\n }\n if (editLocation!.length > 0) {\n commit('setEditLocation', editLocation![0])\n }\n }\n },\n setLocationById({ commit, state }, id: number): any {\n const newLocation = state.locations?.filter((l: any) => l.id == id)\n const editLocation = state.locations?.filter((l: any) => l.isEditProfileLocation === true)\n if (newLocation) {\n commit('setCurrentLocation', newLocation[0])\n }\n if (editLocation!.length > 0) {\n commit('setEditLocation', editLocation![0])\n }\n },\n clearLocation({ commit, state }): any {\n localStorage.removeItem('location-key')\n localStorage.removeItem('location-name')\n commit('clearLocation')\n },\n async fetchLocations({ commit }): Promise {\n const locationsResponse = await LocationService.FetchLocations()\n const allLocations = locationsResponse || null\n if (allLocations) {\n const modifiedLocations = allLocations.map((location) => {\n return {\n ...location,\n modifiedDate: moment(location.modifiedDateUtc).format('MM/DD/YY hh:MM a'),\n hasDefaultActivity: location.defaultActivityId && location.defaultActivityId > 0 ? true : false,\n }\n })\n commit('setLocations', modifiedLocations)\n }\n\n return allLocations\n },\n async fetchCurrentLocation({ commit, getters, dispatch }): Promise {\n if (!getters.currentLocation) {\n const locations = getters.locations || (await dispatch('fetchLocations'))\n const storedKey = localStorage.getItem('location-key')\n if (storedKey) {\n const currentLocation = locations.find((l) => l.id == parseInt(storedKey, 10))\n if (currentLocation) {\n commit('setCurrentLocation', currentLocation)\n return currentLocation\n }\n } else {\n const defaultLocation = locations.filter((l) => l.isDefault == true)[0]\n if (defaultLocation) {\n commit('setCurrentLocation', defaultLocation)\n return defaultLocation\n }\n }\n }\n return null\n },\n async fetchEditLocation({ commit, getters, dispatch }): Promise {\n if (!getters.editLocation) {\n const locations = getters.locations || (await dispatch('fetchLocations'))\n const storedKey = localStorage.getItem('location-key')\n const editLocation = locations.filter((l) => l.isEditProfileLocation == true)[0]\n if (editLocation) {\n commit('setEditLocation', editLocation)\n return editLocation\n }\n }\n return null\n },\n async fetchDefaultLocation({ commit, getters, dispatch }): Promise {\n if (!getters.editLocation) {\n const locations = getters.locations || (await dispatch('fetchLocations'))\n const storedKey = localStorage.getItem('location-key')\n const defaultLocation = locations.filter((l) => l.isDefault == true)[0]\n if (defaultLocation) {\n commit('setDefaultLocation', defaultLocation)\n return defaultLocation\n }\n }\n return null\n },\n}\n","import { GetterTree } from 'vuex'\nimport LocationModel from '../models/Location'\nimport { LocationState } from './types'\nimport { RootState } from '@/Common/store/types'\n\nexport const getters: GetterTree = {\n currentLocation(state): any {\n return state.currentLocation\n },\n previousLocation(state): any {\n return state.previousLocation\n },\n locations(state): LocationModel[] | null {\n return state.locations\n },\n editLocation(state): any {\n return state.editLocation\n },\n defaultLocation(state): any {\n return state.defaultLocation\n },\n}\n","import { MutationTree } from 'vuex'\nimport { LocationState } from './types'\nimport LocationModel from '../models/Location'\n\nexport const mutations: MutationTree = {\n setCurrentLocation(state, location: LocationModel) {\n state.previousLocation = state.currentLocation\n state.currentLocation = location\n localStorage.setItem('location-key', location.id.toString())\n localStorage.setItem('location-name', location.name)\n },\n setTemporaryLocation(state, location: LocationModel) {\n state.previousLocation = state.currentLocation\n state.currentLocation = location\n },\n setEditLocation(state, location: LocationModel) {\n state.editLocation = location\n },\n setDefaultLocation(state, location: LocationModel) {\n state.defaultLocation = location\n },\n clearLocation(state) {\n state.previousLocation = state.currentLocation\n state.currentLocation = null\n },\n setLocations(state, locations: LocationModel[] | null) {\n state.locations = locations\n },\n setLocationByName(state, locationName: string) {\n const location = state.locations?.find((l) => l.name === locationName)\n },\n setLocationById(state, locationId: number) {\n const location = state.locations?.find((l) => l.id === locationId)\n },\n}\n","import { LocationState } from './types'\n\nexport const state: LocationState = {\n currentLocation: null,\n editLocation: null,\n locations: null,\n previousLocation: null,\n defaultLocation: null\n}\n","import { LocationState } from './types'\nimport { Module } from 'vuex'\nimport { RootState } from '@/Common/store/types'\nimport { actions } from './actions'\nimport { getters } from './getters'\nimport { mutations } from './mutations'\nimport { state } from './state'\n\nconst namespaced: boolean = true\n\nexport const location: Module = {\n namespaced,\n state,\n getters,\n actions,\n mutations,\n}\n","import ETicketDeliveryMode from '../enums/ETicketDeliveryMode';\n\nexport default class ETicketDelivery {\n constructor(\n /// BLE ticket delivery mode, ex. email or sms\n public deliveryMode: ETicketDeliveryMode | null,\n // Recipient's email or phone number\n public recipient: string | null,\n // Determines wheter the BLE ticket was sent via either sms or text\n public isSent: boolean,\n public createDateUtc: Date | null,\n public updateDateUtc: Date |null\n ) { }\n}\n","import BLEDevice from './BLEDevice'\nimport ETicketDeliveryMode from '../enums/ETicketDeliveryMode'\n\nexport default class ETicketDownload {\n constructor(\n // Mobile app version, ex. JHInsider app\n public appVersion: string | null,\n // Device which the BLE ticket was downloaded to\n public device: BLEDevice | null,\n // DateTime when the BLE ticket was downloaded to the Device\n public downloadDate: Date | null,\n // BLE ticket delivery mode, ex. email or sms\n public deliveryMode: ETicketDeliveryMode\n ) {}\n}\n","import ETicketDelivery from './ETicketDelivery'\nimport ETicketDownload from './ETicketDownload'\nimport ETicketStatus from '../enums/ETicketStatus'\n\nexport default class ETicketSummary {\n constructor(\n public id: string | null,\n public delivery: ETicketDelivery,\n public download: ETicketDownload,\n public status: ETicketStatus = ETicketStatus.Unknown\n ) {}\n}\n","import { ActionTree } from 'vuex'\nimport ContactBLE from '../models/ContactBLE'\nimport ETicketDelivery from '../models/ETicketDelivery'\nimport ETicketDeliveryMode from '../enums/ETicketDeliveryMode'\nimport ETicketDownload from '../models/ETicketDownload'\nimport ETicketStatus from '../enums/ETicketStatus'\nimport ETicketSummary from '../models/ETicketSummary'\nimport GetBLEDataRequest from '../interfaces/getBLEDataRequest'\nimport MediaService from '@/Profile/services/MediaService'\nimport ProfileService from '@/Profile/services/ProfileService'\nimport { ProfileState } from './types'\nimport { RootState } from '@/Common/store/types'\n\nexport const actions: ActionTree = {\n async fetchProfile({ commit }): Promise {\n const profileResponse = await ProfileService.FetchProfile()\n const contacts = profileResponse.contacts || []\n const profileContacts = contacts.map((c: any) => {\n return {\n id: c.contactId,\n firstName: c.firstName,\n lastName: c.lastName,\n photo: c.photo,\n isHeadOfHouseHold: c.isHeadOfHouseHold,\n }\n })\n profileContacts.forEach((c: any) => {\n commit('addContact', c)\n })\n },\n async fetchContactBLE({ commit }, contactId: string): Promise {\n let bleContact: ContactBLE | null = null\n\n const bleDataResult = await MediaService.FetchBLEData(contactId)\n\n if (bleDataResult) {\n const ticketSummary: ETicketSummary = {\n id: bleDataResult.id,\n delivery: bleDataResult.delivery || new ETicketDelivery(ETicketDeliveryMode.Unknown, null, false, null, null),\n download: bleDataResult.download || new ETicketDownload(null, null, null, ETicketDeliveryMode.Unknown),\n status: bleDataResult.status || ETicketStatus.Unknown,\n }\n bleContact = {\n id: contactId,\n eticket: ticketSummary,\n status: bleDataResult.status,\n }\n } else {\n const emptyTicket = new ETicketSummary(\n null,\n new ETicketDelivery(ETicketDeliveryMode.Unknown, null, false, null, null),\n new ETicketDownload(null, null, null, ETicketDeliveryMode.Unknown)\n )\n bleContact = {\n id: contactId,\n eticket: emptyTicket,\n status: ETicketStatus.NoMedia,\n }\n }\n\n commit('addContactBLE', bleContact)\n return bleContact\n },\n reset({ commit }): any {\n commit('resetContacts')\n },\n}\n","import ContactBLEModel from '../models/ContactBLE'\nimport ContactModel from '../models/Contact'\nimport { GetterTree } from 'vuex'\nimport { ProfileState } from './types'\nimport { RootState } from '@/Common/store/types'\n\nexport const getters: GetterTree = {\n contacts(state): ContactModel[] | null {\n return state.contacts\n },\n bleContacts(state): ContactBLEModel[] | null {\n return state.bleContacts\n },\n signedIn(state): boolean {\n return true\n },\n headOfHouseHoldContact(state): ContactModel | null {\n const headOfHouseHold = (state.contacts && state.contacts.filter((c) => c.isHeadOfHouseHold)[0]) || null\n if (headOfHouseHold) {\n return headOfHouseHold\n }\n return null\n },\n}\n","import ContactBLEModel from '../models/ContactBLE'\nimport ContactModel from '../models/Contact'\nimport { MutationTree } from 'vuex'\nimport { ProfileState } from './types'\n\nexport const mutations: MutationTree = {\n addContact(state, contact: ContactModel) {\n const oldContacts = state.contacts\n const contactsWithoutNewId = oldContacts ? oldContacts.filter((c) => c.id !== contact.id) : []\n state.contacts = [...contactsWithoutNewId, contact]\n },\n addContactBLE(state, contactBLE: ContactBLEModel) {\n const oldContactBLEs = state.bleContacts\n const contactsWithoutNewId = oldContactBLEs ? oldContactBLEs.filter((c) => c.id !== contactBLE.id) : []\n state.bleContacts = [...contactsWithoutNewId, contactBLE]\n },\n resetContacts(state) {\n state.contacts = []\n },\n}\n","import { ProfileState } from './types'\n\nexport const state: ProfileState = {\n contacts: null,\n bleContacts: null,\n}\n","import { Module } from 'vuex'\nimport { ProfileState } from './types'\nimport { RootState } from '@/Common/store/types'\nimport { actions } from './actions'\nimport { getters } from './getters'\nimport { mutations } from './mutations'\nimport { state } from './state'\n\nconst namespaced: boolean = true\n\nexport const profile: Module = {\n namespaced,\n state,\n getters,\n actions,\n mutations,\n}\n","import { SettingsState } from './types'\n\nexport const state: SettingsState = {\n appSettings: null,\n languageSettings: null,\n themeSettings: null,\n environment: null,\n oneRiskSettings: null\n}\n","import { GetterTree } from 'vuex'\nimport { SettingsState } from './types'\nimport { RootState } from '@/Common/store/types'\n\nexport const getters: GetterTree = {\n baseUrl(state): string {\n return state.appSettings ? state.appSettings.baseUrl : ''\n },\n settings(state): any {\n return state.appSettings\n },\n languageSettings(state): any {\n return state.languageSettings\n },\n themeSettings(state): any {\n return state.themeSettings\n },\n theme(state): any {\n return state.themeSettings ? state.themeSettings.theme : null\n },\n isDevelopment(state): any {\n return state.environment ? state.environment.toUpperCase() === 'DEVELOPMENT' : false\n },\n oneRiskSettings(state): any {\n return state.oneRiskSettings\n },\n}\n","import { ActionTree } from 'vuex'\nimport SettingsService from '@/Settings/services/SettingsService'\nimport { SettingsState } from './types'\nimport { RootState } from '@/Common/store/types'\n\nexport const actions: ActionTree = {\n reset({ commit }): any {\n commit('resetSettings')\n },\n setTheme({ getters }) {\n const root = document.documentElement\n\n root.style.setProperty('--activity-bkg-url', `url('/img/bkg--activity.jpg')`)\n root.style.setProperty('--v-error-base', '#dc143c')\n\n if (getters.themeSettings.buttons) {\n root.style.setProperty('--v-primary-base', getters.theme.buttons.primary.backgroundColor)\n root.style.setProperty('--v-primary-btn-txt-color', getters.theme.buttons.primary.color)\n root.style.setProperty('--v-secondary-base', getters.theme.buttons.secondary.backgroundColor)\n root.style.setProperty('--v-secondary-btn-txt-color', getters.theme.buttons.secondary.color)\n }\n\n if (getters.theme.footer) {\n root.style.setProperty('--footer-bkg-color', `${getters.theme.footer.backgroundColor}`)\n root.style.setProperty('--footer-bkg-url', `url('${getters.theme.footer.footerBkgImageUrl}')`)\n root.style.setProperty('--footer-bkg-opacity', `${getters.theme.footer.footerBkgImageOpacity}`)\n root.style.setProperty('--footer-border-color', `${getters.theme.footer.borderColor}`)\n root.style.setProperty('--footer-text-color', `${getters.theme.footer.textColor}`)\n }\n\n if (getters.theme.sidebar) {\n root.style.setProperty('--sidebar-bkg-color', `${getters.theme.sidebar.backgroundColor}`)\n root.style.setProperty('--sidebar-bkg-url', `url('${getters.theme.sidebar.sidebarBkgImageUrl}')`)\n root.style.setProperty('--sidebar-bkg-opacity', `${getters.theme.sidebar.sidebarBkgImageOpacity}`)\n }\n\n if (getters.theme.general) {\n root.style.setProperty('--logo-url', `url('${getters.theme.general.logoUrl}')`)\n root.style.setProperty('--arrivalTitleImageWidth', `${getters.theme.general.arrivalTitleImageWidth}px`)\n root.style.setProperty('--loader-primary-color', `${getters.theme.general.loaderPrimaryColor}`)\n root.style.setProperty('--loader-secondary-color', `${getters.theme.general.loaderSecondaryColor}`)\n }\n },\n}\n","import { MutationTree } from 'vuex'\nimport { SettingsState } from './types'\nimport { Settings } from '../interfaces/Settings'\nimport { OneRiskSettings } from '../interfaces/OneRiskSettings'\n\nexport const mutations: MutationTree = {\n addSettings(state, settings: Settings) {\n state.appSettings = settings.frontEndSettings\n state.environment = settings.environment\n state.oneRiskSettings = {\n 'oneRiskUrl': settings.oneRiskUrl,\n 'oneRiskSecret': settings.oneRiskSecret,\n 'pointOfSaleSystem': settings.pointOfSaleSystem,\n 'dateFormat': settings.dateFormat\n }\n if (settings.languageSettings) {\n state.languageSettings = JSON.parse(settings.languageSettings)\n }\n if (settings.themeSettings) {\n state.themeSettings = JSON.parse(settings.themeSettings)\n }\n\n },\n}\n","import { Module } from 'vuex'\nimport { state } from './state'\nimport { getters } from './getters'\nimport { actions } from './actions'\nimport { mutations } from './mutations'\nimport { SettingsState } from './types'\nimport { RootState } from '@/Common/store/types'\n\nconst namespaced: boolean = true\n\nexport const settings: Module = {\n namespaced,\n state,\n getters,\n actions,\n mutations,\n}\n","import { ActionTree } from 'vuex'\nimport { RootState } from '@/Common/store/types'\nimport Task from '../interfaces/Task'\nimport TaskService from '../services/TaskService'\nimport { TaskState } from './types'\nimport TaskType from '../interfaces/TaskType'\nimport moment from 'moment'\nimport { task } from '.'\n\nexport const actions: ActionTree = {\n async fetchTasks({ state, commit }): Promise {\n const tasksResponse = await TaskService.FetchTasks()\n const allTasks = tasksResponse || null\n const modifiedTasks = allTasks.map((task) => {\n return {\n ...task,\n modifiedDate: moment(task.modifiedDateUtc).format('MM/DD/YY hh:MM a'),\n }\n })\n\n commit('setTasks', modifiedTasks)\n\n return allTasks\n },\n async fetchTaskTypes({ commit }): Promise {\n const taskTypesResponse = await TaskService.FetchTaskTypes()\n const allTaskTypes = taskTypesResponse || null\n\n commit('setTaskTypes', allTaskTypes)\n\n return allTaskTypes\n },\n setCurrentTaskByRoute({ state, commit, rootGetters }, routeName: string) {\n const desiredRoute = routeName.replace('checkin-', '')\n const foundTaskKey = state.taskTypeKeys!.find((ttk) => ttk.routeName === desiredRoute)\n if (foundTaskKey) {\n const tasks = rootGetters['activity/selectedActivityTasks']\n if (tasks) {\n const foundTask = tasks.find((task) => task.taskType!.id == foundTaskKey.taskTypeId)\n if (foundTask) {\n commit('setCurrentTask', foundTask)\n }\n }\n }\n },\n advanceTask({ commit, getters, rootGetters }) {\n let tasks = rootGetters['activity/selectedActivityTasks']\n\n if (!tasks) {\n tasks = rootGetters['task/tasks']\n }\n const currentTask = getters.currentTask\n if (!currentTask) {\n const firstTask = tasks[0]\n commit('task/setCurrentTask', firstTask, { root: true })\n } else {\n const currentTaskPosition = tasks.findIndex((task: Task) => task.id == currentTask.id)\n if (currentTaskPosition < tasks.length - 1) {\n const nextTask = tasks[currentTaskPosition + 1]\n commit('setCurrentTask', nextTask)\n } else {\n commit('setCurrentTask', null)\n }\n }\n },\n completeCurrentTask({ getters, commit, dispatch }) {\n const currentTask = getters.currentTask\n const completedTask = {\n ...currentTask,\n isComplete: true,\n }\n commit('setCurrentTask', completedTask)\n dispatch('advanceTask')\n },\n}\n","import ContactTask from '../interfaces/ContactTask'\nimport ContactTaskGrouping from '../interfaces/ContactTaskGrouping'\nimport { GetterTree } from 'vuex'\nimport { RootState } from '@/Common/store/types'\nimport Task from '../interfaces/Task'\nimport { TaskState } from './types'\nimport TaskType from '../interfaces/TaskType'\n\nexport const getters: GetterTree = {\n contactTasks(state): ContactTaskGrouping | null {\n return state.contactTasks\n },\n currentTask(state): Task | null {\n return state.currentTask\n },\n tasks(state): Task[] | null {\n return state.tasks\n },\n taskTypes(state): TaskType[] | null {\n return state.taskTypes\n },\n}\n","import ContactTask from '../interfaces/ContactTask'\nimport ContactTaskGrouping from '../interfaces/ContactTaskGrouping'\nimport { MutationTree } from 'vuex'\nimport Task from '../interfaces/Task'\nimport { TaskState } from './types'\nimport TaskType from '../interfaces/TaskType'\n\nexport const mutations: MutationTree = {\n setContactTasks(state, tasks: ContactTaskGrouping) {\n state.contactTasks = tasks\n },\n setCurrentTask(state, task: Task) {\n state.currentTask = task\n },\n\n resetContactTasks(state) {\n state.contactTasks = null\n },\n setTasks(state, tasks: Task[]) {\n state.tasks = tasks\n },\n setTaskTypes(state, taskTypes: TaskType[]) {\n state.taskTypes = taskTypes\n },\n}\n","import { TaskState } from './types'\n\nexport const state: TaskState = {\n contactTasks: null,\n currentTask: null,\n tasks: null,\n taskTypes: null,\n taskTypeKeys: [\n {\n taskTypeId: 1,\n routeName: 'Waiver',\n },\n {\n taskTypeId: 2,\n routeName: 'RentalProfile',\n },\n {\n taskTypeId: 3,\n routeName: 'ChildRegistration',\n },\n {\n taskTypeId: 4,\n routeName: 'Photo',\n },\n ],\n}\n","import { Module } from 'vuex'\nimport { RootState } from '@/Common/store/types'\nimport { TaskState } from './types'\nimport { actions } from './actions'\nimport { getters } from './getters'\nimport { mutations } from './mutations'\nimport { state } from './state'\n\nconst namespaced: boolean = true\n\nexport const task: Module = {\n namespaced,\n state,\n mutations,\n getters,\n actions,\n}\n","import Vuex, { StoreOptions } from 'vuex'\n\nimport BrowserInfo from '../interfaces/BrowserInfo'\nimport GTMEvent from '../interfaces/GTMEvent'\nimport { RootState } from './types'\nimport Vue from 'vue'\nimport { activity } from '@/Activity/store/index'\nimport { admin } from '@/Admin/store/index'\nimport { location } from '@/Location/store/index'\nimport { profile } from '@/Profile/store/index'\nimport { settings } from '@/Settings/store/index'\nimport { task } from '@/Task/store/index'\n\nVue.use(Vuex)\n\n// Vuex structure based on https://codeburst.io/vuex-and-typescript-3427ba78cfa8\n\nconst store: StoreOptions = {\n state: {\n destination: '',\n version: '1.0.0', // a simple property\n pageLoading: false,\n features: [],\n appInsights: null,\n exportKey: '',\n browserInfo: null,\n },\n getters: {\n browserInfo(state) {\n return state.browserInfo\n },\n destination(state) {\n return state.destination\n },\n appInsights(state) {\n return state.appInsights\n },\n features(state) {\n return state.features\n },\n exportKey(state) {\n return state.exportKey\n },\n hasFeature(state) {\n return (featureName) => {\n return !!state.features.find((f) => f === featureName)\n }\n },\n },\n mutations: {\n setBrowserInfo(state, browserInfo) {\n state.browserInfo = browserInfo\n },\n setDestination(state, destination) {\n state.destination = destination\n },\n setAppInsights(state, appInsights) {\n state.appInsights = appInsights\n },\n setPageLoading(state, loading) {\n state.pageLoading = loading\n },\n setFeatures(state, features) {\n state.features = features\n },\n setExportKey(state, exportKey) {\n state.exportKey = exportKey\n },\n },\n actions: {\n trackEvent(context, event: GTMEvent) {\n const theEvent = {\n ...event,\n destination: context.state.destination,\n }\n Vue.gtm.trackEvent(theEvent)\n },\n },\n modules: {\n profile,\n location,\n settings,\n activity,\n task,\n admin,\n },\n}\n\nexport default new Vuex.Store(store)\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTasks.vue?vue&type=style&index=0&id=d3e10bbe&lang=scss&scoped=true&\"","import { Action, Getter } from 'vuex-class'\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\n\nimport ContactTask from '../interfaces/ContactTask'\nimport Task from '../interfaces/Task'\nimport TaskService from '../services/TaskService'\n\n@Component\nexport default class TaskBase extends Vue {\n @Prop({ required: true, default: null })\n contactTasks: ContactTask[] | any\n\n public async completeContactTask(contactTask: ContactTask, isSkipped: boolean = false) {\n try {\n if (!isSkipped) {\n await TaskService.CompleteContactTask(contactTask)\n }\n const newContactTask: ContactTask = {\n ...contactTask,\n isComplete: true,\n isSkipped,\n isReadOnly: true,\n }\n contactTask = newContactTask\n } catch (error) {\n throw error\n }\n }\n}\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignWaiver.vue?vue&type=style&index=1&id=03403d00&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignWaiver.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckIn.vue?vue&type=style&index=0&id=bbe8f146&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoTask.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAccess.vue?vue&type=style&index=0&id=05ef4f4a&lang=scss&scoped=true&\"","import ArrivalService from '@/Common/services/ArrivalService'\nimport CheckPassRequest from '../interfaces/CheckPassRequest'\nimport Contact from '@/Common/interfaces/Contact'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport GetBLEDataRequest from '../interfaces/getBLEDataRequest'\nimport PassResult from '../interfaces/passResult'\nimport Profile from '../interfaces/profile'\nimport { ServiceError } from '@/Common/interfaces/ServiceError'\nimport store from '@/Common/store'\n\nclass ProfileService extends ArrivalService {\n public static async FetchProfile(): Promise {\n let response: Profile | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/profile`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async AddFamilyMember(request: Contact): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/family/addmember`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: request,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async FetchAppleWalletPassFile(\n ipCode: string,\n firstName: string,\n lastName: string,\n externalOrderId: string | null\n ): Promise {\n let response: any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/profile/passes/applewallet?ipCode=${ipCode}&firstName=${firstName}&lastName=${lastName}&externalOrderId=${externalOrderId}`,\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async FetchGoogleWalletPassLink(\n ipCode: string,\n firstName: string,\n lastName: string,\n externalOrderId: string | null\n ): Promise {\n let response: any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/profile/passes/googlewallet?ipCode=${ipCode}&firstName=${firstName}&lastName=${lastName}&externalOrderId=${externalOrderId}`,\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async CheckPass(request: CheckPassRequest): Promise {\n let response: PassResult | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/profile/passes/check`,\n data: request,\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n}\n\nexport default ProfileService\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminReporting.vue?vue&type=style&index=0&id=706d88a2&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.type === 'check')?_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"17\",\"height\":\"12\",\"viewBox\":\"0 0 17 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M14.5656 0.311706C14.1413 0.315541 13.7335 0.484254 13.4306 0.782062L6.26289 7.6635L3.134 5.25036C2.41951 4.70076 1.39445 4.83243 0.842292 5.54434C0.290135 6.25754 0.419217 7.28389 1.12988 7.83732L5.38353 11.1094C6.02514 11.6078 6.9352 11.5605 7.52057 10.9969L15.7007 3.14398C16.1953 2.68387 16.3551 1.9668 16.1033 1.33926C15.8528 0.712954 15.2418 0.304017 14.5656 0.311706Z\",\"fill\":_vm.color}})]):(_vm.type === 'arrow')?_c('svg',{attrs:{\"width\":\"15\",\"height\":\"15\",\"viewBox\":\"0 0 15 15\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M8.49105 0.501802C8.3668 0.352391 8.18461 0.262433 7.99022 0.254061C7.79584 0.244914 7.6068 0.318093 7.46881 0.456079C7.33159 0.593294 7.25842 0.782347 7.26679 0.976735C7.27594 1.17112 7.36589 1.35331 7.51529 1.47756L12.4939 6.46224H1.51571C1.14677 6.4813 0.857849 6.78623 0.857849 7.15594C0.857849 7.52488 1.14677 7.8298 1.51571 7.84963H12.4939L7.50768 12.8275C7.24698 13.1004 7.24698 13.5303 7.50768 13.8032C7.63651 13.9328 7.8126 14.006 7.99555 14.006C8.1785 14.006 8.35383 13.9328 8.48342 13.8032L14.6505 7.63614C14.7831 7.50807 14.8578 7.33274 14.8578 7.14903C14.8578 6.96455 14.7824 6.78845 14.6497 6.66116L8.49105 0.501802Z\",\"fill\":_vm.color}})]):(_vm.type === 'x')?_c('svg',{attrs:{\"width\":\"17\",\"height\":\"17\",\"viewBox\":\"0 0 17 17\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M0.486706 16.6104C0.700564 16.8264 0.991421 16.9483 1.29512 16.9483C1.60094 16.9483 1.89177 16.8264 2.10567 16.6104L8.12799 10.5881L14.1739 16.6339C14.6208 17.0809 15.3458 17.0809 15.7928 16.6339C16.2397 16.1869 16.2397 15.462 15.7928 15.015L9.7469 8.96914L15.7928 2.92328C16.2397 2.47631 16.2397 1.75134 15.7928 1.30437C15.3458 0.857407 14.6208 0.857402 14.1739 1.30437L8.12799 7.35023L2.08213 1.32791C1.63516 0.880943 0.910185 0.880943 0.463219 1.32791C0.0162479 1.77489 0.0162479 2.49986 0.463219 2.94682L6.50908 8.96914L0.48676 15.015C0.0504817 15.4577 0.0504817 16.1677 0.48676 16.6104L0.486706 16.6104Z\",\"fill\":_vm.color}})]):(_vm.type === 'icon-arrow-x')?_c('svg',{attrs:{\"width\":\"22\",\"height\":\"22\",\"viewBox\":\"0 0 22 22\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M21.3828 10.736L14.857 1.15057C14.6947 0.910414 14.4212 0.767456 14.1287 0.767456H1.41277C0.927464 0.767456 0.533615 1.15794 0.533615 1.63909V20.8092C0.533615 21.2904 0.927464 21.6808 1.41277 21.6808H14.1295C14.422 21.6808 14.6956 21.5362 14.8579 21.2985L21.3843 11.7139C21.5837 11.4174 21.5837 11.031 21.3826 10.7361L21.3828 10.736ZM13.6617 19.9376H2.29216V2.50989H13.6617L19.5941 11.2237L13.6617 19.9376Z\",\"fill\":_vm.color}}),_c('path',{attrs:{\"d\":\"M13.3445 7.16031C13.0001 6.8213 12.4455 6.82293 12.102 7.16276L9.26348 9.98846L6.425 7.16276C6.08388 6.82211 5.52772 6.8213 5.18249 7.16031C4.83809 7.50014 4.83726 8.05154 5.18002 8.393L8.02336 11.2243L5.18065 14.054C4.83789 14.3963 4.83871 14.9461 5.18313 15.2859C5.35451 15.455 5.57862 15.5416 5.80355 15.5416C6.03014 15.5416 6.25507 15.455 6.42563 15.2843L9.26327 12.4569L12.1009 15.2843C12.2723 15.455 12.4981 15.5416 12.723 15.5416C12.9471 15.5416 13.172 15.455 13.3434 15.2859C13.6886 14.9461 13.6895 14.3963 13.3459 14.054L10.504 11.2227L13.3467 8.39216C13.6887 8.05233 13.6878 7.50012 13.3443 7.16029L13.3445 7.16031Z\",\"fill\":_vm.color}})]):(_vm.type === 'add-user')?_c('svg',{attrs:{\"width\":\"16\",\"height\":\"14\",\"viewBox\":\"0 0 16 14\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M6.26523 0.15683C9.14018 0.15683 10.5943 3.65543 8.55079 5.69099C6.50745 7.72474 3.02466 6.26436 3.02466 3.39619C3.02527 1.57735 4.50895 0.15683 6.26507 0.15683H6.26523ZM8.11448 1.57292C6.48094 -0.05418 3.65665 1.09447 3.65665 3.39569C3.65665 5.69937 6.48094 6.84554 8.11448 5.22093C9.12537 4.21274 9.12537 2.58118 8.11448 1.57292Z\",\"fill\":_vm.color}}),_c('path',{attrs:{\"d\":\"M9.23836 11.9739C9.71062 11.9739 9.71062 12.6875 9.23836 12.6875L0.357049 12.6882C0.12967 12.6882 0.00232342 12.5203 0.000227842 12.2831C-0.0214605 9.84686 1.50727 7.38018 3.71818 6.39579C4.17084 6.1852 4.53257 7.10034 6.2746 7.10034C8.01392 7.10034 8.3777 6.18729 8.82834 6.3937C9.80085 6.84147 10.5341 7.7361 11.2148 8.5722C11.5121 8.93391 10.9587 9.38449 10.6614 9.02277C10.1416 8.38329 9.4587 7.47186 8.70658 7.12204C7.23103 8.04908 5.31891 8.04908 3.84341 7.12204C2.0775 7.94132 0.844047 10.0071 0.724402 11.9746L9.23836 11.9739Z\",\"fill\":_vm.color}}),_c('path',{attrs:{\"d\":\"M10.9611 11.7323C10.4915 11.7372 10.4817 11.0227 10.9513 11.0185L12.4559 10.9996L12.437 9.55239C12.43 9.08281 13.1438 9.07301 13.1488 9.54259L13.1676 10.9898L14.6722 10.973C15.1418 10.966 15.1516 11.6798 14.682 11.6847L13.1774 11.7036L13.1963 13.1536C13.2033 13.6211 12.4895 13.6302 12.4846 13.1606L12.4657 11.7134L10.9611 11.7323Z\",\"fill\":_vm.color}})]):(_vm.type === 'shoe')?_c('svg',{attrs:{\"width\":\"22\",\"height\":\"14\",\"viewBox\":\"0 0 22 14\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M8.73266 2.72348L9.60925 2.75209H9.66442L9.70324 2.76741L9.73696 2.7858H9.73798C9.75637 2.79908 9.77374 2.81543 9.78702 2.83382C9.78702 2.83382 10.1712 3.315 10.3469 3.53162C11.9008 5.39613 13.7357 7.00727 15.7873 8.30479C15.9231 8.36507 16.1877 8.3334 16.6005 8.2343C14.3978 6.60781 12.6773 4.32945 10.4778 1.59867C10.347 1.41579 9.09649 2.20043 9.09649 2.20043C8.92587 2.33427 8.79817 2.51611 8.73279 2.72352L8.73266 2.72348Z\",\"fill\":_vm.color}}),_c('path',{attrs:{\"d\":\"M1.54021 5.97944C4.34579 6.63636 7.1001 7.49046 9.78485 8.53459L10.8883 8.96572C13.4904 9.99147 15.596 10.8231 19.7807 11.3329C20.215 11.383 20.6727 11.4351 21.1569 11.479C21.1283 10.9559 21.1252 10.3388 20.7462 10.2704V10.2714C19.5509 9.93526 18.4107 9.42648 17.3616 8.76242C17.335 8.75118 17.3064 8.74403 17.2778 8.73892C16.9355 8.84109 16.1427 9.05053 15.6881 8.92691C15.6442 8.91771 15.6033 8.90239 15.5645 8.87991H15.544C13.3812 7.53848 11.3981 5.74139 9.48669 3.38749L8.70206 3.36093C6.85083 4.28962 4.6429 3.36093 4.39993 2.05321C4.20888 1.29207 3.96265 0.745491 3.49268 0.862976C2.70805 1.01725 1.88152 2.25141 1.50762 3.64606L1.5066 3.64709C1.3227 4.41333 1.33189 5.21431 1.53316 5.97749L1.54021 5.97944Z\",\"fill\":_vm.color}}),_c('path',{attrs:{\"d\":\"M2.12161 9.19355L14.9373 12.6253C18.9441 13.462 20.872 13.8942 21.2695 12.9757C21.3431 12.6968 21.3645 12.4076 21.3318 12.1206H21.3032C20.9078 12.0705 16.6639 11.5117 15.1601 11.1081H15.159C13.648 10.6841 12.1636 10.1692 10.7128 9.56847C9.58796 9.1261 8.39262 8.65613 6.91231 8.1586C5.43192 7.66208 3.67466 7.14103 1.41989 6.58933L0.931536 7.87867C0.857977 8.54069 1.26153 8.97694 2.13197 9.18639L2.12161 9.19355Z\",\"fill\":_vm.color}})]):(_vm.type === 'person')?_c('svg',{attrs:{\"width\":\"20\",\"height\":\"17\",\"viewBox\":\"0 0 20 17\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M9.98821 0.755847C4.81721 0.755847 0.614006 4.95905 0.614006 10.1534C0.614006 12.3964 1.41713 14.4744 2.73901 16.08C2.95151 14.4511 4.58041 13.0574 6.89441 12.3964C8.64207 14.0496 11.2624 14.073 13.0576 12.4675C15.3716 13.1761 16.9772 14.6401 17.0248 16.3635C18.4889 14.687 19.3858 12.5143 19.3858 10.1533C19.3858 4.95874 15.1826 0.755741 9.98821 0.755741V0.755847ZM9.98821 12.5386C7.79221 12.5386 6.28121 10.484 6.28121 8.38325C6.28121 6.09265 7.95777 4.22785 9.98821 4.22785C12.0428 4.22785 13.6952 6.09347 13.6952 8.38325C13.6952 10.4848 12.1843 12.5386 9.98821 12.5386Z\",\"fill\":_vm.color}})]):(_vm.type === 'ski')?_c('svg',{attrs:{\"width\":\"23\",\"height\":\"17\",\"viewBox\":\"0 0 23 17\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M18.0554 1.13101C18.9685 1.59602 19.3309 2.71428 18.8649 3.6263C18.3999 4.53938 17.2826 4.90178 16.3696 4.43583C15.4565 3.97082 15.0941 2.8535 15.5601 1.94054C16.0251 1.02746 17.1434 0.665057 18.0554 1.13101Z\",\"fill\":_vm.color}}),_c('path',{attrs:{\"d\":\"M22.4315 15.3777C22.2451 15.1358 21.8987 15.0906 21.6568 15.277C20.6345 16.063 19.3553 15.6836 19.3449 15.6808L11.9518 13.3303L13.5332 10.4519C13.7187 10.1149 13.6396 9.69322 13.345 9.44564L11.5395 7.92918L12.1853 7.54608C12.19 7.58562 12.1966 7.62515 12.2069 7.66374C12.2822 7.94142 12.4997 8.15794 12.7783 8.2323L15.9599 9.07947C16.0295 9.0983 16.0992 9.10677 16.1679 9.10677C16.5247 9.10677 16.8504 8.86862 16.9473 8.50715C17.0622 8.07696 16.8061 7.63456 16.375 7.51971L14.5404 7.03118L15.1513 6.41556C15.9458 5.66252 16.151 4.79368 15.6747 4.19972C15.6596 4.1809 15.6427 4.16207 15.6257 4.14513L15.2831 3.78931C15.2586 3.76389 15.2323 3.74036 15.205 3.71871C14.5705 3.21321 13.8034 3.31864 13.2555 3.54268C12.9204 3.63775 12.0827 4.01521 11.1715 4.52634L10.9117 4.64777L7.28477 2.18332C7.4655 1.88492 7.53423 1.62325 7.4335 1.54512C7.32996 1.46417 7.07956 1.60631 6.82542 1.87082L6.51102 1.65715C6.38489 1.55831 6.20229 1.57902 6.10344 1.70515C6.00366 1.83129 6.02531 2.01389 6.15145 2.11274L6.46115 2.34901C6.29171 2.63705 6.22958 2.88744 6.32748 2.96369C6.42538 3.03993 6.65506 2.91756 6.89416 2.68035L10.1305 5.15685C9.51953 5.55692 8.95006 5.99178 8.55469 6.41633C8.26665 6.65636 8.08404 7.01877 8.08404 7.42259C8.08404 7.89512 8.33444 8.30743 8.70908 8.53804L11.0181 10.255L8.17436 11.9503C8.11412 11.9861 8.06235 12.0303 8.01528 12.0783L0.863141 9.80411C0.572284 9.71092 0.261643 9.87283 0.169398 10.1628C0.0771506 10.4536 0.238115 10.7643 0.528041 10.8565L19.0106 16.7322C19.0473 16.7435 19.4897 16.88 20.1072 16.88C20.7463 16.88 21.5738 16.7341 22.3306 16.1514C22.5725 15.966 22.6177 15.6196 22.4313 15.3777L22.4315 15.3777ZM10.4647 12.6865C10.4383 12.7354 10.4167 12.7853 10.4007 12.8371L10.0345 12.7204L10.6464 12.3561L10.4647 12.6865Z\",\"fill\":_vm.color}})]):(_vm.type === 'switch')?_c('svg',{attrs:{\"width\":\"24\",\"height\":\"25\",\"viewBox\":\"0 0 24 25\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M9.19596 16.6683L7.19427 15.2005C6.80457 14.9148 7.00669 14.2973 7.48993 14.2973H19.9607\",\"stroke\":_vm.color,\"stroke-width\":\"1.5\",\"stroke-miterlimit\":\"10\"}}),_c('path',{attrs:{\"d\":\"M15.0815 8.51797L17.0837 9.98571C17.4735 10.2714 17.2714 10.889 16.7881 10.889H4.3177\",\"stroke\":_vm.color,\"stroke-width\":\"1.5\",\"stroke-miterlimit\":\"10\"}}),_c('path',{attrs:{\"d\":\"M22.2596 12.3008C22.2596 17.8423 17.7669 22.3341 12.2254 22.3341C6.68486 22.3341 2.19209 17.8423 2.19209 12.3008C2.19209 6.75935 6.68486 2.26756 12.2254 2.26756C17.7669 2.26756 22.2596 6.75935 22.2596 12.3008\",\"stroke\":_vm.color,\"stroke-width\":\"1.25\",\"stroke-miterlimit\":\"10\"}})]):(_vm.type === 'ruler')?_c('svg',{attrs:{\"width\":\"16\",\"height\":\"18\",\"viewBox\":\"0 0 16 18\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M4.78076 8.09119L3.83665 9.72656L5.14552 10.4823C5.50674 10.6912 5.63139 11.1502 5.42174 11.5142C5.21281 11.8754 4.75385 12.0008 4.38981 11.7911L3.08094 11.0354L1.94772 12.998L7.18172 16.0201L13.6035 4.89756L8.36951 1.87542L7.23629 3.83796L8.54516 4.59368C8.90638 4.80261 9.03103 5.26157 8.82138 5.62561C8.61245 5.98682 8.15349 6.11219 7.78945 5.90253L6.48058 5.14681L5.53647 6.78218L8.15139 8.29218C8.51402 8.50181 8.64008 8.96148 8.42974 9.32553C8.22152 9.68674 7.75902 9.80998 7.39639 9.60103L4.78076 8.09119ZM7.43882 0.465301C7.64775 0.104087 8.10954 -0.0191521 8.47217 0.190501L15.0114 3.96546C15.3741 4.1751 15.498 4.63759 15.2898 4.9981L8.1123 17.4301C7.90407 17.7913 7.44158 17.9145 7.07895 17.7049L0.539673 13.9299C0.177752 13.7203 0.0530982 13.2578 0.261319 12.8973L7.43882 0.465301Z\",\"fill\":_vm.color}})]):(_vm.type === 'scale')?_c('svg',{attrs:{\"width\":\"20\",\"height\":\"19\",\"viewBox\":\"0 0 20 19\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M2.23453 0.508579H17.7655C18.6595 0.508579 19.355 1.28568 19.2563 2.17423L17.7007 16.1742C17.6163 16.9339 16.9742 17.5086 16.2099 17.5086H3.79009C3.02576 17.5086 2.38367 16.9339 2.29926 16.1742L0.743704 2.17423C0.644977 1.28568 1.34051 0.508579 2.23453 0.508579Z\",\"stroke\":_vm.color}}),_c('path',{attrs:{\"d\":\"M7.02818 10.0782H12.9728H12.972C14.0462 10.0766 15.0752 9.64931 15.8344 8.88993C16.5936 8.13055 17.0211 7.10165 17.0219 6.02813V2.51633C17.0219 2.36945 16.9641 2.22805 16.8594 2.12415C16.7555 2.01946 16.6141 1.96087 16.4664 1.96087H3.51644C3.2102 1.96087 2.96098 2.21009 2.96098 2.51633V6.02812C2.96255 7.10468 3.39222 8.13592 4.15474 8.89612C4.91802 9.6555 5.95162 10.0805 7.02814 10.0782L7.02818 10.0782ZM4.06098 3.06101H5.17192V4.13913C5.13052 4.30475 5.16802 4.48053 5.27349 4.61569C5.37817 4.75084 5.53989 4.82975 5.71099 4.82975C5.88208 4.82975 6.04381 4.75084 6.14927 4.61569C6.25473 4.48053 6.29145 4.30475 6.25005 4.13913V3.06101H7.32817V4.13913C7.3852 4.39147 7.61021 4.57117 7.86957 4.57117C8.12893 4.57117 8.35317 4.39148 8.41097 4.13913V3.06101H9.44457V4.13913C9.50238 4.39147 9.72661 4.57117 9.98597 4.57117C10.2453 4.57117 10.4703 4.39148 10.5281 4.13913V3.06101H11.6063L11.6055 4.13913C11.6633 4.39147 11.8883 4.57117 12.1469 4.57117C12.4063 4.57117 12.6313 4.39148 12.6891 4.13913V3.06101H13.7672L13.7664 4.13913C13.7664 4.44617 14.0156 4.69459 14.3219 4.69459C14.6289 4.69459 14.8781 4.44615 14.8781 4.13913V3.06101H15.95V6.02821C15.95 6.81727 15.6359 7.57431 15.0773 8.13141C14.5187 8.68923 13.7617 9.00173 12.9719 9.00017H10.5555V6.30017C10.4938 6.05329 10.2711 5.87985 10.0165 5.87985C9.76179 5.87985 9.53991 6.05328 9.47819 6.30017V9.00017H7.02819C6.24069 8.9986 5.48601 8.68455 4.92979 8.12751C4.37355 7.57047 4.06103 6.81501 4.06103 6.02831L4.06098 3.06101Z\",\"fill\":_vm.color}})]):(_vm.type === 'phone')?_c('svg',{attrs:{\"width\":\"19\",\"height\":\"20\",\"viewBox\":\"0 0 19 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M12.9212 1.14211H5.95039C5.32232 1.14211 4.80777 1.65592 4.80777 2.28472V16.8932C4.80777 17.5213 5.32159 18.0358 5.95039 18.0358H12.9204C13.5485 18.0358 14.063 17.522 14.063 16.8932L14.0638 2.28472C14.063 1.65666 13.5492 1.14211 12.9212 1.14211H12.9212ZM9.43578 17.0539C9.04287 17.0539 8.72294 16.7332 8.72294 16.341C8.72294 15.9481 9.04361 15.6282 9.43578 15.6282C9.82869 15.6282 10.1486 15.9489 10.1486 16.341C10.1486 16.7332 9.82869 17.0539 9.43578 17.0539ZM13.3664 14.8984H5.50521V2.62956H13.3656L13.3664 14.8984Z\",\"fill\":_vm.color}})]):(_vm.type === 'drugallergy')?_c('svg',{attrs:{\"width\":\"20\",\"height\":\"21\",\"viewBox\":\"0 0 20 21\",\"fill\":_vm.none,\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"d\":\"M9.58942 0.307098C7.08667 0.307098 4.68658 1.30154 2.91737 3.07084C1.14816 4.84015 0.153625 7.24033 0.153625 9.74289C0.153625 12.2455 1.14806 14.6457 2.91737 16.4149C4.68667 18.1842 7.08686 19.1787 9.58942 19.1787C12.092 19.1787 14.4923 18.1842 16.2615 16.4149C18.0307 14.6456 19.0252 12.2455 19.0252 9.74289C19.0223 7.2409 18.0278 4.84288 16.2586 3.07367C14.4895 1.30446 12.0914 0.309929 9.58942 0.307098V0.307098ZM0.743363 9.74289C0.7441 7.43112 1.65009 5.21069 3.26668 3.55867C4.88403 1.90594 7.08384 0.952129 9.39485 0.901176C11.7066 0.850311 13.9461 1.7069 15.6342 3.28673L3.13326 15.7876C1.59553 14.1504 0.741098 11.989 0.743363 9.74289V9.74289ZM9.58942 18.5889C7.34332 18.5912 5.18196 17.7368 3.54466 16.199L16.0456 3.69813C17.6253 5.38625 18.4819 7.62569 18.4311 9.93746C18.3803 12.2485 17.4264 14.4481 15.7736 16.0656C14.1216 17.6822 11.9012 18.5882 9.58942 18.5889V18.5889Z\",\"fill\":_vm.color}}),_c('path',{attrs:{\"d\":\"M13.4073 13.1785C13.6329 12.7591 13.5592 12.2423 13.2245 11.9032L12.5375 11.2103L12.8707 10.8712C12.9842 10.7562 12.9842 10.5719 12.8707 10.4569L11.9595 9.54427C11.8438 9.43812 11.6647 9.44181 11.5526 9.55238C11.4413 9.66296 11.4361 9.84134 11.5408 9.95856L12.247 10.6721L10.5029 12.4266L9.7775 11.6894C9.6625 11.5737 9.47599 11.573 9.36027 11.688C9.24455 11.803 9.2438 11.9895 9.3588 12.1052L10.2935 13.0488C10.3488 13.1048 10.424 13.1358 10.5029 13.1358C10.5818 13.1358 10.657 13.1048 10.7122 13.0488L11.0425 12.7156L11.731 13.4085C12.0635 13.7469 12.5802 13.8243 12.9975 13.5972L14.6138 15.2328C14.6676 15.2932 14.7435 15.3279 14.8246 15.3308C14.905 15.3331 14.9831 15.3021 15.0406 15.2453C15.0981 15.1886 15.1298 15.1112 15.1283 15.0301C15.1268 14.9497 15.0922 14.8731 15.0325 14.8185L13.4073 13.1785ZM12.1438 12.9942L11.4568 12.2998L12.1217 11.629L12.8043 12.319C12.9908 12.5011 12.9938 12.8003 12.8117 12.9869C12.6296 13.1734 12.3303 13.1763 12.1438 12.9942Z\",\"fill\":_vm.color}}),_c('path',{attrs:{\"d\":\"M3.74929 6.15035L4.08396 5.81271L5.11601 6.84476L4.06186 7.90923C3.94686 8.02497 3.9476 8.21148 4.06333 8.32646C4.17907 8.44146 4.36558 8.44073 4.48057 8.32499L4.99068 7.80897L7.13281 9.97167C7.18663 10.0321 7.26256 10.0668 7.34365 10.0697C7.424 10.0719 7.50214 10.041 7.55963 9.9842C7.61713 9.92744 7.64883 9.85003 7.64736 9.76895C7.64588 9.6886 7.61123 9.61193 7.55152 9.55738L5.39901 7.39751L7.14316 5.6283L9.29718 7.81327C9.41218 7.929 9.59869 7.92974 9.71441 7.81474C9.83015 7.69974 9.83089 7.51323 9.71589 7.39751L7.55753 5.21122L8.07208 4.69225C8.17676 4.57504 8.1716 4.39665 8.06029 4.28608C7.94824 4.1755 7.7691 4.17182 7.65338 4.27797L6.60365 5.33361L5.5716 4.30156L5.90627 3.96393C6.02053 3.84819 6.01905 3.66095 5.90332 3.5467C5.78758 3.43244 5.60033 3.43391 5.48608 3.54965L3.33057 5.7346C3.21557 5.85033 3.21631 6.03684 3.33205 6.15183C3.44778 6.26683 3.6343 6.26608 3.74929 6.15035ZM6.18788 5.7567L5.52295 6.42753L4.49976 5.39548L5.16321 4.72465L6.18788 5.7567Z\",\"fill\":_vm.color}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"20\",\"height\":\"20\",\"fill\":\"white\",\"transform\":\"translate(0 0.153549)\"}})])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class Icon extends Vue {\n @Prop({ required: true, default: '' }) type: string\n @Prop({ required: true, default: 'black' }) color: string\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Icon.vue?vue&type=template&id=05ac4fbe&scoped=true&\"\nimport script from \"./Icon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Icon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05ac4fbe\",\n null\n \n)\n\nexport default component.exports","export default class FulfillmentTransaction {\n constructor(public contactId: string, public orderId: string, public transactionId: string) {}\n}\n","import ArrivalService from '@/Common/services/ArrivalService'\nimport CreateEticketRequest from '../interfaces/CreateETicketRequest'\nimport ETicketError from '../models/ETicketError'\nimport ETicketStatus from '../enums/ETicketStatus'\nimport ETicketSummary from '../models/ETicketSummary'\nimport FulfillmentTransaction from '../models/FulfillmentTransaction'\nimport GetBLEDataRequest from '../interfaces/getBLEDataRequest'\nimport SendBleLinkRequest from '../interfaces/sendBleLinkRequest'\nimport { ServiceError } from '@/Common/interfaces/ServiceError'\nimport store from '@/Common/store'\n\nclass MediaService extends ArrivalService {\n private static convertFulfillmentRespsonse(data: any): FulfillmentTransaction {\n const contactId = data.confirmations[0]?.contactId?.ids[0]?.infoRecId || ''\n const orderId = data.confirmations[0]?.orderId?.ids[0]?.infoRecId || ''\n const transactionId = data.confirmations[0]?.transactionId?.ids[0]?.infoRecId || ''\n return new FulfillmentTransaction(contactId, orderId, transactionId)\n }\n\n private static convertBLEResponse(data: any): ETicketSummary {\n const hasBLEMedia = !!data.id\n const hasSentLink = !!data.delivery && data.delivery?.isSent\n const hasConnectedMedia = !!data.download && !!data.download?.device\n\n const bleInfo: any = {\n ...data,\n status: ETicketStatus.Unknown,\n }\n\n if (!hasBLEMedia) {\n bleInfo.status = ETicketStatus.NoMedia\n } else if (hasConnectedMedia) {\n bleInfo.status = ETicketStatus.Connected\n } else if (!hasSentLink) {\n bleInfo.status = ETicketStatus.Unsent\n } else if (hasSentLink && !hasConnectedMedia) {\n bleInfo.status = ETicketStatus.Sent\n }\n\n return bleInfo\n }\n\n public static async FetchBLEData(ipCode: string): Promise {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/media/contactmedia?ipcode=${ipCode}`,\n })\n // Only return data object if status is 200, else empty object\n return this.convertBLEResponse(data)\n } catch (error) {\n const ticketError: ETicketError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n return [ticketError]\n }\n }\n\n public static async SendBleLink(request: SendBleLinkRequest): Promise {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/media/updateeticketdelivery`,\n data: request,\n })\n\n if (status === 200) {\n return true\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return true\n }\n\n public static async ActivateEticket(ticketId: string): Promise {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/media/ble-activation?transactionId=${ticketId}`,\n })\n\n return status === 200\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return false\n }\n\n public static async CreateEticket(id: string): Promise {\n try {\n const baseUrl = store.getters['settings/baseUrl']\n\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/media/ble?customerId=${id}`,\n })\n\n if (status === 200) {\n return this.convertFulfillmentRespsonse(data)\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return true\n }\n}\n\nexport default MediaService\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=style&index=0&id=e86ed58c&lang=scss&scoped=true&\"","import store from '@/Common/store'\nimport { ServiceError } from '@/Common/interfaces/ServiceError'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport ArrivalService from '@/Common/services/ArrivalService'\nimport Collection from '../interfaces/Collection'\nimport CollectionItem from '../interfaces/CollectionItem'\n\nclass CollectionService extends ArrivalService {\n public static async FetchCollections(): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/collections`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async UpdateCollection(collection: Collection): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'PUT',\n url: `${baseUrl}/api/collections/${collection.id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: collection,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async AddCollection(collection: Collection): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/collections`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: collection,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async DeleteCollection(id: number): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'DELETE',\n url: `${baseUrl}/api/collections/${id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async FetchCollectionItems(): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/collections/items`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async AddCollectionItem(collectionItem: CollectionItem): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/collections/items`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: collectionItem,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async UpdateCollectionItem(collectionItem: CollectionItem): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'PUT',\n url: `${baseUrl}/api/collections/items/${collectionItem.id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: collectionItem,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async DeleteCollectionItem(id: number): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'DELETE',\n url: `${baseUrl}/api/collections/items/${id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n}\n\nexport default CollectionService\n","\n\n\n\n\n\n\n\n\n import { Action, Getter, Mutation } from 'vuex-class'\n import { Component, Vue, Prop } from 'vue-property-decorator'\n import ContactTask from '../interfaces/ContactTask'\n import SigningData from '../interfaces/SigningData'\n import Icon from '@/Common/components/Icon.vue'\n\n@Component({\n components: {\n },\n})\nclass OneRiskWaiver extends Vue {\n @Prop({ required: true, default: null }) contactTasks: ContactTask[] | null\n @Prop({ required: false, default: null }) signingWaiver: boolean\n @Prop({ required: true, default: null }) oneRiskData: any\n\n\n @Getter('oidcStore/oidcUser') user: any\n @Getter('settings/oneRiskSettings') oneRiskSettings\n @Mutation('setPageLoading') setPageLoading\n\n // Data elements\n public showPad: boolean = false\n public needToScroll: boolean = true\n public newWaiver: boolean = false\n public canvas: any = null\n public signaturePad: any = null\n public signerName: string | null = null\n public agree: boolean = false\n public waiverHtmlDoc: any = null\n\n // Computed Data Elements\n\n get oneRiskUrl() {\n if (this.encodedData) {\n const d = new Date();\n const url = `${this.oneRiskSettings.oneRiskUrl}?g=${this.encodedData}&random=${d.getTime()}${Math.floor(Math.random() * 1000000)}`\n return url\n } else {\n return null\n }\n }\n\n get encodedData() {\n if (this.oneRiskData) {\n // Create an encoded header for the JWT (JSON Wen Token)\n // NOTE: the replaces at the end are to eliminate the padding of \"=\" chars at the end to make it base64URL encoding\n const header = { alg: 'HS256', typ: 'JWT' }\n const encodedHeader = Buffer.from(JSON.stringify(header))\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/\\=+$/, '')\n\n // Encode the data passed to this component as the JWT payload\n // NOTE: the replaces at the end are to eliminate the padding of \"=\" chars at the end to make it base64URL encoding\n const encodedPayload = Buffer.from(JSON.stringify(this.oneRiskData))\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/\\=+$/, '')\n\n // Create a signature for the JWT\n const crypto = require('crypto')\n const jwtSecret = this.oneRiskSettings.oneRiskSecret\n const signature = crypto\n .createHmac('sha256', jwtSecret)\n .update(encodedHeader + '.' + encodedPayload)\n .digest('base64')\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/\\=+$/, '')\n\n // Concatentate the header, payload and signature into a JWT string\n const jwt = `${encodedHeader}.${encodedPayload}.${signature}`\n return jwt\n } else {\n return null\n }\n }\n\n private allContactNames(conjunction: string) {\n let names: string = ''\n let index = 0\n\n if (this.contactTasks) {\n this.contactTasks.forEach((ct) => {\n if (this.contactTasks) {\n if (index == this.contactTasks.length - 1 && this.contactTasks.length > 1) {\n names += ` ${conjunction} `\n } else if (index > 0) {\n names += ', '\n }\n }\n names += `${ct.contact.firstName} ${ct.contact.lastName}`\n index++\n })\n }\n\n return names\n }\n\n get currentTask() {\n if (this.contactTasks && this.contactTasks.length > 0) {\n return this.contactTasks[0].task\n }\n }\n\n // Life Cycle\n public mounted() {\n window.addEventListener('message', this.receiveMessage, false)\n this.setPageLoading(true)\n }\n\n // Methods\n \n\n public saveSignature() {\n // if (this.enableWetSignature && this.signaturePad.isEmpty()) {\n // alert('Please Sign.')\n // return\n // }\n }\n\n closeWindow() {\n this.$emit('closeWindow')\n }\n\n receiveMessage(event) {\n // Do we trust the sender of this message? (might be\n // different from what we originally opened, for example).\n if (!this.oneRiskSettings.oneRiskUrl.startsWith(event.origin)) {\n return\n }\n\n if (event.data) {\n try {\n const oneRiskResponseData = JSON.parse(event.data)\n\n switch (oneRiskResponseData.messageType) {\n case 'waiverCompleted':\n const signingData: SigningData = {\n signature: '',\n agree: true,\n signerName: this.signerName,\n waiverHTML: '',\n }\n this.$emit('save-signature', signingData)\n this.closeWindow()\n break\n case 'waiversLoaded':\n this.setPageLoading(false)\n break\n case 'allWaiversCompleted':\n this.$emit('skip-waiver')\n break\n case 'ERROR':\n alert(`ERROR CALLING 1RISK INTERFACE: ${oneRiskResponseData.status} ${oneRiskResponseData.body}`)\n console.log(`ERROR CALLING 1RISK INTERFACE: ${oneRiskResponseData.status} ${oneRiskResponseData.body}`)\n this.closeWindow()\n\n break\n }\n\n } catch (ex) {\n console.error(`ERROR: BAD REPONSE FROM 1RISK -${ex}`)\n }\n }\n }\n}\n\nexport default OneRiskWaiver\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTheme.vue?vue&type=style&index=1&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ax--select\"},[(_vm.label)?_c('label',{staticClass:\"ax--label\",attrs:{\"for\":\"select-id\"}},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_c('div',{staticClass:\"ax--select-input__wrapper\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedOptionValue),expression:\"selectedOptionValue\"}],staticClass:\"ax--select-input\",attrs:{\"id\":\"select-id\",\"disabled\":_vm.disabled,\"size\":_vm.size},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedOptionValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{staticClass:\"ax--select-option\",attrs:{\"disabled\":\"\",\"selected\":\"\",\"hidden\":!_vm.placeholder},domProps:{\"value\":null}},[_vm._v(_vm._s(_vm.placeholder))]),_vm._l((_vm.selectOptions),function(option){return _c('option',{key:option.value,staticClass:\"ax--select-option\",domProps:{\"value\":option[_vm.optionKey]}},[_vm._v(_vm._s(option[_vm.optionText]))])})],2),_c('svg',{staticClass:\"ax--select__arrow\",staticStyle:{\"will-change\":\"transform\"},attrs:{\"focusable\":\"false\",\"preserveAspectRatio\":\"xMidYMid meet\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"aria-hidden\":\"true\"}},[_c('path',{attrs:{\"d\":\"M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Model, PropSync, Vue, Watch } from 'vue-property-decorator'\n\n@Component\nexport default class AxSelect extends Vue {\n @Prop({ type: String, default: null }) label: string | null\n @Prop({ type: String, default: 'value' }) optionKey: string\n @Prop({ type: String, default: 'text' }) optionText: string\n @Prop({ type: String, default: 'Choose an option' }) placeholder: string\n @Prop({ type: Array, default: null }) selectOptions: [] | null\n @Prop({ type: Boolean, default: false }) disabled: boolean\n @Prop({ type: String, default: null }) size: string | null\n @Model('update:value', { type: Number, required: false }) readonly value!: number | null\n @PropSync('value', { default: null, required: false }) selectedOptionValue!: number | null\n\n @Watch('selectedOptionValue')\n onSelectedOptionChanged(value: any) {\n if (this.selectOptions) {\n const selectedOption = this.selectOptions.find((opt) => opt[this.optionKey] === value)\n this.$emit('select-changed', selectedOption)\n }\n }\n\n get componentClasses() {\n const classes: string[] = []\n classes.push(`size--${this.size}`)\n return classes.join(' ')\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AxSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AxSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AxSelect.vue?vue&type=template&id=c226abec&scoped=true&\"\nimport script from \"./AxSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./AxSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AxSelect.vue?vue&type=style&index=0&id=c226abec&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c226abec\",\n null\n \n)\n\nexport default component.exports","import Activity from '../interfaces/Activity'\nimport type ActivityContact from '../interfaces/ActivityContact'\nimport ActivityProduct from '../interfaces/ActivityProduct'\nimport ActivityTask from '../interfaces/ActivityTask'\nimport ArrivalService from '@/Common/services/ArrivalService'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport Task from '../../Task/interfaces/Task'\nimport store from '@/Common/store'\n\nclass ActivityService extends ArrivalService {\n public static async FetchActivities(): Promise {\n let response: Activity[] | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async FetchActivityContacts(locationId: number): Promise {\n let response: ActivityContact[] | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities/locations/${locationId}/contacts`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async AddActivity(activity: Activity): Promise {\n let response: Activity | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n method: 'POST',\n data: activity,\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async UpdateActivity(activity: Activity): Promise {\n let response: Activity | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities/${activity.id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n method: 'PUT',\n data: activity,\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async AddActivityProduct(activityProduct: ActivityProduct): Promise {\n let response: GenericResponse | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities/${activityProduct.activityId}/products`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n method: 'POST',\n data: activityProduct,\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async FetchActivityTasks(activityId: number): Promise {\n let response: Task[] | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities/${activityId}/tasks`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n // tslint:disable-next-line:max-line-length\n public static async RemoveActivityProduct(\n activityId: number,\n activityProductId: number\n ): Promise {\n let response: GenericResponse | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities/${activityId}/products/${activityProductId}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n method: 'DELETE',\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async RemoveActivity(activityId: number): Promise {\n let response: GenericResponse | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities/${activityId}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n method: 'DELETE',\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async AddActivityTask(activityTask: ActivityTask): Promise {\n let response: GenericResponse | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities/${activityTask.activityId}/tasks`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n method: 'POST',\n data: activityTask,\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static async RemoveActivityTask(activityId: number, activityTaskId): Promise {\n let response: GenericResponse | any\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n url: `${baseUrl}/api/activities/${activityId}/tasks/${activityTaskId}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n method: 'DELETE',\n })\n\n if (data && status === 200) {\n response = data\n }\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n}\n\nexport default ActivityService\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=style&index=0&id=340bd821&lang=scss&scoped=true&\"","enum ETicketStatus {\n Unknown = 0,\n Sent = 1,\n Unsent = 2,\n NoMedia = 3,\n Connected = 4,\n}\n\nexport default ETicketStatus\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RentalProfileForm.vue?vue&type=style&index=0&id=0b20c0ae&lang=scss&scoped=true&\"","// registerComponentHooks.ts\nimport { Component } from 'vue-property-decorator'\n\nComponent.registerHooks(['validations'])\n","\"use strict\";\n\nimport Vue from 'vue';\nimport axios from \"axios\";\n\n// Full config: https://github.com/axios/axios#request-config\n// axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || '';\n// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;\n// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';\n\nlet config = {\n // baseURL: process.env.baseURL || process.env.apiUrl || \"\"\n // timeout: 60 * 1000, // Timeout\n // withCredentials: true, // Check cross-site Access-Control\n};\n\nconst _axios = axios.create(config);\n\n_axios.interceptors.request.use(\n function(config) {\n // Do something before request is sent\n return config;\n },\n function(error) {\n // Do something with request error\n return Promise.reject(error);\n }\n);\n\n// Add a response interceptor\n_axios.interceptors.response.use(\n function(response) {\n // Do something with response data\n return response;\n },\n function(error) {\n // Do something with response error\n return Promise.reject(error);\n }\n);\n\nPlugin.install = function(Vue, options) {\n Vue.axios = _axios;\n window.axios = _axios;\n Object.defineProperties(Vue.prototype, {\n axios: {\n get() {\n return _axios;\n }\n },\n $axios: {\n get() {\n return _axios;\n }\n },\n });\n};\n\nVue.use(Plugin)\n\nexport default Plugin;\n","import Vue from 'vue'\nimport VuetifyMask from 'vuetify-mask'\nVue.use(VuetifyMask)\n\nexport default VuetifyMask\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{class:_vm.appClasses},[(!_vm.$route.meta.hidePageBackground)?_c('div',{staticClass:\"app-background\",style:(_vm.appPageStyle)}):_vm._e(),(_vm.$route.meta.showHeader)?_c('app-header',{}):_vm._e(),_c('div',{staticClass:\"page-wrapper\"},[_c('transition',{attrs:{\"name\":\"fade-in\"}},[_c('router-view')],1),(_vm.$route.meta.showFooter)?_c('app-footer',{}):_vm._e()],1),(_vm.pageLoading)?_c('app-loader'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',[(!_vm.user)?_c('router-link',{attrs:{\"to\":{ name: 'home' }}},[_vm._v(\"Home\")]):_vm._e(),(_vm.user)?_c('router-link',{attrs:{\"to\":\"welcome\"}},[_vm._v(\"Welcome\")]):_vm._e(),_c('router-link',{attrs:{\"to\":\"about\"}},[_vm._v(\"About\")]),(_vm.user)?_c('a',{on:{\"click\":_vm.signOut}},[_vm._v(\"Sign Out\")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\n\n@Component\nexport default class Navigation extends Vue {\n @Getter('oidcStore/oidcUser')\n private user!: any\n @Action('oidcStore/signOutOidc')\n private signOut: any\n\n private signOutOidc() {\n this.signOut()\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=354c6ea8&scoped=true&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=354c6ea8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"354c6ea8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:\"app-header\"},[_c('div',{staticClass:\"logo\"}),_c('div',{staticClass:\"content\"},[_c('h2',[_vm._v(_vm._s(_vm.$route.meta.title))]),_c('p',[_vm._v(_vm._s(_vm.$route.meta.description))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class AppHeader extends Vue {\n // ...\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppHeader.vue?vue&type=template&id=e86ed58c&scoped=true&\"\nimport script from \"./AppHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppHeader.vue?vue&type=style&index=0&id=e86ed58c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e86ed58c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"app-footer\"},[_c('div',{staticClass:\"logo\"}),_c('div',{staticClass:\"content\"},[_c('h2',{domProps:{\"textContent\":_vm._s(_vm.language.application.title)}}),_c('p',{domProps:{\"textContent\":_vm._s(_vm.language.application.subtitle)}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\n\n@Component\nexport default class AppFooter extends Vue {\n @Getter('settings/languageSettings') language\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppFooter.vue?vue&type=template&id=db655658&scoped=true&\"\nimport script from \"./AppFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppFooter.vue?vue&type=style&index=0&id=db655658&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"db655658\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"app-loader\",staticStyle:{\"margin\":\"auto\",\"background\":\"rgba(0, 0, 0, 0) none repeat scroll 0% 0%\",\"display\":\"block\",\"shape-rendering\":\"auto\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"width\":\"191px\",\"height\":\"191px\",\"viewBox\":\"0 0 100 100\",\"preserveAspectRatio\":\"xMidYMid\"}},[_c('circle',{staticClass:\"outer-circle\",attrs:{\"cx\":\"50\",\"cy\":\"50\",\"r\":\"20\",\"stroke-width\":\"2\",\"stroke\":\"#93dbe9\",\"stroke-dasharray\":\"31.41592653589793 31.41592653589793\",\"fill\":\"none\",\"stroke-linecap\":\"round\"}},[_c('animateTransform',{attrs:{\"attributeName\":\"transform\",\"type\":\"rotate\",\"dur\":\"1.2195121951219512s\",\"repeatCount\":\"indefinite\",\"keyTimes\":\"0;1\",\"values\":\"0 50 50;360 50 50\"}})],1),_c('circle',{staticClass:\"inner-circle\",attrs:{\"cx\":\"50\",\"cy\":\"50\",\"r\":\"17\",\"stroke-width\":\"2\",\"stroke\":\"#689cc5\",\"stroke-dasharray\":\"26.703537555513243 26.703537555513243\",\"stroke-dashoffset\":\"26.703537555513243\",\"fill\":\"none\",\"stroke-linecap\":\"round\"}},[_c('animateTransform',{attrs:{\"attributeName\":\"transform\",\"type\":\"rotate\",\"dur\":\"1.2195121951219512s\",\"repeatCount\":\"indefinite\",\"keyTimes\":\"0;1\",\"values\":\"0 50 50;-360 50 50\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppLoader.vue?vue&type=template&id=726265f4&scoped=true&\"\nimport script from \"./AppLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./AppLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppLoader.vue?vue&type=style&index=0&id=726265f4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"726265f4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Navigation from './Common/components/Navigation.vue'\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Action, Getter, State } from 'vuex-class'\nimport { mapActions } from 'vuex'\nimport AppHeader from './Common/components/AppHeader.vue'\nimport AppFooter from './Common/components/AppFooter.vue'\nimport AppLoader from './Common/components/AppLoader.vue'\nimport store from './Common/store/index'\n\n@Component({\n components: {\n Navigation,\n AppHeader,\n AppFooter,\n AppLoader,\n },\n})\nexport default class App extends Vue {\n @Action('location/fetchCurrentLocation') fetchCurrentLocation\n @Getter('settings/settings') appSettings\n @Getter('settings/themeSettings') themeSettings\n @Getter('settings/languageSettings') languageSettings\n @Getter('settings/theme') theme\n @Getter('browserInfo') browserInfo\n @State('pageLoading') pageLoading\n\n created() {\n store.dispatch('oidcStore/getOidcUser')\n }\n\n get appClasses() {\n return this.appSettings.limitToMobile ? 'limit-to-mobile' : null\n }\n\n get appPageStyle() {\n const styles: string[] = []\n if (\n this.theme &&\n this.theme.general &&\n this.theme.general.backgroundImageUrl &&\n this.theme.general.overlayBackgroundWithGradient\n ) {\n let linearGradient = ``\n if (this.theme.general.overlayBackgroundWithGradient === 'Dark') {\n linearGradient = `linear-gradient(180deg,#000000 0%,rgba(0, 0, 0, 0.4) 100%,rgba(0, 0, 0, 0.35) 70.31%,rgba(0, 0, 0, 0) 100%),`\n } else if (this.theme.general.overlayBackgroundWithGradient === 'Light') {\n linearGradient = `linear-gradient(180deg, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0) 100%),`\n }\n const background = `background: ${linearGradient}url('${this.theme.general.backgroundImageUrl}'), #222;`\n const backgroundRepeat = `background-repeat: no-repeat;`\n const backgroundSize = `background-size:cover;`\n const backgroundPosition = `background-position: center`\n styles.push(background)\n styles.push(backgroundRepeat)\n styles.push(backgroundSize)\n styles.push(backgroundPosition)\n }\n\n return styles.join('')\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=279ae554&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\ninstallComponents(component, {VApp})\n","import store from '@/Common/store'\nimport { Settings } from '../interfaces/Settings'\nimport ArrivalService from '@/Common/services/ArrivalService'\n\nclass SettingsService extends ArrivalService {\n public static async FetchSettings(): Promise {\n let response: Settings | any\n try {\n const { data, status } = await this.http({\n url: `/api/settings`,\n })\n\n if (data && status === 200) {\n response = data\n }\n\n return response\n } catch (error) {\n response = [\n {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n },\n ]\n return response\n }\n }\n\n public static ApplyTheme(themeSettings) {\n const root = document.documentElement\n const theme = themeSettings.theme\n\n root.style.setProperty('--activity-bkg-url', `url('/img/bkg--activity.jpg')`)\n root.style.setProperty('--v-error-base', '#dc143c')\n\n if (theme.buttons) {\n root.style.setProperty('--v-primary-base', theme.buttons.primary.backgroundColor)\n root.style.setProperty('--v-primary-btn-txt-color', theme.buttons.primary.color)\n root.style.setProperty('--v-secondary-base', theme.buttons.secondary.backgroundColor)\n root.style.setProperty('--v-secondary-btn-txt-color', theme.buttons.secondary.color)\n }\n\n if (theme.footer) {\n root.style.setProperty('--footer-bkg-color', `${theme.footer.backgroundColor}`)\n root.style.setProperty('--footer-bkg-url', `url('${theme.footer.footerBkgImageUrl}')`)\n root.style.setProperty('--footer-bkg-opacity', `${theme.footer.footerBkgImageOpacity}`)\n root.style.setProperty('--footer-border-color', `${theme.footer.borderColor}`)\n root.style.setProperty('--footer-text-color', `${theme.footer.textColor}`)\n }\n\n if (theme.sidebar) {\n root.style.setProperty('--sidebar-bkg-color', `${theme.sidebar.backgroundColor}`)\n root.style.setProperty('--sidebar-bkg-url', `url('${theme.sidebar.sidebarBkgImageUrl}')`)\n root.style.setProperty('--sidebar-bkg-opacity', `${theme.sidebar.sidebarBkgImageOpacity}`)\n }\n\n if (theme.general) {\n root.style.setProperty('--logo-url', `url('${theme.general.logoUrl}')`)\n root.style.setProperty('--arrivalTitleImageWidth', `${theme.general.arrivalTitleImageWidth}px`)\n root.style.setProperty('--loader-primary-color', `${theme.general.loaderPrimaryColor}`)\n root.style.setProperty('--loader-secondary-color', `${theme.general.loaderSecondaryColor}`)\n }\n }\n\n public static ApplyCookieConsent(scripts, styles){\n const head = document.head\n const metaTag = head.getElementsByTagName('meta');\n const tagToAdd = metaTag[metaTag.length -1];\n if(styles && styles != \"\"){ \n const style = document.createElement('link');\n style.setAttribute('href',styles)\n style.type = 'text/css';\n style.rel = 'stylesheet';\n head.insertBefore(style, tagToAdd);\n }\n if(scripts && scripts != \"\"){\n const script = document.createElement('script');\n script.setAttribute('src',scripts)\n script.type='application/javascript';\n head.insertBefore(script, tagToAdd);\n }\n \n \n \n\n }\n}\n\n\n\nexport default SettingsService\n","import Vue, { DirectiveOptions } from 'vue'\n\nconst VueFocus: DirectiveOptions = {\n // When the bound element is inserted into the DOM...\n inserted(el, node) {\n // Focus the element\n if (el) {\n el.focus()\n }\n },\n update(el, { value, oldValue }, vNode) {\n if (value && value !== oldValue) {\n Vue.nextTick(() => {\n el.focus()\n })\n }\n },\n}\n\nexport default VueFocus\n","import { format } from 'date-fns';\n\nexport default (date: Date) => {\n return format(new Date(date), 'eeee, dd MMMM');\n};\n","export default (word: string) => {\n if (!word) {\n return ''\n }\n word = word.toString()\n return `${word.charAt(0)}`\n}\n","import { format } from 'date-fns'\n\nexport default (date: Date) => {\n return format(new Date(date), 'MMMM dd, yyyy @ hh:mm a')\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',[_vm._v(\"About Arrival\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\n\nexport default {\n name: 'system',\n components: {},\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=defcce26&\"\nimport script from \"./About.vue?vue&type=script&lang=ts&\"\nexport * from \"./About.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"admin-locations\"}},[(_vm.locations)?_c('div',{staticClass:\"mb-8\",attrs:{\"id\":\"location-list\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Location List\")]),_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(\"Click the box to view or edit location details.\")]),_c('v-card-text',[_c('v-data-table',{attrs:{\"headers\":_vm.locationsTableHeaders,\"items\":_vm.locations,\"items-per-page\":10,\"show-select\":\"\",\"single-select\":\"\"},scopedSlots:_vm._u([{key:\"item.id\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.id)+\" \")]}},{key:\"item.name\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"location-link\"},[_c('span',[_vm._v(_vm._s(item.name))]),_c('a',{attrs:{\"href\":(\"/l/\" + (item.id)),\"title\":\"View location\",\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"title\":(\"Open \" + (item.name))}},[_vm._v(\"mdi-open-in-new\")])],1)])]}},{key:\"item.isEnabled\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.isEnabled)?_c('i',{staticClass:\"fas fa-check\"}):_vm._e()]}},{key:\"item.isDefault\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.isDefault)?_c('i',{staticClass:\"fas fa-check\"}):_vm._e()]}},{key:\"item.isEditProfileLocation\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.isEditProfileLocation)?_c('i',{staticClass:\"fas fa-check\"}):_vm._e()]}},{key:\"item.usePosTransactionsAndOrders\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.usePosTransactionsAndOrders)?_c('i',{staticClass:\"fas fa-check\"}):_vm._e()]}},{key:\"item.hasDefaultActivity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"status\"},[(!item.hasDefaultActivity)?_c('v-icon',{attrs:{\"color\":\"red\",\"title\":\"Missing default activity\"}},[_vm._v(\"mdi-alert\")]):_vm._e()],1)]}}],null,false,3768074162),model:{value:(_vm.selectedLocations),callback:function ($$v) {_vm.selectedLocations=$$v},expression:\"selectedLocations\"}})],1)],1)],1):_vm._e(),(_vm.currentLocation)?_c('v-card',{staticClass:\"pa-2 mt-8 mb-8\",attrs:{\"id\":\"task-details\"}},[_c('v-card-title',{staticClass:\"pb-0 pt-2\"},[_vm._v(_vm._s(_vm.currentLocation.name)+\" Location\")]),_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":true}},[_c('v-row',[_c('v-col',{staticClass:\"pa-0\",attrs:{\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_vm._v(\"Location Details\")]),_c('v-card-text',[_c('v-form',[_c('v-jsf',{attrs:{\"schema\":_vm.locationSchema},model:{value:(_vm.currentLocation),callback:function ($$v) {_vm.currentLocation=$$v},expression:\"currentLocation\"}})],1),_c('h2',[_vm._v(\"Default Activity\")]),_c('v-select',{attrs:{\"items\":_vm.availableActivities,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":\"Default Activity\"},model:{value:(_vm.currentLocation.defaultActivityId),callback:function ($$v) {_vm.$set(_vm.currentLocation, \"defaultActivityId\", $$v)},expression:\"currentLocation.defaultActivityId\"}})],1),_c('v-card-actions',{staticClass:\"row\"},[_c('v-layout',{attrs:{\"align-content-space-between\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.updateLocation}},[_c('v-icon',[_vm._v(\"mdi-content-save\")]),_vm._v(\" Update Location \")],1),_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.removeLocation}},[_c('v-icon',[_vm._v(\"mdi-delete\")]),_vm._v(\" Delete Location \")],1)],1)],1)],1)],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_vm._v(\"Assign Activities\")]),_c('v-card-text',[_c('v-simple-table',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_vm._v(\"Activity\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Delete\")])])]),_c('tbody',_vm._l((_vm.currentLocation.activityLocations),function(locationActivity){return _c('tr',{key:locationActivity.id},[_c('td',[_vm._v(_vm._s(locationActivity.activity.name))]),_c('td',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.removeLocationActivity(locationActivity.locationId, locationActivity.id)}}},[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-delete\")])],1)],1)])}),0)]},proxy:true}],null,false,3755196558)})],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('h3',[_vm._v(\"Link Activities\")]),_c('v-select',{attrs:{\"items\":_vm.activities,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":\"Choose an Activity\"},model:{value:(_vm.locationActivity.activityId),callback:function ($$v) {_vm.$set(_vm.locationActivity, \"activityId\", $$v)},expression:\"locationActivity.activityId\"}}),_c('v-btn',{staticClass:\"add-btn\",on:{\"click\":_vm.addLocationActivity}},[_vm._v(\"Link Activity \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1)],1)],1)],1)],1):_c('v-card',{staticClass:\"add-location pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Add New Location\")]),_c('v-card-subtitle',[_vm._v(\"Complete the following information to add a new location.\")]),_c('v-card-text',[_c('v-form',[_c('v-jsf',{attrs:{\"schema\":_vm.locationSchema},model:{value:(_vm.newLocation),callback:function ($$v) {_vm.newLocation=$$v},expression:\"newLocation\"}})],1),_c('v-select',{attrs:{\"items\":_vm.availableActivities,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":\"Default Activity\"},model:{value:(_vm.newLocation.defaultActivityId),callback:function ($$v) {_vm.$set(_vm.newLocation, \"defaultActivityId\", $$v)},expression:\"newLocation.defaultActivityId\"}})],1),_c('v-card-actions',{staticClass:\"pl-4 pr-4 pb-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"large\":\"\"},on:{\"click\":_vm.addLocation}},[_vm._v(\"Add Locations \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport Activity from '../../Activity/interfaces/Activity'\nimport Location from '../../Location/interfaces/location'\nimport LocationActivity from '../../Location/interfaces/LocationActivity'\nimport LocationService from '../../Location/services/LocationService'\n\n@Component\nexport default class AdminLocations extends Vue {\n @Action('location/fetchLocations')\n private fetchLocations: any\n @Getter('location/locations')\n private locations?: []\n\n @Action('activity/fetchActivities')\n private fetchActivities: any\n @Getter('activity/activities') activities\n\n private selectedLocations: [] = []\n private currentLocation: Location | null = null\n private currentLocationAvailableActivities: Activity[] = []\n private newLocationDefaultActivityname: string = ''\n\n @Watch('selectedLocations')\n onSelectedLocationsChanged(value: Location[] | null) {\n if (value && value.length > 0) { \n const firstValue = value[0]\n this.currentLocation = {\n ...firstValue,\n }\n } else {\n this.currentLocation = null\n }\n }\n\n private locationSchema = {\n properties: {\n id: {\n type: 'number',\n readOnly: true,\n 'x-display': 'hidden',\n },\n name: {\n title: 'Name',\n type: 'string',\n },\n description: {\n title: 'Description',\n type: 'string',\n },\n isEnabled: {\n title: 'Is Enabled',\n type: 'boolean',\n 'x-display': 'switch',\n },\n isDefault: {\n title: 'Is Default',\n type: 'boolean',\n 'x-display': 'switch',\n },\n isEditProfileLocation: {\n title: 'Is Edit Profile Location',\n type: 'boolean',\n 'x-display': 'switch',\n },\n usePosTransactionsAndOrders: {\n title: 'Use POS Transactions (RTP)',\n type: 'boolean',\n 'x-display': 'switch',\n },\n activityLocations: {\n type: 'array',\n readOnly: true,\n 'x-display': 'hidden',\n },\n defaultActivityId: {\n type: 'number',\n readOnly: true,\n 'x-display': 'hidden',\n },\n checkInCompleteText: {\n title: 'Check In Complete Text',\n type: 'string',\n 'x-display': 'textarea',\n },\n },\n }\n\n get availableActivities() {\n return this.activities\n }\n\n public newLocation: Location = {\n id: 0,\n name: '',\n description: '',\n defaultActivityId: 0,\n isEnabled: true,\n activityLocations: null,\n isDefault: false,\n usePosTransactionsAndOrders: false,\n checkInCompleteText: '',\n isEditProfileLocation: false,\n }\n\n public clearedLocation = { ...this.newLocation }\n\n public locationActivity: LocationActivity = {\n id: 0,\n activityId: 0,\n locationId: 0,\n }\n\n public created() {\n if (!this.locations) {\n this.getLocations()\n }\n\n if (!this.activities) {\n this.getActivities()\n }\n }\n\n public getActivities() {\n this.fetchActivities()\n }\n\n public async getLocations() {\n await this.fetchLocations()\n if (this.currentLocation && this.locations) {\n const thisLocation = this.locations.find((l: Location) => l.id == this.currentLocation!.id)\n if (thisLocation) {\n this.currentLocation = thisLocation\n }\n }\n }\n\n public viewLocationDetails(location: Location) {\n this.currentLocation = location\n this.currentLocationAvailableActivities = this.activities.filter((elem) => {\n if (location && location.activityLocations) {\n location.activityLocations.find(({ activityId }) => elem.id === activityId)\n }\n })\n }\n\n public async addLocation() {\n await LocationService.AddLocation(this.newLocation)\n this.getLocations()\n this.newLocation = { ...this.clearedLocation }\n }\n\n public async updateLocation() {\n if (this.currentLocation) {\n await LocationService.UpdateLocation(this.currentLocation)\n this.getLocations()\n }\n }\n\n public async addLocationActivity() {\n if (this.currentLocation) {\n this.locationActivity.locationId = this.currentLocation.id as number\n await LocationService.AddLocationActivity(this.locationActivity)\n this.getLocations()\n }\n }\n\n public async removeLocation() {\n if (this.currentLocation) {\n await LocationService.RemoveLocation(this.currentLocation.id)\n this.getLocations()\n this.selectedLocations = []\n }\n }\n\n public async removeLocationActivity(locationId: number, locationActivityId: number) {\n await LocationService.RemoveLocationActivity(locationId, locationActivityId)\n this.getLocations()\n }\n\n get locationsTableHeaders() {\n return [\n { text: 'Id', value: 'id' },\n { text: 'Name', value: 'name' },\n { text: 'Description', value: 'description' },\n { text: 'Is Enabled', value: 'isEnabled', align: 'center', sortable: false },\n { text: 'Is Default', value: 'isDefault', align: 'center', sortable: false },\n { text: 'Is Edit Profile Location', value: 'isEditProfileLocation', align: 'center', sortable: false },\n { text: 'Use POS', value: 'usePosTransactionsAndOrders', align: 'center', sortable: false },\n { text: 'Modified Date', value: 'modifiedDate', align: 'center' },\n { text: 'Status', value: 'hasDefaultActivity', sortable: false, align: 'center' },\n ]\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminLocations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminLocations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminLocations.vue?vue&type=template&id=3f0d9ee6&scoped=true&\"\nimport script from \"./AdminLocations.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminLocations.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminLocations.vue?vue&type=style&index=0&id=3f0d9ee6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f0d9ee6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VContainer,VDataTable,VForm,VIcon,VLayout,VRow,VSelect,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"admin-tasks\"}},[(_vm.taskTypes)?_c('div',{attrs:{\"id\":\"admin-task-type\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Task Type List\")]),_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(\"Click the box to view or edit Task Type details.\")]),_c('v-card-text',[(_vm.taskTypes)?_c('v-data-table',{attrs:{\"headers\":_vm.taskTypesTableHeaders,\"items\":_vm.taskTypes,\"hide-default-footer\":\"\",\"show-select\":\"\",\"single-select\":\"\"},model:{value:(_vm.selectedTaskTypes),callback:function ($$v) {_vm.selectedTaskTypes=$$v},expression:\"selectedTaskTypes\"}}):_vm._e()],1)],1)],1):_vm._e(),(_vm.currentTaskType)?_c('v-card',{staticClass:\"mt-8\",attrs:{\"id\":\"task-type-details\"}},[_c('v-card-title',{staticClass:\"pt-2 pb-0\"},[_vm._v(_vm._s(_vm.currentTaskType.name))]),_c('v-card-text',[_c('v-form',[_c('v-jsf',{attrs:{\"schema\":_vm.taskTypeSchema},model:{value:(_vm.currentTaskType),callback:function ($$v) {_vm.currentTaskType=$$v},expression:\"currentTaskType\"}})],1)],1),_c('v-card-actions',{staticClass:\"pr-4 pb-4 pl-4 pt-0\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"large\":\"\"},on:{\"click\":_vm.updateTaskType}},[_vm._v(\"Update Task Type \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport Task from '../../Task/interfaces/Task'\nimport TaskService from '../../Task/services/TaskService'\nimport TaskType from '../../Task/interfaces/TaskType'\n\n@Component\nexport default class AdminTaskTypes extends Vue {\n @Action('task/fetchTaskTypes')\n private fetchTaskTypes: any\n @Getter('task/taskTypes')\n private taskTypes?: []\n\n // Life Cycle\n public created() {\n if (!this.taskTypes || this.taskTypes.length == 0) {\n this.getTaskTypes()\n }\n }\n\n // Watchers\n @Watch('selectedTaskTypes')\n onSelectedTaskTypesChanged(value: TaskType[] | null) {\n if (value && value.length > 0) {\n const firstValue = value[0]\n this.currentTaskType = {\n ...firstValue,\n }\n } else {\n this.currentTaskType = null\n }\n }\n\n // Data Elements\n private selectedTaskTypes: [] = []\n public currentTaskType: TaskType | null = null\n\n private taskTypeSchema = {\n properties: {\n id: {\n type: 'string',\n readOnly: true,\n 'x-display': 'hidden',\n },\n name: {\n type: 'string',\n readOnly: true,\n 'x-display': 'hidden',\n },\n isDeleted: {\n type: 'boolean',\n readOnly: true,\n 'x-display': 'hidden',\n },\n enableShoeSize: {\n title: 'Enable Shoe Size',\n type: 'boolean',\n 'x-display': 'switch',\n },\n enableStance: {\n title: 'Enable Stance',\n type: 'boolean',\n 'x-display': 'switch',\n },\n effectiveDays: {\n title: 'Effective Days',\n type: 'number',\n },\n },\n }\n\n // Computed Values\n get taskTypesTableHeaders() {\n return [\n { text: 'Name', value: 'name' },\n { text: '', value: '' },\n ]\n }\n\n // Methods\n public viewTaskTypeDetails(taskType: TaskType) {\n this.currentTaskType = taskType\n }\n\n public getTaskTypes() {\n this.fetchTaskTypes()\n }\n\n public async updateTaskType() {\n if (this.currentTaskType) {\n await TaskService.UpdateTaskType(this.currentTaskType)\n this.getTaskTypes()\n this.currentTaskType = null\n }\n }\n\n public async removeTaskType() {\n if (this.currentTaskType) {\n await TaskService.RemoveTaskType(this.currentTaskType.id)\n this.getTaskTypes()\n this.currentTaskType = null\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTaskTypes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTaskTypes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminTaskTypes.vue?vue&type=template&id=dfa0aa0a&scoped=true&\"\nimport script from \"./AdminTaskTypes.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminTaskTypes.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminTaskTypes.vue?vue&type=style&index=0&id=dfa0aa0a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dfa0aa0a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VDataTable,VForm,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"admin-activities\"}},[(_vm.tasks)?_c('div',{attrs:{\"id\":\"activity-list\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Task List\")]),_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(\"Click the box to view or edit task details.\")]),_c('v-data-table',{attrs:{\"headers\":_vm.tasksTableHeaders,\"items\":_vm.tasks,\"items-per-page\":10,\"show-select\":\"\",\"single-select\":\"\"},on:{\"item-selected\":_vm.onTaskSelected},scopedSlots:_vm._u([{key:\"item.taskTypeId\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.taskTypeId == 1)?_c('span',{staticClass:\"task-description\"},[_c('v-icon',[_vm._v(\"mdi-file-document-edit-outline\")]),_vm._v(\" Waiver \")],1):(item.taskTypeId == 2)?_c('span',{staticClass:\"task-description\"},[_c('v-icon',[_vm._v(\"mdi-clipboard-text-outline\")]),_vm._v(\" Rental Profile \")],1):(item.taskTypeId == 3)?_c('span',{staticClass:\"task-description\"},[_c('v-icon',[_vm._v(\"mdi-face-profile\")]),_vm._v(\" Child Profile \")],1):(item.taskTypeId == 4)?_c('span',{staticClass:\"task-description\"},[_c('v-icon',[_vm._v(\"mdi-camera-outline\")]),_vm._v(\" Photo \")],1):_vm._e()]}}],null,false,2421596916)})],1)],1):_vm._e(),(_vm.currentTask)?_c('v-card',{staticClass:\"mt-8\",attrs:{\"id\":\"task-details\"}},[_c('v-card-title',{staticClass:\"padding-bottom-15\"},[_vm._v(_vm._s(_vm.currentTask.name)+\" Task\")]),_c('v-card-text',[_c('v-form',{ref:\"updateTaskForm\",model:{value:(_vm.updateTaskValid),callback:function ($$v) {_vm.updateTaskValid=$$v},expression:\"updateTaskValid\"}},[_c('v-jsf',{attrs:{\"schema\":_vm.taskSchema,\"options\":_vm.newTaskFormOptions},model:{value:(_vm.currentTask),callback:function ($$v) {_vm.currentTask=$$v},expression:\"currentTask\"}})],1)],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.updatingTask},on:{\"click\":_vm.updateTask}},[_vm._v(\"Update Task \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"error\",\"loading\":_vm.deletingTask},on:{\"click\":_vm.removeTask}},[_vm._v(\"Delete Task \"),_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)],1):_c('v-card',{staticClass:\"pa-2 mt-8\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Add New Task\")]),_c('v-card-subtitle',[_vm._v(\"Complete the following information to add a new task.\")]),_c('v-card-text',[_c('v-form',{ref:\"newTaskForm\",model:{value:(_vm.newTaskValid),callback:function ($$v) {_vm.newTaskValid=$$v},expression:\"newTaskValid\"}},[_c('v-jsf',{attrs:{\"schema\":_vm.taskSchema,\"options\":_vm.newTaskFormOptions},model:{value:(_vm.newTask),callback:function ($$v) {_vm.newTask=$$v},expression:\"newTask\"}})],1),(!_vm.$v.newTask.validWaivers)?_c('v-alert',{attrs:{\"color\":\"red\",\"icon\":\"mdi-alert-octagon-outline\"}},[_vm._v(\"At least one signature method is required\")]):_vm._e()],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.updatingTask,\"large\":\"\"},on:{\"click\":_vm.addTask}},[_vm._v(\"Add Task\"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport Activity from '../../Activity/interfaces/Activity'\nimport ActivityProduct from '../../Activity/interfaces/ActivityProduct'\nimport ActivityTask from '../../Activity/interfaces/ActivityTask'\nimport ActivityService from '../../Activity/services/ActivityService'\nimport Location from '../../Location/interfaces/location'\nimport LocationActivity from '../../Location/interfaces/LocationActivity'\nimport LocationService from '../../Location/services/LocationService'\nimport Task from '../../Task/interfaces/Task'\nimport TaskType from '../../Task/interfaces/TaskType'\nimport TaskService from '../../Task/services/TaskService'\n\n@Component\nexport default class AdminTasks extends Vue {\n @Action('task/fetchTasks')\n private fetchTasks: any\n @Getter('task/tasks')\n private tasks?: []\n @Action('task/fetchTaskTypes')\n private fetchTaskTypes: any\n @Getter('task/taskTypes')\n private taskTypes?: []\n\n private currentTask: Task | null = null\n private newTask: Task | {} = {}\n private taskTypeListOptions = []\n private newTaskValid: any = false\n private updateTaskValid: any = false\n private deletingTask: boolean = false\n private updatingTask: boolean = false\n\n $refs: {\n newTaskForm: HTMLFormElement\n }\n\n onTaskSelected({ item: selTask, value: selected }) {\n if (selTask && selected) {\n const modifiedTask = {\n ...selTask,\n startEffectiveDate:\n selTask.startEffectiveDate != null ? new Date(selTask.startEffectiveDate).toISOString().substr(0, 10) : '',\n endEffectiveDate:\n selTask.endEffectiveDate != null ? new Date(selTask.endEffectiveDate).toISOString().substr(0, 10) : '',\n validationDate:\n selTask.validationDate != null ? new Date(selTask.validationDate).toISOString().substr(0, 10) : '',\n taskTypeId: selTask.taskTypeId,\n }\n Vue.nextTick(() => {\n this.currentTask = modifiedTask\n })\n } else {\n this.currentTask = null\n }\n }\n\n private taskSchema = {\n required: ['name'],\n type: 'object',\n title: 'Select the Task Type',\n properties: {\n id: {\n type: 'number',\n readOnly: true,\n 'x-display': 'hidden',\n default: 0,\n },\n name: {\n title: 'Name',\n type: 'string',\n default: '',\n },\n ageMin: {\n title: 'Minimum Age',\n type: 'number',\n },\n ageMax: {\n title: 'Maximum Age',\n type: 'number',\n },\n isOptional: {\n title: 'This task is optional',\n type: 'boolean',\n 'x-display': 'switch',\n },\n },\n oneOf: [\n {\n title: 'Waiver',\n required: ['posWaiverId'],\n properties: {\n taskTypeId: {\n type: 'number',\n const: 1,\n },\n posWaiverId: {\n title: 'POS Waiver Id',\n type: 'string',\n },\n externalWaiverId: {\n title: 'External Waiver Id',\n type: 'string',\n default: '',\n },\n consolidateWaivers: {\n title: 'Consolidate Waivers',\n type: 'boolean',\n 'x-display': 'switch',\n },\n useTodayAsValidationDate: {\n title: 'One Day Waiver',\n description: 'This will set the effective date, expiration date, and validation date to the current date',\n type: 'boolean',\n 'x-display': 'switch',\n },\n startEffectiveDate: {\n title: 'Effective Date',\n type: 'string',\n format: 'date',\n },\n endEffectiveDate: {\n title: 'Expiration Date',\n type: 'string',\n format: 'date',\n },\n validationDate: {\n title: 'Validation Date',\n type: 'string',\n format: 'date',\n },\n enableAgreeCheckbox: {\n title: 'Enable Agree Checkbox',\n type: 'boolean',\n 'x-display': 'switch',\n },\n enableTextSignature: {\n title: 'Enable Text Signature',\n type: 'boolean',\n 'x-display': 'switch',\n },\n enableWetSignature: {\n title: 'Enable Wet Signature',\n type: 'boolean',\n 'x-display': 'switch',\n },\n customComment: {\n title: 'Custom Comment (Tokens: {Signer}, {SignedDate}, {BrowserName} {BrowserVersion})',\n type: 'string',\n default: '',\n },\n },\n },\n {\n title: 'Rental Profile',\n properties: {\n taskTypeId: {\n type: 'number',\n const: 2,\n },\n },\n },\n {\n title: 'Child Registration Profile',\n properties: {\n taskTypeId: {\n type: 'number',\n const: 3,\n },\n },\n },\n {\n title: 'Photo',\n properties: {\n taskTypeId: {\n type: 'number',\n const: 4,\n },\n },\n },\n ],\n }\n\n private newTaskFormOptions = {\n initialValidation: 'none',\n removeAdditionalProperties: false,\n }\n\n public created() {\n if (!this.tasks) {\n this.getTasks()\n }\n\n if (!this.taskTypes) {\n this.getTaskTypes()\n }\n }\n\n private validations() {\n return {\n newTask: {\n validWaivers(value) {\n if (value.taskTypeId === 1) {\n return !!value.enableAgreeCheckbox || !!value.enableTextSignature || !!value.enableWetSignature\n }\n\n return true\n },\n },\n }\n }\n\n public getTasks() {\n this.fetchTasks()\n }\n\n public getTaskTypes() {\n this.fetchTaskTypes()\n }\n\n public async addTask() {\n this.$refs.newTaskForm.validate()\n\n if (this.newTaskValid && this.$v.newTask.validWaivers) {\n this.updatingTask = true\n await TaskService.AddTask(this.newTask as Task)\n this.$set(this, 'newTask', { id: 0, name: '' })\n this.$refs.newTaskForm.reset()\n this.getTasks()\n this.updatingTask = false\n }\n }\n\n public async updateTask() {\n if (this.updateTaskValid) {\n this.updatingTask = true\n await TaskService.UpdateTask(this.currentTask as Task)\n this.getTasks()\n this.updatingTask = false\n }\n }\n\n public async removeTask() {\n if (this.currentTask) {\n this.deletingTask = true\n await TaskService.RemoveTask(this.currentTask.id)\n this.getTasks()\n this.currentTask = null\n this.deletingTask = false\n }\n }\n\n get tasksTableHeaders() {\n return [\n { text: 'Name', value: 'name' },\n { text: 'Type', value: 'taskTypeId' },\n { text: 'Modified Date', value: 'modifiedDate', align: 'center' },\n ]\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTasks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTasks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminTasks.vue?vue&type=template&id=d3e10bbe&scoped=true&\"\nimport script from \"./AdminTasks.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminTasks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminTasks.vue?vue&type=style&index=0&id=d3e10bbe&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d3e10bbe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VDataTable,VForm,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"admin-activities\"}},[(_vm.activities)?_c('div',{attrs:{\"id\":\"activity-list\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Activity List\")]),_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(\"Click the box to view or edit activity details.\")]),_c('v-card-text',[_c('v-data-table',{attrs:{\"headers\":_vm.activitiesTableHeaders,\"items\":_vm.activities,\"items-per-page\":10,\"show-select\":\"\",\"single-select\":\"\"},on:{\"item-selected\":_vm.onActivitySelected},scopedSlots:_vm._u([{key:\"item.imageUrl\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"activity-image\",style:((\"background-image: url('\" + (item.imageUrl) + \"')\"))})]}},{key:\"item.hasTasks\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"status\"},[(!item.hasTasks)?_c('v-icon',{attrs:{\"color\":\"red\",\"title\":\"Missing tasks\"}},[_vm._v(\"mdi-alert\")]):_vm._e()],1)]}}],null,false,1666687751)})],1)],1),(_vm.currentActivity)?_c('v-card',{staticClass:\"mt-8\",attrs:{\"id\":\"task-details\"}},[_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(_vm._s(_vm.currentActivity.name)+\" Activity\")]),_c('v-card-text',[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":true}},[_c('v-row',[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-form',[_c('v-jsf',{attrs:{\"schema\":_vm.activitySchema},model:{value:(_vm.currentActivity),callback:function ($$v) {_vm.currentActivity=$$v},expression:\"currentActivity\"}})],1)],1),_c('v-card-actions',{staticClass:\"pt-2 pl-4 pr-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.updatingActivity},on:{\"click\":_vm.updateActivity}},[_vm._v(\" Update Activity \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1),_c('v-btn',{attrs:{\"color\":\"error\",\"loading\":_vm.deletingActivity},on:{\"click\":_vm.removeActivity}},[_vm._v(\"Delete Activity \"),_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)],1)],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(\"Assign Tasks\")]),_c('v-card-text',[_c('v-simple-table',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_vm._v(\"Task\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Delete\")])])]),_c('tbody',_vm._l((_vm.currentActivity.activityTasks),function(activityTask){return _c('tr',{key:activityTask.id},[_c('td',[_vm._v(_vm._s(activityTask.task.name))]),_c('td',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"loading\":_vm.deletingTask == activityTask.id,\"text\":\"\"},on:{\"click\":function($event){return _vm.removeActivityTask(activityTask.activityId, activityTask.id)}}},[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-delete\")])],1)],1)])}),0)]},proxy:true}],null,false,1515294236)})],1),_c('v-card-actions',{staticClass:\"pt-4 pl-4 pr-4\"},[_c('h3',[_vm._v(\"Link Tasks\")]),_c('div',{staticClass:\"link-wrapper\"},[_c('v-select',{attrs:{\"items\":_vm.tasks,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":\"Choose a Task\"},model:{value:(_vm.newActivityTask.taskId),callback:function ($$v) {_vm.$set(_vm.newActivityTask, \"taskId\", $$v)},expression:\"newActivityTask.taskId\"}}),_c('v-btn',{staticClass:\"link-task-btn\",attrs:{\"loading\":_vm.linkingTask},on:{\"click\":_vm.addActivityTask}},[_vm._v(\"Link Task\")])],1)])],1)],1)],1)],1)],1)],1):_vm._e()],1):_vm._e(),(!_vm.currentActivity)?_c('v-card',{staticClass:\"pa-2 mt-8\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Add New Activity\")]),_c('v-card-subtitle',[_vm._v(\"Complete the following information to add a new activity.\")]),_c('v-card-text',[_c('v-form',{ref:\"newActivityForm\",model:{value:(_vm.newActivityValid),callback:function ($$v) {_vm.newActivityValid=$$v},expression:\"newActivityValid\"}},[_c('v-jsf',{attrs:{\"schema\":_vm.activitySchema,\"options\":_vm.newActivityOptions},model:{value:(_vm.newActivity),callback:function ($$v) {_vm.newActivity=$$v},expression:\"newActivity\"}})],1)],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"large\":\"\"},on:{\"click\":_vm.addActivity}},[_vm._v(\"Add Activity \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport Activity from '../../Activity/interfaces/Activity'\nimport ActivityProduct from '../../Activity/interfaces/ActivityProduct'\nimport ActivityTask from '../../Activity/interfaces/ActivityTask'\nimport ActivityService from '../../Activity/services/ActivityService'\nimport { activity } from '../../Activity/store'\nimport Location from '../../Location/interfaces/location'\nimport LocationActivity from '../../Location/interfaces/LocationActivity'\nimport LocationService from '../../Location/services/LocationService'\nimport Task from '../../Task/interfaces/Task'\n\n@Component\nexport default class AdminActivities extends Vue {\n @Action('activity/fetchActivities')\n private fetchActivities: any\n @Getter('activity/activities')\n private activities?: []\n\n @Action('task/fetchTasks')\n private fetchTasks: any\n @Getter('task/tasks')\n private tasks?: Task[]\n\n private currentActivity: Activity | null = null\n public currentActivityAvailableTasks: Task[] = []\n private newActivityValid: any = false\n private updatingActivity: boolean = false\n private deletingActivity: boolean = false\n private deletingTask: number = -1\n private linkingTask: boolean = false\n\n $refs: {\n newActivityForm: HTMLFormElement\n }\n\n onActivitySelected({ item: selActivity, value: selected }) {\n if (selActivity && selected) {\n const editActivity = {\n ...selActivity,\n }\n Vue.nextTick(() => {\n this.currentActivity = editActivity\n })\n } else {\n this.currentActivity = null\n }\n }\n\n private newActivityOptions = {\n initialValidation: 'none',\n }\n\n private activitySchema = {\n required: ['name'],\n properties: {\n id: {\n type: 'number',\n readOnly: true,\n 'x-display': 'hidden',\n },\n name: {\n title: 'Name',\n type: 'string',\n default: '',\n },\n ageMin: {\n title: 'Age Min',\n type: 'number',\n },\n ageMax: {\n title: 'Age Max',\n type: 'number',\n },\n imageUrl: {\n title: 'Image Url',\n type: 'string',\n },\n activityTasks: {\n type: 'array',\n readOnly: true,\n 'x-display': 'hidden',\n items: {},\n },\n activityProducts: {\n type: 'array',\n readOnly: true,\n 'x-display': 'hidden',\n items: {},\n },\n },\n }\n\n public newActivity: Activity = {\n id: 0,\n name: '',\n ageMin: null,\n ageMax: null,\n imageUrl: '',\n isLocationDefaultActivity: false,\n activityTasks: [],\n activityProducts: [],\n }\n\n public clearedActivity = { ...this.newActivity }\n public newActivityTask: ActivityTask = {\n id: 0,\n activityId: 0,\n taskId: 0,\n }\n\n public newActivityProduct: ActivityProduct = {\n id: 0,\n activityId: 0,\n productId: '',\n }\n\n public created() {\n if (!this.activities) {\n this.getActivities()\n }\n\n if (!this.tasks) {\n this.getTasks()\n }\n }\n\n public async getActivities() {\n await this.fetchActivities()\n if (this.currentActivity && this.activities) {\n const thisActivity = this.activities.find((l: Location) => l.id == this.currentActivity!.id)\n if (thisActivity) {\n this.currentActivity = thisActivity\n }\n }\n }\n\n public getTasks() {\n this.fetchTasks()\n }\n\n public viewActivityDetails(activity) {\n this.currentActivity = activity\n if (this.tasks) {\n this.currentActivityAvailableTasks = this.tasks.filter((elem) =>\n activity.activityTasks.find(({ taskId }) => elem.id === taskId)\n )\n }\n }\n\n private async addActivity() {\n this.$refs.newActivityForm.validate()\n\n if (this.newActivityValid) {\n await ActivityService.AddActivity(this.newActivity)\n this.getActivities()\n this.newActivity = { ...this.clearedActivity }\n this.$refs.newActivityForm.reset()\n }\n }\n\n private async updateActivity() {\n if (this.currentActivity) {\n this.updatingActivity = true\n await ActivityService.UpdateActivity(this.currentActivity)\n this.getActivities()\n this.updatingActivity = false\n }\n }\n\n private async removeActivityTask(activityId: number, activityTaskId: number) {\n this.deletingTask = activityTaskId\n await ActivityService.RemoveActivityTask(activityId, activityTaskId)\n this.getActivities()\n this.deletingTask = -1\n }\n\n private async removeActivity() {\n if (this.currentActivity) {\n this.deletingActivity = true\n await ActivityService.RemoveActivity(this.currentActivity.id)\n this.getActivities()\n this.deletingActivity = false\n this.currentActivity = null\n }\n }\n\n private async addActivityTask() {\n if (this.currentActivity) {\n this.linkingTask = true\n this.newActivityTask.activityId = this.currentActivity.id\n await ActivityService.AddActivityTask(this.newActivityTask)\n this.getActivities()\n this.linkingTask = false\n }\n }\n\n get activitiesTableHeaders() {\n return [\n { text: 'Name', value: 'name' },\n { text: 'Age Min', value: 'ageMin', align: 'center' },\n { text: 'Age Max', value: 'ageMax', align: 'center' },\n { text: 'Image', value: 'imageUrl', align: 'center', sortable: false },\n { text: 'Modified Date', value: 'modifiedDate' },\n { text: 'Status', value: 'hasTasks', align: 'center', sortable: false },\n ]\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminActivities.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminActivities.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminActivities.vue?vue&type=template&id=96311fb2&scoped=true&\"\nimport script from \"./AdminActivities.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminActivities.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminActivities.vue?vue&type=style&index=0&id=96311fb2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"96311fb2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VContainer,VDataTable,VForm,VIcon,VRow,VSelect,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"float-container\",attrs:{\"id\":\"admin-settings\"}},[_c('v-row',[_c('v-col',{staticClass:\"mb-6\"},[(_vm.emailAccessRecords)?_c('div',{attrs:{\"id\":\"admin-email-access\"}},[_c('div',[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',[_vm._v(\"Email List\")]),_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(\"Click the box to view or edit Email details.\")]),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.emailsTableHeaders,\"items\":_vm.emailAccessRecords,\"items-per-page\":_vm.itemsPerPage,\"page\":_vm.page,\"hide-default-footer\":\"\",\"show-select\":\"\",\"single-select\":\"\"},on:{\"update:page\":function($event){_vm.page=$event},\"page-count\":function($event){_vm.pageCount = $event}},model:{value:(_vm.selectedEmails),callback:function ($$v) {_vm.selectedEmails=$$v},expression:\"selectedEmails\"}}),_c('div',{staticClass:\"text-center pa-2\"},[_c('v-pagination',{attrs:{\"length\":_vm.pageCount},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}}),_c('v-text-field',{attrs:{\"value\":_vm.itemsPerPage,\"label\":\"Items per page\",\"type\":\"number\",\"min\":\"-1\",\"max\":\"15\"},on:{\"input\":_vm.setItemsPerPage}})],1)],1),(_vm.currentEmail)?_c('v-card',{staticClass:\"mt-8\",attrs:{\"id\":\"task-details\"}},[_c('v-card-title',{staticClass:\"padding-bottom-15\"},[_vm._v(_vm._s(_vm.currentEmail.email))]),_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":true}},[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-form',{ref:\"currentEmailForm\",model:{value:(_vm.currentAdminEmailValid),callback:function ($$v) {_vm.currentAdminEmailValid=$$v},expression:\"currentAdminEmailValid\"}},[_c('v-jsf',{attrs:{\"schema\":_vm.adminEmailSchema,\"options\":_vm.emailFormOptions},model:{value:(_vm.currentEmail),callback:function ($$v) {_vm.currentEmail=$$v},expression:\"currentEmail\"}})],1)],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-layout',{attrs:{\"align-content-space-between\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.removeEmailAccess}},[_c('v-icon',[_vm._v(\"mdi-delete\")]),_vm._v(\" Remove Email \")],1)],1)],1)],1)],1)],1)],1)],1):_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',[_vm._v(\"Add New Email\")]),_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(\"Add a specific email to this of admins.\")]),_c('v-card-text',[_c('v-form',{ref:\"newEmailForm\",model:{value:(_vm.newAdminEmailValid),callback:function ($$v) {_vm.newAdminEmailValid=$$v},expression:\"newAdminEmailValid\"}},[_c('v-jsf',{attrs:{\"schema\":_vm.adminEmailSchema,\"options\":_vm.emailFormOptions},model:{value:(_vm.newAdminEmailAccess),callback:function ($$v) {_vm.newAdminEmailAccess=$$v},expression:\"newAdminEmailAccess\"}})],1)],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{on:{\"click\":_vm.addEmailAccess}},[_vm._v(\"Add Email\")])],1)],1)],1)]):_vm._e()])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport AdminEmailAccess from '../interfaces/AdminEmailAccess'\nimport AdminSetting from '../interfaces/AdminSetting'\nimport AdminService from '../services/AdminService'\n\n@Component\nexport default class AdminAccess extends Vue {\n @Action('admin/fetchAdminEmailAccess')\n private fetchAdminEmailAccess: any\n\n private newAdminEmailValid: any = false\n private currentAdminEmailValid: any = false\n\n $refs: {\n newEmailForm: HTMLFormElement\n }\n\n // Life Cycle\n public created() {\n this.getEmailAccessRecords()\n }\n\n // Watchers\n @Watch('selectedEmails')\n onSelectedEmailsChanged(value: AdminEmailAccess[] | null) {\n if (value && value.length > 0) {\n const firstValue = value[0]\n this.currentEmail = {\n ...firstValue,\n }\n } else {\n this.currentEmail = null\n }\n }\n\n // Data Elements\n private itemsPerPage: Number = 10\n private page: Number = 1\n private pageCount: Number = 0\n private emailAccessRecords: null = null\n private selectedEmails: [] = []\n private currentEmail: AdminEmailAccess | null = null\n\n private newAdminEmailAccess: AdminEmailAccess | null = {\n id: 0,\n email: '',\n createdDateUtc: new Date(),\n modifiedDateUtc: new Date(),\n isDeleted: false,\n }\n\n private emailFormOptions = {\n initialValidation: 'none',\n }\n\n private adminEmailSchema = {\n required: ['email'],\n properties: {\n id: {\n type: 'string',\n readOnly: true,\n 'x-display': 'hidden',\n },\n email: {\n title: 'Email',\n type: 'string',\n default: '',\n },\n },\n }\n\n // Computed Values\n get emailsTableHeaders() {\n return [\n { text: 'Email', value: 'email' },\n { text: '', value: '' },\n ]\n }\n\n // Methods\n public async getEmailAccessRecords() {\n this.emailAccessRecords = await this.fetchAdminEmailAccess()\n }\n\n private async addEmailAccess() {\n this.$refs.newEmailForm.validate()\n\n if (this.newAdminEmailValid) {\n await AdminService.AddAdminEmailAccess(this.newAdminEmailAccess)\n await this.getEmailAccessRecords()\n this.$refs.newEmailForm.reset()\n }\n }\n\n private async removeEmailAccess() {\n if (this.currentEmail) {\n await AdminService.DeleteAdminEmailAccess(this.currentEmail.id)\n this.getEmailAccessRecords()\n this.currentEmail = null\n }\n }\n\n private async setItemsPerPage(event) {\n // Default items per page to 10 if a non-integer was entered\n this.itemsPerPage =\n !isNaN(event) && Number(event) == event && !isNaN(parseInt(event, 10)) ? parseInt(event, 10) : 10\n }\n\n public viewEmailDetails(email: AdminEmailAccess) {\n this.currentEmail = email\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAccess.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAccess.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminAccess.vue?vue&type=template&id=05ef4f4a&scoped=true&\"\nimport script from \"./AdminAccess.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminAccess.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminAccess.vue?vue&type=style&index=0&id=05ef4f4a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05ef4f4a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VPagination } from 'vuetify/lib/components/VPagination';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VContainer,VDataTable,VForm,VIcon,VLayout,VPagination,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"pa-2\",attrs:{\"id\":\"admin-language-settings\"}},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Language\")]),_c('v-card-text',[(_vm.adminSettings)?_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-jsf',{attrs:{\"schema\":_vm.combinedLangSchema,\"options\":_vm.formOptions},model:{value:(_vm.adminSettings.languageSettings),callback:function ($$v) {_vm.$set(_vm.adminSettings, \"languageSettings\", $$v)},expression:\"adminSettings.languageSettings\"}})],1):_vm._e()],1),(_vm.adminSettings && _vm.adminSettings.languageSettings)?_c('v-card-actions',{staticClass:\"pa-4 align-start\"},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"dark\":\"\",\"loading\":_vm.updating}},'v-btn',attrs,false),on),[_vm._v(\"Update Language \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)]}}],null,false,3582841749),model:{value:(_vm.confirmUpdate),callback:function ($$v) {_vm.confirmUpdate=$$v},expression:\"confirmUpdate\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\" Confirm Update Language \")]),_c('v-card-text',[_vm._v(\"Are you sure you want to update your current language settings?\")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.confirmUpdate = false}}},[_vm._v(\" No \")]),_c('v-btn',{attrs:{\"color\":\"secondary\",\"text\":\"\"},on:{\"click\":_vm.updateSettings}},[_vm._v(\" Yes \")])],1)],1)],1),_c('v-spacer'),_c('div',{staticClass:\"d-flex flex-column justify-center\"},[_c('v-btn',{attrs:{\"loading\":_vm.fetching,\"large\":\"\"},on:{\"click\":_vm.fetchDefaultSettings}},[_vm._v(\"Fetch Defaults \"),_c('v-icon',[_vm._v(\"mdi-cloud-download-outline\")])],1),_c('v-checkbox',{attrs:{\"label\":\"Overwrite current values\"},model:{value:(_vm.overwriteValues),callback:function ($$v) {_vm.overwriteValues=$$v},expression:\"overwriteValues\"}})],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const schema = {\n type: 'object',\n 'x-props': {\n tile: true,\n mandatory: false,\n },\n properties: {\n application: {\n title: 'Application Header',\n type: 'object',\n required: ['subtitle', 'title'],\n properties: {\n title: {\n title: 'Title',\n description: 'Title text in the header area',\n type: 'string',\n },\n subtitle: {\n title: 'Subtitle',\n description: 'Subtitle text in the header area.',\n type: 'string',\n },\n },\n },\n home: {\n title: 'Home page',\n type: 'object',\n required: ['checkInTitle', 'checkInButton', 'membersTitle'],\n properties: {\n checkInTitle: {\n title: 'Title',\n description: 'Title Text on the home page if the user is ready to check in',\n type: 'string',\n },\n checkInTitleNoItems: {\n title: 'Title (No Check In Items)',\n description: 'Title text on the home page if there is no check in needed for the user',\n type: 'string',\n },\n checkInTitleEditProfile: {\n title: 'Title (Edit Profile)',\n description: 'Title text on the home page for the edit profile location',\n type: 'string',\n },\n checkInButton: {\n title: 'Check In Button',\n description: 'Check In Button Label - use {MemberCount} to represent count of selected members',\n type: 'string',\n },\n startEditProfileButton: {\n title: 'Start Edit Profile Button',\n description: 'Start Edit Profile Button Label - use {MemberCount} to represent count of selected members',\n type: 'string',\n },\n membersTitle: {\n title: 'Family Members Title',\n description: 'Title text of the section that displays all family members',\n type: 'string',\n },\n posCheckInInstructions: {\n title: 'Check In Instructions',\n description: 'Check in instructions if the user has POS transactions',\n type: 'string',\n },\n posCheckInInstructionsNoItems: {\n title: 'Check In Instructions (No Items)',\n description: 'Check in instructions if there are no POS transactions',\n type: 'string',\n },\n editProfileInstructions: {\n title: 'Edit Profile Instructions',\n description: 'Instructions for the edit profile location',\n type: 'string',\n },\n editProfileButtonText: {\n title: 'Edit Profile Button',\n description: 'Label on button to edit user profile',\n type: 'string',\n },\n selectFamilyTitle: {\n title: 'Select Family Members Title',\n description: '???',\n type: 'string',\n },\n selectFamilyInstructions: {\n title: 'Select Family Members Instructions',\n description: '???',\n type: 'string',\n },\n qrCodesTitle: {\n title: 'QR Codes Title',\n description: 'QR Codes Title - use {QRCodeCount} to represent count of pritable media',\n type: 'string',\n },\n },\n },\n rentalProfile: {\n title: 'Rental Profile Page',\n type: 'object',\n required: [],\n properties: {\n skierAbilityUrl: {\n title: 'Skier Ability Help URL',\n description: 'The full URL of the page thta provides information about skier ability levels',\n type: 'string',\n },\n skierAbilityText: {\n title: 'Skier Ability Text',\n description:\n 'This will display below the skier ability dropdown on the rental page and will be a link to the configured URL',\n type: 'string',\n },\n },\n },\n welcome: {\n title: 'Welcome Page',\n type: 'object',\n required: ['title', 'description', 'signInButton', 'signInNote'],\n properties: {\n title: {\n title: 'Welcome Title',\n description: 'Title Text on Welcome Page',\n type: 'string',\n },\n description: {\n title: 'Welcome Description',\n description: 'Description Text on Welcome Page',\n type: 'string',\n },\n signInButton: {\n title: 'Sign in Button',\n description: 'Label on Button to Sign In',\n type: 'string',\n },\n signInNote: {\n title: 'Sign In Note',\n description: 'Appears in small text under the sign in button',\n type: 'string',\n },\n },\n },\n checkIn: {\n title: 'Check In',\n type: 'object',\n required: ['checkInCompleteTitle'],\n properties: {\n checkInCompleteTitle: {\n title: 'Check In Complete Title',\n description: 'Shows on the last page of check in. Leave blank if not desired.',\n type: 'string',\n default: 'You are all set',\n },\n checkInAgainText: {\n title: 'Check In Again Prompt',\n description: 'Shows on the last page of check in above the check in again button.',\n type: 'string',\n default: '',\n },\n },\n },\n },\n}\n\nexport default schema\n","const schema = {\n properties: {\n passChecker: {\n title: 'Pass Checker',\n type: 'object',\n required: [],\n properties: {\n passCheckerTitle: {\n title: 'Pass Checker Title',\n description: 'The full title of pass checker',\n type: 'string',\n },\n PassCheckerButtonText: {\n title: 'Pass Checker Button Text',\n description: 'The button text on the pass checker form',\n type: 'string',\n },\n passValidTitle: {\n title: 'Pass Checker Valid Title',\n description: 'Title that appears when a pass is valid',\n type: 'string',\n },\n passValidText: {\n title: 'Pass Checker Valid Text',\n description: 'Text that appears when a pass is valid',\n type: 'string',\n },\n passInvalidTitle: {\n title: 'Pass Checker Invalid Title',\n description: 'Text that appears when a pass is valid',\n type: 'string',\n },\n passInvalidText: {\n title: 'Pass Checker Invalid Text',\n description: 'Text that appears when a pass is invalid',\n type: 'string',\n },\n noProductText: {\n title: 'No Product Text',\n description: 'Text that appears when there is a no product linked to a pass',\n type: 'string',\n },\n invalidRequestErrorTitle: {\n title: 'Invalid Request Error Title',\n description: 'Title that appears when a media check is an invalid request',\n type: 'string',\n },\n invalidRequestErrorText: {\n title: 'Invalid Request Error Text',\n description: 'Text that appears when a media check is an invalid request',\n type: 'string',\n },\n inactiveMediaErrorTitle: {\n title: 'Invalid Media Error Title',\n description: 'Title that appears when a media check has invalid media',\n type: 'string',\n },\n inactiveMediaErrorText: {\n title: 'Invalid Media Error Text',\n description: 'Text that appears when a media check has invalid media',\n type: 'string',\n },\n hostlistErrorTitle: {\n title: 'Hotlist Error Title',\n description: 'Title that appears when a customer is hotlisted',\n type: 'string',\n },\n hostlistErrorText: {\n title: 'Hostlist Error Text',\n description: 'Text that appears when a customer is hotlisted',\n type: 'string',\n },\n invalidProductErrorTitle: {\n title: 'Invalid Product Error Title',\n description: 'Title that appears when a media check has an invalid product',\n type: 'string',\n },\n invalidProductErrorText: {\n title: 'Invalid Product Error Text',\n description: 'Text that appears when a media check has an invalid product',\n type: 'string',\n },\n },\n },\n },\n}\n\nexport default schema\n","const schema = {\n properties: {\n bleConnect: {\n title: 'BLE Connect',\n type: 'object',\n required: [\n 'pageTitle',\n 'assigningMediaMessage',\n 'mediaConnectedMessage',\n 'noBLEMediaMessage',\n 'refreshButtonText',\n 'refreshButtonText',\n 'sendButtonText',\n 'sendEmailButtonText',\n 'sendSMSButtonText',\n ],\n properties: {\n pageTitle: {\n title: 'BLE Connect Page Title',\n description: 'The page title of the BLE Connect page',\n type: 'string',\n },\n pageInstructions: {\n title: 'BLE Connect Page Instructions',\n description: 'Use \"{unactivatdCount}\" to substitute the number of family members requiring BLE activation.',\n type: 'string',\n },\n assigningMediaMessage: {\n title: 'BLE Connect Page Assigning Media Message',\n description: 'The message on the BLE Connect page when a media is in process of being assigned',\n type: 'string',\n },\n mediaConnectedMessage: {\n title: 'BLE Connect Page Media Connected Message',\n description: 'The message on the BLE Connect page when a media is connected to a device',\n type: 'string',\n },\n activateMediaMessage: {\n title: 'BLE Connect Page Activate Media Message',\n description: 'The message on the BLE Connect page when a media requires activation',\n type: 'string',\n },\n bleHomepageButton: {\n title: 'BLE Homepage Button',\n description: 'The BLE button label on the homepage',\n type: 'string',\n },\n noBLEMediaMessage: {\n title: 'BLE Connect Page No BLE Media',\n description: 'The message on the BLE Connect page when a family member has no BLE media to connect',\n type: 'string',\n },\n noFamilyMessage: {\n title: 'BLE Connect Page No Family Members Found Message',\n description: 'The message on the BLE Connect page when no family members are found',\n type: 'string',\n },\n mobileShareTitle: {\n title: 'BLE Connect Mobile Share Link Title',\n description: 'The title shown on the share sheet when sending a mobile pass via mobile device',\n type: 'string',\n },\n mobileShareMessage: {\n title: 'BLE Connect Mobile Share Link Message',\n description:\n 'The message of the text send when sharing an activation link via mobile device. Use {FirstName} as a token for the activation member's name',\n type: 'string',\n },\n resendLinkText: {\n title: 'BLE Connect Page Resend Link Text',\n description: 'The text that appears as a link to resend the BLE media.',\n type: 'string',\n },\n refreshButtonText: {\n title: 'BLE Connect Page Refresh Button Text',\n description: 'The text that appears on the button to refresh the BLE Connect page.',\n type: 'string',\n },\n sendButtonText: {\n title: 'BLE Connect Page Send Button Text',\n description: 'The text that appears on the button to send the BLE media link.',\n type: 'string',\n },\n sendEmailButtonText: {\n title: 'BLE Connect Page Send Email Button Text',\n description: 'The text that appears on the button to choose to send an email.',\n type: 'string',\n },\n sendSMSButtonText: {\n title: 'BLE Connect Page Send SMS Button Text',\n description: 'The text that appears on the button to choose to send an SMS.',\n type: 'string',\n },\n changeSendTypeText: {\n title: 'BLE Connect Page Change Send Type Text',\n description: 'The text that appears as a link to change the send type.',\n type: 'string',\n },\n addMobilePassStepTitle: {\n title: 'Add mobile pass step title',\n description: 'The title at the top of the add mobile pass step',\n type: 'string',\n },\n addMobilePassStepInstructions: {\n title: 'Add mobile pass step instructions',\n description: 'The instructions on the add mobile pass step',\n type: 'string',\n },\n addMobilePassStepButton: {\n title: 'Add mobile pass step button',\n description: 'The button label on the add mobile pass step',\n type: 'string',\n },\n cancelAddMobilePassStepButton: {\n title: 'Cancel add mobile pass step button',\n description: 'The button label on the cancel add mobile pass step',\n type: 'string',\n },\n addingPassMessage: {\n title: 'Adding pass message',\n description: 'The message shown while adding a mobile pass',\n type: 'string',\n },\n activatePhoneStepTitle: {\n title: 'Activate phone step title',\n description: 'The title at the top of the activate phone step',\n type: 'string',\n },\n activatePhoneStepInstructions: {\n title: 'Activate phone step instructions',\n description: 'The instructions on the activate phone step',\n type: 'string',\n },\n activatePhoneConfirmation: {\n title: 'Activate phone confirmation text',\n description: 'Confirmation message that the user is on the activation phone',\n type: 'string',\n },\n activatePhoneSubText: {\n title: 'Activate phone subtext',\n description: 'Subtext at the bottom of the activate phone screen',\n type: 'string',\n },\n activatePhoneAction: {\n title: 'Activate phone action',\n description: 'The message displayed for activating phone and button label',\n type: 'string',\n },\n activatePhoneInsteadButton: {\n title: 'Activate phone instead button',\n description: 'The button label on the activate this phone instead button',\n type: 'string',\n },\n sendMemberLinkButton: {\n title: 'Send member a link button',\n description: 'The button label on the send link action',\n type: 'string',\n },\n sendLinkInsteadButton: {\n title: 'Send link instead button',\n description: 'The button label on the send link instead button',\n type: 'string',\n },\n bleActivationFootnote: {\n title: 'BLE activation footnote',\n description: 'The small footnote text at the end of activation',\n type: 'string',\n },\n },\n },\n },\n}\n\nexport default schema\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport AdminSetting from '../interfaces/AdminSetting'\nimport AdminService from '../services/AdminService'\nimport LanguageSetting from '../interfaces/LanguageSetting'\nimport LanguageSettingsSchema from '../schemas/languageSettings'\nimport PassCheckerSettingsSchema from '../schemas/passCheckerSettings'\nimport BLELanguageSettingsSchema from '../schemas/bleLanguageSettings'\nimport merge from 'lodash.merge'\n\n@Component\nexport default class AdminLanguage extends Vue {\n @Getter('admin/settings') settings\n @Action('admin/fetchAdminSettings')\n\n // Data Elements\n public fetchAdminSettings: any\n public updating: boolean = false\n public fetching: boolean = false\n public adminSettings: AdminSetting | null = null\n\n public overwriteValues: boolean = false\n\n public confirmUpdate: boolean = false\n\n public defaultLanguage: any = null\n public valid: any = null\n\n public formOptions: any = {\n rootDisplay: 'expansion-panels',\n }\n\n public schema: any = LanguageSettingsSchema\n public passCheckerSettingsSchema: any = PassCheckerSettingsSchema\n public bleLanguageSchema: any = BLELanguageSettingsSchema\n public combinedLangSchemaProperties: any = null\n\n // Life Cycle\n public mounted() {\n if (!this.settings) {\n this.getSettings()\n } else {\n this.adminSettings = {\n ...this.settings,\n languageSettings: JSON.parse(this.settings.languageSettings),\n }\n }\n\n const hasPassChecker = this.$store.getters.hasFeature('PassChecker')\n const hasBLEConnect = this.$store.getters.hasFeature('BLEConnect')\n const has1Risk = this.$store.getters.hasFeature('1Risk')\n }\n\n get hasBLEConnect() {\n return this.$store.getters.hasFeature('BLEConnect')\n }\n\n get combinedLangSchema(): any {\n const hasPassChecker = this.$store.getters.hasFeature('PassChecker')\n const hasBLEConnect = this.$store.getters.hasFeature('BLEConnect')\n const combinedLanguageSchema = this.schema\n\n const bleProperties = hasBLEConnect ? this.bleLanguageSchema.properties : {}\n const passCheckerProperties = hasPassChecker ? this.passCheckerSettingsSchema.properties : {}\n\n return {\n ...this.schema,\n properties: {\n ...this.schema.properties,\n ...bleProperties,\n ...passCheckerProperties,\n },\n }\n }\n\n public async fetchDefaultSettings() {\n const fetchHeaders = new Headers()\n fetchHeaders.append('pragma', 'no-cache')\n fetchHeaders.append('cache-control', 'no-cache')\n\n const fetchInit = {\n methood: 'GET',\n headers: fetchHeaders,\n }\n\n this.fetching = true\n const fetchRequest = new Request('/defaults/default-language.json')\n\n const response = await fetch(fetchRequest, fetchInit)\n if (response.ok) {\n const setting: LanguageSetting = await response.json()\n const lang = setting as unknown\n const defaultLanguage = lang as {}\n if (defaultLanguage) {\n const currentLanguage = this.adminSettings?.languageSettings as {}\n const newLanguage = this.overwriteValues\n ? { ...currentLanguage, ...defaultLanguage }\n : merge(lang, currentLanguage)\n this.adminSettings = {\n ...(this.adminSettings as AdminSetting),\n languageSettings: newLanguage,\n }\n }\n }\n this.fetching = false\n }\n\n public async getSettings() {\n const settings = await this.fetchAdminSettings()\n const newSettings = {\n ...(settings as AdminSetting),\n languageSettings: JSON.parse(settings.languageSettings),\n }\n this.adminSettings = newSettings\n }\n\n private async updateSettings() {\n this.confirmUpdate = false\n if (this.valid && this.adminSettings) {\n this.updating = true\n const newLangSettings = {\n ...this.adminSettings,\n languageSettings: JSON.stringify(this.adminSettings.languageSettings),\n }\n await AdminService.UpdateAdminSettings(newLangSettings)\n this.getSettings()\n this.updating = false\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminLanguage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminLanguage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminLanguage.vue?vue&type=template&id=31fc0996&scoped=true&\"\nimport script from \"./AdminLanguage.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminLanguage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminLanguage.vue?vue&type=style&index=0&id=31fc0996&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31fc0996\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VDialog,VForm,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"pa-2\",attrs:{\"id\":\"admin-language-settings\"}},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Theme\")]),_c('v-card-text',[(_vm.adminSettings)?_c('v-form',{model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-jsf',{attrs:{\"schema\":_vm.combinedSettingsSchema,\"options\":_vm.formOptions},model:{value:(_vm.adminSettings.themeSettings),callback:function ($$v) {_vm.$set(_vm.adminSettings, \"themeSettings\", $$v)},expression:\"adminSettings.themeSettings\"}})],1):_vm._e()],1),(_vm.adminSettings && _vm.adminSettings.themeSettings)?_c('v-card-actions',{staticClass:\"pa-4 align-start\"},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\"Update Theme \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)]}}],null,false,1539772082),model:{value:(_vm.confirmUpdate),callback:function ($$v) {_vm.confirmUpdate=$$v},expression:\"confirmUpdate\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\" Confirm Update Theme \")]),_c('v-card-text',[_vm._v(\"Are you sure you want to update your current theme settings?\")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.confirmUpdate = false}}},[_vm._v(\" No \")]),_c('v-btn',{attrs:{\"color\":\"secondary\",\"text\":\"\"},on:{\"click\":_vm.updateSettings}},[_vm._v(\" Yes \")])],1)],1)],1),_c('v-spacer'),_c('div',{staticClass:\"d-flex flex-column justify-center\"},[_c('v-btn',{attrs:{\"loading\":_vm.fetching,\"large\":\"\"},on:{\"click\":_vm.fetchDefaultSettings}},[_vm._v(\"Fetch Defaults \"),_c('v-icon',[_vm._v(\"mdi-cloud-download-outline\")])],1),_c('v-checkbox',{attrs:{\"label\":\"Overwrite current values\"},model:{value:(_vm.overwriteValues),callback:function ($$v) {_vm.overwriteValues=$$v},expression:\"overwriteValues\"}})],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const schema = {\n type: 'object',\n properties: {\n theme: {\n type: 'object',\n 'x-display': 'expansion-panels',\n 'x-props': {\n tile: true,\n mandatory: false,\n },\n properties: {\n general: {\n type: 'object',\n title: 'General',\n properties: {\n logoUrl: {\n type: 'string',\n title: 'Logo url',\n description: 'URL for the logo image to be used throughout the site',\n },\n logoWelcomeWidth: {\n type: 'number',\n title: 'Welcome page logo width',\n enum: [100, 150, 200, 250, 300, 350, 400, 450, 500],\n description: 'Width of logo on welcome page (in pixels)',\n default: 200,\n },\n favicon: {\n type: 'string',\n title: 'Favicon Image Url',\n description: 'This can be a standard (favicon.ico) or high resolution (favicon-32x32.png) icon',\n },\n backgroundImageUrl: {\n type: 'string',\n title: 'Background image url',\n description: 'General background image used on pages like Welcome',\n },\n overlayBackgroundWithGradient: {\n type: 'string',\n title: 'Overlay the welcome background with dark gradient',\n default: 'Dark',\n enum: ['Dark', 'Light', 'None'],\n },\n showArrivalTitleAsImage: {\n type: 'boolean',\n title: 'Show application title as image',\n default: true,\n },\n arrivalTitleImageUrl: {\n type: 'string',\n title: 'Application title Image Url',\n description: 'Application title image on welcome page. Will be hidden if not provided.',\n },\n arrivalTitleImageWidth: {\n type: 'number',\n title: 'Welcome page arrival title width',\n enum: [200, 250, 300, 350, 400, 450, 500],\n description: 'Width of logo on welcome page (in pixels)',\n },\n loaderPrimaryColor: {\n title: 'Page Loader Primary Color',\n type: 'string',\n format: 'hexcolor',\n default: '#93dbe9',\n },\n loaderSecondaryColor: {\n title: 'Page Loader Secondary Color',\n type: 'string',\n format: 'hexcolor',\n default: '#93dbe9',\n },\n },\n },\n buttons: {\n type: 'object',\n title: 'Buttons',\n properties: {\n primary: {\n type: 'object',\n title: 'Primary Button',\n properties: {\n backgroundColor: {\n title: 'Background Color',\n type: 'string',\n format: 'hexcolor',\n },\n color: {\n title: 'Text Color',\n type: 'string',\n format: 'hexcolor',\n },\n },\n },\n secondary: {\n type: 'object',\n title: 'Secondary Button',\n properties: {\n backgroundColor: {\n title: 'Background Color',\n type: 'string',\n format: 'hexcolor',\n },\n color: {\n title: 'Text Color',\n type: 'string',\n format: 'hexcolor',\n },\n },\n },\n },\n },\n footer: {\n type: 'object',\n title: 'Footer',\n properties: {\n footerBackgroundColor: {\n title: 'Background Color',\n type: 'string',\n format: 'hexcolor',\n default: '#000000',\n },\n footerBkgImageUrl: {\n type: 'string',\n title: 'Background Url',\n description: 'Background image on the application footer',\n },\n footerBkgImageOpacity: {\n type: 'number',\n title: 'Background Opacity',\n description: 'The opacity of the background image on the sidebar',\n enum: [1, 0.75, 0.5, 0.25, 0.1],\n },\n borderColor: {\n type: 'string',\n format: 'hexcolor',\n title: 'Border Color',\n description: 'The color of the border above the application footer',\n default: '#000000',\n },\n textColor: {\n type: 'string',\n format: 'hexcolor',\n title: 'Text Color',\n },\n },\n },\n mediaCard: {\n type: 'object',\n title: 'Media Card',\n properties: {\n showMediaPasses: {\n title: 'Show Media Passes Based On Screen Size',\n type: 'string',\n default: 'Mobile and Desktop',\n description: 'Show media passes when viewing Arrival on a mobile-sized, larger screen, or not at all',\n enum: ['Mobile Only', 'Mobile and Desktop', 'None'],\n },\n resortName: {\n type: 'string',\n title: 'Resort Name',\n },\n heroImageUrl: {\n type: 'string',\n title: 'Hero Image Url',\n },\n logoImageUrl: {\n type: 'string',\n title: 'Logo Image Url',\n },\n backgroundColor: {\n type: 'string',\n title: 'Background Color',\n format: 'hexcolor',\n },\n labelColor: {\n type: 'string',\n title: 'Label Color',\n format: 'hexcolor',\n },\n foregroundColor: {\n type: 'string',\n title: 'Foreground Color',\n format: 'hexcolor',\n },\n },\n },\n sidebar: {\n type: 'object',\n title: 'Sidebar',\n properties: {\n backgroundColor: {\n title: 'Background Color',\n type: 'string',\n format: 'hexcolor',\n default: '#000000',\n },\n sidebarBkgImageUrl: {\n type: 'string',\n title: 'Background Url',\n description: 'Background image on the application sidebar',\n },\n sidebarBkgImageOpacity: {\n type: 'number',\n title: 'Background Opacity',\n description: 'The opacity of the background image on the sidebar',\n enum: [1, 0.75, 0.5, 0.25, 0.1],\n },\n },\n },\n },\n },\n },\n}\n\nexport default schema\n","const schema = {\n type: 'object',\n properties: {\n bleConnect: {\n type: 'object',\n title: 'BLE Connect',\n properties: {\n enableBleHomeScreen: {\n title: 'Show the BLE Connect button on the home screen',\n type: 'boolean',\n default: false,\n 'x-display': 'switch',\n },\n desktopLogoImageUrl: {\n type: 'string',\n title: 'BLE Connect Page Logo (Desktop)',\n description: 'URL for the logo image on the BLE Connect page for non-mobile screen sizes',\n },\n mobileLogoImageUrl: {\n type: 'string',\n title: 'BLE Connect Page Logo (Mobile)',\n description: 'URL for the logo image on the BLE Connect page for mobile screen sizes',\n },\n },\n },\n },\n}\n\nexport default schema\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport AdminSetting from '../interfaces/AdminSetting'\nimport AdminService from '../services/AdminService'\nimport ThemeSetting from '../interfaces/ThemeSetting'\nimport ThemeSettingsSchema from '../schemas/themeSettings'\nimport BLESettingsSchema from '../schemas/bleThemeSettings'\nimport merge from 'lodash.merge'\n\n@Component\nexport default class AdminTheme extends Vue {\n @Getter('admin/settings') settings\n @Action('admin/fetchAdminSettings')\n private fetchAdminSettings: any\n\n // Data Elements\n public adminSettings: AdminSetting | null = null\n\n public overwriteValues: boolean = false\n\n public confirmUpdate: boolean = false\n\n public valid: any = false\n public updating: boolean = false\n public fetching: boolean = false\n\n public formOptions: any = {\n rootDisplay: 'expansion-panels',\n }\n\n private schema: any = ThemeSettingsSchema\n private bleSchema: any = BLESettingsSchema\n\n get combinedSettingsSchema(): any {\n const hasBLEConnect = this.$store.getters.hasFeature('BLEConnect')\n\n if (hasBLEConnect) {\n const combinedSchema = {\n ...this.schema,\n properties: {\n theme: {\n properties: {\n ...this.schema.properties.theme.properties,\n ...this.bleSchema.properties,\n },\n },\n },\n }\n return combinedSchema\n }\n\n return this.schema\n }\n\n // Computed Elements\n get themeSettings() {\n if (this.adminSettings) {\n return this.adminSettings.themeSettings\n } else {\n return null\n }\n }\n\n // Life Cycle\n public async mounted() {\n if (!this.settings) {\n await this.getSettings()\n }\n this.adminSettings = {\n ...(this.settings as AdminSetting),\n }\n this.adminSettings = {\n ...(this.adminSettings as AdminSetting),\n themeSettings: JSON.parse(this.settings.themeSettings),\n }\n }\n\n public async fetchDefaultSettings() {\n const fetchHeaders = new Headers()\n fetchHeaders.append('pragma', 'no-cache')\n fetchHeaders.append('cache-control', 'no-cache')\n\n const fetchInit = {\n methood: 'GET',\n headers: fetchHeaders,\n }\n\n const fetchRequest = new Request('/defaults/default-theme.json')\n\n this.fetching = true\n const response = await fetch(fetchRequest, fetchInit)\n if (response.ok) {\n const defaultThemeSettings: ThemeSetting = await response.json()\n const currentThemeSettings = this.adminSettings?.themeSettings as {}\n const newThemeSettings = this.overwriteValues\n ? { ...currentThemeSettings, ...defaultThemeSettings }\n : merge(defaultThemeSettings, currentThemeSettings)\n this.adminSettings = {\n ...(this.adminSettings as AdminSetting),\n themeSettings: newThemeSettings,\n }\n }\n this.fetching = false\n this.overwriteValues = false\n }\n\n public async getSettings() {\n const settings = await this.fetchAdminSettings()\n const currentThemeSettings = settings.themeSettings ? JSON.parse(settings.themeSettings) : {}\n console.log('RETRIEVED:', currentThemeSettings)\n const newSettings = {\n ...settings,\n themeSettings: currentThemeSettings,\n }\n this.adminSettings = newSettings\n }\n\n public async updateSettings() {\n this.confirmUpdate = false\n if (this.valid && this.adminSettings) {\n this.updating = true\n const newThemeSettings = {\n ...this.adminSettings,\n themeSettings: JSON.stringify(this.adminSettings.themeSettings),\n }\n await AdminService.UpdateAdminSettings(newThemeSettings)\n this.getSettings()\n this.updating = false\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTheme.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTheme.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminTheme.vue?vue&type=template&id=371838a2&scoped=true&\"\nimport script from \"./AdminTheme.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminTheme.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminTheme.vue?vue&type=style&index=0&id=371838a2&lang=scss&scoped=true&\"\nimport style1 from \"./AdminTheme.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"371838a2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VDialog,VForm,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"admin--page\",attrs:{\"id\":\"admin-general\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Edit Settings\")]),_c('v-card-text',[(_vm.allSettings)?_c('v-form',[_c('v-jsf',{attrs:{\"schema\":_vm.schema},model:{value:(_vm.generalSettings),callback:function ($$v) {_vm.generalSettings=$$v},expression:\"generalSettings\"}})],1):_vm._e()],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":_vm.updateSettings}},[_vm._v(\"Update General Settings\")])],1)],1),_c('v-snackbar',{attrs:{\"color\":_vm.notification.color,\"multi-line\":_vm.notification.mode === 'multi-line',\"timeout\":_vm.notification.timeout},model:{value:(_vm.notification.visible),callback:function ($$v) {_vm.$set(_vm.notification, \"visible\", $$v)},expression:\"notification.visible\"}},[_c('v-layout',{attrs:{\"align-center\":\"\",\"pr-4\":\"\"}},[(_vm.notification.icon === 'error')?_c('v-icon',{staticClass:\"pr-3\",attrs:{\"dark\":\"\",\"large\":\"\"}},[_vm._v(\"mdi-alert-circle\")]):(_vm.notification.icon === 'success')?_c('v-icon',{staticClass:\"pr-3\",attrs:{\"dark\":\"\",\"large\":\"\"}},[_vm._v(\"mdi-check-circle\")]):(_vm.notification.icon === 'info')?_c('v-icon',{staticClass:\"pr-3\",attrs:{\"dark\":\"\",\"large\":\"\"}},[_vm._v(\"mdi-information\")]):_vm._e(),_c('v-layout',{attrs:{\"column\":\"\"}},[_c('div',[_c('strong',[_vm._v(_vm._s(_vm.notification.title))])]),_c('div',[_vm._v(_vm._s(_vm.notification.text))])]),(_vm.notification.timeout === 0)?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.notification.visible = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport AdminSetting from '../interfaces/AdminSetting'\nimport AdminService from '../services/AdminService'\n\n@Component\nexport default class AdminGeneralSettings extends Vue {\n @Action('admin/fetchAdminSettings')\n private fetchAdminSettings: any\n\n private allSettings: object | null = null\n private generalSettings: object | null = null\n private saving: boolean = false\n\n private schema: any = {\n properties: {\n isSkiDataEnabled: {\n type: 'boolean',\n title: 'Display External Order Id As QR Code',\n 'x-display': 'switch',\n description: 'Required to print media for SkiData. If not selected, Customer ID will be used.',\n },\n googleAnalyticsTagId: {\n type: 'string',\n default: '',\n title: 'Google analytics tag id',\n },\n resortCodes: {\n type: 'string',\n title: 'Resort codes',\n default: '',\n description: 'Enter one or more resort codes (comma separated)',\n },\n resortGroupCodes: {\n type: 'string',\n title: 'Resort group codes',\n default: '',\n description: 'Enter one or more resort group codes (comma separated)',\n },\n salesLocationIds: {\n type: 'string',\n title: 'Sales location ids',\n default: '',\n description: 'Enter one or more location ids (comma separated)',\n },\n passCheckerLocationId: {\n type: 'string',\n default: '',\n title: 'Pass Checker POS Location Id',\n },\n oneRiskUrl: {\n type: 'string',\n default: '',\n title: '1Risk URL',\n },\n oneRiskSecret: {\n type: 'string',\n default: '',\n title: '1Risk Secret',\n },\n dateFormat: {\n title: '1Risk Date Format',\n type: 'string',\n default: 'mmddyyyy',\n description: 'Preferred Date Format',\n enum: ['mmddyyyy', 'ddmmyyyy'], \n },\n pointOfSaleSystem: {\n type: 'string',\n default: 'RTP',\n title: 'Point of Sale System',\n description: 'Point of Sale System',\n enum: ['RTP', 'SW'],\n },\n cookieConsentScript: {\n type: 'string',\n default: '',\n title: 'Cookie Consent Script',\n },\n cookieConsentStyles: {\n type: 'string',\n default: '',\n title: 'Cookie Consent Stylesheet',\n }\n },\n }\n private notification: any = {\n visible: false,\n title: '',\n text: '',\n icon: '',\n color: null,\n timeout: 2000,\n }\n\n public created() {\n this.fetchSettings()\n }\n\n private async fetchSettings() {\n this.allSettings = await this.fetchAdminSettings()\n this.generalSettings = {\n ...this.allSettings,\n }\n }\n\n private async updateSettings() {\n if (this.allSettings) {\n this.saving = true\n const newSettings = {\n ...this.allSettings,\n ...this.generalSettings,\n }\n try{\n await AdminService.UpdateAdminSettings(newSettings as AdminSetting)\n } \n catch(error){\n const message = error?.error?.data?.message\n const notification = {\n title: 'Error',\n text: message,\n icon: 'error',\n color: 'error',\n timeout: 0,\n visible: true,\n }\n this.notification = {\n ...this.notification,\n ...notification,\n }\n }\n \n await this.fetchSettings()\n this.saving = false\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminGeneralSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminGeneralSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminGeneralSettings.vue?vue&type=template&id=bbdccfdc&scoped=true&\"\nimport script from \"./AdminGeneralSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminGeneralSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bbdccfdc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VForm,VIcon,VLayout,VSnackbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"admin--page\",attrs:{\"id\":\"admin-reporting\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Customer Activity Report\")]),_c('v-card-text',[(_vm.status && _vm.status.statusCode == 1)?_c('v-alert',{attrs:{\"type\":\"warning\"}},[_vm._v(\"The data for this report is currently processing, check back later\")]):(_vm.status && _vm.status.statusCode == 2)?_c('v-alert',{attrs:{\"type\":\"success\"}},[_vm._v(\" The data for this report was last populated on \"+_vm._s(_vm._f(\"longDate\")(_vm.status.lastRefreshDate))+\" \")]):(_vm.status && _vm.status.statusCode == 3)?_c('v-alert',{attrs:{\"type\":\"error\",\"prominent\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_vm._v(\" There has been an issue populating the data for this report \")]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"loading\":_vm.reRunningReport},on:{\"click\":_vm.reRunReport}},[_vm._v(\"Try Again\")])],1)],1)],1):_c('v-alert',{attrs:{\"type\":\"warning\"}},[_vm._v(\"The data for this report has not been populated yet\")]),(_vm.locations)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.locations,\"item-text\":_vm.getLocationText,\"item-value\":\"id\",\"item-disabled\":_vm.isLocationDisabled,\"label\":\"Location\",\"prepend-icon\":\"mdi-map-marker\"},model:{value:(_vm.request.locationId),callback:function ($$v) {_vm.$set(_vm.request, \"locationId\", $$v)},expression:\"request.locationId\"}})],1)],1),_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_c('v-menu',{ref:\"startDateMenu\",attrs:{\"close-on-content-click\":false,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({attrs:{\"label\":\"Begin Date\",\"persistent-hint\":\"\",\"prepend-icon\":\"mdi-calendar\"},on:{\"blur\":function($event){_vm.startDate = _vm.parseDate(_vm.startDateFormatted)}},model:{value:(_vm.startDateFormatted),callback:function ($$v) {_vm.startDateFormatted=$$v},expression:\"startDateFormatted\"}},'v-text-field',attrs,false),on))]}}],null,false,3310891286),model:{value:(_vm.startDateMenu),callback:function ($$v) {_vm.startDateMenu=$$v},expression:\"startDateMenu\"}},[_c('v-date-picker',{attrs:{\"no-title\":\"\"},on:{\"input\":function($event){_vm.startDateMenu = false}},model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v},expression:\"startDate\"}})],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_c('v-menu',{ref:\"endDateMenu\",attrs:{\"close-on-content-click\":false,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({attrs:{\"label\":\"End Date\",\"persistent-hint\":\"\",\"prepend-icon\":\"mdi-calendar\"},on:{\"blur\":function($event){_vm.endDate = _vm.parseDate(_vm.endDateFormatted)}},model:{value:(_vm.endDateFormatted),callback:function ($$v) {_vm.endDateFormatted=$$v},expression:\"endDateFormatted\"}},'v-text-field',attrs,false),on))]}}],null,false,1165906481),model:{value:(_vm.endDateMenu),callback:function ($$v) {_vm.endDateMenu=$$v},expression:\"endDateMenu\"}},[_c('v-date-picker',{attrs:{\"no-title\":\"\"},on:{\"input\":function($event){_vm.endDateMenu = false}},model:{value:(_vm.endDate),callback:function ($$v) {_vm.endDate=$$v},expression:\"endDate\"}})],1)],1)],1),_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('v-switch',{attrs:{\"label\":\"Include Printable Media\"},model:{value:(_vm.request.includePrintableMedia),callback:function ($$v) {_vm.$set(_vm.request, \"includePrintableMedia\", $$v)},expression:\"request.includePrintableMedia\"}}),_c('v-switch',{attrs:{\"label\":\"Include Details\"},model:{value:(_vm.request.includeDetails),callback:function ($$v) {_vm.$set(_vm.request, \"includeDetails\", $$v)},expression:\"request.includeDetails\"}}),_c('v-switch',{attrs:{\"label\":\"CSV Export\"},model:{value:(_vm.request.isCsvExport),callback:function ($$v) {_vm.$set(_vm.request, \"isCsvExport\", $$v)},expression:\"request.isCsvExport\"}})],1)],1)],1):_vm._e()],1),_c('v-card-actions',{staticClass:\"pt-0 pl-4 pr-4 pb-4\"},[_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":_vm.getCustomerReport}},[_vm._v(\"Download Report \"),_c('v-icon',[_vm._v(\"mdi-cloud-download-outline\")])],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Test Customer Activities\")]),_c('v-card-text',[_c('v-textarea',{attrs:{\"name\":\"input-7-1\",\"filled\":\"\",\"label\":\"IP Codes (Comma Separated)\",\"auto-grow\":\"\"},model:{value:(_vm.customerEntitlementsRequest.ipCodesCommaSeparated),callback:function ($$v) {_vm.$set(_vm.customerEntitlementsRequest, \"ipCodesCommaSeparated\", $$v)},expression:\"customerEntitlementsRequest.ipCodesCommaSeparated\"}})],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"loading\":_vm.downloadingCustomerEntitlementsReport},on:{\"click\":_vm.getCustomerEntitlementsReport}},[_vm._v(\"Download Report \"),_c('v-icon',[_vm._v(\"mdi-cloud-download-outline\")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import store from '@/Common/store'\nimport { ServiceError } from '@/Common/interfaces/ServiceError'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport ArrivalService from '@/Common/services/ArrivalService'\nimport ContactEntitlementReportRequest from '../interfaces/ContactEntitlementReportRequest'\nimport CustomerEntitlementsReportRequest from '../interfaces/CustomerEntitlementsReportRequest'\n\nclass ReportService extends ArrivalService {\n public static async GetCustomerReport(request: ContactEntitlementReportRequest | null): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/report/customer?startDate=${request?.startDate.toDateString()}&endDate=${request?.endDate.toDateString()}&locationId=${\n request?.locationId\n }&includePrintableMedia=${request?.includePrintableMedia}&isCsvExport=${request?.isCsvExport}&includeDetails=${\n request?.includeDetails\n }`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: request,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async GetCustomerReportStatus(): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/report/customer/status`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async ReRunCustomerReport(key: string): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/export/Customers/Process/${key}`,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async GetCustomerEntitlementsReport(request: CustomerEntitlementsReportRequest | null): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/report/customer/entitlements`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: request,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n}\n\nexport default ReportService\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport ReportService from '../../Reports/services/ReportService'\nimport ContactEntitlementReportRequest from '../../Reports/interfaces/ContactEntitlementReportRequest'\nimport Location from '../../Location/interfaces/location'\nimport store from '@/Common/store'\nimport axios from 'axios'\nimport CustomerEntitlementsReportRequest from '../../Reports/interfaces/CustomerEntitlementsReportRequest'\nimport ContactEntitlementReportStatus from '../../Reports/interfaces/ContactEntitlementReportStatus'\n\n@Component\nexport default class AdminReporting extends Vue {\n @Action('location/fetchLocations')\n private fetchLocations: any\n @Getter('location/locations')\n private locations?: []\n @Getter('exportKey') exportKey\n\n private saving: boolean = false\n private reRunningReport: boolean = false\n private downloadingCustomerEntitlementsReport: boolean = false\n\n private startDate = new Date().toISOString().substr(0, 10)\n private startDateFormatted = this.formatDate(this.startDate)\n private startDateMenu = false\n\n private endDate = new Date().toISOString().substr(0, 10)\n private endDateFormatted = this.formatDate(this.endDate)\n private endDateMenu = false\n private status: ContactEntitlementReportStatus | null = null\n\n private request: ContactEntitlementReportRequest = {\n locationId: 1,\n startDate: new Date(),\n endDate: new Date(),\n includePrintableMedia: true,\n isCsvExport: true,\n includeDetails: true,\n }\n\n private customerEntitlementsRequest: CustomerEntitlementsReportRequest = {\n ipCodesCommaSeparated: '',\n }\n\n // Methods\n public async created() {\n if (!this.locations) {\n this.getLocations()\n }\n this.status = await ReportService.GetCustomerReportStatus()\n }\n\n private async reRunReport() {\n this.reRunningReport = true\n await ReportService.ReRunCustomerReport(this.exportKey)\n await new Promise((resolve) => setTimeout(resolve, 5000))\n this.status = await ReportService.GetCustomerReportStatus()\n this.reRunningReport = false\n }\n private async getCustomerReport() {\n this.saving = true\n const request = this.request\n const fileDownloadName = `arrival-customer-report-${\n request.locationId\n }-location-${request.startDate.toDateString()}-to-${request.endDate.toDateString()}-${\n request.includePrintableMedia ? 'include-printable-media' : 'exclude-printable-media'\n }${request.isCsvExport ? '.csv' : '.json'}`\n const response = await ReportService.GetCustomerReport(request)\n\n let data = response\n if (!request.isCsvExport) {\n data = JSON.stringify(response)\n }\n\n const url = window.URL.createObjectURL(new Blob([data]))\n const link = document.createElement('a')\n link.href = url\n link.setAttribute('download', fileDownloadName)\n document.body.appendChild(link)\n link.click()\n this.saving = false\n }\n\n private async getCustomerEntitlementsReport() {\n this.downloadingCustomerEntitlementsReport = true\n const response = await ReportService.GetCustomerEntitlementsReport(this.customerEntitlementsRequest)\n\n const url = window.URL.createObjectURL(new Blob([JSON.stringify(response)]))\n const link = document.createElement('a')\n link.href = url\n link.setAttribute('download', 'customer-entitlements-report.json')\n document.body.appendChild(link)\n link.click()\n\n this.downloadingCustomerEntitlementsReport = false\n }\n\n private isLocationDisabled(item: Location) {\n return item.usePosTransactionsAndOrders == false\n }\n\n private getLocationText(item: Location) {\n if (item.usePosTransactionsAndOrders) {\n return item.name\n } else {\n return item.name + ' (POS disabled for this location)'\n }\n }\n\n public async getLocations() {\n await this.fetchLocations()\n }\n\n private formatDate(date) {\n if (!date) {\n return null\n }\n const [year, month, day] = date.split('-')\n return `${month}/${day}/${year}`\n }\n\n private parseDate(date) {\n if (!date) {\n return null\n }\n const [month, day, year] = date.split('/')\n return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`\n }\n\n // Computed\n get computedStartDateFormatted() {\n return this.formatDate(this.startDate)\n }\n\n get computedEndDateFormatted() {\n return this.formatDate(this.endDate)\n }\n\n // Watches\n @Watch('startDate')\n onStartDateChangedChanged(value: string) {\n this.startDateFormatted = this.formatDate(this.startDate)\n const stringValue: string | null = this.startDateFormatted\n if (stringValue) {\n this.request.startDate = new Date(stringValue)\n }\n }\n @Watch('endDate')\n onEndDateChangedChanged(value: string) {\n this.endDateFormatted = this.formatDate(this.endDate)\n const stringValue: string | null = this.endDateFormatted\n if (stringValue) {\n this.request.endDate = new Date(stringValue)\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminReporting.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminReporting.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminReporting.vue?vue&type=template&id=706d88a2&scoped=true&\"\nimport script from \"./AdminReporting.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminReporting.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminReporting.vue?vue&type=style&index=0&id=706d88a2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"706d88a2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VDatePicker,VIcon,VMenu,VRow,VSelect,VSwitch,VTextField,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"admin--page\",attrs:{\"id\":\"admin-reporting\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"API Access Keys\")]),_c('v-card-text',[_c('v-simple-table',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_vm._v(\"Key Name\")]),_c('th',[_vm._v(\"API Key\")]),_c('th',[_vm._v(\"Type\")]),_c('th',[_vm._v(\"Date Created\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Delete\")])])]),_c('tbody',_vm._l((_vm.apiKeys),function(apiKey){return _c('tr',{key:apiKey.id},[_c('td',[_vm._v(_vm._s(apiKey.nickname))]),_c('td',[_vm._v(_vm._s(apiKey.token))]),_c('td',[_vm._v(_vm._s(apiKey.type))]),_c('td',[_vm._v(_vm._s(_vm._f(\"shortDate\")(apiKey.createdDateUtc)))]),_c('td',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.removeApiKey(apiKey.id)}}},[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-delete\")])],1)],1)])}),0)]},proxy:true}])}),_c('br'),(!_vm.showCreateTokenForm)?_c('v-btn',{on:{\"click\":_vm.toggleShowCreateTokenForm}},[_vm._v(\" Create API Token \")]):_vm._e()],1)],1),(_vm.showCreateTokenForm)?_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Create API Token\")]),_c('v-card-text',[_c('v-form',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Token Nickname\",\"required\":\"\"},model:{value:(_vm.newApiKey.nickname),callback:function ($$v) {_vm.$set(_vm.newApiKey, \"nickname\", $$v)},expression:\"newApiKey.nickname\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":_vm.addApiKey}},[_vm._v(\"Create Token\")]),_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":_vm.toggleShowCreateTokenForm}},[_vm._v(\"Cancel\")])],1)],1)],1)],1)],1):_vm._e(),_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"API Default Settings\")]),_c('v-card-text',[(_vm.settings)?_c('v-form',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Days Before Current Day\",\"required\":\"\"},model:{value:(_vm.settings.daysBeforeCurrentDay),callback:function ($$v) {_vm.$set(_vm.settings, \"daysBeforeCurrentDay\", $$v)},expression:\"settings.daysBeforeCurrentDay\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Days After Current Day\",\"required\":\"\"},model:{value:(_vm.settings.daysAfterCurrentDay),callback:function ($$v) {_vm.$set(_vm.settings, \"daysAfterCurrentDay\", $$v)},expression:\"settings.daysAfterCurrentDay\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":_vm.updateSettings}},[_vm._v(\"Update Default Settings \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1)],1):_vm._e()],1)],1),_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',[_vm._v(\"Available API Endpoints & Documentation\")]),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('p',[_vm._v(\" All API requests require a http header field shown below: \"),_c('br'),_c('code',[_vm._v(\" headers: { 'x-api-key':'[YOUR_API_KEY]'}} \")])])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-expansion-panels',{attrs:{\"accordian\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\"GET /export/customers\")]),_c('v-expansion-panel-content',[_c('p',[_vm._v(\" This endpoint returns a list of customers that have upcoming reservations based on your point-of-sale system \")]),_c('h4',[_vm._v(\"Parameters\")]),_c('ul',[_c('li',[_vm._v(\"locationId - number\")]),_c('li',[_vm._v(\"includePrintableMedia - boolean\")]),_c('li',[_c('i',[_vm._v(\"(optional)\")]),_vm._v(\" daysBeforeCurrentDate - number \"),_c('br'),_c('i',[_vm._v(\"If you do not provide a value for this parameter. The endpoint will use the value in the 'API Default Settings' section above\")])]),_c('li',[_c('i',[_vm._v(\"(optional)\")]),_vm._v(\" daysAfterCurrentDate - number \"),_c('br'),_c('i',[_vm._v(\"If you do not provide a value for this parameter. The endpoint will use the value in the 'API Default Settings' section above\")])]),_c('li',[_c('i',[_vm._v(\"(optional)\")]),_vm._v(\" includeDetails - boolean \"),_c('br'),_c('i',[_vm._v(\"Default value is true\")])])]),_c('br'),_c('h4',[_vm._v(\"JavaScript Example\")]),_c('code',[_vm._v(\" $http({method: 'GET', url: '{BASE_URL}/api/export/customers?locationId={LOCATION_ID}&includePrintableMedia={INCLUDE_PRINTABLE_MEDIA}', headers: { 'x-api-key':'[YOUR_API_KEY]'}}); \")])])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import ApiKey from '../interfaces/ApiKey'\nimport ArrivalService from '@/Common/services/ArrivalService'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport { ServiceError } from '@/Common/interfaces/ServiceError'\nimport store from '@/Common/store'\n\nclass ApiService extends ArrivalService {\n public static async FetchApiKeys(): Promise {\n let result: ApiKey[] | any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/admin/apikey/list`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async CreateApiKey(apiKey: ApiKey): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/admin/apikey`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: apiKey,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async RemoveApiKey(id: number): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'DELETE',\n url: `${baseUrl}/api/admin/apikey/${id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const serviceError: ServiceError = {\n error: error.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n}\n\nexport default ApiService\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport ApiKey from '../../Api/interfaces/ApiKey'\nimport ApiService from '../../Api/services/ApiService'\nimport AdminSetting from '../interfaces/AdminSetting'\nimport AdminService from '../services/AdminService'\n\n@Component\nexport default class AdminApi extends Vue {\n private saving: boolean = false\n private showCreateTokenForm: boolean = false\n private panel = [0]\n private newApiKey: ApiKey = {\n id: null,\n createdDateUtc: new Date(),\n token: null,\n nickname: '',\n type: 'standard',\n }\n private apiKeys: ApiKey[] = []\n private settings: AdminSetting | null = null\n\n // Methods\n public created() {\n this.getApiKeys()\n this.getSettings()\n }\n\n private async getApiKeys() {\n this.apiKeys = await ApiService.FetchApiKeys()\n }\n\n private async getSettings() {\n this.settings = await AdminService.FetchAdminSettings()\n }\n\n private async updateSettings() {\n if (this.settings) {\n await AdminService.UpdateAdminSettings(this.settings)\n await this.getSettings()\n }\n }\n\n private async addApiKey() {\n await ApiService.CreateApiKey(this.newApiKey)\n await this.getApiKeys()\n this.newApiKey.nickname = ''\n this.showCreateTokenForm = false\n }\n\n private async removeApiKey(id: number) {\n await ApiService.RemoveApiKey(id)\n await this.getApiKeys()\n }\n\n private toggleShowCreateTokenForm() {\n this.showCreateTokenForm = !this.showCreateTokenForm\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminApi.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminApi.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminApi.vue?vue&type=template&id=6c6b595b&scoped=true&\"\nimport script from \"./AdminApi.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminApi.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c6b595b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VForm,VIcon,VRow,VSimpleTable,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"admin-collections\"}},[(_vm.collections)?_c('div',{attrs:{\"id\":\"collection-list\"}},[_c('v-card',{staticClass:\"pa-2\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Collections\")]),_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(\"Click the box to view or edit a collection.\")]),_c('v-card-text',[_c('v-data-table',{attrs:{\"headers\":_vm.collectionsTableHeaders,\"items\":_vm.collections,\"items-per-page\":10,\"show-select\":\"\",\"single-select\":\"\"},on:{\"item-selected\":_vm.onCollectionSelected}})],1)],1),(_vm.currentCollection)?_c('v-card',{staticClass:\"mt-8\",attrs:{\"id\":\"collection-items\"}},[_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(_vm._s(_vm.currentCollection.name)+\" Collection\")]),_c('v-card-text',[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":true}},[_c('v-row',[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-form',[_c('v-jsf',{attrs:{\"schema\":_vm.collectionSchema},model:{value:(_vm.currentCollection),callback:function ($$v) {_vm.currentCollection=$$v},expression:\"currentCollection\"}})],1)],1),_c('v-card-actions',{staticClass:\"pt-2 pl-4 pr-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.updatingCollection},on:{\"click\":_vm.updateCollection}},[_vm._v(\" Update Collection \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1)],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(\"Collection Items\")]),_c('v-card-text',[_c('v-data-table',{attrs:{\"headers\":_vm.collectionItemsTableHeaders,\"items\":_vm.currentCollection.collectionItems,\"items-per-page\":10,\"show-select\":\"\",\"single-select\":\"\"},on:{\"item-selected\":_vm.onCollectionItemSelected}})],1)],1),(!_vm.currentCollectionItem)?_c('v-card',{staticClass:\"pa-2 mt-8\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Add New Collection Item\")]),_c('v-card-subtitle',[_vm._v(\"Complete the following information to add a new collection.\")]),_c('v-card-text',[_c('v-form',{ref:\"newCollectionForm\"},[_c('v-jsf',{attrs:{\"schema\":_vm.collectionItemSchema,\"options\":_vm.newCollectionOptions},model:{value:(_vm.newCollectionItem),callback:function ($$v) {_vm.newCollectionItem=$$v},expression:\"newCollectionItem\"}})],1)],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.addCollectionItem}},[_vm._v(\"Add Collection Item\"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1):_vm._e(),(_vm.currentCollectionItem)?_c('v-card',{staticClass:\"pa-2 mt-8\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Update Collection Item\")]),_c('v-card-subtitle',[_vm._v(\"Complete the following information to add a new collection.\")]),_c('v-card-text',[_c('v-form',{ref:\"editCollectionItemForm\"},[_c('v-jsf',{attrs:{\"schema\":_vm.collectionItemSchema,\"options\":_vm.newCollectionOptions},model:{value:(_vm.currentCollectionItem),callback:function ($$v) {_vm.currentCollectionItem=$$v},expression:\"currentCollectionItem\"}})],1)],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.updateCollectionItem}},[_vm._v(\"Update Collection Item\"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1),_c('v-btn',{attrs:{\"color\":\"error\",\"loading\":_vm.deletingCollectionItem},on:{\"click\":_vm.removeCollectionItem}},[_vm._v(\"Delete Collection Item\"),_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)],1):_vm._e()],1)],1)],1)],1)],1):_vm._e()],1):_vm._e(),(!_vm.currentCollection)?_c('v-card',{staticClass:\"pa-2 mt-8\"},[_c('v-card-title',{staticClass:\"pt-2\"},[_vm._v(\"Add New Collection\")]),_c('v-card-subtitle',[_vm._v(\"Complete the following information to add a new collection.\")]),_c('v-card-text',[_c('v-form',{ref:\"newCollectionForm\"},[_c('v-jsf',{attrs:{\"schema\":_vm.collectionSchema,\"options\":_vm.newCollectionOptions},model:{value:(_vm.newCollection),callback:function ($$v) {_vm.newCollection=$$v},expression:\"newCollection\"}})],1)],1),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"large\":\"\"},on:{\"click\":_vm.addCollection}},[_vm._v(\"Add Collection \"),_c('v-icon',[_vm._v(\"mdi-upload\")])],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport Activity from '../../Activity/interfaces/Activity'\nimport ActivityProduct from '../../Activity/interfaces/ActivityProduct'\nimport ActivityTask from '../../Activity/interfaces/ActivityTask'\nimport ActivityService from '../../Activity/services/ActivityService'\nimport { activity } from '../../Activity/store'\nimport Collection from '@/Common/interfaces/Collection'\nimport CollectionItem from '@/Common/interfaces/CollectionItem'\nimport Location from '../../Location/interfaces/location'\nimport LocationActivity from '../../Location/interfaces/LocationActivity'\nimport LocationService from '../../Location/services/LocationService'\nimport CollectionService from '@/Common/services/CollectionService'\nimport Task from '../../Task/interfaces/Task'\n\n@Component\nexport default class AdminCollections extends Vue {\n private collections: Collection[] = []\n private currentCollection: Collection | null = null\n private currentCollectionItem: CollectionItem | null = null\n private addingCollection: boolean = false\n private updatingCollection: boolean = false\n private deletingCollection: boolean = false\n private addingCollectionItem: boolean = false\n\n $refs: {\n newCollectionForm: HTMLFormElement\n }\n\n onCollectionSelected({ item: selectedCollection, value: selected }) {\n if (selectedCollection && selected) {\n const editCollection = {\n ...selectedCollection,\n }\n Vue.nextTick(() => {\n this.currentCollection = editCollection\n })\n } else {\n this.currentCollection = null\n }\n }\n\n onCollectionItemSelected({ item: selectedCollectionItem, value: selected }) {\n if (selectedCollectionItem && selected) {\n const editCollectionItem = {\n ...selectedCollectionItem,\n }\n Vue.nextTick(() => {\n this.currentCollectionItem = editCollectionItem\n })\n } else {\n this.currentCollectionItem = null\n }\n }\n\n private newCollectionOptions = {\n initialValidation: 'none',\n }\n\n private collectionSchema = {\n required: ['name'],\n properties: {\n id: {\n type: 'number',\n readOnly: true,\n 'x-display': 'hidden',\n },\n name: {\n title: 'Name',\n type: 'string',\n default: '',\n },\n collectionItems: {\n type: 'array',\n readOnly: true,\n 'x-display': 'hidden',\n items: {},\n },\n },\n }\n\n private collectionItemSchema = {\n properties: {\n id: {\n type: 'string',\n readOnly: true,\n 'x-display': 'hidden',\n },\n name: {\n title: 'Name',\n type: 'string',\n default: '',\n },\n value: {\n title: 'Value',\n type: 'string',\n default: '',\n },\n },\n }\n\n public newCollection: Collection = {\n id: 0,\n name: '',\n collectionItems: [],\n createdDateUtc: new Date(),\n }\n\n public clearedCollection = { ...this.newCollection }\n public newCollectionItem: CollectionItem = {\n id: 0,\n value: '',\n createdDateUtc: new Date(),\n name: '',\n collectionId: 0,\n }\n\n public async created() {\n await this.getCollections()\n }\n\n public async getCollections() {\n this.collections = await CollectionService.FetchCollections()\n\n const hasPassChecker = this.$store.getters.hasFeature('PassChecker')\n\n if (!hasPassChecker) {\n this.collections = this.collections.filter((c) => c.id > 2)\n }\n\n if (this.currentCollection && this.collections) {\n const thisCollection = this.collections.find((l: Collection) => l.id == this.currentCollection!.id)\n if (thisCollection) {\n this.currentCollection = thisCollection\n }\n }\n }\n\n public viewCollectionDetails(collection) {\n this.currentCollection = collection\n }\n\n private async addCollection() {\n this.addingCollection = true\n\n this.$refs.newCollectionForm.validate()\n await CollectionService.AddCollection(this.newCollection)\n await this.getCollections()\n this.newCollection = { ...this.clearedCollection }\n this.$refs.newCollectionForm.reset()\n this.addingCollection = false\n }\n\n private async updateCollection() {\n if (this.currentCollection) {\n this.updatingCollection = true\n await CollectionService.UpdateCollection(this.currentCollection)\n await this.getCollections()\n this.updatingCollection = false\n }\n }\n\n private async removeCollection() {\n if (this.currentCollection) {\n this.deletingCollection = true\n await CollectionService.DeleteCollection(this.currentCollection.id)\n await this.getCollections()\n this.deletingCollection = false\n this.currentCollection = null\n }\n }\n\n private async removeCollectionItem() {\n await CollectionService.DeleteCollectionItem(this.currentCollectionItem!.id)\n this.currentCollectionItem = null\n this.getCollections()\n }\n\n private async addCollectionItem() {\n if (this.currentCollection) {\n this.addingCollectionItem = true\n this.newCollectionItem.collectionId = this.currentCollection.id\n await CollectionService.AddCollectionItem(this.newCollectionItem)\n await this.getCollections()\n this.addingCollectionItem = false\n }\n }\n\n private async updateCollectionItem() {\n if (this.currentCollection && this.currentCollectionItem) {\n await CollectionService.UpdateCollectionItem(this.currentCollectionItem)\n this.currentCollectionItem = null\n await this.getCollections()\n }\n }\n\n get collectionsTableHeaders() {\n return [{ text: 'Name', value: 'name' }]\n }\n\n get collectionItemsTableHeaders() {\n return [\n { text: 'Name', value: 'name' },\n { text: 'Value', value: 'value' },\n ]\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminCollections.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminCollections.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminCollections.vue?vue&type=template&id=5673119b&scoped=true&\"\nimport script from \"./AdminCollections.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminCollections.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminCollections.vue?vue&type=style&index=0&id=5673119b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5673119b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VContainer,VDataTable,VForm,VIcon,VRow})\n","import Vue from 'vue'\nimport Home from './views/Home.vue'\nimport Locations from './components/AdminLocations.vue'\nimport TaskTypes from './components/AdminTaskTypes.vue'\nimport Tasks from './components/AdminTasks.vue'\nimport Activities from './components/AdminActivities.vue'\nimport Access from './components/AdminAccess.vue'\nimport Language from './components/AdminLanguage.vue'\nimport Theme from './components/AdminTheme.vue'\nimport Settings from './components/AdminGeneralSettings.vue'\nimport Reporting from './components/AdminReporting.vue'\nimport Api from './components/AdminApi.vue'\nimport Collections from './components/AdminCollections.vue'\nimport AdminService from '@/Admin/services/AdminService'\n\nconst checkAdminAccess = async (to, from, next) => {\n if (to.matched.some((record) => record.meta.requiresAdminAuth)) {\n try {\n if (!(await AdminService.IsAdminAuthenticated())) {\n next({ name: 'access-denied' })\n } else {\n next()\n }\n } catch (error) {\n next({ name: 'access-denied' })\n }\n }\n}\n\nconst routes: any[] = [\n {\n path: '/admin',\n name: 'admin-home',\n component: () => import(/* webpackChunkName: \"admin\" */ './views/Home.vue'),\n redirect: '/admin/tasks',\n meta: {\n isPublic: false,\n requiresAdminAuth: true,\n },\n beforeEnter: checkAdminAccess,\n children: [\n {\n path: '/admin/locations',\n name: 'admin-locations',\n component: Locations,\n meta: {\n title: 'Locations',\n },\n },\n {\n path: '/admin/tasktypes',\n name: 'admin-task-types',\n component: TaskTypes,\n meta: {\n title: 'Task Types',\n },\n },\n {\n path: '/admin/tasks',\n name: 'admin-tasks',\n component: Tasks,\n meta: {\n title: 'Tasks',\n },\n },\n {\n path: '/admin/activities',\n name: 'admin-activities',\n component: Activities,\n meta: {\n title: 'Activites',\n },\n },\n {\n path: '/admin/language',\n name: 'admin-language',\n component: Language,\n meta: {\n title: 'Language',\n },\n },\n {\n path: '/admin/theme',\n name: 'admin-theme',\n component: Theme,\n meta: {\n title: 'Theme',\n },\n },\n {\n path: '/admin/access',\n name: 'admin-access',\n component: Access,\n meta: {\n title: 'Access',\n },\n },\n {\n path: '/admin/settings',\n name: 'admin-settings',\n component: Settings,\n meta: {\n title: 'General',\n },\n },\n {\n path: '/admin/reporting',\n name: 'admin-reporting',\n component: Reporting,\n meta: {\n title: 'Reporting',\n },\n },\n {\n path: '/admin/api',\n name: 'admin-api',\n component: Api,\n meta: {\n title: 'API',\n },\n },\n {\n path: '/admin/collections',\n name: 'admin-collections',\n component: Collections,\n meta: {\n title: 'Collections',\n },\n },\n ],\n },\n]\n\nexport default routes\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"logout-page\"},[_c('h1',[_vm._v(\"Logging out...\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logout.vue?vue&type=template&id=340bd821&scoped=true&\"\nimport script from \"./Logout.vue?vue&type=script&lang=js&\"\nexport * from \"./Logout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logout.vue?vue&type=style&index=0&id=340bd821&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"340bd821\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loading-page\"},[_c('img',{attrs:{\"src\":\"/img/double-ring-loader.svg\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OidcCallback.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OidcCallback.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OidcCallback.vue?vue&type=template&id=7817cf84&scoped=true&\"\nimport script from \"./OidcCallback.vue?vue&type=script&lang=js&\"\nexport * from \"./OidcCallback.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OidcCallback.vue?vue&type=style&index=0&id=7817cf84&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7817cf84\",\n null\n \n)\n\nexport default component.exports","import Logout from './views/Logout.vue'\nimport OidcCallback from './views/OidcCallback.vue'\nimport SampleLoading from './views/SampleLoading.vue'\nimport { vuexOidcProcessSilentSignInCallback } from 'vuex-oidc'\n\nconst routes: any[] = [\n {\n path: '/logout',\n name: 'logout',\n component: Logout,\n meta: {\n isPublic: true,\n gtm: 'Logout',\n },\n },\n {\n path: '/oidc-callback',\n name: 'oidcCallback',\n component: OidcCallback,\n meta: {\n isPublic: true,\n },\n },\n {\n path: '/oidc-callback-error',\n name: 'oidcCallbackError',\n meta: {\n isPublic: true,\n },\n },\n {\n path: '/oidc-silent-renew',\n name: 'oidcSilentRenew',\n meta: {\n isPublic: true,\n },\n beforeEnter: () => {\n vuexOidcProcessSilentSignInCallback()\n },\n },\n]\n\nexport default routes\n","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\n\n@Component\nexport default class SetLocation extends Vue {\n @Action('location/fetchLocations')\n private fetchLocations: any\n @Action('location/setLocationByName')\n private setWithName: any\n @Action('location/setLocationById')\n private setWithId: any\n @Getter('location/locations') locations\n\n private setLocationByName(locationName: any) {\n this.setWithName(locationName)\n }\n\n private setLocationById(locationId: any) {\n this.setWithId(locationId)\n }\n\n get location() {\n return this.$route.params.locationName\n }\n\n render() {\n // dont render anything for this\n }\n\n created() {\n this.setLocation()\n }\n\n private async setLocation() {\n if (!this.locations) {\n await this.fetchLocations()\n }\n if (parseInt(this.location, 10)) {\n this.setLocationById(this.location)\n } else {\n this.setLocationByName(this.location)\n }\n this.$router.push({ name: 'home' }).catch((failure) => {\n console.log('Failure navigating after setting location:', failure)\n })\n }\n}\n","var render, staticRenderFns\nimport script from \"./SetLocation.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetLocation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f96d78d\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetLocation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetLocation.vue?vue&type=script&lang=ts&\"","import SetLocation from './components/SetLocation.vue'\n\nconst routes: any[] = [\n {\n path: '/l/:locationName',\n name: 'location',\n component: SetLocation,\n },\n]\n\nexport default routes\n","import Vue from 'vue'\nimport store from '@/Common/store/index'\nimport { vuexOidcCreateRouterMiddleware } from 'vuex-oidc'\n\nconst routes: any[] = [\n {\n path: '/home',\n name: 'home',\n meta: {\n requiresLocation: true,\n showFooter: true,\n gtm: 'Home',\n },\n component: () => import(/* webpackChunkName: \"profile\" */ './views/Home.vue'),\n },\n {\n path: '/add-family-member',\n name: 'add-family-member',\n meta: {\n showHeader: false,\n showFooter: true,\n gtm: 'Add Family Member',\n },\n component: () => import(/* webpackChunkName: \"profile\" */ './views/AddFamilyMember.vue'),\n beforeEnter: (to, from, next) => {\n if (!store.getters['profile/contacts']) {\n next({ name: 'home' })\n }\n\n next()\n },\n },\n {\n path: '/pass-checker',\n name: 'pass-checker',\n meta: {\n showHeader: false,\n showFooter: true,\n isPublic: true,\n gtm: 'Pass Checker',\n },\n component: () => import(/* webpackChunkName: \"profile\" */ './views/PassChecker.vue'),\n beforeEnter: (to, from, next) => {\n const hasPassChecker = store.getters.hasFeature('PassChecker')\n if (!hasPassChecker) {\n next({ name: 'Not Found' })\n } else {\n next()\n }\n },\n },\n {\n path: '/ble-connect',\n name: 'ble-connect',\n meta: {\n showHeader: false,\n showFooter: true,\n isPublic: false,\n gtm: 'BLE Connect',\n },\n component: () => import(/* webpackChunkName: \"profile\" */ './views/BLEConnect.vue'),\n beforeEnter: (to, from, next) => {\n const hasBLEConnect = store.getters.hasFeature('BLEConnect')\n if (!hasBLEConnect) {\n next({ name: 'Not Found' })\n } else {\n // TODO: Remove this if the isPublic flag works to make people sign in\n // if (store.getters['oidcStore/oidcIsAuthenticated']) {\n // next()\n // } else {\n // store.dispatch('oidcStore/authenticateOidcSilent')\n // if (store.getters['oidcStore/oidcIsAuthenticated']) {\n // next()\n // } else {\n // //Need to store the route we were going to so the OIDC Callback knows where to go after sign in\n // localStorage.setItem('redirectPath', 'ble-connect')\n // next({ name: 'welcome-page'})\n // }\n // }\n }\n next()\n },\n },\n {\n path: '/connect',\n name: 'connect',\n meta: {\n showHeader: false,\n showFooter: true,\n isPublic: true,\n gtm: 'BLE Connect',\n },\n component: () => import(/* webpackChunkName: \"profile\" */ './views/BLEConnect.vue'),\n beforeEnter: (to, from, next) => {\n const hasBLEConnect = store.getters.hasFeature('BLEConnect')\n if (!hasBLEConnect) {\n next({ name: 'Not Found' })\n } else {\n next()\n }\n next()\n },\n },\n]\n\nexport default routes\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-sheet',{staticClass:\"pa-4\",attrs:{\"id\":\"photoTask\",\"elevation\":\"0\"}},_vm._l((_vm.contactTasks),function(ct){return _c('v-card',{key:ct.contact.contactId,staticClass:\"contact-photo\",attrs:{\"id\":ct.contact.contactId}},[_c('v-card-title',{staticClass:\"name\"},[_vm._v(_vm._s(ct.contact.firstName)+\" \"+_vm._s(ct.contact.lastName))]),_c('v-card-text',{staticClass:\"contact-photo-content\",class:{ 'contact-photo-content__complete': ct.isComplete }},[_c('div',{staticClass:\"photo-wrapper\"},[_c('slim-cropper',{attrs:{\"id\":(\"slim_\" + (ct.contact.contactId)),\"options\":_vm.slimOptions(ct),\"contactTask\":ct,\"editPhotoHash\":ct.contact.photoHash}})],1)]),_c('v-card-actions',{staticClass:\"pa-4\"},[(ct.isComplete)?_c('v-btn',{attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){return _vm.editPhoto(ct)}}},[_vm._v(\" Update Photo \"),_c('v-icon',{attrs:{\"title\":\"Update Photo\"}},[_vm._v(\"mdi-camera-outline\")])],1):_c('v-btn',{attrs:{\"color\":\"primary\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.editPhoto(ct)}}},[_vm._v(\" Add Photo \"),_c('v-icon',{attrs:{\"title\":\"Add Photo\"}},[_vm._v(\"mdi-camera-plus-outline\")])],1)],1)],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"slim\",attrs:{\"id\":\"photo-upload\"}},[(_vm.contactTask)?_c('input',{ref:(\"file_\" + (_vm.contactTask.contact.contactId)),attrs:{\"id\":(\"file_\" + (_vm.contactTask.contact.contactId)),\"type\":\"file\",\"name\":\"slim[]\"}}):_vm._e(),_c('div',{staticClass:\"current-photo\",style:(_vm.photoStyle)})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlimCropper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlimCropper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SlimCropper.vue?vue&type=template&id=40973ad1&\"\nimport script from \"./SlimCropper.vue?vue&type=script&lang=js&\"\nexport * from \"./SlimCropper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SlimCropper.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Action, Getter } from 'vuex-class'\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport ContactTask from '../interfaces/ContactTask'\nimport GTMEvent from '@/Common/interfaces/GTMEvent'\nimport SlimCropper from './SlimCropper.vue'\nimport TaskBase from './TaskBase'\n\n@Component({\n components: {\n SlimCropper,\n },\n})\nclass PhotoTask extends TaskBase {\n // Store items\n @Action('trackEvent') trackEvent\n @Getter('oidcStore/oidcUser') user: any\n @Getter('task/currentTask') currentTask\n\n // Data Values\n public photoUploading: boolean = false\n private currentContactTask: ContactTask | null = null\n\n // Methods\n\n public slimOptions(contactTask) {\n return {\n ratio: '1:1',\n forceSize: '400,400',\n service: `/api/photo/Contact/Upload?contactId=${contactTask.contact.contactId}`,\n download: false,\n remove: false,\n upload: false,\n edit: false,\n instantEdit: true,\n push: true,\n didConfirm: this.onPhotoConfirmed,\n didUpload: this.onPhotoUpload,\n initialImage: ``,\n label: '',\n }\n }\n\n private addPhotoEvent() {\n const signatureEvent = {\n event: 'arrival_event',\n category: 'Check-In',\n action: 'Add Photo',\n noninteraction: false,\n // TODO: Add a label/value attribute to indicate new or photo update\n }\n this.trackEvent(signatureEvent as GTMEvent)\n }\n\n public onPhotoConfirmed() {\n this.photoUploading = true\n }\n\n public onPhotoUpload() {\n if (this.currentContactTask) {\n this.currentContactTask.isComplete = true\n this.addPhotoEvent()\n Vue.set(this.currentContactTask, 'isComplete', true)\n }\n this.photoUploading = false\n }\n\n private photoStyle(contact) {\n return `background-image: url(data:image/jpeg;base64,${contact.photo})`\n }\n\n private initials(contact) {\n let initials = ''\n initials += contact.firstName.charAt(0)\n initials += contact.lastName.charAt(0)\n return initials\n }\n\n private generateHash() {\n // This random hash value is used to trigger an refresh of the token when requested\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15)\n }\n\n private editPhoto(contactTask) {\n const newHash = this.generateHash()\n Vue.set(contactTask.contact, 'photoHash', newHash)\n this.currentContactTask = contactTask\n }\n}\n\nexport default PhotoTask\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoTask.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoTask.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PhotoTask.vue?vue&type=template&id=78bf4093&\"\nimport script from \"./PhotoTask.vue?vue&type=script&lang=ts&\"\nexport * from \"./PhotoTask.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PhotoTask.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VIcon,VSheet})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-sheet',{staticClass:\"pa-4\",attrs:{\"id\":\"rental-profile-task\",\"elevation\":\"0\"}},[_c('p',[_vm._v(\" Complete a rental profile for each family member. If you’ve completed one in the past, review and make changes before continuing. \")]),_vm._l((_vm.contactTasks),function(contactTask){return _c('rental-profile-form',{key:contactTask.id,attrs:{\"contactTask\":contactTask,\"profile\":contactTask.relatedObject,\"isHidden\":_vm.currentContactTask != null && _vm.currentContactTask.id != contactTask.id,\"isReadOnly\":contactTask.isReadOnly,\"isUpdating\":_vm.updating,\"enableShoeSize\":_vm.currentTask.taskType.enableShoeSize,\"enableStance\":_vm.currentTask.taskType.enableStance},on:{\"onCancelEdit\":_vm.reset,\"onCompleted\":_vm.setNextContactTask,\"onEdit\":_vm.setCurrentContactTask,\"onSkipped\":_vm.skipContactTask}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isHidden)?_c('div',{attrs:{\"id\":\"rental-profile-contact-task\"}},[(_vm.isReadOnly)?_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.contactTask.contact.firstName)+\" \"+_vm._s(_vm.contactTask.contact.lastName)+\" \")]),(!_vm.hasProfile)?_c('v-card-text',{staticClass:\"readonly-body incomplete-body\"},[_c('div',{staticClass:\"readonly-item readonly-item-text\"},[_vm._v(\"Not Completed\")]),_c('div',{staticClass:\"button-wrapper\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"rounded\":\"\"},on:{\"click\":_vm.edit}},[_vm._v(\"Update\")])],1)]):_c('v-card-text',{staticClass:\"readonly-body\"},[_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Ability\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"ski\",\"color\":\"#517994\"}})],1),_c('span',[_vm._v(_vm._s(_vm.profileAbility))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Height\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"ruler\",\"color\":\"#517994\"}})],1),_c('span',[_vm._v(_vm._s(_vm.profileHeight))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Weight\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"scale\",\"color\":\"#517994\"}})],1),_c('span',[_vm._v(_vm._s(_vm.profileWeight))])])]),(_vm.profile.shoeSize && _vm.enableShoeSize)?_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Shoe Size\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"shoe\",\"color\":\"#517994\"}})],1),_c('span',[_vm._v(_vm._s(_vm.profile.shoeSize))])])]):_vm._e(),(_vm.enableStance)?_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Stance\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"switch\",\"color\":\"#517994\"}})],1),_c('span',{domProps:{\"textContent\":_vm._s(_vm.goofy ? 'Goofy foot' : 'Regular')}})])]):_vm._e()]),_c('v-card-actions',{staticClass:\"pa-4\"},[(_vm.hasProfile)?_c('v-btn',{attrs:{\"button-type\":\"secondary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":_vm.edit}},[_vm._v(\"Update\")]):_c('v-btn',{attrs:{\"button-type\":\"primary\",\"rounded\":\"\"},on:{\"click\":_vm.edit}},[_vm._v(\"Create\")])],1)],1):_c('v-card',{staticClass:\"rental-profile-form\",attrs:{\"rounded\":\"\"}},[_c('v-card-title',{attrs:{\"id\":\"contact-information\"}},[_vm._v(\" \"+_vm._s(_vm.contactTask.contact.firstName)+\" \"+_vm._s(_vm.contactTask.contact.lastName)+\" \")]),_c('v-card-text',[_c('v-form',{ref:\"rentalprofile\"},[_c('v-select',{attrs:{\"name\":\"ability\",\"items\":_vm.abilityValues,\"placeholder\":\"Select an ability\",\"label\":\"Ability\",\"item-value\":\"listKey\",\"item-text\":\"listDescription\",\"error-messages\":_vm.getValidationErrors('selectedAbility'),\"outlined\":\"\",\"required\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.editProfile.selectedAbility),callback:function ($$v) {_vm.$set(_vm.editProfile, \"selectedAbility\", $$v)},expression:\"editProfile.selectedAbility\"}}),_c('v-card-text',[_c('div',{staticClass:\"link\"},[_c('a',{attrs:{\"href\":_vm.skierAbilityUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.skierAbilityText))])])]),_c('v-select',{attrs:{\"name\":\"height\",\"items\":_vm.heightValues,\"placeholder\":\"Select height\",\"label\":\"Height\",\"item-value\":\"listKey\",\"item-text\":\"listDescription\",\"error-messages\":_vm.getValidationErrors('selectedHeight'),\"outlined\":\"\",\"required\":\"\"},model:{value:(_vm.editProfile.selectedHeight),callback:function ($$v) {_vm.$set(_vm.editProfile, \"selectedHeight\", $$v)},expression:\"editProfile.selectedHeight\"}}),_c('v-select',{attrs:{\"name\":\"weight\",\"items\":_vm.weightValues,\"placeholder\":\"Select weight\",\"label\":\"Weight\",\"item-value\":\"listKey\",\"item-text\":\"listDescription\",\"error-messages\":_vm.getValidationErrors('selectedWeight'),\"outlined\":\"\",\"required\":\"\"},model:{value:(_vm.editProfile.selectedWeight),callback:function ($$v) {_vm.$set(_vm.editProfile, \"selectedWeight\", $$v)},expression:\"editProfile.selectedWeight\"}}),_c('div',{staticClass:\"units-conversion\"},[_c('label',[_vm._v(\"Units are \"),(_vm.isMetric)?_c('span',[_vm._v(\"metric\")]):_c('span',[_vm._v(\"imperial\")])]),_c('v-switch',{attrs:{\"label\":\"Metric\"},model:{value:(_vm.isMetric),callback:function ($$v) {_vm.isMetric=$$v},expression:\"isMetric\"}})],1),(_vm.enableShoeSize)?_c('v-text-field',{attrs:{\"type\":\"text\",\"label\":\"Shoe Size\",\"placeholder\":\"Shoe Size\",\"outlined\":\"\"},model:{value:(_vm.editProfile.shoeSize),callback:function ($$v) {_vm.$set(_vm.editProfile, \"shoeSize\", $$v)},expression:\"editProfile.shoeSize\"}}):_vm._e(),(_vm.enableStance)?_c('div',[_c('label',[_vm._v(\"Stance\")]),_c('v-switch',{attrs:{\"type\":\"text\",\"placeholder\":\"Y/N\",\"label\":\"Goofy Foot\",\"inset\":\"\",\"outlined\":\"\"},model:{value:(_vm.goofy),callback:function ($$v) {_vm.goofy=$$v},expression:\"goofy\"}})],1):_vm._e()],1)],1),_c('v-card-actions',{staticClass:\"pa-4\"},[(_vm.showSkipButton || _vm.showCancelButton)?_c('v-btn',{attrs:{\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":_vm.cancel}},[_vm._v(_vm._s(_vm.cancelLabel))]):_vm._e(),_c('v-spacer'),_c('v-btn',{class:{ 'only-button': !_vm.showCancelButton && !_vm.showSkipButton },attrs:{\"color\":\"secondary\",\"disabled\":_vm.isUpdating,\"show-loader\":_vm.isUpdating,\"block\":!_vm.showSkipButton && !_vm.showCancelButton,\"rounded\":\"\"},on:{\"click\":_vm.completeRental}},[_vm._v(_vm._s(_vm.updateLabel))])],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Action, Getter } from 'vuex-class'\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport ContactTask from '../interfaces/ContactTask'\n\n@Component\nexport default class ContactTaskBase extends Vue {\n @Prop({ required: true, default: null }) contactTask: ContactTask | any\n\n public prepare(contactTask: ContactTask) {\n // Specific implemented in task classes\n return contactTask\n }\n}\n","import RentalProfileListItem from '../interfaces/RentalProfileListItem'\n\nexport default class RentalProfile {\n ageRefs: RentalProfileListItem[]\n abilityRefs: RentalProfileListItem[]\n heightRefs: RentalProfileListItem[]\n weightRefs: RentalProfileListItem[]\n shoeSizeRefs: RentalProfileListItem[]\n shoeSize: string\n selectedAge: string\n selectedAbility: string\n selectedHeight: string\n selectedWeight: string\n selectedShoeSize: string\n selectedGoofy: string\n updateDate: Date | null\n\n constructor(profile: any) {\n this.ageRefs = profile.ageRefs\n this.abilityRefs = profile.abilityRefs\n this.heightRefs = profile.heightRefs\n this.weightRefs = profile.weightRefs\n this.shoeSizeRefs = profile.shoeSizeRefs\n this.shoeSize = profile.shoeSize\n this.selectedAge = profile.selectedAge\n this.selectedAbility = profile.selectedAbility\n this.selectedHeight = profile.selectedHeight\n this.selectedWeight = profile.selectedWeight\n this.selectedShoeSize = profile.selectedShoeSize\n this.selectedGoofy = profile.selectedGoofy\n this.updateDate = profile.updateDate\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Action, Getter } from 'vuex-class'\nimport { Component, Prop, Vue, Emit, Model, PropSync } from 'vue-property-decorator'\nimport ContactTaskBase from './ContactTaskBase'\nimport ContactTask from '../interfaces/ContactTask'\nimport TaskService from '../services/TaskService'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport RentalProfileInterface from '../interfaces/RentalProfile'\nimport AxSelect from '@/Common/components/AxSelect.vue'\nimport Icon from '@/Common/components/Icon.vue'\nimport RentalProfile from '../models/RentalProfile'\nimport { required } from 'vuelidate/lib/validators'\n\n@Component({\n components: {\n AxSelect,\n Icon,\n },\n})\nclass RentalProfileForm extends ContactTaskBase {\n @Prop({ required: true, default: false }) isReadOnly: boolean\n @Prop({ required: true, default: false }) isHidden: boolean\n @Prop({ required: true, default: false }) isUpdating: boolean\n @Prop({ required: true, default: false }) enableShoeSize: boolean\n @Prop({ required: true, default: false }) enableStance: boolean\n @Prop({ required: true, default: null }) profile: RentalProfile | null\n\n @Getter('settings/languageSettings') language\n\n protected isMetric: boolean = false\n protected editProfile: RentalProfile | null = null\n protected goofy: boolean = false\n\n created() {\n this.editProfile = new RentalProfile(this.profile)\n this.goofy = this.editProfile.selectedGoofy === 'Y'\n }\n\n validations() {\n return {\n editProfile: {\n selectedAbility: { required },\n selectedAge: { required },\n selectedHeight: { required },\n selectedWeight: { required },\n },\n }\n }\n\n private getValidationErrors(profileKey) {\n const errors: any[] = []\n if (!this.$v!.editProfile![profileKey]!.$dirty) {\n return errors\n }\n if (!this.$v!.editProfile![profileKey]!.required) {\n errors.push('This is required.')\n }\n return errors\n }\n\n private isRentalProfileComplete(profile) {\n return false\n }\n\n get hasProfile() {\n return this.profile!.selectedAbility\n }\n\n get cancelLabel() {\n return this.showSkipButton ? 'Skip' : 'Cancel'\n }\n\n get updateLabel() {\n return !this.showCancelButton && !this.showSkipButton ? 'Continue' : 'Update'\n }\n\n get showSkipButton() {\n if (!this.isRentalProfileComplete(this.editProfile) && this.contactTask.isOptional) {\n return true\n }\n return false\n }\n\n get showCancelButton() {\n return this.hasProfile\n }\n\n get profileAbility() {\n const value = this.profile!.abilityRefs.find((r) => r.listKey.toString() === this.profile!.selectedAbility)\n if (value) {\n return value.listDescription\n }\n\n return null\n }\n\n get profileHeight() {\n const value = this.profile!.heightRefs.find((r) => r.listKey.toString() === this.profile!.selectedHeight)\n if (value) {\n return value.listDescription\n }\n\n return null\n }\n\n get profileWeight() {\n const value = this.profile!.weightRefs.find((r) => r.listKey.toString() === this.profile!.selectedWeight)\n if (value) {\n return value.listDescription\n }\n\n return null\n }\n\n get profileAge() {\n const value = this.profile!.ageRefs.find((r) => r.listKey.toString() === this.profile!.selectedAge)\n if (value) {\n return value.listDescription\n }\n\n return null\n }\n\n get abilityValues() {\n return this.profile\n ? this.profile.abilityRefs\n .filter((r) => r.dinLookupValue > -1)\n .map((v) => {\n return {\n dinLookupValue: v.dinLookupValue,\n listDescription: v.listDescription,\n listKey: v.listKey.toString(),\n }\n })\n : null\n }\n\n get heightValues() {\n return this.profile\n ? this.profile.heightRefs\n .filter((r) => r.dinLookupValue > -1)\n .map((v) => {\n const heightV = v.listDescription\n const heightEngV = `${heightV\n .split('/')[0]\n .trim()\n .replace('.', `'`)\n .replace(' - ', '\" - ')\n .replace('.', `'`)}\"`\n const heightMetV = heightV.split('/')[1].trim()\n return {\n dinLookupValue: v.dinLookupValue,\n listDescription: this.isMetric ? heightMetV : heightEngV,\n listKey: v.listKey.toString(),\n }\n })\n : null\n }\n\n get weightValues() {\n return this.profile\n ? this.profile.weightRefs\n .filter((r) => r.dinLookupValue > -1)\n .map((v) => {\n const weightV = v.listDescription\n const weightEngV = weightV.split('/')[0].trim()\n const weightMetV = weightV.split('/')[1].trim()\n return {\n dinLookupValue: v.dinLookupValue,\n listDescription: this.isMetric ? weightMetV : weightEngV,\n listKey: v.listKey.toString(),\n }\n })\n : null\n }\n\n get skierAbilityUrl() {\n if (this.language && this.language.rentalProfile) {\n return this.language.rentalProfile.skierAbilityUrl\n }\n }\n\n get skierAbilityText() {\n if (this.language && this.language.rentalProfile) {\n return this.language.rentalProfile.skierAbilityText\n }\n }\n\n async completeRental() {\n this.$v!.$touch()\n\n if (!this.$v!.$error) {\n if (this.editProfile) {\n this.editProfile.selectedGoofy = this.goofy ? 'Y' : 'N'\n }\n\n // Update the related object with the information on the form\n if (this.contactTask) {\n const newRelatedObject = {\n ...this.contactTask.relatedObject,\n ...this.editProfile,\n }\n this.contactTask.relatedObject = newRelatedObject\n this.$emit('onCompleted', this.contactTask)\n }\n }\n }\n\n @Emit('onSkipped')\n async skip() {\n return this.contactTask\n }\n\n @Emit('onEdit')\n async edit() {\n return this.contactTask\n }\n\n @Emit('onCancelEdit')\n async cancel() {\n this.editProfile = new RentalProfile(this.profile)\n this.contactTask.isComplete = true\n return this.contactTask\n }\n}\n\nexport default RentalProfileForm\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RentalProfileForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RentalProfileForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RentalProfileForm.vue?vue&type=template&id=0b20c0ae&scoped=true&\"\nimport script from \"./RentalProfileForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./RentalProfileForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RentalProfileForm.vue?vue&type=style&index=0&id=0b20c0ae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b20c0ae\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VForm,VSelect,VSpacer,VSwitch,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Action, Getter } from 'vuex-class'\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport TaskBase from './TaskBase'\nimport RentalProfileForm from './RentalProfileForm.vue'\nimport ContactTask from '../interfaces/ContactTask'\nimport GTMEvent from '@/Common/interfaces/GTMEvent'\n\nVue.component('rental-profile-form', RentalProfileForm)\n\n@Component({ components: { RentalProfileForm } })\nclass RentalProfileTask extends TaskBase {\n @Action('trackEvent') trackEvent\n @Getter('task/currentTask') currentTask\n\n private currentContactTask: ContactTask | null = null\n private updating: boolean = false\n\n public created() {\n this.next()\n }\n\n private updateRentalProfileEvent(waiverTask: ContactTask) {\n const signatureEvent = {\n event: 'arrival_event',\n category: 'Check-In',\n action: 'Rental Profile',\n noninteraction: false,\n label: `${waiverTask.task.name}`,\n value: `update`,\n }\n this.trackEvent(signatureEvent as GTMEvent)\n }\n\n private async setNextContactTask(contactTask: ContactTask | null) {\n if (contactTask) {\n try {\n await this.completeContactTask(contactTask)\n this.updateRentalProfileEvent(contactTask)\n contactTask.isComplete = true\n contactTask.isReadOnly = true\n await this.next()\n } catch (error) {\n alert('ERROR CALLING API')\n }\n }\n }\n\n private async setCurrentContactTask(contactTask: ContactTask) {\n contactTask.isReadOnly = !contactTask.isReadOnly\n this.currentContactTask = contactTask\n }\n\n public reset(contactTask: ContactTask) {\n contactTask.isReadOnly = !contactTask.isReadOnly\n this.currentContactTask = null\n }\n\n private async skipContactTask(contactTask: ContactTask) {\n await this.completeContactTask(contactTask, true)\n await this.next()\n }\n\n private async next() {\n const incompleteTasks = this.contactTasks.filter((t) => t.isComplete == false)\n if (incompleteTasks.length > 0) {\n this.currentContactTask = incompleteTasks[0]\n if (this.currentContactTask) {\n this.currentContactTask.isReadOnly = !this.currentContactTask.isReadOnly\n }\n } else if (this.contactTasks.length == 0) {\n // No contacts qualify for this task. Move to the next\n this.$emit('complete-task')\n } else {\n // We have contact tasks but they are all complete.\n // Reset current contact task to indicate we are not editting any of them.\n this.currentContactTask = null\n }\n }\n}\n\nexport default RentalProfileTask\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RentalProfileTask.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RentalProfileTask.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RentalProfileTask.vue?vue&type=template&id=032efbfa&scoped=true&\"\nimport script from \"./RentalProfileTask.vue?vue&type=script&lang=ts&\"\nexport * from \"./RentalProfileTask.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RentalProfileTask.vue?vue&type=style&index=0&id=032efbfa&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"032efbfa\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VSheet})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"child-registration-tasks\"}},[_c('h1',[_vm._v(\"Complete Child Registration Profiles\")]),(_vm.firstCompletedContactTask !== undefined)?_c('div',_vm._l((_vm.contactTasks),function(contactTask){return _c('child-registration-form',{key:contactTask.id,attrs:{\"childRegProfile\":contactTask.relatedObject,\"contactTask\":contactTask,\"copyFromContactTask\":_vm.firstCompletedContactTask,\"isHidden\":_vm.currentContactTask != null && _vm.currentContactTask.id != contactTask.id,\"isReadOnly\":contactTask.isReadOnly,\"isUpdating\":_vm.updating},on:{\"onCancelEdit\":_vm.reset,\"onCompleted\":_vm.setNextContactTask,\"onEdit\":_vm.setCurrentContactTask,\"onSkipped\":_vm.skipContactTask}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isHidden && _vm.newChildRegProfile)?_c('div',{attrs:{\"id\":\"child-registration-contact-task\"}},[(_vm.isReadOnly)?_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.contactTask.contact.firstName)+\" \"+_vm._s(_vm.contactTask.contact.lastName)+\" \")]),(!_vm.hasProfile)?_c('v-card-text',{staticClass:\"readonly-body incomplete-body\"},[_c('div',{staticClass:\"readonly-item readonly-item-text\"},[_vm._v(\"Not Completed\")]),_c('div',{staticClass:\"button-wrapper\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"rounded\":\"\"},on:{\"click\":_vm.edit}},[_vm._v(\"Update\")])],1)]):_c('v-card-text',{staticClass:\"readonly-body\"},[_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Primary Contact\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"person\",\"color\":\"#517994\"}})],1),_c('span',[_vm._v(_vm._s(_vm.childRegProfile.primaryEmergencyContact))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Primary Phone #\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"phone\",\"color\":\"#517994\"}})],1),_c('span',[_vm._v(_vm._s(_vm.childRegProfile.primaryEmergencyPhone))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Alternate Contact\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"person\",\"color\":\"#517994\"}})],1),_c('span',[_vm._v(_vm._s(_vm.childRegProfile.alternateEmergencyContact1))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Secondary Phone #\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('div',{staticClass:\"icon\"},[_c('icon',{attrs:{\"type\":\"phone\",\"color\":\"#517994\"}})],1),_c('span',[_vm._v(_vm._s(_vm.childRegProfile.alternateEmergencyPhone1))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Drug Allergy\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('span',[_vm._v(_vm._s(_vm.childRegProfile.drugAllergy))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Food Allergy\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('span',[_vm._v(_vm._s(_vm.childRegProfile.foodAllergy))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Medication\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('span',[_vm._v(_vm._s(_vm.childRegProfile.medication))])])]),_c('div',{staticClass:\"readonly-item\"},[_c('span',{staticClass:\"readonly-item-title\"},[_vm._v(\"Special Condition\")]),_c('div',{staticClass:\"readonly-item-text\"},[_c('span',[_vm._v(_vm._s(_vm.childRegProfile.specialCondition))])])])]),_c('v-card-actions',{staticClass:\"pa-4\"},[(_vm.hasProfile)?_c('v-btn',{attrs:{\"button-type\":\"secondary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":_vm.edit}},[_vm._v(\"Update\")]):_c('v-btn',{attrs:{\"button-type\":\"secondary\"},on:{\"click\":_vm.edit}},[_vm._v(\"Create\")])],1)],1):_c('v-card',{staticClass:\"child-registration-form\",attrs:{\"rounded\":\"\"}},[_c('v-card-title',{attrs:{\"id\":\"contact-information\"}},[_vm._v(\" \"+_vm._s(_vm.contactTask.contact.firstName)+\" \"+_vm._s(_vm.contactTask.contact.lastName)+\" \")]),_c('v-card-text',[_c('v-form',{ref:\"childRegistrationProfile\"},[_c('v-text-field',{directives:[{name:\"focus\",rawName:\"v-focus\"}],attrs:{\"type\":\"text\",\"label\":\"Primary Emergency Contact\",\"placeholder\":\"Primary Emergency Contact\",\"error-messages\":_vm.getErrorMessages(_vm.$v.newChildRegProfile.primaryEmergencyContact, 'Primary contact name is required'),\"outlined\":\"\",\"required\":\"\"},model:{value:(_vm.newChildRegProfile.primaryEmergencyContact),callback:function ($$v) {_vm.$set(_vm.newChildRegProfile, \"primaryEmergencyContact\", $$v)},expression:\"newChildRegProfile.primaryEmergencyContact\"}}),_c('div',{staticClass:\"v-tel-input\"},[_c('label',[_vm._v(\"Primary Emergency Contact Phone\")]),_c('vue-tel-input',{class:{ 'error--text': _vm.$v.newChildRegProfile.primaryEmergencyPhone.$error },attrs:{\"dynamic-placeholder\":true,\"enabled-country-code\":false,\"enabled-flags\":false,\"dropdown-options\":_vm.telephoneDropdownOptions,\"input-options\":_vm.telephoneInputOptions},model:{value:(_vm.newChildRegProfile.primaryEmergencyPhone),callback:function ($$v) {_vm.$set(_vm.newChildRegProfile, \"primaryEmergencyPhone\", $$v)},expression:\"newChildRegProfile.primaryEmergencyPhone\"}}),_c('div',{staticClass:\"v-text-field__details\"},[_c('v-messages',{attrs:{\"color\":\"error\",\"value\":_vm.$v.newChildRegProfile.primaryEmergencyPhone.$error ? ['Primary contact phone required'] : []}})],1)],1),_c('v-text-field',{directives:[{name:\"focus\",rawName:\"v-focus\"}],attrs:{\"type\":\"text\",\"label\":\"Alternate Emergency Contact\",\"placeholder\":\"Alternate Emergency Contact\",\"error-messages\":_vm.getErrorMessages(_vm.$v.newChildRegProfile.alternateEmergencyContact1, 'Alternate contact name is required'),\"outlined\":\"\",\"required\":\"\"},model:{value:(_vm.newChildRegProfile.alternateEmergencyContact1),callback:function ($$v) {_vm.$set(_vm.newChildRegProfile, \"alternateEmergencyContact1\", $$v)},expression:\"newChildRegProfile.alternateEmergencyContact1\"}}),_c('div',{staticClass:\"v-tel-input\"},[_c('label',[_vm._v(\"Alternate Emergency Contact Phone\")]),_c('vue-tel-input',{class:{ 'error--text': _vm.$v.newChildRegProfile.alternateEmergencyPhone1.$error },attrs:{\"dynamic-placeholder\":true,\"enabled-country-code\":false,\"enabled-flags\":false,\"dropdown-options\":_vm.telephoneDropdownOptions,\"input-options\":_vm.telephoneInputOptions},model:{value:(_vm.newChildRegProfile.alternateEmergencyPhone1),callback:function ($$v) {_vm.$set(_vm.newChildRegProfile, \"alternateEmergencyPhone1\", $$v)},expression:\"newChildRegProfile.alternateEmergencyPhone1\"}}),_c('div',{staticClass:\"v-text-field__details\"},[_c('v-messages',{attrs:{\"color\":\"error\",\"value\":_vm.$v.newChildRegProfile.alternateEmergencyPhone1.$error ? ['Alternate contact phone required'] : []}})],1)],1),_c('label',[_vm._v(\"Drug Allergy\")]),_c('v-textarea',{attrs:{\"outlined\":\"\"},on:{\"focus\":function($event){return _vm.clearNone('drugAllergy')},\"blur\":function($event){return _vm.addNone('drugAllergy')}},model:{value:(_vm.newChildRegProfile.drugAllergy),callback:function ($$v) {_vm.$set(_vm.newChildRegProfile, \"drugAllergy\", $$v)},expression:\"newChildRegProfile.drugAllergy\"}}),_c('label',[_vm._v(\"Food Allergy\")]),_c('v-textarea',{attrs:{\"outlined\":\"\"},on:{\"focus\":function($event){return _vm.clearNone('foodAllergy')},\"blur\":function($event){return _vm.addNone('foodAllergy')}},model:{value:(_vm.newChildRegProfile.foodAllergy),callback:function ($$v) {_vm.$set(_vm.newChildRegProfile, \"foodAllergy\", $$v)},expression:\"newChildRegProfile.foodAllergy\"}}),_c('label',[_vm._v(\"Medication\")]),_c('v-textarea',{attrs:{\"outlined\":\"\"},on:{\"focus\":function($event){return _vm.clearNone('medication')},\"blur\":function($event){return _vm.addNone('medication')}},model:{value:(_vm.newChildRegProfile.medication),callback:function ($$v) {_vm.$set(_vm.newChildRegProfile, \"medication\", $$v)},expression:\"newChildRegProfile.medication\"}}),_c('label',[_vm._v(\"Special Condition\")]),_c('v-textarea',{attrs:{\"type\":\"text\",\"outlined\":\"\"},on:{\"focus\":function($event){return _vm.clearNone('specialCondition')},\"blur\":function($event){return _vm.addNone('specialCondition')}},model:{value:(_vm.newChildRegProfile.specialCondition),callback:function ($$v) {_vm.$set(_vm.newChildRegProfile, \"specialCondition\", $$v)},expression:\"newChildRegProfile.specialCondition\"}})],1),(this.$v.$error)?_c('p',{staticClass:\"error--text\"},[_vm._v(\"Missing child registration information. See above.\")]):_vm._e()],1),_c('v-card-actions',{staticClass:\"pa-4\"},[(_vm.showSkipButton || _vm.showCancelButton)?_c('v-btn',{attrs:{\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":_vm.cancel}},[_vm._v(_vm._s(_vm.cancelLabel))]):_vm._e(),_c('v-spacer'),_c('v-btn',{class:{ 'only-button': !_vm.showCancelButton && !_vm.showSkipButton },attrs:{\"color\":\"secondary\",\"disabled\":_vm.isUpdating,\"show-loader\":_vm.isUpdating,\"block\":!_vm.showSkipButton && !_vm.showCancelButton,\"rounded\":\"\"},on:{\"click\":_vm.completeRegistration}},[_vm._v(_vm._s(_vm.updateLabel))])],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class ChildRegProfile {\n specialCondition: string\n medication: string\n foodAllergy: string\n drugAllergy: string\n alternateEmergencyPhone1: any\n alternateEmergencyContact1: any\n primaryEmergencyPhone: any\n primaryEmergencyContact: any\n dateOfBirth: Date\n contactId: string\n firstName: string\n lastName: string\n age: number\n imageUrl: string\n isHeadOfHouseHold: boolean\n isSelected: boolean\n parentContactId: string\n\n constructor(profile: any) {\n this.specialCondition = profile.specialCondition\n this.medication = profile.medication\n this.foodAllergy = profile.foodAllergy\n this.drugAllergy = profile.drugAllergy\n this.alternateEmergencyPhone1 = profile.alternateEmergencyPhone1\n this.alternateEmergencyContact1 = profile.alternateEmergencyContact1\n this.primaryEmergencyPhone = profile.primaryEmergencyPhone\n this.primaryEmergencyContact = profile.primaryEmergencyContact\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Action, Getter } from 'vuex-class'\nimport { Component, Prop, Vue, Emit } from 'vue-property-decorator'\nimport ContactTaskBase from './ContactTaskBase'\nimport ContactTask from '../interfaces/ContactTask'\nimport TaskService from '../services/TaskService'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport Contact from '@/Common/interfaces/Contact'\nimport ChildRegProfile from '../models/ChildRegProfile'\nimport ChildRegProfileInterface from '../interfaces/ChildRegProfile'\nimport Icon from '@/Common/components/Icon.vue'\nimport { required } from 'vuelidate/lib/validators'\nimport { VueTelInput } from 'vue-tel-input'\n\n@Component({\n components: {\n Icon,\n VueTelInput,\n },\n})\nclass ChildRegistrationForm extends ContactTaskBase {\n @Prop() childRegProfile: ChildRegProfileInterface | null\n @Prop() copyFromContactTask: ContactTask | null\n @Prop({ required: true, default: false }) isHidden: boolean\n @Prop({ required: true, default: false }) isReadOnly: boolean\n @Prop({ required: true, default: false }) isUpdating: boolean\n\n @Getter('oidcStore/oidcUser') user\n\n // Data Values\n private newChildRegProfile: ChildRegProfile | null = null\n private defaultTextValue = 'None'\n\n public created() {\n const initialChildRegProfile = {\n ...this.childRegProfile,\n primaryEmergencyContact: `${this.user.given_name} ${this.user.family_name}`,\n }\n this.newChildRegProfile = new ChildRegProfile(initialChildRegProfile)\n }\n\n validations() {\n return {\n newChildRegProfile: {\n primaryEmergencyContact: { required },\n primaryEmergencyPhone: { required },\n alternateEmergencyContact1: { required },\n alternateEmergencyPhone1: { required },\n },\n }\n }\n\n get hasProfile() {\n return this.childRegProfile && this.childRegProfile.primaryEmergencyContact\n }\n\n get telephoneDropdownOptions() {\n return { disabledDialCode: false, tabindex: -1 }\n }\n\n get telephoneInputOptions() {\n return { showDialCode: false, tabindex: 0 }\n }\n\n // Computed Values\n get showSkipButton() {\n if (!this.hasProfile && this.contactTask.isOptional) {\n return true\n }\n return false\n }\n\n get showCancelButton() {\n return this.hasProfile\n }\n\n get cancelLabel() {\n return this.showSkipButton ? 'Skip' : 'Cancel'\n }\n\n get updateLabel() {\n return !this.showCancelButton && !this.showSkipButton ? 'Continue' : 'Update'\n }\n\n // Methods\n @Emit('onCompleted')\n async completeRegistration() {\n if (!this.newChildRegProfile!.drugAllergy) {\n this.newChildRegProfile!.drugAllergy = this.defaultTextValue\n }\n if (!this.newChildRegProfile!.foodAllergy) {\n this.newChildRegProfile!.foodAllergy = this.defaultTextValue\n }\n if (!this.newChildRegProfile!.medication) {\n this.newChildRegProfile!.medication = this.defaultTextValue\n }\n if (!this.newChildRegProfile!.specialCondition) {\n this.newChildRegProfile!.specialCondition = this.defaultTextValue\n }\n\n this.$v!.$touch()\n\n // No Errors\n if (!this.$v!.$error) {\n // Update the related object with the information on the form\n if (this.contactTask) {\n const newRelatedObject = {\n ...this.contactTask.relatedObject,\n ...this.newChildRegProfile,\n }\n this.contactTask.relatedObject = newRelatedObject\n\n return this.contactTask\n }\n }\n\n return null\n }\n\n @Emit('onSkipped')\n async skip() {\n this.newChildRegProfile = new ChildRegProfile(this.childRegProfile)\n return this.contactTask\n }\n\n @Emit('onEdit')\n async edit() {\n return this.contactTask\n }\n\n @Emit('onCancelEdit')\n async cancel() {\n this.newChildRegProfile = new ChildRegProfile(this.childRegProfile)\n return this.contactTask\n }\n\n private getErrorMessages(vuelidateObject, message) {\n return vuelidateObject.$error ? [`${message}`] : []\n }\n\n private clearNone(key) {\n if (!this.newChildRegProfile![key] || this.newChildRegProfile![key].toUpperCase() === 'NONE') {\n Vue.set(this.newChildRegProfile!, key, '')\n }\n }\n\n private addNone(key) {\n if (!this.newChildRegProfile![key]) {\n Vue.set(this.newChildRegProfile!, key, 'None')\n }\n }\n\n private dataChanged() {\n // If any of the data on the screen was populated, then\n if (\n this.newChildRegProfile!.primaryEmergencyContact ||\n this.newChildRegProfile!.primaryEmergencyPhone ||\n this.newChildRegProfile!.alternateEmergencyContact1 ||\n this.newChildRegProfile!.alternateEmergencyPhone1 ||\n this.newChildRegProfile!.drugAllergy ||\n this.newChildRegProfile!.foodAllergy ||\n this.newChildRegProfile!.medication ||\n this.newChildRegProfile!.specialCondition\n ) {\n return true\n }\n return false\n }\n}\n\nexport default ChildRegistrationForm\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildRegistrationForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildRegistrationForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChildRegistrationForm.vue?vue&type=template&id=8b93b7ee&scoped=true&\"\nimport script from \"./ChildRegistrationForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChildRegistrationForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChildRegistrationForm.vue?vue&type=style&index=0&id=8b93b7ee&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8b93b7ee\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VMessages } from 'vuetify/lib/components/VMessages';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VForm,VMessages,VSpacer,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Action } from 'vuex-class'\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport TaskBase from './TaskBase'\nimport ContactTask from '../interfaces/ContactTask'\nimport ChildRegistrationForm from './ChildRegistrationForm.vue'\nimport ContactTaskGrouping from '../interfaces/ContactTaskGrouping'\nimport GTMEvent from '@/Common/interfaces/GTMEvent'\n\nVue.component('child-registration-form', ChildRegistrationForm)\n\n@Component({ components: { ChildRegistrationForm } })\nclass ChildRegistrationTask extends TaskBase {\n @Action('trackEvent') trackEvent\n\n public currentContactTask: ContactTask | null = null\n\n public created() {\n this.next()\n }\n\n private updating: boolean = false\n\n private updateChildRegistrationEvent(waiverTask: ContactTask) {\n const signatureEvent = {\n event: 'arrival_event',\n category: 'Check-In',\n action: 'Child Registration',\n noninteraction: false,\n label: `${waiverTask.task.name}`,\n value: `update`,\n }\n this.trackEvent(signatureEvent as GTMEvent)\n }\n\n private async setNextContactTask(contactTask: ContactTask | null) {\n if (contactTask) {\n try {\n this.updating = true\n await this.completeContactTask(contactTask)\n this.updateChildRegistrationEvent(contactTask)\n contactTask.isComplete = true\n contactTask.isReadOnly = true\n window.scrollTo(0, 0)\n await this.next()\n this.updating = false\n } catch (error) {\n alert('ERROR CALLING API')\n }\n }\n }\n\n private async setCurrentContactTask(contactTask: ContactTask) {\n contactTask.isReadOnly = !contactTask.isReadOnly\n this.currentContactTask = contactTask\n }\n\n public reset(contactTask: ContactTask) {\n contactTask.isReadOnly = !contactTask.isReadOnly\n this.currentContactTask = null\n }\n\n public get firstCompletedContactTask() {\n const completeContactTasks = this.contactTasks.filter((t) => t.isComplete == true)\n\n if (completeContactTasks.length > 0) {\n return completeContactTasks[0]\n }\n\n return null\n }\n\n private async skipContactTask(contactTask: ContactTask) {\n await this.completeContactTask(contactTask, true)\n await this.next()\n }\n\n private async next() {\n const incompleteTasks = this.contactTasks.filter((t) => t.isComplete == false)\n if (incompleteTasks.length > 0) {\n this.currentContactTask = incompleteTasks[0]\n if (this.currentContactTask) {\n this.currentContactTask.isReadOnly = !this.currentContactTask.isReadOnly\n }\n } else if (this.contactTasks.length == 0) {\n // No contacts qualify for this task. Move to the next\n this.$emit('complete-task')\n } else {\n // We have contact tasks but they are all complete.\n // Reset current contact task to indicate we are not editting any of them.\n this.currentContactTask = null\n }\n }\n}\n\nexport default ChildRegistrationTask\n","enum TaskType {\n Waiver = 1,\n RentalProfile = 2,\n ChildRegistrationProfile = 3,\n Photo = 4,\n}\nexport default TaskType\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildRegistrationTask.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildRegistrationTask.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChildRegistrationTask.vue?vue&type=template&id=2b28f574&scoped=true&\"\nimport script from \"./ChildRegistrationTask.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChildRegistrationTask.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChildRegistrationTask.vue?vue&type=style&index=0&id=2b28f574&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b28f574\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"checkIn\"}},[(_vm.currentTask)?[_c('v-container',[_c('v-row',[_c('v-spacer'),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('router-view',{attrs:{\"contactTasks\":_vm.currentContactTasks},on:{\"complete-task\":_vm.onCompleteTask}}),_c('div',{staticClass:\"button-wrapper\"},[(_vm.showCompleteButton)?_c('v-btn',{attrs:{\"color\":\"primary\",\"rounded\":\"\"},on:{\"click\":_vm.onCompleteTask}},[_vm._v(\"Complete\")]):_vm._e()],1)],1),_c('v-spacer')],1)],1)]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Action, Getter, Mutation } from 'vuex-class'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { ServiceError } from '@/Common/interfaces/ServiceError'\nimport ChildRegistrationTask from '../components/ChildRegistrationTask.vue'\nimport ContactTask from '../interfaces/ContactTask'\nimport LocationModel from '../../Location/models/Location'\nimport PhotoTask from '../components/PhotoTask.vue'\nimport RentalProfileTask from '../components/RentalProfileTask.vue'\nimport TaskService from '../../Task/services/TaskService'\nimport WaiverTask from '../components/WaiverTask.vue'\nimport type Task from '../interfaces/Task'\nimport type ContactTaskGrouping from '../interfaces/ContactTaskGrouping'\nimport TaskType from '../enums/TaskTypeEnum'\n\n@Component({\n components: {\n WaiverTask,\n PhotoTask,\n ChildRegistrationTask,\n RentalProfileTask,\n },\n})\nexport default class CheckIn extends Vue {\n private currentTaskIndex: number = 0\n private allTasksComplete: boolean = false\n private TaskTypeCol = {\n 1: 'Waiver',\n 2: 'RentalProfile',\n 3: 'ChildRegistration',\n 4: 'Photo',\n }\n\n @Action('task/advanceTask') advanceTask\n @Action('task/completeCurrentTask') completeCurrentTask\n @Getter('task/contactTasks') contactTasks: ContactTaskGrouping\n @Getter('task/currentTask') currentTask\n\n @Watch('currentTask')\n onPropertyChanged(value: Task, oldValue: Task) {\n if (!value && oldValue) {\n this.$router.push({ name: 'checkInComplete' }).catch(() => {\n // .. Nothing yet\n })\n }\n }\n\n @Watch('currentTaskType', { immediate: true })\n onTaskTypeChanged(value: string, oldValue: string) {\n if (value) {\n if (this.$route.name == 'checkIn') {\n this.$router.replace({ name: `checkin-${value}` })\n } else {\n this.$router.push({ name: `checkin-${value}` }).catch(() => {\n // Nothing yet\n })\n }\n }\n }\n\n serviceError: ServiceError | null = null\n\n get currentTaskType() {\n if (this.currentTask && this.currentTask.taskTypeId) {\n const typeId = this.currentTask.taskTypeId\n return `${this.TaskTypeCol[typeId]}`\n } else {\n return null\n }\n }\n\n get currentTaskComponent() {\n const typeId = this.currentTask.taskTypeId\n return `${this.TaskTypeCol[typeId]}Task`\n }\n\n get showCompleteButton() {\n if (\n this.currentContactTasks!.filter((t) => (t.isComplete || t.isOptional) && t.isReadOnly).length ==\n this.currentContactTasks!.length\n ) {\n return true\n }\n\n return false\n }\n\n // Computed property to return only those contact tasks for the current task ID\n get currentContactTasks() {\n if (this.contactTasks) {\n switch (this.currentTask.taskTypeId) {\n case TaskType.Photo: {\n return this.contactTasks.photoContactTasks\n break\n }\n case TaskType.ChildRegistrationProfile: {\n return this.contactTasks.childRegistrationContactTasks\n break\n }\n case TaskType.RentalProfile: {\n return this.contactTasks.rentalProfileContactTasks\n break\n }\n case TaskType.Waiver: {\n if (this.contactTasks && this.contactTasks.waiverContactTasks) {\n return this.contactTasks.waiverContactTasks.filter(\n (ct) => ct.taskId == this.currentTask.id && !ct.isComplete\n )\n }\n break\n }\n default: {\n return []\n break\n }\n }\n }\n }\n\n private onCompleteTask() {\n this.advanceTask()\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckIn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckIn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckIn.vue?vue&type=template&id=bbe8f146&scoped=true&\"\nimport script from \"./CheckIn.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckIn.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckIn.vue?vue&type=style&index=0&id=bbe8f146&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bbe8f146\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VRow,VSpacer})\n","import Vue from 'vue'\nimport PhotoTask from '../Task/components/PhotoTask.vue'\nimport RentalProfileTask from '../Task/components/RentalProfileTask.vue'\nimport ChildRegistrationTask from '../Task/components/ChildRegistrationTask.vue'\nimport CheckIn from './views/CheckIn.vue'\nimport store from '../Common/store/index'\n\nconst routes: any[] = [\n {\n path: '/checkin',\n name: 'checkIn',\n meta: {\n title: 'Check In',\n description: 'Check In',\n showHeader: true,\n hidePageBackground: true,\n gtm: 'Check-In',\n },\n props: true,\n component: CheckIn,\n beforeEnter: (to, from, next) => {\n if (!store.getters['task/contactTasks']) {\n next({ name: 'home' })\n } else {\n next()\n }\n },\n children: [\n {\n path: '/checkin/photo',\n component: PhotoTask,\n name: 'checkin-Photo',\n meta: {\n title: 'Check In',\n description: 'Photo',\n showHeader: true,\n hidePageBackground: true,\n gtm: 'Photo',\n },\n beforeEnter: (to, from, next) => {\n store.dispatch('task/setCurrentTaskByRoute', to.name)\n next()\n },\n },\n {\n path: '/checkin/waiver',\n component: () => import(/* webpackChunkName: \"checkIn\" */ '../Task/components/WaiverTask.vue'),\n name: 'checkin-Waiver',\n props: true,\n meta: {\n title: 'Check In',\n description: 'Waivers',\n showHeader: false,\n hidePageBackground: true,\n gtm: 'Waiver',\n },\n beforeEnter: (to, from, next) => {\n store.dispatch('task/setCurrentTaskByRoute', to.name)\n next()\n },\n },\n {\n path: '/checkin/rentalprofile',\n component: RentalProfileTask,\n name: 'checkin-RentalProfile',\n props: true,\n meta: {\n title: 'Check In',\n description: 'Rental Info',\n showHeader: true,\n hidePageBackground: true,\n gtm: 'Rental Profile',\n },\n beforeEnter: (to, from, next) => {\n store.dispatch('task/setCurrentTaskByRoute', to.name)\n next()\n },\n },\n {\n path: '/checkin/childregistration',\n component: ChildRegistrationTask,\n name: 'checkin-ChildRegistration',\n props: true,\n meta: {\n title: 'Check In',\n description: 'Child Registration',\n showHeader: true,\n hidePageBackground: true,\n gtm: 'Child Registration',\n },\n beforeEnter: (to, from, next) => {\n store.dispatch('task/setCurrentTaskByRoute', to.name)\n next()\n },\n },\n ],\n },\n {\n path: '/checkinComplete',\n name: 'checkInComplete',\n component: () => import(/* webpackChunkName: \"checkIn\" */ './views/CheckInComplete.vue'),\n meta: {\n title: 'Check In',\n description: 'Complete',\n showHeader: false,\n hidePageBackground: false,\n gtm: 'Check-In Complete',\n },\n },\n]\n\nexport default routes\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"view-welcome\"}},[_c('v-container',[_c('v-row',[_c('v-spacer'),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"2\"}},[_c('div',{staticClass:\"logo\",style:(_vm.logoStyle)}),_c('h1',{class:_vm.titleClasses,style:(_vm.titleStyle),domProps:{\"textContent\":_vm._s(_vm.language.application.title)}}),_c('h2',{staticClass:\"subhead\",domProps:{\"textContent\":_vm._s(_vm.language.welcome.title)}}),_c('p',{domProps:{\"textContent\":_vm._s(_vm.language.welcome.description)}}),_c('v-btn',{staticClass:\"mb-4\",attrs:{\"color\":\"primary\",\"loading\":_vm.signingIn,\"large\":\"\"},on:{\"click\":_vm.onSignIn}},[_vm._v(\" \"+_vm._s(_vm.language.welcome.signInButton)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1),_c('p',{staticClass:\"note\",domProps:{\"textContent\":_vm._s(_vm.language.welcome.signInNote)}})],1),_c('v-spacer')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Getter, Mutation } from 'vuex-class'\n\n@Component\nexport default class Welcome extends Vue {\n @Getter('settings/theme') theme\n @Getter('settings/languageSettings') language\n\n public signingIn: boolean = false\n\n public onSignIn() {\n this.signingIn = true\n this.$router.push({ name: 'home' }).catch(() => {\n // ... No catch response yet\n })\n }\n\n get logoStyle() {\n if (this.theme && this.theme.general && this.theme.general.logoUrl && this.theme.general.logoWelcomeWidth) {\n return `background-image: url('${this.theme.general.logoUrl}');width: ${this.theme.general.logoWelcomeWidth}px;`\n }\n\n return ''\n }\n\n get titleClasses() {\n const classes: string[] = []\n if (this.theme && this.theme.general && this.theme.general.showArrivalTitleAsImage) {\n classes.push('bgImage')\n }\n return classes.join(' ')\n }\n\n get titleStyle() {\n if (this.theme && this.theme.general && this.theme.general.showArrivalTitleAsImage) {\n return `background-image: url('${this.theme.general.arrivalTitleImageUrl}');`\n }\n\n return ''\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Welcome.vue?vue&type=template&id=21bb2bf0&scoped=true&\"\nimport script from \"./Welcome.vue?vue&type=script&lang=ts&\"\nexport * from \"./Welcome.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Welcome.vue?vue&type=style&index=0&id=21bb2bf0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21bb2bf0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"notFound\"}},[_c('v-container',{attrs:{\"max-width\":\"600\"}},[_c('v-row',[_c('v-spacer'),_c('v-col',{attrs:{\"md\":\"8\"}},[_c('img',{attrs:{\"src\":\"/img/not-found.svg\",\"alt\":\"404 Not Found\"}}),_c('h1',[_c('span',{staticClass:\"large\"},[_vm._v(\"Ooops\")]),_c('span',{staticClass:\"small\"},[_vm._v(\"404 - Page Not Found\")])])]),_c('v-spacer')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class NotFound extends Vue {}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotFound.vue?vue&type=template&id=323ca5c5&scoped=true&\"\nimport script from \"./NotFound.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotFound.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotFound.vue?vue&type=style&index=0&id=323ca5c5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"323ca5c5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"accessDenied\"}},[_c('v-container',{attrs:{\"max-width\":\"600\"}},[_c('v-row',[_c('v-spacer'),_c('v-col',{attrs:{\"md\":\"8\"}},[_c('img',{attrs:{\"src\":\"/img/access-denied.svg\",\"alt\":\"Access Denied\"}}),_c('h1',[_vm._v(\"You do not have access to this resource\")])]),_c('v-spacer')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class AccessDenied extends Vue {}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessDenied.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessDenied.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccessDenied.vue?vue&type=template&id=2f39f54d&scoped=true&\"\nimport script from \"./AccessDenied.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccessDenied.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccessDenied.vue?vue&type=style&index=0&id=2f39f54d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f39f54d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow,VSpacer})\n","import { vuexOidcCreateRouterMiddleware } from 'vuex-oidc'\nimport About from '../views/About.vue'\nimport AdminRoutes from '@/Admin/routes'\nimport AuthenticationRoutes from '@/Authentication/routes'\nimport goTo from 'vuetify/es5/services/goto'\nimport LocationRoutes from '@/Location/routes'\nimport ProfileRoutes from '@/Profile/routes'\nimport Router from 'vue-router'\nimport store from '../store/index'\nimport TaskRoutes from '@/Task/routes'\nimport Vue from 'vue'\nimport Welcome from '../views/Welcome.vue'\nimport NotFound from '../views/NotFound.vue'\nimport AccessDenied from '../views/AccessDenied.vue'\n\nVue.use(Router)\n\nconst router = new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n scrollBehavior: (to, from, savedPosition) => {\n let scrollTo: any = 0\n\n if (to.hash) {\n scrollTo = to.hash\n } else if (savedPosition) {\n scrollTo = savedPosition.y\n }\n\n return goTo(scrollTo)\n },\n routes: [\n {\n path: '/',\n name: 'welcome',\n component: Welcome,\n meta: {\n isPublic: true,\n gtm: 'Welcome',\n },\n props: true,\n beforeEnter: (to, from, next) => {\n if (store.getters['oidcStore/oidcIsAuthenticated']) {\n next({ name: 'home' })\n } else {\n store.dispatch('oidcStore/authenticateOidcSilent')\n if (store.getters['oidcStore/oidcIsAuthenticated']) {\n next({ name: 'home' })\n } else {\n next({ name: 'welcome-page' })\n }\n }\n },\n },\n {\n path: '/welcome',\n name: 'welcome-page',\n component: Welcome,\n meta: {\n isPublic: true,\n gtm: 'Welcome',\n },\n },\n {\n path: '/about',\n name: 'about',\n component: About,\n meta: {\n isPublic: true,\n gtm: 'About',\n },\n },\n {\n path: '*',\n name: 'Not Found',\n component: NotFound,\n meta: {\n isPublic: true,\n gtm: 'Page Not Found',\n },\n },\n {\n path: '/access-denied',\n name: 'access-denied',\n component: AccessDenied,\n meta: {\n isPublic: true,\n gtm: 'Access Denied',\n },\n },\n ...AuthenticationRoutes,\n ...LocationRoutes,\n ...ProfileRoutes,\n ...TaskRoutes,\n ...AdminRoutes,\n ],\n})\n// Do not change the beforeEach ... required for OIDC\nrouter.beforeEach(vuexOidcCreateRouterMiddleware(store, 'oidcStore'))\nrouter.beforeResolve((to, from, next) => {\n // Do any navigation guards here that you need global across routes\n next()\n})\n\nexport default router\n","import { format } from 'date-fns'\n\nexport default (date: Date) => {\n return format(new Date(date), 'M/d/yyyy')\n}\n","import Vue from 'vue'\nimport Vuetify from 'vuetify/lib'\n\nVue.use(Vuetify)\n\nconst options = {\n theme: {\n options: {\n customProperties: true,\n cspNonce: 'dQw4w9WgXcQ',\n variations: false,\n },\n },\n}\n\nexport default new Vuetify(options)\n","import '@/Common/utils/registerComponentHooks'\nimport 'core-js/stable'\nimport 'regenerator-runtime/runtime'\nimport '@/Common/plugins/axios'\nimport '@fortawesome/fontawesome-free/css/all.css'\nimport '@fortawesome/fontawesome-free/js/all.js'\nimport './plugins/vuetify-mask'\n\nimport {\n browserName,\n browserVersion,\n isAndroid,\n isChrome,\n isEdge,\n isFirefox,\n isIOS,\n isMobile,\n isOpera,\n isSafari,\n osVersion,\n} from 'mobile-device-detect'\n\nimport App from './App.vue'\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web'\nimport SettingsService from '@/Settings/services/SettingsService'\nimport Vue from 'vue'\nimport VueFocus from './Common/directives/vfocus'\nimport VueGtm from 'vue-gtm'\nimport Vuelidate from 'vuelidate'\nimport dateFilter from '@/Common/filters/date.filter'\nimport device from 'vue-device-detector'\nimport firstLetterFilter from '@/Common/filters/firstLetter.filter'\nimport longDateFilter from './Common/filters/long.date.filter'\nimport router from '@/Common/router/router'\nimport shortDateFilter from './Common/filters/short.date.filter'\nimport store from '@/Common/store/index'\nimport vuetify from './plugins/vuetify'\nimport { vuexOidcCreateStoreModule } from 'vuex-oidc'\n\nVue.config.productionTip = false\nconst isProduction = process.env.NODE_ENV === 'production'\n\nVue.use(Vuelidate).use(device)\n\nfunction changeFavicon({ src, highResSrc = null }) {\n const documentHead = document.querySelector('head')\n\n const etcIcons = [{ rel: 'apple-touch-icon' }, { rel: 'apple-touch-startup-image' }, { rel: 'shortcut icon' }]\n\n etcIcons.forEach((i) => {\n const setFavicon = document.createElement('link')\n setFavicon.setAttribute('rel', i.rel)\n setFavicon.setAttribute('href', src)\n documentHead?.appendChild(setFavicon)\n })\n}\n\n// Register a global custom directive called `v-focus`\nVue.directive('focus', VueFocus)\nSettingsService.FetchSettings().then((settings) => {\n const languageSettings = JSON.parse(settings.languageSettings)\n const themeSettings = JSON.parse(settings.themeSettings)\n const cookieConsentScript = settings.cookieConsentScript\n const cookieConsentStyles = settings.cookieConsentStyles\n SettingsService.ApplyCookieConsent(cookieConsentScript,cookieConsentStyles)\n SettingsService.ApplyTheme(themeSettings)\n document.title = languageSettings.application ? languageSettings.application.title || 'Arrival' : 'Arrival'\n const favicon =\n themeSettings.theme && themeSettings.theme.general && themeSettings.theme.general.favicon\n ? themeSettings.theme.general.favicon\n : '/favicon-32x32.png'\n changeFavicon({ src: favicon })\n store.commit('setDestination', settings.destination)\n store.commit('setFeatures', settings.enabledFeatures)\n store.commit('setExportKey', settings.exportKey)\n const oidcSettings = settings.frontEndSettings.oidcSettings\n const isDevelopment = settings.environment && settings.environment.toUpperCase() === 'DEVELOPMENT'\n const tagIds: string[] = []\n\n if (settings.aspenwareGoogleAnalyticsTagId) {\n tagIds.push(settings.aspenwareGoogleAnalyticsTagId)\n }\n\n if (settings.clientGoogleAnalyticsTagId) {\n tagIds.push(settings.clientGoogleAnalyticsTagId)\n }\n\n Vue.filter('date', dateFilter)\n Vue.filter('shortDate', shortDateFilter)\n Vue.filter('longDate', longDateFilter)\n Vue.filter('firstLetter', firstLetterFilter)\n\n try {\n if (tagIds && tagIds.length > 0) {\n Vue.use(VueGtm, {\n id: tagIds, // Your GTM single container ID or array of container ids ['GTM-xxxxxx', 'GTM-yyyyyy']\n defer: false, // defaults to false. Script can be set to `defer` to increase page-load-time at the cost of less accurate results (in case visitor leaves before script is loaded, which is unlikely but possible)\n enabled: true, // defaults to true. Plugin can be disabled by setting this to false for Ex: enabled: !!GDPR_Cookie (optional)\n debug: isDevelopment, // Whether or not display console logs debugs (optional)\n loadScript: true, // Whether or not to load the GTM Script (Helpful if you are including GTM manually, but need the dataLayer functionality in your components) (optional)\n vueRouter: router, // Pass the router instance to automatically sync with router (optional)\n ignoredViews: ['oidcCallback', 'oidcCallbackError'], // Don't trigger events for specified router names (case insensitive) (optional)\n trackOnNextTick: false, // Whether or not call trackView in Vue.nextTick\n })\n }\n } catch (error) {\n console.log('Google Analytics ID Is Invalid')\n }\n\n const browserInfo = {\n isMobile,\n isAndroid,\n isIOS,\n isChrome,\n isSafari,\n isFirefox,\n isOpera,\n isEdge,\n osVersion: `${osVersion}`,\n browserVersion: `${browserVersion}`,\n browserName: `${browserName}`,\n }\n store.commit('setBrowserInfo', browserInfo)\n\n const logUser = (user) => {\n console.log('OIDC user is loaded:', user)\n }\n\n const oidcCallbacks = isDevelopment\n ? {\n userLoaded: (user) => logUser(user),\n userUnloaded: () => console.log('OIDC user is unloaded'),\n accessTokenExpiring: () => console.log('Access token will expire'),\n accessTokenExpired: () => console.log('Access token did expire'),\n silentRenewError: () => console.log('OIDC user is unloaded'),\n userSignedOut: () => console.log('OIDC user is signed out'),\n oidcError: (payload) => console.log(`An error occured at ${payload!.context}:`, payload!.error),\n automaticSilentRenewError: (payload) => console.log('Automatic silent renew failed.', payload!.error),\n }\n : {}\n\n const oidcStore = vuexOidcCreateStoreModule(\n oidcSettings,\n { namespaced: true, dispatchEventsOnWindow: true },\n oidcCallbacks\n )\n store.registerModule('oidcStore', oidcStore)\n\n const appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: settings.applicationInsightsKey,\n enableAutoRouteTracking: true,\n // additional settings\n },\n })\n appInsights.loadAppInsights()\n store.commit('setAppInsights', settings.appInsights)\n\n new Vue({\n vuetify,\n router,\n store,\n inject: {\n theme: {\n default: { isDark: false },\n },\n },\n render: (h) => h(App),\n\n created() {\n store.commit('settings/addSettings', settings)\n },\n }).$mount('#app')\n})\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildRegistrationTask.vue?vue&type=style&index=0&id=2b28f574&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminTheme.vue?vue&type=style&index=0&id=371838a2&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlimCropper.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminLocations.vue?vue&type=style&index=0&id=3f0d9ee6&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"waiverTask\"}},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.currentContactTask && !_vm.hasOneRisk)?_c('sign-waiver',{key:_vm.currentContactTask.id,attrs:{\"waiver\":_vm.currentContactTask.relatedObject,\"contactTasks\":_vm.waiverTasks,\"enableWetSignature\":_vm.currentTask.enableWetSignature,\"enableAgreeCheckbox\":_vm.currentTask.enableAgreeCheckbox,\"enableTextSignature\":_vm.currentTask.enableTextSignature,\"signingWaiver\":_vm.signingWaiver},on:{\"save-signature\":_vm.onSaveSignature,\"skip\":_vm.onSkip}}):_vm._e()],1),(_vm.currentContactTask && _vm.hasOneRisk && !_vm.processingOneRisk)?_c('one-risk-waiver',{key:_vm.currentContactTask.id,attrs:{\"contactTasks\":_vm.waiverTasks,\"signingWaiver\":_vm.signingWaiver,\"oneRiskData\":_vm.oneRiskData},on:{\"save-signature\":_vm.onSaveOneRiskWaiver,\"skip-waiver\":_vm.onSkip}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.signingWaiver),expression:\"!signingWaiver\"}],ref:\"waiver\",staticClass:\"waiver\",attrs:{\"id\":\"waiver-container\"}},[_c('div',{staticClass:\"waiver__header\",attrs:{\"id\":\"waiver-header\"}},[_c('div',{staticClass:\"waiver__title\",attrs:{\"id\":\"waiver-title\"}},[_c('h1',{attrs:{\"id\":\"waiver-title-header\"}},[_vm._v(_vm._s(_vm.currentTask.name))])]),_c('div',{attrs:{\"id\":\"affirmation-statement\"},domProps:{\"innerHTML\":_vm._s(_vm.affirmationHtml)}})]),(_vm.waiver)?[_c('p',{staticClass:\"waiver__instructions\",attrs:{\"id\":\"waiver-instructions\"}},[_vm._v(\"Scroll through text below to read waiver\")]),_c('div',{staticClass:\"waiver__content\",attrs:{\"id\":\"waiver-content\"},domProps:{\"innerHTML\":_vm._s(_vm.waiver.rolText)}})]:_c('div',{staticClass:\"waiver__no-content\",attrs:{\"id\":\"waiver-no-content\"}},[_c('h2',[_vm._v(\"NO WAIVER\")])]),_c('div',{staticClass:\"waiver__footer\",attrs:{\"id\":\"waiver-footer\"}},[_c('div',{staticClass:\"signature-pad\",attrs:{\"id\":\"waiver-signature-pad\"}},[(_vm.enableAgreeCheckbox)?_c('div',{attrs:{\"id\":\"agree\"}},[_c('v-checkbox',{attrs:{\"id\":\"agree-checkbox\",\"type\":\"checkbox\",\"label\":(\"I agree for \" + (_vm.allContactNames('and')))},model:{value:(_vm.agree),callback:function ($$v) {_vm.agree=$$v},expression:\"agree\"}})],1):_vm._e(),(_vm.enableWetSignature)?_c('div',[_c('div',{staticClass:\"signature-canvas signature-canvas__wrapper\",attrs:{\"id\":\"signature-canvas-container\"}},[_c('div',{staticClass:\"canvas-overlay\",attrs:{\"id\":\"canvas-overlay\"}},[_c('div',{staticClass:\"signature-line\",attrs:{\"id\":\"signature-line\"}},[_c('icon',{attrs:{\"id\":\"x-icon\",\"type\":\"icon-arrow-x\",\"color\":\"black\"}})],1)]),_c('canvas',{ref:\"canvas\",staticClass:\"signature-canvas\",attrs:{\"id\":\"signature-canvas\"}})]),_c('div',{staticClass:\"signature-actions\",attrs:{\"id\":\"signature-actions\"}},[_c('div',{staticClass:\"signature-affirmation\",attrs:{\"id\":\"signature-affirmation\"}},[_vm._v(\" I state that I can sign for \"+_vm._s(_vm.allContactNames('and'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"secondary\",\"outlined\":\"\",\"rounded\":\"\"},on:{\"click\":_vm.clearSignature}},[_vm._v(\"Clear\")])],1)]):_vm._e(),(_vm.enableTextSignature)?_c('div',{attrs:{\"id\":\"type-name\"}},[_c('v-text-field',{attrs:{\"label\":_vm.signNamePlaceholder,\"color\":\"$color-label\",\"filled\":\"\",\"outlined\":\"\",\"single-line\":\"\"},model:{value:(_vm.signerName),callback:function ($$v) {_vm.signerName=$$v},expression:\"signerName\"}})],1):_vm._e()]),_c('div',{staticClass:\"signature-buttons\",attrs:{\"id\":\"signature-buttons\"}},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"rounded\":\"\"},on:{\"click\":_vm.skipWaiver}},[_vm._v(\"Skip Waiver\")]),_c('v-btn',{attrs:{\"color\":this.agree && this.signerName.length > 0 ? 'success' : '$color-label',\"rounded\":\"\"},on:{\"click\":_vm.saveSignature}},[_vm._v(\"Accept\")])],1)]),_c('div',{attrs:{\"id\":\"waiver-snapshot-container\"}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Action, Getter } from 'vuex-class'\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport ContactTask from '../interfaces/ContactTask'\nimport WaiverReleaseOfReliability from '../interfaces/WaiverReleaseOfReliability'\nimport SigningData from '../interfaces/SigningData'\nimport SignaturePad from 'signature_pad'\nimport Icon from '@/Common/components/Icon.vue'\n\n@Component({\n components: {\n Icon,\n },\n})\nclass SignWaiver extends Vue {\n @Prop({ required: true, default: null }) waiver: WaiverReleaseOfReliability | null\n @Prop({ required: true, default: null }) contactTasks: ContactTask[] | null\n @Prop({ required: true, default: true }) enableWetSignature: boolean\n @Prop({ required: true, default: true }) enableAgreeCheckbox: boolean\n @Prop({ required: true, default: true }) enableTextSignature: boolean\n @Prop({ required: false, default: null }) affirmationStatement: string | null\n @Prop({ required: false, default: null }) signingWaiver: boolean\n\n @Getter('oidcStore/oidcUser') user: any\n\n // Data elements\n public showPad: boolean = false\n public needToScroll: boolean = true\n public newWaiver: boolean = false\n public canvas: any = null\n public signaturePad: any = null\n public signerName: string | null = null\n public agree: boolean = false\n public waiverHtmlDoc: any = null\n\n // Computed Data Elements\n get affirmationHtml() {\n if (this.affirmationStatement) {\n return this.affirmationStatement\n } else {\n let text = `I affirm that I am ${this.allContactNames(\n 'or'\n )}, a parent or legal guardian, or otherwise legally authorized to sign on their behalf.`\n text += `  If you are not authorized to sign for this person, skip this waiver.`\n return text\n }\n }\n\n private allContactNames(conjunction: string) {\n let names: string = ''\n let index = 0\n\n if (this.contactTasks) {\n this.contactTasks.forEach((ct) => {\n if (this.contactTasks) {\n if (index == this.contactTasks.length - 1 && this.contactTasks.length > 1) {\n names += ` ${conjunction} `\n } else if (index > 0) {\n names += ', '\n }\n }\n names += `${ct.contact.firstName} ${ct.contact.lastName}`\n index++\n })\n }\n\n return names\n }\n\n get currentTask() {\n if (this.contactTasks && this.contactTasks.length > 0) {\n return this.contactTasks[0].task\n }\n }\n\n get signNamePlaceholder() {\n if (this.contactTasks && this.contactTasks.length > 1) {\n // Signing for multiple contacts, use the logged in user's name\n return `Type: ${this.user.name}`\n } else if (this.contactTasks && this.contactTasks.length == 1) {\n if (this.contactTasks && this.contactTasks[0].contact.age < 18) {\n // Signing for a single minor, use logged in user's name\n return `Type: ${this.user.name}`\n } else {\n // Signing for single adult, use the participant's name\n return `Type: ${this.contactTasks[0].contact.firstName} ${this.contactTasks[0].contact.lastName}`\n }\n }\n }\n\n // Life Cycle\n public mounted() {\n if (this.enableWetSignature) {\n this.canvas = this.$refs.canvas\n this.signaturePad = new SignaturePad(this.canvas)\n this.resizeCanvas()\n }\n }\n\n // Methods\n public skipWaiver() {\n this.clearSignature()\n this.signerName = null\n this.agree = false\n this.$emit('skip')\n }\n\n public saveSignature() {\n if (this.enableWetSignature && this.signaturePad.isEmpty()) {\n alert('Please Sign.')\n return\n }\n\n if (this.enableAgreeCheckbox && !this.agree) {\n alert('Please check to agree.')\n return\n }\n\n if (this.enableTextSignature) {\n if (this.signerName == null) {\n alert(`Please type your name in the provided box.`)\n return\n } else if (this.signerName.trim() != this.signNamePlaceholder!.replace('Type: ', '')) {\n alert(`Please sign ${this.signNamePlaceholder} exactly.`)\n return\n }\n }\n\n // Get the wet signature\n let newSignature = ''\n if (this.enableWetSignature) {\n newSignature = this.signaturePad.toDataURL().replace('data:image/png;base64,', '')\n }\n\n // We need to create a new HTML doc with the waiver page exactly as it appears to the signer and store this in RTP\n // Get a reference to the top
element\n let waiverHtmlText: string | null = null\n const waiverElement = document.getElementById('waiver-container')\n\n if (waiverElement) {\n // Create a new HTML document object\n this.waiverHtmlDoc = document.implementation.createHTMLDocument('Waiver')\n // Insert all the HTML from the waiver page into the new document\n const waiverDiv = this.waiverHtmlDoc.createElement('div')\n waiverDiv.innerHTML = waiverElement.innerHTML\n\n try {\n this.waiverHtmlDoc.body.appendChild(waiverDiv)\n } catch (e) {\n console.log(e)\n }\n\n // Recursively walk through the waiver HTML and copy styles from each element\n // to the corresponding element in the new document object\n this.walkTheDOM(waiverDiv, this.copyStyles)\n\n // Once the styles have been copied, serialize the HTML and add to the signing data\n // The parent component will store this as the ROL Text to be stored in RTP\n waiverHtmlText = new XMLSerializer().serializeToString(this.waiverHtmlDoc)\n }\n\n const signingData: SigningData = {\n signature: newSignature,\n agree: this.agree,\n signerName: this.signerName,\n waiverHTML: waiverHtmlText,\n }\n\n this.$emit('save-signature', signingData)\n\n this.clearSignature()\n }\n\n public clearSignature() {\n if (this.enableWetSignature && this.signaturePad) {\n this.signaturePad.clear()\n }\n\n if (this.enableAgreeCheckbox) {\n this.agree = false\n }\n\n if (this.enableTextSignature) {\n this.signerName = null\n }\n }\n\n public resizeCanvas() {\n const ratio = Math.max(window.devicePixelRatio || 1, 1)\n this.canvas.width = this.canvas.offsetWidth * ratio\n this.canvas.height = this.canvas.offsetHeight * ratio\n this.canvas.getContext('2d').scale(ratio, ratio)\n this.signaturePad.clear() // otherwise isEmpty() might return incorrect value\n }\n\n // This function grabs all the styles for an HTML element and builds a CSS style declaration string for them\n public dumpCSSText(id) {\n let cssText = ''\n const orginalElement = document.getElementById(id) as HTMLElement\n if (orginalElement) {\n const elementStyles = getComputedStyle(orginalElement, '')\n const elementKeys = Object.keys(elementStyles)\n\n for (const key in elementKeys) {\n if (elementStyles[key]) {\n const propertyValue = elementStyles.getPropertyValue(elementStyles[key])\n if (propertyValue) {\n cssText += elementStyles[key] + ':' + elementStyles.getPropertyValue(elementStyles[key]) + ';'\n }\n }\n }\n }\n\n return cssText\n }\n\n // This function recursively walks through an HTML structure and calls a function for each\n public walkTheDOM(node, func) {\n func(node)\n node = node.firstChild\n while (node) {\n this.walkTheDOM(node, func)\n node = node.nextSibling\n }\n }\n\n // This method copies styles from a node in the DOM to the curresponding element of the new documnt object\n public copyStyles(node) {\n if (node.id && node.id != 'waiver-snapshot') {\n const foundElement = this.waiverHtmlDoc.getElementById(node.id)\n if (foundElement) {\n const styles = this.dumpCSSText(node.id)\n if (styles) {\n foundElement.style.cssText = styles\n }\n }\n }\n }\n}\n\nexport default SignWaiver\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignWaiver.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignWaiver.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignWaiver.vue?vue&type=template&id=03403d00&scoped=true&\"\nimport script from \"./SignWaiver.vue?vue&type=script&lang=ts&\"\nexport * from \"./SignWaiver.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SignWaiver.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./SignWaiver.vue?vue&type=style&index=1&id=03403d00&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03403d00\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"waiver\",attrs:{\"id\":\"onerisk-waiver-container\"}},[_c('div',{staticClass:\"one-risk__window\"},[_c('iframe',{attrs:{\"id\":\"one-risk__iframe\",\"src\":_vm.oneRiskUrl,\"title\":\"Sign Waiver\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneRiskWaiver.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneRiskWaiver.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OneRiskWaiver.vue?vue&type=template&id=ff0a3d64&scoped=true&\"\nimport script from \"./OneRiskWaiver.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneRiskWaiver.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneRiskWaiver.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./OneRiskWaiver.vue?vue&type=style&index=1&id=ff0a3d64&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ff0a3d64\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n import { Action, Getter, Mutation } from 'vuex-class'\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport ContactTask from '../interfaces/ContactTask'\nimport goTo from 'vuetify/es5/services/goto'\nimport GTMEvent from '@/Common/interfaces/GTMEvent'\nimport SigningData from '../interfaces/SigningData'\nimport SignWaiver from './SignWaiver.vue'\nimport OneRiskWaiver from './OneRiskWaiver.vue'\nimport TaskBase from './TaskBase'\nimport store from '@/Common/store/index'\n\n@Component({\n components: {\n SignWaiver,\n OneRiskWaiver\n },\n})\nclass WaiverTask extends TaskBase {\n // Store items\n @Action('trackEvent') trackEvent\n @Getter('oidcStore/oidcUser') user: any\n @Getter('task/currentTask') currentTask\n @Getter('settings/languageSettings') language\n @Getter('settings/oneRiskSettings') oneRiskSettings\n @Mutation('setPageLoading') setPageLoading\n\n // Data Elements\n public showSignatureModal: boolean = false\n public currentContactTaskIndex: number = 0\n public signingWaiver: boolean = false\n public processingOneRisk: boolean = false\n\n // Computed Data Elements\n get hasOneRisk() {\n if (this.currentTask.externalWaiverId) {\n return true\n }\n else {\n return false\n }\n }\n\n get waiverTasks() {\n if (this.currentTask.consolidateWaivers) {\n return this.contactTasks\n } else {\n return [this.currentContactTask]\n }\n }\n\n get currentContactTask() {\n if (this.contactTasks && this.contactTasks.length > 0) {\n return this.contactTasks[this.currentContactTaskIndex]\n } else {\n this.currentContactTaskIndex = 0\n this.$emit('complete-task')\n }\n }\n\n get todaysDate(): string {\n return new Date().toLocaleString()\n }\n\n get oneRiskData() {\n // First, since the DOB string may have the Time at the end, we need to isolate the date part\n const dobArray = this.currentContactTask.contact.dateOfBirth.split('T')\n // Then create a formatted date in YYYYMMDD (date string will always be YYYY-MM-DD)\n const re = /\\-/gi;\n const formattedDob = dobArray[0].replace(re,'')\n // 1Risk requires an expiration date in MS\n const expDateArray = this.currentTask.endEffectiveDate.split('T')\n const posExpirationDateMs = new Date(expDateArray).getTime()\n\n return {\n language: 'en',\n displayFormat: this.oneRiskSettings.dateFormat,\n integration: 'aspenware',\n waivers: [\n {\n waiverId: this.currentTask.externalWaiverId,\n posWaiverId: this.currentTask.posWaiverId,\n pos: this.oneRiskSettings.pointOfSaleSystem,\n posProductId: null,\n posProductCode: null,\n posExpirationDate: posExpirationDateMs,\n guests: [\n {\n posGuestId: this.currentContactTask.contact.contactId,\n firstName: this.currentContactTask.contact.firstName,\n lastName: this.currentContactTask.contact.lastName,\n dob: formattedDob,\n email: null,\n phone: null,\n address: {\n street1: null,\n street2: null,\n country: null,\n city: null,\n state: null,\n postal: null,\n },\n },\n ],\n },\n ],\n }\n }\n\n // Life Cycle\n\n\n // Methods\n private async onSkip() {\n await this.next()\n }\n\n private signWaiverEvent(waiverTask: ContactTask) {\n const signatureEvent = {\n event: 'arrival_event',\n category: 'Check-In',\n action: 'Sign Waiver',\n noninteraction: false,\n label: `${waiverTask.task.name}`,\n value: `${waiverTask.task.posWaiverId}`,\n }\n this.trackEvent(signatureEvent as GTMEvent)\n }\n\n private async onSaveOneRiskWaiver(signingData: SigningData) {\n this.signingWaiver = true\n this.processingOneRisk = true\n\n if (signingData) {\n\n\n try {\n const customComment = this.generateCustomComment(\n this.currentTask,\n this.contactTasks[this.currentContactTaskIndex]\n )\n\n // Update the related object field before creating the request\n const signedWaiverObject = {\n ...this.contactTasks[this.currentContactTaskIndex].relatedObject,\n rolAccepted: true,\n signature: signingData.signature,\n signatureDate: this.todaysDate,\n comment: customComment,\n rolText: signingData.waiverHTML,\n }\n\n this.contactTasks[this.currentContactTaskIndex].relatedObject = signedWaiverObject\n\n this.signWaiverEvent(this.contactTasks[this.currentContactTaskIndex])\n\n await this.completeContactTask(this.contactTasks[this.currentContactTaskIndex])\n\n await this.next()\n\n } catch (error) {\n alert(`ERROR CALLING API ${error}`)\n }\n }\n else {\n await this.completeContactTask(this.contactTasks[this.currentContactTaskIndex])\n\n await this.next()\n }\n \n this.signingWaiver = false\n this.processingOneRisk = false\n }\n\n private async onSaveSignature(signingData: SigningData) {\n this.signingWaiver = true\n if (this.currentTask.consolidateWaivers) {\n this.contactTasks.forEach((ct) => {\n // If no waiverHTML document was sent in the signing data, replace it with the text from the waiver\n if (!signingData.waiverHTML) {\n signingData.waiverHTML = ct.relatedObject.rolText\n }\n\n const customComment = this.generateCustomComment(this.currentTask, ct)\n\n // Update the task.relatedObject field before creating the request\n const signedWaiverObject = {\n ...ct.relatedObject,\n rolAccepted: true,\n signature: signingData.signature,\n signatureDate: this.todaysDate,\n comment: customComment,\n rolText: signingData.waiverHTML,\n }\n ct.relatedObject = signedWaiverObject\n\n this.signWaiverEvent(ct)\n\n this.completeContactTask(ct)\n })\n await this.next()\n } else {\n try {\n\n // If no waiverHTML document was sent in the signing data, replace it with the text from the waiver\n if (!signingData.waiverHTML) {\n signingData.waiverHTML = this.contactTasks[this.currentContactTaskIndex].relatedObject.rolText\n }\n const customComment = this.generateCustomComment(\n this.currentTask,\n this.contactTasks[this.currentContactTaskIndex]\n )\n\n // Update the related object field before creating the request\n const signedWaiverObject = {\n ...this.contactTasks[this.currentContactTaskIndex].relatedObject,\n rolAccepted: true,\n signature: signingData.signature,\n signatureDate: this.todaysDate,\n comment: customComment,\n rolText: signingData.waiverHTML,\n }\n\n this.contactTasks[this.currentContactTaskIndex].relatedObject = signedWaiverObject\n\n this.signWaiverEvent(this.contactTasks[this.currentContactTaskIndex])\n\n await this.completeContactTask(this.contactTasks[this.currentContactTaskIndex])\n\n await this.next()\n } catch (error) {\n alert('ERROR CALLING API')\n }\n }\n this.signingWaiver = false\n }\n\n private async next() {\n goTo(0, {\n duration: 100,\n offset: 0,\n easing: 'easeInCubic',\n })\n if (this.currentTask.consolidateWaivers) {\n this.currentContactTaskIndex = 0\n // this.showSignatureModal = false\n this.$emit('complete-task')\n } else {\n if (this.currentContactTaskIndex < this.contactTasks.length - 1) {\n this.currentContactTaskIndex++\n } else {\n this.currentContactTaskIndex = 0\n // this.showSignatureModal = false\n this.$emit('complete-task')\n }\n }\n }\n\n public closeWaiverModal() {\n //this empty funtion causes a warning.Do we need it?\n }\n\n private generateCustomComment(task, contactTask) {\n const nVer = navigator.appVersion\n const nAgt = navigator.userAgent\n let browserName = navigator.appName\n let fullVersion = '' + parseFloat(navigator.appVersion)\n let majorVersion = parseInt(navigator.appVersion, 10)\n let nameOffset = 0\n let verOffset = 0\n\n // In Opera 15+, the true version is after \"OPR/\"\n /* tslint:disable */\n if ((verOffset = nAgt.indexOf('OPR/')) != -1) {\n browserName = 'Opera'\n fullVersion = nAgt.substring(verOffset + 4)\n }\n // In older Opera, the true version is after \"Opera\" or after \"Version\"\n /* tslint:disable */\n else if ((verOffset = nAgt.indexOf('Opera')) != -1) {\n browserName = 'Opera'\n fullVersion = nAgt.substring(verOffset + 6)\n /* tslint:disable */\n if ((verOffset = nAgt.indexOf('Version')) != -1) {\n fullVersion = nAgt.substring(verOffset + 8)\n }\n }\n // In MSIE, the true version is after \"MSIE\" in userAgent\n /* tslint:disable */\n else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {\n browserName = 'Microsoft Internet Explorer'\n fullVersion = nAgt.substring(verOffset + 5)\n }\n // In Chrome, the true version is after \"Chrome\"\n /* tslint:disable */\n else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {\n browserName = 'Chrome'\n fullVersion = nAgt.substring(verOffset + 7)\n }\n // In Safari, the true version is after \"Safari\" or after \"Version\"\n /* tslint:disable */\n else if ((verOffset = nAgt.indexOf('Safari')) != -1) {\n browserName = 'Safari'\n fullVersion = nAgt.substring(verOffset + 7)\n /* tslint:disable */\n if ((verOffset = nAgt.indexOf('Version')) != -1) {\n fullVersion = nAgt.substring(verOffset + 8)\n }\n }\n // In Firefox, the true version is after \"Firefox\"\n /* tslint:disable */\n else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {\n browserName = 'Firefox'\n fullVersion = nAgt.substring(verOffset + 8)\n }\n // In most other browsers, \"name/version\" is at the end of userAgent\n /* tslint:disable */\n else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {\n browserName = nAgt.substring(nameOffset, verOffset)\n fullVersion = nAgt.substring(verOffset + 1)\n if (browserName.toLowerCase() == browserName.toUpperCase()) {\n browserName = navigator.appName\n }\n }\n // trim the fullVersion string at semicolon/space if present\n if (fullVersion.includes(';')) {\n fullVersion.slice(0, fullVersion.lastIndexOf(';'))\n }\n if (fullVersion.includes(' ')) {\n fullVersion.slice(0, fullVersion.lastIndexOf(' '))\n }\n\n majorVersion = parseInt('' + fullVersion, 10)\n if (isNaN(majorVersion)) {\n fullVersion = '' + parseFloat(navigator.appVersion)\n majorVersion = parseInt(navigator.appVersion, 10)\n }\n\n let customComment: string = task.customComment ? task.customComment : ''\n customComment = customComment.replace('{SignedDate}', this.todaysDate)\n customComment = customComment.replace('{Signer}', this.user.name)\n customComment = customComment.replace('{BrowserName}', browserName)\n customComment = customComment.replace('{BrowserVersion}', fullVersion)\n\n if (contactTask.contact && contactTask.contact.age && contactTask.contact.age < 18) {\n customComment =\n `${this.user.name} signed on behalf of minor ${\n this.contactTasks[this.currentContactTaskIndex].contact.firstName\n } ${contactTask.contact.lastName}.` + customComment\n } else {\n customComment =\n ` ${contactTask.contact.firstName} ${contactTask.contact.lastName} signed on their own behalf.` + customComment\n }\n\n return customComment\n }\n}\n\nexport default WaiverTask\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WaiverTask.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WaiverTask.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WaiverTask.vue?vue&type=template&id=3a8a50cd&scoped=true&\"\nimport script from \"./WaiverTask.vue?vue&type=script&lang=ts&\"\nexport * from \"./WaiverTask.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a8a50cd\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&id=db655658&lang=scss&scoped=true&\"","/*\n * Slim v5.0.2 - Image Cropping Made Easy\n * Copyright (c) 2018 Rik Schennink - https://pqina.nl/slim\n */\nwindow.Slim = (function() {\n\n// custom event polyfill for IE10\n(function() {\n\tif ( typeof window.CustomEvent === 'function' ) return false;\n\n\tfunction CustomEvent ( event, params ) {\n\t\tparams = params || { bubbles: false, cancelable: false, detail: undefined };\n\t\tvar evt = document.createEvent( 'CustomEvent' );\n\t\tevt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n\t\treturn evt;\n\t}\n\n\tCustomEvent.prototype = window.Event.prototype;\n\n\twindow.CustomEvent = CustomEvent;\n})();\n/*\n* JavaScript Load Image\n* https://github.com/blueimp/JavaScript-Load-Image\n*\n* Copyright 2011, Sebastian Tschan\n* https://blueimp.net\n*\n* Licensed under the MIT license:\n* http://www.opensource.org/licenses/MIT\n*/\n\n/*global define, module, window, document, URL, webkitURL, FileReader */\n\n// Loads an image for a given File object.\n// Invokes the callback with an img or optional canvas\n// element (if supported by the browser) as parameter:\nvar loadImage = function (file, callback, options) {\n var img = document.createElement('img')\n var url\n var oUrl\n img.onerror = callback\n img.onload = function () {\n if (oUrl && !(options && options.noRevoke)) {\n loadImage.revokeObjectURL(oUrl)\n }\n if (callback) {\n callback(loadImage.scale(img, options))\n }\n }\n if (loadImage.isInstanceOf('Blob', file) ||\n // Files are also Blob instances, but some browsers\n // (Firefox 3.6) support the File API but not Blobs:\n loadImage.isInstanceOf('File', file)) {\n url = oUrl = loadImage.createObjectURL(file)\n // Store the file type for resize processing:\n img._type = file.type\n } else if (typeof file === 'string') {\n url = file\n if (options && options.crossOrigin) {\n img.crossOrigin = options.crossOrigin\n }\n } else {\n return false\n }\n if (url) {\n img.src = url\n return img\n }\n return loadImage.readFile(file, function (e) {\n var target = e.target\n if (target && target.result) {\n img.src = target.result\n } else {\n if (callback) {\n callback(e)\n }\n }\n })\n}\n// The check for URL.revokeObjectURL fixes an issue with Opera 12,\n// which provides URL.createObjectURL but doesn't properly implement it:\nvar urlAPI = (window.createObjectURL && window) ||\n (window.URL && URL.revokeObjectURL && URL) ||\n (window.webkitURL && webkitURL)\n\nloadImage.isInstanceOf = function (type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']'\n}\n\n// Transform image coordinates, allows to override e.g.\n// the canvas orientation based on the orientation option,\n// gets canvas, options passed as arguments:\nloadImage.transformCoordinates = function () {\n return\n}\n\n// Returns transformed options, allows to override e.g.\n// maxWidth, maxHeight and crop options based on the aspectRatio.\n// gets img, options passed as arguments:\nloadImage.getTransformedOptions = function (img, options) {\n var aspectRatio = options.aspectRatio\n var newOptions\n var i\n var width\n var height\n if (!aspectRatio) {\n return options\n }\n newOptions = {}\n for (i in options) {\n if (options.hasOwnProperty(i)) {\n newOptions[i] = options[i]\n }\n }\n newOptions.crop = true\n width = img.naturalWidth || img.width\n height = img.naturalHeight || img.height\n if (width / height > aspectRatio) {\n newOptions.maxWidth = height * aspectRatio\n newOptions.maxHeight = height\n } else {\n newOptions.maxWidth = width\n newOptions.maxHeight = width / aspectRatio\n }\n return newOptions\n}\n\n// Canvas render method, allows to implement a different rendering algorithm:\nloadImage.renderImageToCanvas = function (\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destX,\n destY,\n destWidth,\n destHeight\n) {\n canvas.getContext('2d').drawImage(\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destX,\n destY,\n destWidth,\n destHeight\n )\n return canvas\n}\n\n// This method is used to determine if the target image\n// should be a canvas element:\nloadImage.hasCanvasOption = function (options) {\n return options.canvas || options.crop || !!options.aspectRatio\n}\n\n// Scales and/or crops the given image (img or canvas HTML element)\n// using the given options.\n// Returns a canvas object if the browser supports canvas\n// and the hasCanvasOption method returns true or a canvas\n// object is passed as image, else the scaled image:\nloadImage.scale = function (img, options) {\n options = options || {}\n var canvas = document.createElement('canvas')\n var useCanvas = img.getContext ||\n (loadImage.hasCanvasOption(options) && canvas.getContext)\n var width = img.naturalWidth || img.width\n var height = img.naturalHeight || img.height\n var destWidth = width\n var destHeight = height\n var maxWidth\n var maxHeight\n var minWidth\n var minHeight\n var sourceWidth\n var sourceHeight\n var sourceX\n var sourceY\n var pixelRatio\n var downsamplingRatio\n var tmp\n function scaleUp () {\n var scale = Math.max(\n (minWidth || destWidth) / destWidth,\n (minHeight || destHeight) / destHeight\n )\n if (scale > 1) {\n destWidth *= scale\n destHeight *= scale\n }\n }\n function scaleDown () {\n var scale = Math.min(\n (maxWidth || destWidth) / destWidth,\n (maxHeight || destHeight) / destHeight\n )\n if (scale < 1) {\n destWidth *= scale\n destHeight *= scale\n }\n }\n if (useCanvas) {\n options = loadImage.getTransformedOptions(img, options)\n sourceX = options.left || 0\n sourceY = options.top || 0\n if (options.sourceWidth) {\n sourceWidth = options.sourceWidth\n if (options.right !== undefined && options.left === undefined) {\n sourceX = width - sourceWidth - options.right\n }\n } else {\n sourceWidth = width - sourceX - (options.right || 0)\n }\n if (options.sourceHeight) {\n sourceHeight = options.sourceHeight\n if (options.bottom !== undefined && options.top === undefined) {\n sourceY = height - sourceHeight - options.bottom\n }\n } else {\n sourceHeight = height - sourceY - (options.bottom || 0)\n }\n destWidth = sourceWidth\n destHeight = sourceHeight\n }\n maxWidth = options.maxWidth\n maxHeight = options.maxHeight\n minWidth = options.minWidth\n minHeight = options.minHeight\n if (useCanvas && maxWidth && maxHeight && options.crop) {\n destWidth = maxWidth\n destHeight = maxHeight\n tmp = sourceWidth / sourceHeight - maxWidth / maxHeight\n if (tmp < 0) {\n sourceHeight = maxHeight * sourceWidth / maxWidth\n if (options.top === undefined && options.bottom === undefined) {\n sourceY = (height - sourceHeight) / 2\n }\n } else if (tmp > 0) {\n sourceWidth = maxWidth * sourceHeight / maxHeight\n if (options.left === undefined && options.right === undefined) {\n sourceX = (width - sourceWidth) / 2\n }\n }\n } else {\n if (options.contain || options.cover) {\n minWidth = maxWidth = maxWidth || minWidth\n minHeight = maxHeight = maxHeight || minHeight\n }\n if (options.cover) {\n scaleDown()\n scaleUp()\n } else {\n scaleUp()\n scaleDown()\n }\n }\n if (useCanvas) {\n pixelRatio = options.pixelRatio\n if (pixelRatio > 1) {\n canvas.style.width = destWidth + 'px'\n canvas.style.height = destHeight + 'px'\n destWidth *= pixelRatio\n destHeight *= pixelRatio\n canvas.getContext('2d').scale(pixelRatio, pixelRatio)\n }\n downsamplingRatio = options.downsamplingRatio\n if (downsamplingRatio > 0 && downsamplingRatio < 1 &&\n destWidth < sourceWidth && destHeight < sourceHeight) {\n while (sourceWidth * downsamplingRatio > destWidth) {\n canvas.width = sourceWidth * downsamplingRatio\n canvas.height = sourceHeight * downsamplingRatio\n loadImage.renderImageToCanvas(\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n canvas.width,\n canvas.height\n )\n sourceWidth = canvas.width\n sourceHeight = canvas.height\n img = document.createElement('canvas')\n img.width = sourceWidth\n img.height = sourceHeight\n loadImage.renderImageToCanvas(\n img,\n canvas,\n 0,\n 0,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n sourceWidth,\n sourceHeight\n )\n }\n }\n canvas.width = destWidth\n canvas.height = destHeight\n loadImage.transformCoordinates(\n canvas,\n options\n )\n return loadImage.renderImageToCanvas(\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n destWidth,\n destHeight\n )\n }\n img.width = destWidth\n img.height = destHeight\n return img\n}\n\nloadImage.createObjectURL = function (file) {\n return urlAPI ? urlAPI.createObjectURL(file) : false\n}\n\nloadImage.revokeObjectURL = function (url) {\n return urlAPI ? urlAPI.revokeObjectURL(url) : false\n}\n\n// Loads a given File object via FileReader interface,\n// invokes the callback with the event object (load or error).\n// The result can be read via event.target.result:\nloadImage.readFile = function (file, callback, method) {\n if (window.FileReader) {\n var fileReader = new FileReader()\n fileReader.onload = fileReader.onerror = callback\n method = method || 'readAsDataURL'\n if (fileReader[method]) {\n fileReader[method](file)\n return fileReader\n }\n }\n return false\n}\n\nvar originalHasCanvasOption = loadImage.hasCanvasOption\nvar originalTransformCoordinates = loadImage.transformCoordinates\nvar originalGetTransformedOptions = loadImage.getTransformedOptions\n\n// This method is used to determine if the target image\n// should be a canvas element:\nloadImage.hasCanvasOption = function (options) {\n return !!options.orientation ||\n originalHasCanvasOption.call(loadImage, options)\n}\n\n// Transform image orientation based on\n// the given EXIF orientation option:\nloadImage.transformCoordinates = function (canvas, options) {\n originalTransformCoordinates.call(loadImage, canvas, options)\n var ctx = canvas.getContext('2d')\n var width = canvas.width\n var height = canvas.height\n var styleWidth = canvas.style.width\n var styleHeight = canvas.style.height\n var orientation = options.orientation\n if (!orientation || orientation > 8) {\n return\n }\n if (orientation > 4) {\n canvas.width = height\n canvas.height = width\n canvas.style.width = styleHeight\n canvas.style.height = styleWidth\n }\n switch (orientation) {\n case 2:\n // horizontal flip\n ctx.translate(width, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180° rotate left\n ctx.translate(width, height)\n ctx.rotate(Math.PI)\n break\n case 4:\n // vertical flip\n ctx.translate(0, height)\n ctx.scale(1, -1)\n break\n case 5:\n // vertical flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.scale(1, -1)\n break\n case 6:\n // 90° rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -height)\n break\n case 7:\n // horizontal flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(width, -height)\n ctx.scale(-1, 1)\n break\n case 8:\n // 90° rotate left\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-width, 0)\n break\n }\n}\n\n// Transforms coordinate and dimension options\n// based on the given orientation option:\nloadImage.getTransformedOptions = function (img, opts) {\n var options = originalGetTransformedOptions.call(loadImage, img, opts)\n var orientation = options.orientation\n var newOptions\n var i\n if (!orientation || orientation > 8 || orientation === 1) {\n return options\n }\n newOptions = {}\n for (i in options) {\n if (options.hasOwnProperty(i)) {\n newOptions[i] = options[i]\n }\n }\n switch (options.orientation) {\n case 2:\n // horizontal flip\n newOptions.left = options.right\n newOptions.right = options.left\n break\n case 3:\n // 180° rotate left\n newOptions.left = options.right\n newOptions.top = options.bottom\n newOptions.right = options.left\n newOptions.bottom = options.top\n break\n case 4:\n // vertical flip\n newOptions.top = options.bottom\n newOptions.bottom = options.top\n break\n case 5:\n // vertical flip + 90 rotate right\n newOptions.left = options.top\n newOptions.top = options.left\n newOptions.right = options.bottom\n newOptions.bottom = options.right\n break\n case 6:\n // 90° rotate right\n newOptions.left = options.top\n newOptions.top = options.right\n newOptions.right = options.bottom\n newOptions.bottom = options.left\n break\n case 7:\n // horizontal flip + 90 rotate right\n newOptions.left = options.bottom\n newOptions.top = options.right\n newOptions.right = options.top\n newOptions.bottom = options.left\n break\n case 8:\n // 90° rotate left\n newOptions.left = options.bottom\n newOptions.top = options.left\n newOptions.right = options.top\n newOptions.bottom = options.right\n break\n }\n if (options.orientation > 4) {\n newOptions.maxWidth = options.maxHeight\n newOptions.maxHeight = options.maxWidth\n newOptions.minWidth = options.minHeight\n newOptions.minHeight = options.minWidth\n newOptions.sourceWidth = options.sourceHeight\n newOptions.sourceHeight = options.sourceWidth\n }\n return newOptions\n}\n\nvar hasblobSlice = window.Blob && (Blob.prototype.slice ||\n Blob.prototype.webkitSlice || Blob.prototype.mozSlice)\n\nloadImage.blobSlice = hasblobSlice && function () {\n var slice = this.slice || this.webkitSlice || this.mozSlice\n return slice.apply(this, arguments)\n }\n\nloadImage.metaDataParsers = {\n jpeg: {\n 0xffe1: [] // APP1 marker\n }\n}\n\n// Parses image meta data and calls the callback with an object argument\n// with the following properties:\n// * imageHead: The complete image head as ArrayBuffer (Uint8Array for IE10)\n// The options arguments accepts an object and supports the following properties:\n// * maxMetaDataSize: Defines the maximum number of bytes to parse.\n// * disableImageHead: Disables creating the imageHead property.\nloadImage.parseMetaData = function (file, callback, options) {\n options = options || {}\n var that = this\n // 256 KiB should contain all EXIF/ICC/IPTC segments:\n var maxMetaDataSize = options.maxMetaDataSize || 262144\n var data = {}\n var noMetaData = !(window.DataView && file && file.size >= 12 &&\n file.type === 'image/jpeg' && loadImage.blobSlice)\n if (noMetaData || !loadImage.readFile(\n loadImage.blobSlice.call(file, 0, maxMetaDataSize),\n function (e) {\n if (e.target.error) {\n // FileReader error\n //console.log(e.target.error)\n callback(data)\n return\n }\n // Note on endianness:\n // Since the marker and length bytes in JPEG files are always\n // stored in big endian order, we can leave the endian parameter\n // of the DataView methods undefined, defaulting to big endian.\n var buffer = e.target.result\n var dataView = new DataView(buffer)\n var offset = 2\n var maxOffset = dataView.byteLength - 4\n var headLength = offset\n var markerBytes\n var markerLength\n var parsers\n var i\n // Check for the JPEG marker (0xffd8):\n if (dataView.getUint16(0) === 0xffd8) {\n while (offset < maxOffset) {\n markerBytes = dataView.getUint16(offset)\n // Search for APPn (0xffeN) and COM (0xfffe) markers,\n // which contain application-specific meta-data like\n // Exif, ICC and IPTC data and text comments:\n if ((markerBytes >= 0xffe0 && markerBytes <= 0xffef) ||\n markerBytes === 0xfffe) {\n // The marker bytes (2) are always followed by\n // the length bytes (2), indicating the length of the\n // marker segment, which includes the length bytes,\n // but not the marker bytes, so we add 2:\n markerLength = dataView.getUint16(offset + 2) + 2\n if (offset + markerLength > dataView.byteLength) {\n //console.log('Invalid meta data: Invalid segment size.')\n break\n }\n parsers = loadImage.metaDataParsers.jpeg[markerBytes]\n if (parsers) {\n for (i = 0; i < parsers.length; i += 1) {\n parsers[i].call(\n that,\n dataView,\n offset,\n markerLength,\n data,\n options\n )\n }\n }\n offset += markerLength\n headLength = offset\n } else {\n // Not an APPn or COM marker, probably safe to\n // assume that this is the end of the meta data\n break\n }\n }\n // Meta length must be longer than JPEG marker (2)\n // plus APPn marker (2), followed by length bytes (2):\n if (!options.disableImageHead && headLength > 6) {\n if (buffer.slice) {\n data.imageHead = buffer.slice(0, headLength)\n } else {\n // Workaround for IE10, which does not yet\n // support ArrayBuffer.slice:\n data.imageHead = new Uint8Array(buffer)\n .subarray(0, headLength)\n }\n }\n } else {\n //console.log('Invalid JPEG file: Missing JPEG marker.')\n }\n callback(data)\n },\n 'readAsArrayBuffer'\n )) {\n callback(data)\n }\n}\n\nloadImage.ExifMap = function () {\n return this\n}\n\nloadImage.ExifMap.prototype.map = {\n 'Orientation': 0x0112\n}\n\nloadImage.ExifMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]]\n}\n\nloadImage.getExifThumbnail = function (dataView, offset, length) {\n var hexData,\n i,\n b\n if (!length || offset + length > dataView.byteLength) {\n //console.log('Invalid Exif data: Invalid thumbnail data.')\n return\n }\n hexData = []\n for (i = 0; i < length; i += 1) {\n b = dataView.getUint8(offset + i)\n hexData.push((b < 16 ? '0' : '') + b.toString(16))\n }\n return 'data:image/jpeg,%' + hexData.join('%')\n}\n\nloadImage.exifTagTypes = {\n // byte, 8-bit unsigned int:\n 1: {\n getValue: function (dataView, dataOffset) {\n return dataView.getUint8(dataOffset)\n },\n size: 1\n },\n // ascii, 8-bit byte:\n 2: {\n getValue: function (dataView, dataOffset) {\n return String.fromCharCode(dataView.getUint8(dataOffset))\n },\n size: 1,\n ascii: true\n },\n // short, 16 bit int:\n 3: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint16(dataOffset, littleEndian)\n },\n size: 2\n },\n // long, 32 bit int:\n 4: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint32(dataOffset, littleEndian)\n },\n size: 4\n },\n // rational = two long values, first is numerator, second is denominator:\n 5: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint32(dataOffset, littleEndian) /\n dataView.getUint32(dataOffset + 4, littleEndian)\n },\n size: 8\n },\n // slong, 32 bit signed int:\n 9: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getInt32(dataOffset, littleEndian)\n },\n size: 4\n },\n // srational, two slongs, first is numerator, second is denominator:\n 10: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getInt32(dataOffset, littleEndian) /\n dataView.getInt32(dataOffset + 4, littleEndian)\n },\n size: 8\n }\n}\n// undefined, 8-bit byte, value depending on field:\nloadImage.exifTagTypes[7] = loadImage.exifTagTypes[1]\n\nloadImage.getExifValue = function (dataView, tiffOffset, offset, type, length, littleEndian) {\n var tagType = loadImage.exifTagTypes[type]\n var tagSize\n var dataOffset\n var values\n var i\n var str\n var c\n if (!tagType) {\n //console.log('Invalid Exif data: Invalid tag type.')\n return\n }\n tagSize = tagType.size * length\n // Determine if the value is contained in the dataOffset bytes,\n // or if the value at the dataOffset is a pointer to the actual data:\n dataOffset = tagSize > 4\n ? tiffOffset + dataView.getUint32(offset + 8, littleEndian)\n : (offset + 8)\n if (dataOffset + tagSize > dataView.byteLength) {\n //console.log('Invalid Exif data: Invalid data offset.')\n return\n }\n if (length === 1) {\n return tagType.getValue(dataView, dataOffset, littleEndian)\n }\n values = []\n for (i = 0; i < length; i += 1) {\n values[i] = tagType.getValue(dataView, dataOffset + i * tagType.size, littleEndian)\n }\n if (tagType.ascii) {\n str = ''\n // Concatenate the chars:\n for (i = 0; i < values.length; i += 1) {\n c = values[i]\n // Ignore the terminating NULL byte(s):\n if (c === '\\u0000') {\n break\n }\n str += c\n }\n return str\n }\n return values\n}\n\nloadImage.parseExifTag = function (dataView, tiffOffset, offset, littleEndian, data) {\n var tag = dataView.getUint16(offset, littleEndian)\n data.exif[tag] = loadImage.getExifValue(\n dataView,\n tiffOffset,\n offset,\n dataView.getUint16(offset + 2, littleEndian), // tag type\n dataView.getUint32(offset + 4, littleEndian), // tag length\n littleEndian\n )\n}\n\nloadImage.parseExifTags = function (dataView, tiffOffset, dirOffset, littleEndian, data) {\n var tagsNumber,\n dirEndOffset,\n i\n if (dirOffset + 6 > dataView.byteLength) {\n //console.log('Invalid Exif data: Invalid directory offset.')\n return\n }\n tagsNumber = dataView.getUint16(dirOffset, littleEndian)\n dirEndOffset = dirOffset + 2 + 12 * tagsNumber\n if (dirEndOffset + 4 > dataView.byteLength) {\n //console.log('Invalid Exif data: Invalid directory size.')\n return\n }\n for (i = 0; i < tagsNumber; i += 1) {\n this.parseExifTag(\n dataView,\n tiffOffset,\n dirOffset + 2 + 12 * i, // tag offset\n littleEndian,\n data\n )\n }\n // Return the offset to the next directory:\n return dataView.getUint32(dirEndOffset, littleEndian)\n}\n\nloadImage.parseExifData = function (dataView, offset, length, data, options) {\n if (options.disableExif) {\n return\n }\n var tiffOffset = offset + 10\n var littleEndian\n var dirOffset\n var thumbnailData\n // Check for the ASCII code for \"Exif\" (0x45786966):\n if (dataView.getUint32(offset + 4) !== 0x45786966) {\n // No Exif data, might be XMP data instead\n return\n }\n if (tiffOffset + 8 > dataView.byteLength) {\n //console.log('Invalid Exif data: Invalid segment size.')\n return\n }\n // Check for the two null bytes:\n if (dataView.getUint16(offset + 8) !== 0x0000) {\n //console.log('Invalid Exif data: Missing byte alignment offset.')\n return\n }\n // Check the byte alignment:\n switch (dataView.getUint16(tiffOffset)) {\n case 0x4949:\n littleEndian = true\n break\n case 0x4D4D:\n littleEndian = false\n break\n default:\n //console.log('Invalid Exif data: Invalid byte alignment marker.')\n return\n }\n // Check for the TIFF tag marker (0x002A):\n if (dataView.getUint16(tiffOffset + 2, littleEndian) !== 0x002A) {\n //console.log('Invalid Exif data: Missing TIFF marker.')\n return\n }\n // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:\n dirOffset = dataView.getUint32(tiffOffset + 4, littleEndian)\n // Create the exif object to store the tags:\n data.exif = new loadImage.ExifMap()\n // Parse the tags of the main image directory and retrieve the\n // offset to the next directory, usually the thumbnail directory:\n dirOffset = loadImage.parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + dirOffset,\n littleEndian,\n data\n )\n if (dirOffset && !options.disableExifThumbnail) {\n thumbnailData = {exif: {}}\n dirOffset = loadImage.parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + dirOffset,\n littleEndian,\n thumbnailData\n )\n // Check for JPEG Thumbnail offset:\n if (thumbnailData.exif[0x0201]) {\n data.exif.Thumbnail = loadImage.getExifThumbnail(\n dataView,\n tiffOffset + thumbnailData.exif[0x0201],\n thumbnailData.exif[0x0202] // Thumbnail data length\n )\n }\n }\n // Check for Exif Sub IFD Pointer:\n if (data.exif[0x8769] && !options.disableExifSub) {\n loadImage.parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + data.exif[0x8769], // directory offset\n littleEndian,\n data\n )\n }\n // Check for GPS Info IFD Pointer:\n if (data.exif[0x8825] && !options.disableExifGps) {\n loadImage.parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + data.exif[0x8825], // directory offset\n littleEndian,\n data\n )\n }\n}\n\n// Registers the Exif parser for the APP1 JPEG meta data segment:\nloadImage.metaDataParsers.jpeg[0xffe1].push(loadImage.parseExifData)\nvar snabbt = (function() {\n\nvar tickRequests = [];\nvar runningAnimations = [];\nvar completedAnimations = [];\nvar transformProperty = 'transform';\n\n// Find which vendor prefix to use\nvar styles = window.getComputedStyle(document.documentElement, '');\nvar vendorPrefix = (Array.prototype.slice\n .call(styles)\n .join('') \n .match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o'])\n)[1];\nif(vendorPrefix === 'webkit')\ntransformProperty = 'webkitTransform';\n\n/* Entry point, only function to be called by user */\nvar snabbt = function(arg1, arg2, arg3) {\n\nvar elements = arg1;\n\n// If argument is an Array or a NodeList or other list type that can be iterable.\n// Loop through and start one animation for each element.\nif(elements.length !== undefined) {\n var aggregateChainer = {\n chainers: [],\n then: function(opts) {\n return this.snabbt(opts);\n },\n snabbt: function(opts) {\n var len = this.chainers.length;\n this.chainers.forEach(function(chainer, index) {\n chainer.snabbt(preprocessOptions(opts, index, len));\n });\n return aggregateChainer;\n },\n setValue: function(value) {\n this.chainers.forEach(function(chainer) {\n chainer.setValue(value);\n });\n return aggregateChainer;\n },\n finish: function() {\n this.chainers.forEach(function(chainer) {\n chainer.finish();\n });\n return aggregateChainer;\n },\n rollback: function() {\n this.chainers.forEach(function(chainer) {\n chainer.rollback();\n });\n return aggregateChainer;\n }\n };\n\n for(var i=0, len=elements.length;i 1 && !animation.isStopped()) {\n // Loop current animation\n options.loop -= 1;\n animation.restart();\n queueTick(tick);\n } else {\n if(options.complete) {\n options.complete.call(element);\n }\n\n // Start next animation in queue\n if(queue.length) {\n options = queue.pop();\n\n start = stateFromOptions(options, end, true);\n end = stateFromOptions(options, cloneObject(end));\n options = setupAnimationOptions(start, end, options);\n\n animation = createAnimation(options);\n runningAnimations.push([element, animation]);\n\n animation.tick(time);\n queueTick(tick);\n }\n }\n}\n\nqueueTick(tick);\n// Manual animations are not chainable, instead an animation controller object is returned\n// with setValue, finish and rollback methods\nif(options.manual)\n return animation;\nreturn chainer;\n};\n\nvar setupAttentionAnimation = function(element, options) {\nvar movement = stateFromOptions(options, createState({}));\noptions.movement = movement;\nvar animation = createAttentionAnimation(options);\n\nrunningAnimations.push([element, animation]);\nfunction tick(time) {\n animation.tick(time);\n animation.updateElement(element);\n if(!animation.completed()) {\n queueTick(tick);\n } else {\n if(options.callback) {\n options.callback(element);\n }\n if(options.loop && options.loop > 1) {\n options.loop--;\n animation.restart();\n queueTick(tick);\n }\n }\n}\nqueueTick(tick);\n};\n\nvar stopAnimation = function(element) {\nfor(var i= 0,len=runningAnimations.length;i= 0) {\n runningAnimations.splice(index,1);\n }\n\n index = indexOfElement(completedAnimations, element);\n if (index >= 0) {\n completedAnimations.splice(index,1);\n }\n\n};\n\nvar findAnimationState = function(animationList, element) {\nfor(var i=0,len=animationList.length;i delay) {\n started = true;\n currentTime = time - delay;\n\n var curr = Math.min(Math.max(0.0, currentTime - startTime), duration);\n easing.tick(curr / duration);\n this.updateCurrentTransform();\n if(this.completed() && manualCallback) {\n manualCallback();\n }\n }\n },\n\n getCurrentState: function() {\n return currentState;\n },\n\n setValue: function(_manualValue) {\n started = true;\n manualValue = Math.min(Math.max(_manualValue, 0.0001), 1 + manualDelayFactor);\n },\n\n updateCurrentTransform: function() {\n var tweenValue = easing.getValue();\n if(manual) {\n var val = Math.max(0.00001, manualValue - manualDelayFactor);\n easing.tick(val);\n tweenValue = easing.getValue();\n }\n tweener.tween(tweenValue);\n },\n\n completed: function() {\n if(stopped)\n return true;\n if(startTime === 0) {\n return false;\n }\n return easing.completed();\n },\n\n updateElement: function(element, forceUpdate) {\n if(!started && !forceUpdate)\n return;\n var matrix = tweener.asMatrix();\n var properties = tweener.getProperties();\n updateElementTransform(element, matrix, perspective);\n updateElementProperties(element, properties);\n }\n};\n};\n\n// ------------------------------\n// End Time animation\n// ------------------------------\n\n// ------------------------\n// -- AttentionAnimation --\n// ------------------------\n\nvar createAttentionAnimation = function(options) {\nvar movement = options.movement;\noptions.initialVelocity = 0.1;\noptions.equilibriumPosition = 0;\nvar spring = createSpringEasing(options);\nvar stopped = false;\nvar tweenPosition = movement.position;\nvar tweenRotation = movement.rotation;\nvar tweenRotationPost = movement.rotationPost;\nvar tweenScale = movement.scale;\nvar tweenSkew = movement.skew;\n\nvar currentMovement = createState({\n position: tweenPosition ? [0, 0, 0] : undefined,\n rotation: tweenRotation ? [0, 0, 0] : undefined,\n rotationPost: tweenRotationPost ? [0, 0, 0] : undefined,\n scale: tweenScale ? [0, 0] : undefined,\n skew: tweenSkew ? [0, 0] : undefined,\n});\n\n// Public API\nreturn {\n stop: function() {\n stopped = true;\n },\n\n isStopped: function(time) {\n return stopped;\n },\n\n tick: function(time) {\n if(stopped)\n return;\n if(spring.equilibrium)\n return;\n spring.tick();\n\n this.updateMovement();\n },\n\n updateMovement:function() {\n var value = spring.getValue();\n if(tweenPosition) {\n currentMovement.position[0] = movement.position[0] * value;\n currentMovement.position[1] = movement.position[1] * value;\n currentMovement.position[2] = movement.position[2] * value;\n }\n if(tweenRotation) {\n currentMovement.rotation[0] = movement.rotation[0] * value;\n currentMovement.rotation[1] = movement.rotation[1] * value;\n currentMovement.rotation[2] = movement.rotation[2] * value;\n }\n if(tweenRotationPost) {\n currentMovement.rotationPost[0] = movement.rotationPost[0] * value;\n currentMovement.rotationPost[1] = movement.rotationPost[1] * value;\n currentMovement.rotationPost[2] = movement.rotationPost[2] * value;\n }\n if(tweenScale) {\n currentMovement.scale[0] = 1 + movement.scale[0] * value;\n currentMovement.scale[1] = 1 + movement.scale[1] * value;\n }\n\n if(tweenSkew) {\n currentMovement.skew[0] = movement.skew[0] * value;\n currentMovement.skew[1] = movement.skew[1] * value;\n }\n },\n\n updateElement: function(element) {\n updateElementTransform(element, currentMovement.asMatrix());\n updateElementProperties(element, currentMovement.getProperties());\n },\n\n getCurrentState: function() {\n return currentMovement;\n },\n\n completed: function() {\n return spring.equilibrium || stopped;\n },\n\n restart: function() {\n // Restart spring\n spring = createSpringEasing(options);\n }\n};\n};\n\n\n/**********\n* Easings *\n***********/\n\nvar linearEasing = function(value) {\nreturn value;\n};\n\nvar ease = function(value) {\nreturn (Math.cos(value*Math.PI + Math.PI) + 1)/2;\n};\n\nvar easeIn = function(value) {\nreturn value*value;\n};\n\nvar easeOut = function(value) {\nreturn -Math.pow(value - 1, 2) + 1;\n};\n\nvar createSpringEasing = function(options) {\nvar position = optionOrDefault(options.startPosition, 0);\nvar equilibriumPosition = optionOrDefault(options.equilibriumPosition, 1);\nvar velocity = optionOrDefault(options.initialVelocity, 0);\nvar springConstant = optionOrDefault(options.springConstant, 0.8);\nvar deceleration = optionOrDefault(options.springDeceleration, 0.9);\nvar mass = optionOrDefault(options.springMass, 10);\n\nvar equilibrium = false;\n\n// Public API\nreturn {\n\n tick: function(value) {\n if(value === 0.0)\n return;\n if(equilibrium)\n return;\n var springForce = -(position - equilibriumPosition) * springConstant;\n // f = m * a\n // a = f / m\n var a = springForce / mass;\n // s = v * t\n // t = 1 ( for now )\n velocity += a;\n position += velocity;\n\n // Deceleration\n velocity *= deceleration;\n\n if(Math.abs(position - equilibriumPosition) < 0.001 && Math.abs(velocity) < 0.001) {\n equilibrium = true;\n }\n },\n\n resetFrom: function(value) {\n position = value;\n velocity = 0;\n },\n\n\n getValue: function() {\n if(equilibrium)\n return equilibriumPosition;\n return position;\n },\n\n completed: function() {\n return equilibrium;\n }\n};\n};\n\nvar EASING_FUNCS = {\n'linear': linearEasing,\n'ease': ease,\n'easeIn': easeIn,\n'easeOut': easeOut,\n};\n\n\nvar createEaser = function(easerName, options) {\nif(easerName == 'spring') {\n return createSpringEasing(options);\n}\nvar easeFunction = easerName;\nif(!isFunction(easerName)) {\n easeFunction = EASING_FUNCS[easerName];\n}\n\nvar easer = easeFunction;\nvar value = 0;\nvar lastValue;\n\n// Public API\nreturn {\n tick: function(v) {\n value = easer(v);\n lastValue = v;\n },\n\n resetFrom: function(value) {\n lastValue = 0;\n },\n\n getValue: function() {\n return value;\n },\n\n completed: function() {\n if(lastValue >= 1) {\n return lastValue;\n }\n return false;\n }\n};\n};\n\n/***\n* Matrix related\n*/\n\nvar assignTranslate = function(matrix, x, y, z) {\nmatrix[0] = 1;\nmatrix[1] = 0;\nmatrix[2] = 0;\nmatrix[3] = 0;\nmatrix[4] = 0;\nmatrix[5] = 1;\nmatrix[6] = 0;\nmatrix[7] = 0;\nmatrix[8] = 0;\nmatrix[9] = 0;\nmatrix[10] = 1;\nmatrix[11] = 0;\nmatrix[12] = x;\nmatrix[13] = y;\nmatrix[14] = z;\nmatrix[15] = 1;\n};\n\nvar assignRotateX = function(matrix, rad) {\nmatrix[0] = 1;\nmatrix[1] = 0;\nmatrix[2] = 0;\nmatrix[3] = 0;\nmatrix[4] = 0;\nmatrix[5] = Math.cos(rad);\nmatrix[6] = -Math.sin(rad);\nmatrix[7] = 0;\nmatrix[8] = 0;\nmatrix[9] = Math.sin(rad);\nmatrix[10] = Math.cos(rad);\nmatrix[11] = 0;\nmatrix[12] = 0;\nmatrix[13] = 0;\nmatrix[14] = 0;\nmatrix[15] = 1;\n};\n\n\nvar assignRotateY = function(matrix, rad) {\nmatrix[0] = Math.cos(rad);\nmatrix[1] = 0;\nmatrix[2] = Math.sin(rad);\nmatrix[3] = 0;\nmatrix[4] = 0;\nmatrix[5] = 1;\nmatrix[6] = 0;\nmatrix[7] = 0;\nmatrix[8] = -Math.sin(rad);\nmatrix[9] = 0;\nmatrix[10] = Math.cos(rad);\nmatrix[11] = 0;\nmatrix[12] = 0;\nmatrix[13] = 0;\nmatrix[14] = 0;\nmatrix[15] = 1;\n};\n\nvar assignRotateZ = function(matrix, rad) {\nmatrix[0] = Math.cos(rad);\nmatrix[1] = -Math.sin(rad);\nmatrix[2] = 0;\nmatrix[3] = 0;\nmatrix[4] = Math.sin(rad);\nmatrix[5] = Math.cos(rad);\nmatrix[6] = 0;\nmatrix[7] = 0;\nmatrix[8] = 0;\nmatrix[9] = 0;\nmatrix[10] = 1;\nmatrix[11] = 0;\nmatrix[12] = 0;\nmatrix[13] = 0;\nmatrix[14] = 0;\nmatrix[15] = 1;\n};\n\nvar assignSkew = function(matrix, ax, ay) {\nmatrix[0] = 1;\nmatrix[1] = Math.tan(ax);\nmatrix[2] = 0;\nmatrix[3] = 0;\nmatrix[4] = Math.tan(ay);\nmatrix[5] = 1;\nmatrix[6] = 0;\nmatrix[7] = 0;\nmatrix[8] = 0;\nmatrix[9] = 0;\nmatrix[10] = 1;\nmatrix[11] = 0;\nmatrix[12] = 0;\nmatrix[13] = 0;\nmatrix[14] = 0;\nmatrix[15] = 1;\n};\n\n\nvar assignScale = function(matrix, x, y) {\nmatrix[0] = x;\nmatrix[1] = 0;\nmatrix[2] = 0;\nmatrix[3] = 0;\nmatrix[4] = 0;\nmatrix[5] = y;\nmatrix[6] = 0;\nmatrix[7] = 0;\nmatrix[8] = 0;\nmatrix[9] = 0;\nmatrix[10] = 1;\nmatrix[11] = 0;\nmatrix[12] = 0;\nmatrix[13] = 0;\nmatrix[14] = 0;\nmatrix[15] = 1;\n};\n\nvar assignIdentity = function(matrix) {\nmatrix[0] = 1;\nmatrix[1] = 0;\nmatrix[2] = 0;\nmatrix[3] = 0;\nmatrix[4] = 0;\nmatrix[5] = 1;\nmatrix[6] = 0;\nmatrix[7] = 0;\nmatrix[8] = 0;\nmatrix[9] = 0;\nmatrix[10] = 1;\nmatrix[11] = 0;\nmatrix[12] = 0;\nmatrix[13] = 0;\nmatrix[14] = 0;\nmatrix[15] = 1;\n};\n\nvar copyArray = function(a, b) {\nb[0] = a[0];\nb[1] = a[1];\nb[2] = a[2];\nb[3] = a[3];\nb[4] = a[4];\nb[5] = a[5];\nb[6] = a[6];\nb[7] = a[7];\nb[8] = a[8];\nb[9] = a[9];\nb[10] = a[10];\nb[11] = a[11];\nb[12] = a[12];\nb[13] = a[13];\nb[14] = a[14];\nb[15] = a[15];\n};\n\nvar createMatrix = function() {\nvar data = new Float32Array(16);\nvar a = new Float32Array(16);\nvar b = new Float32Array(16);\nassignIdentity(data);\n\nreturn {\n data: data,\n\n asCSS: function() {\n var css = 'matrix3d(';\n for(var i=0;i<15;++i) {\n if(Math.abs(data[i]) < 0.0001)\n css += '0,';\n else\n css += data[i].toFixed(10) + ',';\n }\n if(Math.abs(data[15]) < 0.0001)\n css += '0)';\n else\n css += data[15].toFixed(10) + ')';\n return css;\n },\n\n clear: function() {\n assignIdentity(data);\n },\n\n translate: function(x, y, z) {\n copyArray(data, a);\n assignTranslate(b, x, y, z);\n assignedMatrixMultiplication(a, b, data);\n return this;\n },\n\n rotateX: function(radians) {\n copyArray(data, a);\n assignRotateX(b, radians);\n assignedMatrixMultiplication(a, b, data);\n return this;\n },\n\n rotateY: function(radians) {\n copyArray(data, a);\n assignRotateY(b, radians);\n assignedMatrixMultiplication(a, b, data);\n return this;\n },\n\n rotateZ: function(radians) {\n copyArray(data, a);\n assignRotateZ(b, radians);\n assignedMatrixMultiplication(a, b, data);\n return this;\n },\n\n scale: function(x, y) {\n copyArray(data, a);\n assignScale(b, x, y);\n assignedMatrixMultiplication(a, b, data);\n return this;\n },\n\n skew: function(ax, ay) {\n copyArray(data, a);\n assignSkew(b, ax, ay);\n assignedMatrixMultiplication(a, b, data);\n return this;\n }\n};\n};\n\nvar assignedMatrixMultiplication = function(a, b, res) {\n// Unrolled loop\nres[0] = a[0] * b[0] + a[1] * b[4] + a[2] * b[8] + a[3] * b[12];\nres[1] = a[0] * b[1] + a[1] * b[5] + a[2] * b[9] + a[3] * b[13];\nres[2] = a[0] * b[2] + a[1] * b[6] + a[2] * b[10] + a[3] * b[14];\nres[3] = a[0] * b[3] + a[1] * b[7] + a[2] * b[11] + a[3] * b[15];\n\nres[4] = a[4] * b[0] + a[5] * b[4] + a[6] * b[8] + a[7] * b[12];\nres[5] = a[4] * b[1] + a[5] * b[5] + a[6] * b[9] + a[7] * b[13];\nres[6] = a[4] * b[2] + a[5] * b[6] + a[6] * b[10] + a[7] * b[14];\nres[7] = a[4] * b[3] + a[5] * b[7] + a[6] * b[11] + a[7] * b[15];\n\nres[8] = a[8] * b[0] + a[9] * b[4] + a[10] * b[8] + a[11] * b[12];\nres[9] = a[8] * b[1] + a[9] * b[5] + a[10] * b[9] + a[11] * b[13];\nres[10] = a[8] * b[2] + a[9] * b[6] + a[10] * b[10] + a[11] * b[14];\nres[11] = a[8] * b[3] + a[9] * b[7] + a[10] * b[11] + a[11] * b[15];\n\nres[12] = a[12] * b[0] + a[13] * b[4] + a[14] * b[8] + a[15] * b[12];\nres[13] = a[12] * b[1] + a[13] * b[5] + a[14] * b[9] + a[15] * b[13];\nres[14] = a[12] * b[2] + a[13] * b[6] + a[14] * b[10] + a[15] * b[14];\nres[15] = a[12] * b[3] + a[13] * b[7] + a[14] * b[11] + a[15] * b[15];\n\nreturn res;\n};\n\nvar createState = function(config) {\n// Caching of matrix and properties so we don't have to create new ones everytime they are needed\nvar matrix = createMatrix();\nvar properties = {\n opacity: undefined,\n width: undefined,\n height: undefined\n};\n\n// Public API\nreturn {\n position: config.position,\n rotation: config.rotation,\n rotationPost: config.rotationPost,\n skew: config.skew,\n scale: config.scale,\n scalePost: config.scalePost,\n opacity: config.opacity,\n width: config.width,\n height: config.height,\n\n\n clone: function() {\n return createState({\n position: this.position ? this.position.slice(0) : undefined,\n rotation: this.rotation ? this.rotation.slice(0) : undefined,\n rotationPost: this.rotationPost ? this.rotationPost.slice(0) : undefined,\n skew: this.skew ? this.skew.slice(0) : undefined,\n scale: this.scale ? this.scale.slice(0) : undefined,\n scalePost: this.scalePost ? this.scalePost.slice(0) : undefined,\n height: this.height,\n width: this.width,\n opacity: this.opacity\n });\n },\n\n asMatrix: function() {\n var m = matrix;\n m.clear();\n\n if(this.transformOrigin)\n m.translate(-this.transformOrigin[0], -this.transformOrigin[1], -this.transformOrigin[2]);\n\n if(this.scale) {\n m.scale(this.scale[0], this.scale[1]);\n }\n\n if(this.skew) {\n m.skew(this.skew[0], this.skew[1]);\n }\n\n if(this.rotation) {\n m.rotateX(this.rotation[0]);\n m.rotateY(this.rotation[1]);\n m.rotateZ(this.rotation[2]);\n }\n\n if(this.position) {\n m.translate(this.position[0], this.position[1], this.position[2]);\n }\n\n if(this.rotationPost) {\n m.rotateX(this.rotationPost[0]);\n m.rotateY(this.rotationPost[1]);\n m.rotateZ(this.rotationPost[2]);\n }\n\n if(this.scalePost) {\n m.scale(this.scalePost[0], this.scalePost[1]);\n }\n\n if(this.transformOrigin)\n m.translate(this.transformOrigin[0], this.transformOrigin[1], this.transformOrigin[2]);\n return m;\n },\n\n getProperties: function() {\n properties.opacity = this.opacity;\n properties.width = this.width + 'px';\n properties.height = this.height + 'px';\n return properties;\n }\n};\n};\n// ------------------\n// -- StateTweener -- \n// -------------------\n\nvar createStateTweener = function(startState, endState, resultState) {\nvar start = startState;\nvar end = endState;\nvar result = resultState;\n\nvar tweenPosition = end.position !== undefined;\nvar tweenRotation = end.rotation !== undefined;\nvar tweenRotationPost = end.rotationPost !== undefined;\nvar tweenScale = end.scale !== undefined;\nvar tweenSkew = end.skew !== undefined;\nvar tweenWidth = end.width !== undefined;\nvar tweenHeight = end.height !== undefined;\nvar tweenOpacity = end.opacity !== undefined;\n\n// Public API\nreturn {\n\n tween: function(tweenValue) {\n\n if(tweenPosition) {\n var dX = (end.position[0] - start.position[0]);\n var dY = (end.position[1] - start.position[1]);\n var dZ = (end.position[2] - start.position[2]);\n result.position[0] = start.position[0] + tweenValue*dX;\n result.position[1] = start.position[1] + tweenValue*dY;\n result.position[2] = start.position[2] + tweenValue*dZ;\n }\n\n if(tweenRotation) {\n var dAX = (end.rotation[0] - start.rotation[0]);\n var dAY = (end.rotation[1] - start.rotation[1]);\n var dAZ = (end.rotation[2] - start.rotation[2]);\n result.rotation[0] = start.rotation[0] + tweenValue*dAX;\n result.rotation[1] = start.rotation[1] + tweenValue*dAY;\n result.rotation[2] = start.rotation[2] + tweenValue*dAZ;\n }\n\n if(tweenRotationPost) {\n var dBX = (end.rotationPost[0] - start.rotationPost[0]);\n var dBY = (end.rotationPost[1] - start.rotationPost[1]);\n var dBZ = (end.rotationPost[2] - start.rotationPost[2]);\n result.rotationPost[0] = start.rotationPost[0] + tweenValue*dBX;\n result.rotationPost[1] = start.rotationPost[1] + tweenValue*dBY;\n result.rotationPost[2] = start.rotationPost[2] + tweenValue*dBZ;\n }\n\n if(tweenSkew) {\n var dSX = (end.scale[0] - start.scale[0]);\n var dSY = (end.scale[1] - start.scale[1]);\n\n result.scale[0] = start.scale[0] + tweenValue*dSX;\n result.scale[1] = start.scale[1] + tweenValue*dSY;\n }\n\n if(tweenScale) {\n var dSkewX = (end.skew[0] - start.skew[0]);\n var dSkewY = (end.skew[1] - start.skew[1]);\n\n result.skew[0] = start.skew[0] + tweenValue*dSkewX;\n result.skew[1] = start.skew[1] + tweenValue*dSkewY;\n }\n\n if(tweenWidth) {\n var dWidth = (end.width - start.width);\n result.width = start.width + tweenValue*dWidth;\n }\n\n\n if(tweenHeight) {\n var dHeight = (end.height - start.height);\n result.height = start.height + tweenValue*dHeight;\n }\n\n if(tweenOpacity) {\n var dOpacity = (end.opacity - start.opacity);\n result.opacity = start.opacity + tweenValue*dOpacity;\n }\n\n },\n\n asMatrix: function() {\n return result.asMatrix();\n },\n\n getProperties: function() {\n return result.getProperties();\n },\n\n setReverse: function() {\n var oldStart = start;\n start = end;\n end = oldStart;\n }\n};\n};\n\n// ------------------------\n// -- ValueFeederTweener -- \n// ------------------------\n\nvar createValueFeederTweener = function(valueFeeder, startState, endState, resultState) {\nvar currentMatrix = valueFeeder(0, createMatrix());\nvar start = startState;\nvar end = endState;\nvar result = resultState;\nvar reverse = false;\n\n\n// Public API\nreturn {\n\n tween: function(tweenValue) {\n if(reverse)\n tweenValue = 1 - tweenValue;\n currentMatrix.clear();\n currentMatrix = valueFeeder(tweenValue, currentMatrix);\n\n var dWidth = (end.width - start.width);\n var dHeight = (end.height - start.height);\n var dOpacity = (end.opacity - start.opacity);\n\n if(end.width !== undefined)\n result.width = start.width + tweenValue*dWidth;\n if(end.height !== undefined)\n result.height = start.height + tweenValue*dHeight;\n if(end.opacity !== undefined)\n result.opacity = start.opacity + tweenValue*dOpacity;\n },\n\n asMatrix: function() {\n return currentMatrix;\n },\n\n getProperties: function() {\n return result.getProperties();\n },\n\n setReverse: function() {\n reverse = true;\n }\n\n};\n};\n\nvar optionOrDefault = function(option, def) {\nif(typeof option == 'undefined') {\n return def;\n}\nreturn option;\n};\n\nvar updateElementTransform = function(element, matrix, perspective) {\nvar cssPerspective = '';\nif(perspective) {\n cssPerspective = 'perspective(' + perspective + 'px) ';\n}\nvar cssMatrix = matrix.asCSS();\nelement.style[transformProperty] = cssPerspective + cssMatrix;\n};\n\nvar updateElementProperties = function(element, properties) {\nfor(var key in properties) {\n element.style[key] = properties[key];\n}\n};\n\nvar isFunction = function(object) {\nreturn (typeof object === \"function\");\n};\n\nvar cloneObject = function(object) {\nif(!object)\n return object;\nvar clone = {};\nfor(var key in object) {\n clone[key] = object[key];\n}\nreturn clone;\n};\n\nsnabbt.createMatrix = createMatrix;\nsnabbt.setElementTransform = updateElementTransform;\nreturn snabbt;\n}());\nvar stackBlur = (function(){\n\nvar mul_table = [\n 512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,\n 454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,\n 482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,\n 437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,\n 497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,\n 320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,\n 446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,\n 329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,\n 505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,\n 399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,\n 324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,\n 268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,\n 451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,\n 385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,\n 332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,\n 289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];\n\n\nvar shg_table = [\n 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,\n 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,\n 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 ];\n\nfunction getImageDataFromCanvas(canvas, top_x, top_y, width, height)\n{\n if (typeof(canvas) == 'string')\n canvas = document.getElementById(canvas);\n else if (!canvas instanceof HTMLCanvasElement)\n return;\n\n var context = canvas.getContext('2d');\n var imageData;\n\n try {\n try {\n imageData = context.getImageData(top_x, top_y, width, height);\n } catch(e) {\n throw new Error(\"unable to access local image data: \" + e);\n return;\n }\n } catch(e) {\n throw new Error(\"unable to access image data: \" + e);\n }\n\n return imageData;\n}\n\nfunction processCanvasRGBA(canvas, top_x, top_y, width, height, radius)\n{\n if (isNaN(radius) || radius < 1) return;\n radius |= 0;\n\n var imageData = getImageDataFromCanvas(canvas, top_x, top_y, width, height);\n\n imageData = processImageDataRGBA(imageData, top_x, top_y, width, height, radius);\n\n canvas.getContext('2d').putImageData(imageData, top_x, top_y);\n}\n\nfunction processImageDataRGBA(imageData, top_x, top_y, width, height, radius)\n{\n var pixels = imageData.data;\n\n var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum,\n r_out_sum, g_out_sum, b_out_sum, a_out_sum,\n r_in_sum, g_in_sum, b_in_sum, a_in_sum,\n pr, pg, pb, pa, rbs;\n\n var div = radius + radius + 1;\n var w4 = width << 2;\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n var stackStart = new BlurStack();\n var stack = stackStart;\n for (i = 1; i < div; i++)\n {\n stack = stack.next = new BlurStack();\n if (i == radiusPlus1) var stackEnd = stack;\n }\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n\n yw = yi = 0;\n\n var mul_sum = mul_table[radius];\n var shg_sum = shg_table[radius];\n\n for (y = 0; y < height; y++)\n {\n r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi+3]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++)\n {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n for (i = 1; i < radiusPlus1; i++)\n {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[p+1])) * rbs;\n b_sum += (stack.b = (pb = pixels[p+2])) * rbs;\n a_sum += (stack.a = (pa = pixels[p+3])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n\n stack = stack.next;\n }\n\n\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++)\n {\n pixels[yi+3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa != 0)\n {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi+1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi+2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n } else {\n pixels[yi] = pixels[yi+1] = pixels[yi+2] = 0;\n }\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n\n r_in_sum += (stackIn.r = pixels[p]);\n g_in_sum += (stackIn.g = pixels[p+1]);\n b_in_sum += (stackIn.b = pixels[p+2]);\n a_in_sum += (stackIn.a = pixels[p+3]);\n\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n a_out_sum += (pa = stackOut.a);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n\n stackOut = stackOut.next;\n\n yi += 4;\n }\n yw += width;\n }\n\n\n for (x = 0; x < width; x++)\n {\n g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi+3]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++)\n {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n yp = width;\n\n for (i = 1; i <= radius; i++)\n {\n yi = (yp + x) << 2;\n\n r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[yi+1])) * rbs;\n b_sum += (stack.b = (pb = pixels[yi+2])) * rbs;\n a_sum += (stack.a = (pa = pixels[yi+3])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n\n stack = stack.next;\n\n if(i < heightMinus1)\n {\n yp += width;\n }\n }\n\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++)\n {\n p = yi << 2;\n pixels[p+3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0)\n {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p+1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p+2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n } else {\n pixels[p] = pixels[p+1] = pixels[p+2] = 0;\n }\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n\n p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2;\n\n r_sum += (r_in_sum += (stackIn.r = pixels[p]));\n g_sum += (g_in_sum += (stackIn.g = pixels[p+1]));\n b_sum += (b_in_sum += (stackIn.b = pixels[p+2]));\n a_sum += (a_in_sum += (stackIn.a = pixels[p+3]));\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n a_out_sum += (pa = stackOut.a);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n\n stackOut = stackOut.next;\n\n yi += width;\n }\n }\n return imageData;\n}\n\nfunction BlurStack()\n{\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n}\n\nreturn processCanvasRGBA;\n\n}());\n// canvas to blob polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob#Polyfill\nif (!HTMLCanvasElement.prototype.toBlob) {\n\tObject.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {\n\t\tvalue: function (callback, type, quality) {\n\n\t\t\tvar binStr = atob( this.toDataURL(type, quality).split(',')[1] ),\n\t\t\t\tlen = binStr.length,\n\t\t\t\tarr = new Uint8Array(len);\n\n\t\t\tfor (var i=0; i 1 && arguments[1] !== undefined ? arguments[1] : 'POST';\n var data = arguments[2];\n var requestDecorator = arguments[3];\n var progress = arguments[4];\n var success = arguments[5];\n var err = arguments[6];\n\n var xhr = new XMLHttpRequest();\n\n // if progress callback defined handle progress events\n if (progress) {\n xhr.upload.addEventListener('progress', function (e) {\n progress(e.loaded, e.total);\n });\n }\n\n // open the request\n xhr.open(method, url, true);\n\n // if request decorator defined pass XMLHttpRequest instance to decorator\n if (requestDecorator) {\n requestDecorator(xhr, data);\n }\n\n // handle state changes\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4 && xhr.status >= 200 && xhr.status < 300) {\n var text = xhr.responseText;\n\n // if no data returned from server assume success\n if (!text.length) {\n success();\n return;\n }\n\n // catch possible PHP content length problem\n if (text.indexOf('Content-Length') !== -1) {\n err('file-too-big');\n return;\n }\n\n // if data returned it should be in suggested JSON format\n var obj = void 0;\n try {\n obj = JSON.parse(xhr.responseText);\n } catch (e) {}\n\n // if is failure response\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj.status === 'failure') {\n err(obj.message);\n return;\n }\n\n success(obj || text);\n } else if (xhr.readyState === 4) {\n var _obj = void 0;\n try {\n _obj = JSON.parse(xhr.responseText);\n } catch (e) {}\n\n // if is clean failure response\n if ((typeof _obj === 'undefined' ? 'undefined' : _typeof(_obj)) === 'object' && _obj.status === 'failure') {\n err(_obj.message);\n return;\n }\n\n err('fail');\n }\n };\n\n // do request\n xhr.send(data);\n};\n\nvar resetTransforms = function resetTransforms(element) {\n if (!element) {\n return;\n }\n element.style.webkitTransform = '';\n element.style.transform = '';\n};\n\nvar bytesToMegaBytes = function bytesToMegaBytes(b) {\n return b / 1000000;\n};\n\nvar megaBytesToBytes = function megaBytesToBytes(mb) {\n return mb * 1000000;\n};\n\nvar getCommonMimeTypes = function getCommonMimeTypes() {\n var types = [];\n var type = void 0;\n var mimeType = void 0;\n for (type in MimeTypes) {\n if (!MimeTypes.hasOwnProperty(type)) {\n continue;\n }\n mimeType = MimeTypes[type];\n if (types.indexOf(mimeType) == -1) {\n types.push(mimeType);\n }\n }\n return types;\n};\n\nvar isJPEGMimeType = function isJPEGMimeType(type) {\n return type === 'image/jpeg';\n};\n\nvar getExtensionByMimeType = function getExtensionByMimeType(mimetype) {\n var type = void 0;\n for (type in MimeTypes) {\n if (!MimeTypes.hasOwnProperty(type)) {\n continue;\n }\n if (MimeTypes[type] === mimetype) {\n return type;\n }\n }\n return mimetype;\n};\n\nvar getMimeTypeFromResponseType = function getMimeTypeFromResponseType(responseType) {\n var type = void 0;\n for (type in MimeTypes) {\n if (!MimeTypes.hasOwnProperty(type)) {\n continue;\n }\n if (responseType.indexOf(MimeTypes[type]) !== -1) {\n return MimeTypes[type];\n }\n }\n return null;\n};\n\nvar getFileName = function getFileName(path) {\n return path.split('/').pop().split('?').shift();\n};\n\nvar leftPad = function leftPad(value) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (padding + value).slice(-padding.length);\n};\n\nvar getDateString = function getDateString(date) {\n return date.getFullYear() + '-' + leftPad(date.getMonth() + 1, '00') + '-' + leftPad(date.getDate(), '00') + '_' + leftPad(date.getHours(), '00') + '-' + leftPad(date.getMinutes(), '00') + '-' + leftPad(date.getSeconds(), '00');\n};\n\nvar getFileNameByFile = function getFileNameByFile(file) {\n if (typeof file.name === 'undefined') {\n return getDateString(new Date()) + '.' + getExtensionByMimeType(getFileTypeByFile(file));\n }\n return file.name;\n};\n\nvar getFileTypeByFile = function getFileTypeByFile(file) {\n return file.type || 'image/jpeg';\n};\n\nvar getFileNameWithoutExtension = function getFileNameWithoutExtension(path) {\n if (typeof path !== 'string') {\n return getDateString(new Date());\n }\n var name = getFileName(path);\n return name.split('.').shift();\n};\n\nvar blobToFile = function blobToFile(blob, name) {\n\n try {\n var file = new File([blob], name, {\n type: blob.type, lastModified: Date.now()\n });\n if (file.size > 0) {\n return file;\n }\n } catch (e) {}\n\n blob.lastModifiedDate = new Date();\n blob.lastModified = new Date();\n blob.name = name;\n return blob;\n};\n\nvar resourceIsFetchURL = function resourceIsFetchURL(resource) {\n return (/^fetch\\//.test(resource)\n );\n};\n\nvar resourceIsBase64Data = function resourceIsBase64Data(resource) {\n return (/^data:image/.test(resource)\n );\n};\n\nvar loadRemoteURL = function loadRemoteURL(fetcher, fetchRequestDecorator, loadRequestDecorator, url, err, cb) {\n fetcher = '' + fetcher + (fetcher.indexOf('?') !== -1 ? '&' : '?') + 'url=' + url;\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', fetcher, true);\n fetchRequestDecorator(xhr);\n xhr.responseType = 'json';\n xhr.onload = function () {\n if (this.response.status === 'failure') {\n err(this.response.message);\n return;\n }\n\n loadURL(this.response.body, loadRequestDecorator, cb);\n };\n\n xhr.send();\n};\n\nvar loadURL = function loadURL(url, requestDecorator, cb, err) {\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n requestDecorator(xhr);\n xhr.responseType = 'blob';\n xhr.onload = function (e) {\n\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 0 && this.response instanceof Blob) {\n\n // continue\n var name = getFileName(url);\n var type = getMimeTypeFromResponseType(this.response.type);\n\n if (!ImageExtensionsRegex.test(name)) {\n name += '.' + getExtensionByMimeType(type);\n }\n\n // get as file\n var file = blobToFile(this.response, name);\n\n // need to set correct type\n cb(cloneFile(file, type));\n } else {\n err(xhr.status + ': ' + xhr.statusText);\n }\n };\n xhr.onerror = function () {\n err();\n };\n\n xhr.send();\n};\n\nvar base64ToByteString = function base64ToByteString(dataURI) {\n // get data part of string (remove data:image/jpeg...,)\n var dataPart = dataURI.split(',')[1];\n\n // remove any whitespace as that causes InvalidCharacterError in IE\n var dataPartCleaned = dataPart.replace(/\\s/g, '');\n\n // to bytestring\n return atob(dataPartCleaned);\n};\n\nvar base64ToArrayBuffer = function base64ToArrayBuffer(dataURI) {\n var byteString = base64ToByteString(dataURI);\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return ab;\n};\n\nvar base64ToBlob = function base64ToBlob(dataURI, filename) {\n var byteString = base64ToByteString(dataURI);\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n var mimeType = getMimeTypeFromDataURI(dataURI);\n\n if (typeof filename === 'undefined') {\n filename = getDateString(new Date()) + '.' + getExtensionByMimeType(mimeType);\n }\n\n return blobToFile(createBlob(ab, mimeType), filename);\n};\n\nvar createBlob = function createBlob(data, mimeType) {\n var BB = window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n\n if (BB) {\n var bb = new BB();\n bb.append(data);\n return bb.getBlob(mimeType);\n }\n\n return new Blob([data], {\n type: mimeType\n });\n};\n\nvar arrayBufferConcat = function arrayBufferConcat(buffers) {\n var length = 0;\n var buffer = null;\n\n for (var i in buffers) {\n if (!_arguments.hasOwnProperty(i)) {\n continue;\n }\n buffer = buffers[i];\n length += buffer.byteLength;\n }\n\n var joined = new Uint8Array(length);\n var offset = 0;\n\n for (var _i in buffers) {\n if (!_arguments.hasOwnProperty(_i)) {\n continue;\n }\n buffer = buffers[_i];\n joined.set(new Uint8Array(buffer), offset);\n offset += buffer.byteLength;\n }\n\n return joined.buffer;\n};\n\nvar getImageAsCanvas = function getImageAsCanvas(src, size, callback) {\n // only cross origin when it's not base64 data, to prevent errors in Safari\n // http://stackoverflow.com/questions/31643096/why-does-safari-throw-cors-error-when-setting-base64-data-on-a-crossorigin-an\n var crossOrigin = typeof src === 'string' ? src.indexOf('data:image') !== 0 : true;\n\n loadImage.parseMetaData(src, function (meta) {\n var options = {\n canvas: true,\n crossOrigin: crossOrigin\n };\n\n if (size) {\n options.maxWidth = size.width;\n options.maxHeight = size.height;\n }\n\n if (meta.exif) {\n options.orientation = meta.exif.get('Orientation');\n }\n\n loadImage(src, function (res) {\n if (res.type === 'error') {\n callback();\n return;\n }\n\n callback(res, meta);\n }, options);\n });\n};\n\nvar getAutoCropRect = function getAutoCropRect(width, height, ratioOut) {\n var x,\n y,\n w,\n h,\n ratioIn = height / width;\n\n // if input is portrait and required is landscape\n // width is portrait width, height is width times outputRatio\n if (ratioIn < ratioOut) {\n h = height;\n w = h / ratioOut;\n x = (width - w) * 0.5;\n y = 0;\n } else {\n // if input is landscape and required is portrait\n // height is landscape height, width is height divided by outputRatio\n w = width;\n h = w * ratioOut;\n x = 0;\n y = (height - h) * 0.5;\n }\n\n return {\n x: x,\n y: y,\n height: h,\n width: w\n };\n};\n\nvar transformCanvas = function transformCanvas(canvas) {\n var transforms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments[2];\n\n var result = create('canvas');\n\n var rotation = transforms.rotation,\n crop = transforms.crop,\n size = transforms.size,\n filters = transforms.filters,\n minSize = transforms.minSize;\n\n // do crop transforms\n\n if (crop) {\n // do crop\n var isTilted = rotation % 180 !== 0;\n var space = {\n width: isTilted ? canvas.height : canvas.width,\n height: isTilted ? canvas.width : canvas.height\n };\n\n // limit crop to size of canvas else safari might return transparent image\n if (crop.x < 0) {\n crop.x = 0;\n }\n\n if (crop.y < 0) {\n crop.y = 0;\n }\n\n if (crop.width > space.width) {\n crop.width = space.width;\n }\n\n if (crop.height > space.height) {\n crop.height = space.height;\n }\n\n if (crop.y + crop.height > space.height) {\n crop.y = Math.max(0, space.height - crop.height);\n }\n\n if (crop.x + crop.width > space.width) {\n crop.x = Math.max(0, space.width - crop.width);\n }\n\n // crop offsets in percentages\n var px = crop.x / space.width;\n var py = crop.y / space.height;\n var pw = crop.width / space.width;\n var ph = crop.height / space.height;\n\n // resize canvas to the final crop result size\n result.width = crop.width;\n result.height = crop.height;\n\n // draw the crop\n var ctx = result.getContext('2d');\n\n if (rotation === 90) {\n ctx.translate(result.width * 0.5, result.height * 0.5);\n ctx.rotate(-90 * Math.PI / 180);\n ctx.drawImage(canvas,\n\n // source rectangle (crop area)\n (1 - py) * canvas.width - canvas.width * ph, crop.x, crop.height, crop.width,\n\n // target area (cover)\n -result.height * 0.5, -result.width * 0.5, result.height, result.width);\n } else if (rotation === 180) {\n ctx.translate(result.width * 0.5, result.height * 0.5);\n ctx.rotate(-180 * Math.PI / 180);\n ctx.drawImage(canvas,\n\n // source rectangle (crop area)\n (1 - (px + pw)) * space.width, (1 - (py + ph)) * space.height, pw * space.width, ph * space.height,\n\n // target area (cover)\n -result.width * 0.5, -result.height * 0.5, result.width, result.height);\n } else if (rotation === 270) {\n ctx.translate(result.width * 0.5, result.height * 0.5);\n ctx.rotate(-270 * Math.PI / 180);\n ctx.drawImage(canvas,\n\n // source rectangle (crop area)\n crop.y, (1 - px) * canvas.height - canvas.height * pw, crop.height, crop.width,\n\n // target area (cover)\n -result.height * 0.5, -result.width * 0.5, result.height, result.width);\n } else {\n ctx.drawImage(canvas,\n\n // source rectangle (crop area)\n crop.x, crop.y, crop.width, crop.height,\n\n // target area (cover)\n 0, 0, result.width, result.height);\n }\n }\n\n // do size transforms\n if (size) {\n var scalarX = size.width / result.width;\n var scalarY = size.height / result.height;\n var scalar = Math.min(scalarX, scalarY);\n\n scaleCanvas(result, scalar, size, minSize);\n\n // sharpen result\n if (filters.sharpen > 0) {\n filter(result, sharpen(filters.sharpen));\n }\n }\n\n cb(result);\n};\n\nfunction scaleCanvas(canvas, scalar, bounds, min) {\n\n // if not scaling down, bail out\n if (scalar >= 1) {\n return;\n }\n\n var w = canvas.width;\n var h = canvas.height;\n\n // calculate min target width and height\n var targetWidth = Math.max(min.width, Math.min(bounds.width, Math.round(canvas.width * scalar)));\n var targetHeight = Math.max(min.height, Math.min(bounds.height, Math.round(canvas.height * scalar)));\n\n var tmp = canvas;\n var ctx = null;\n\n while (w > targetWidth && h > targetHeight) {\n\n var c = document.createElement('canvas');\n w = Math.round(tmp.width * .5);\n h = Math.round(tmp.height * .5);\n\n if (w < targetWidth) {\n w = targetWidth;\n }\n\n if (h < targetHeight) {\n h = targetHeight;\n }\n\n c.width = w;\n c.height = h;\n\n ctx = c.getContext('2d');\n ctx.drawImage(tmp, 0, 0, w, h);\n\n tmp = c;\n c = null;\n }\n\n canvas.width = targetWidth;\n canvas.height = targetHeight;\n\n ctx = canvas.getContext('2d');\n ctx.drawImage(tmp, 0, 0, targetWidth, targetHeight);\n}\n\nvar getPixels = function getPixels(canvas) {\n var ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, canvas.width, canvas.height);\n};\n\nvar filter = function filter(canvas, _filter) {\n var ctx = canvas.getContext('2d');\n ctx.putImageData(_filter(getPixels(canvas), canvas.width, canvas.height), 0, 0);\n};\n\nvar createImageData = function createImageData(w, h, pixels) {\n var c = document.createElement('canvas');\n c.width = w;\n c.height = h;\n var ctx = c.getContext('2d');\n var data = ctx.createImageData(c.width, c.height);\n if (pixels) {\n data.set(pixels.data);\n }\n return data;\n};\n\nvar sharpen = function sharpen(mix) {\n return function (pixels, w, h) {\n var weights = [0, -1, 0, -1, 5, -1, 0, -1, 0],\n katet = Math.round(Math.sqrt(weights.length)),\n half = katet * 0.5 | 0,\n dstData = createImageData(w, h),\n dstBuff = dstData.data,\n srcBuff = pixels.data,\n y = h,\n x = void 0;\n\n while (y--) {\n x = w;\n\n while (x--) {\n var sy = y,\n sx = x,\n dstOff = (y * w + x) * 4,\n r = 0,\n g = 0,\n b = 0,\n a = 0;\n\n for (var cy = 0; cy < katet; cy++) {\n for (var cx = 0; cx < katet; cx++) {\n var scy = sy + cy - half;\n var scx = sx + cx - half;\n\n if (scy >= 0 && scy < h && scx >= 0 && scx < w) {\n var srcOff = (scy * w + scx) * 4;\n var wt = weights[cy * katet + cx];\n\n r += srcBuff[srcOff] * wt;\n g += srcBuff[srcOff + 1] * wt;\n b += srcBuff[srcOff + 2] * wt;\n a += srcBuff[srcOff + 3] * wt;\n }\n }\n }\n\n dstBuff[dstOff] = r * mix + srcBuff[dstOff] * (1 - mix);\n dstBuff[dstOff + 1] = g * mix + srcBuff[dstOff + 1] * (1 - mix);\n dstBuff[dstOff + 2] = b * mix + srcBuff[dstOff + 2] * (1 - mix);\n dstBuff[dstOff + 3] = srcBuff[dstOff + 3];\n }\n }\n\n return dstData;\n };\n};\n\nvar sizeDist = function sizeDist(rect, canvas) {\n var dx = Math.abs(rect.width - canvas.width);\n var dy = Math.abs(rect.height - canvas.height);\n\n return Math.max(dx, dy);\n};\n\nvar cloneCanvas = function cloneCanvas(original) {\n if (!original) {\n return null;\n }\n var duplicate = document.createElement('canvas');\n var ctx = duplicate.getContext('2d');\n duplicate.width = original.width;\n duplicate.height = original.height;\n ctx.drawImage(original, 0, 0);\n return duplicate;\n};\n\nvar cloneCanvasScaled = function cloneCanvasScaled(original, scalar) {\n if (!original) {\n return null;\n }\n\n var duplicate = document.createElement('canvas');\n var ctx = duplicate.getContext('2d');\n duplicate.width = original.width;\n duplicate.height = original.height;\n ctx.drawImage(original, 0, 0);\n if (scalar > 0 && scalar !== 1) {\n scaleCanvas(duplicate, scalar, {\n width: Math.round(original.width * scalar),\n height: Math.round(original.height * scalar)\n }, {\n width: 0,\n height: 0\n });\n }\n\n return duplicate;\n};\n\nvar canvasHasDimensions = function canvasHasDimensions(canvas) {\n return canvas.width && canvas.height;\n};\n\nvar copyCanvas = function copyCanvas(original, destination) {\n var ctx = destination.getContext('2d');\n if (canvasHasDimensions(destination)) {\n ctx.drawImage(original, 0, 0, destination.width, destination.height);\n } else {\n destination.width = original.width;\n destination.height = original.height;\n ctx.drawImage(original, 0, 0);\n }\n};\n\nvar clearCanvas = function clearCanvas(canvas) {\n var ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n};\n\nvar blurCanvas = function blurCanvas(canvas) {\n stackBlur(canvas, 0, 0, canvas.width, canvas.height, 3);\n};\n\nvar covers = function covers(image, rect) {\n return parseInt(image.width, 10) >= rect.width && parseInt(image.height, 10) >= rect.height;\n};\n\nvar scaleRect = function scaleRect(rect, w, h) {\n return {\n x: rect.x * w,\n y: rect.y * h,\n width: rect.width * w,\n height: rect.height * h\n };\n};\n\nvar divideRect = function divideRect(rect, w, h) {\n return {\n x: rect.x / w,\n y: rect.y / h,\n width: rect.width / w,\n height: rect.height / h\n };\n};\n\nvar resetFileInput = function resetFileInput(input) {\n // no value, no need to reset\n if (!input || input.value === '') {\n return;\n }\n\n try {\n // for modern browsers\n input.value = '';\n } catch (err) {}\n\n // for IE10\n if (input.value) {\n // quickly append input to temp form and reset form\n var form = document.createElement('form');\n var parentNode = input.parentNode;\n var ref = input.nextSibling;\n form.appendChild(input);\n form.reset();\n\n // re-inject input where it originally was\n if (ref) {\n parentNode.insertBefore(input, ref);\n } else {\n parentNode.appendChild(input);\n }\n }\n};\n\nvar clone = function clone(obj) {\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value !== null) {\n return JSON.parse(JSON.stringify(obj));\n }\n return obj;\n};\n\nvar cloneFile = function cloneFile(file) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!file) {\n return null;\n }\n var dupe = file.slice(0, file.size, type || file.type);\n dupe.name = file.name;\n dupe.lastModified = new Date(file.lastModified);\n return dupe;\n};\n\nvar cloneData = function cloneData(obj) {\n var dupe = clone(obj);\n dupe.input.file = cloneFile(obj.input.file);\n dupe.output.image = obj.output.image; ////cloneCanvas(obj.output.image);\n return dupe;\n};\n\n/**\n * @param image\n * @param type\n * @param jpegCompression - value between 0 and 100 or undefined/null to use default compression\n * @returns {*}\n */\nvar toDataURL = function toDataURL(image, type, jpegCompression) {\n if (!image || !type) {\n return null;\n }\n var canvas = image;\n if (image.nodeName === 'IMG') {\n canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n canvas.getContext('2d').drawImage(image, 0, 0);\n }\n return canvas.toDataURL(type, isJPEGMimeType(type) && typeof jpegCompression === 'number' ? jpegCompression / 100 : undefined);\n};\n\nvar getMimeTypeFromDataURI = function getMimeTypeFromDataURI(dataUri) {\n if (!dataUri) {\n return null;\n }\n var matches = dataUri.substr(0, 16).match(/^.+;/);\n if (matches.length) {\n return matches[0].substring(5, matches[0].length - 1);\n }\n return null;\n};\n\nvar flattenData = function flattenData(obj) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var jpegCompression = arguments[2];\n var forcedType = arguments[3];\n var async = arguments[4];\n\n var data = {\n server: clone(obj.server),\n meta: clone(obj.meta),\n input: {\n name: obj.input.name,\n type: obj.input.type,\n size: obj.input.size,\n width: obj.input.width,\n height: obj.input.height,\n field: obj.input.field\n }\n };\n\n if (inArray('input', props) && !async) {\n data.input.image = toDataURL(obj.input.image, obj.input.type);\n }\n\n if (inArray('output', props)) {\n data.output = {\n name: forcedType ? getFileNameWithoutExtension(obj.input.name) + '.' + forcedType : obj.input.name,\n type: MimeTypes[forcedType] || obj.input.type,\n width: obj.output.width,\n height: obj.output.height\n };\n\n data.output.image = toDataURL(obj.output.image, data.output.type, jpegCompression);\n data.output.type = getMimeTypeFromDataURI(data.output.image);\n\n // browser problem:\n // if output is of type png and input was of type jpeg we need to fix extension of filename\n // so instead of testing the above situation we just always fix extension when handling PNGs\n if (data.output.type === 'image/png') {\n data.output.name = getFileNameWithoutExtension(data.input.name) + '.png';\n }\n }\n\n if (inArray('actions', props)) {\n data.actions = clone(obj.actions);\n }\n\n return data;\n};\n\nvar downloadCanvas = function downloadCanvas(data, jpegCompression, forcedType) {\n var canvas = data.output.image;\n var filename = forcedType ? getFileNameWithoutExtension(data.input.name) + '.' + forcedType : data.input.name;\n var type = MimeTypes[forcedType] || data.input.type;\n\n // browser problem:\n // if output is of type png and input was of type jpeg we need to fix extension of filename\n // so instead of testing the above situation we just always fix extension when handling PNGs\n if (type === 'image/png') {\n filename = getFileNameWithoutExtension(data.input.name) + '.png';\n }\n\n canvas.toBlob(function (blob) {\n if ('msSaveBlob' in window.navigator) {\n window.navigator.msSaveBlob(blob, filename);\n return;\n }\n\n var url = (window.URL || window.webkitURL).createObjectURL(blob);\n\n // setup hidden link\n var link = create('a');\n link.style.display = 'none';\n link.download = filename;\n link.href = url;\n\n // attach to DOM otherwise this does not work in Firefox\n document.body.appendChild(link);\n\n // fire click\n link.click();\n\n // delay on remove otherwise does not work in Firefox\n setTimeout(function () {\n document.body.removeChild(link);\n (window.URL || window.webkitURL).revokeObjectURL(url);\n }, 0);\n }, type, typeof jpegCompression === 'number' ? jpegCompression / 100 : undefined);\n};\n\nvar toggleDisplayBySelector = function toggleDisplayBySelector(selector, enabled, root) {\n var node = root.querySelector(selector);\n if (!node) {\n return;\n }\n node.style.display = enabled ? '' : 'none';\n};\n\nvar nodeListToArray = function nodeListToArray(nl) {\n return Array.prototype.slice.call(nl);\n};\n\nvar removeElement = function removeElement(el) {\n el.parentNode.removeChild(el);\n};\n\nvar wrap = function wrap(element) {\n var wrapper = create('div');\n if (element.parentNode) {\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n }\n wrapper.appendChild(element);\n return wrapper;\n};\n\nvar polarToCartesian = function polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;\n\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians)\n };\n};\n\nvar describeArc = function describeArc(x, y, radius, startAngle, endAngle) {\n var start = polarToCartesian(x, y, radius, endAngle);\n var end = polarToCartesian(x, y, radius, startAngle);\n\n var arcSweep = endAngle - startAngle <= 180 ? '0' : '1';\n\n var d = ['M', start.x, start.y, 'A', radius, radius, 0, arcSweep, 0, end.x, end.y].join(' ');\n\n return d;\n};\n\nvar percentageArc = function percentageArc(x, y, radius, p) {\n return describeArc(x, y, radius, 0, p * 360);\n};\n\nvar CropArea = function () {\n var resizers = {\n n: function n(rect, offset, space, ratio) {\n var t, r, b, l, w, h, p, d;\n\n // bottom is fixed\n b = rect.y + rect.height;\n\n // intended top\n t = limit(offset.y, 0, b);\n\n // if is too small vertically\n if (b - t < space.min.height) {\n t = b - space.min.height;\n }\n\n // if should scale by ratio, pick width by ratio of new height\n w = ratio ? (b - t) / ratio : rect.width;\n\n // check if has fallen below min width or height\n if (w < space.min.width) {\n w = space.min.width;\n t = b - w * ratio;\n }\n\n // add half to left and half to right edge\n p = (w - rect.width) * 0.5;\n l = rect.x - p;\n r = rect.x + rect.width + p;\n\n // check if any of the edges has moved out of the available space, if so,\n // set max size of rectangle from original position\n if (l < 0 || Math.round(r) > Math.round(space.width)) {\n // smallest distance to edge of space\n d = Math.min(rect.x, space.width - (rect.x + rect.width));\n\n // new left and right offsets\n l = rect.x - d;\n r = rect.x + rect.width + d;\n\n // resulting width\n w = r - l;\n\n // resulting height based on ratio\n h = w * ratio;\n\n // new top position\n t = b - h;\n }\n\n return {\n x: l,\n y: t,\n width: r - l,\n height: b - t\n };\n },\n s: function s(rect, offset, space, ratio) {\n var t, r, b, l, w, h, p, d;\n\n // top is fixed\n t = rect.y;\n\n // intended bottom\n b = limit(offset.y, t, space.height);\n\n // if is too small vertically\n if (b - t < space.min.height) {\n b = t + space.min.height;\n }\n\n // if should scale by ratio, pick width by ratio of new height\n w = ratio ? (b - t) / ratio : rect.width;\n\n // check if has fallen below min width or height\n if (w < space.min.width) {\n w = space.min.width;\n b = t + w * ratio;\n }\n\n // add half to left and half to right edge\n p = (w - rect.width) * 0.5;\n l = rect.x - p;\n r = rect.x + rect.width + p;\n\n // check if any of the edges has moved out of the available space, if so,\n // set max size of rectangle from original position\n if (l < 0 || Math.round(r) > Math.round(space.width)) {\n // smallest distance to edge of space\n d = Math.min(rect.x, space.width - (rect.x + rect.width));\n\n // new left and right offsets\n l = rect.x - d;\n r = rect.x + rect.width + d;\n\n // resulting width\n w = r - l;\n\n // resulting height based on ratio\n h = w * ratio;\n\n // new bottom position\n b = t + h;\n }\n\n return {\n x: l,\n y: t,\n width: r - l,\n height: b - t\n };\n },\n e: function e(rect, offset, space, ratio) {\n var t, r, b, l, w, h, p, d;\n\n // left is fixed\n l = rect.x;\n\n // intended right edge\n r = limit(offset.x, l, space.width);\n\n // if is too small vertically\n if (r - l < space.min.width) {\n r = l + space.min.width;\n }\n\n // if should scale by ratio, pick height by ratio of new width\n h = ratio ? (r - l) * ratio : rect.height;\n\n // check if has fallen below min width or height\n if (h < space.min.height) {\n h = space.min.height;\n r = l + h / ratio;\n }\n\n // add half to top and bottom\n p = (h - rect.height) * 0.5;\n t = rect.y - p;\n b = rect.y + rect.height + p;\n\n // check if any of the edges has moved out of the available space, if so,\n // set max size of rectangle from original position\n if (t < 0 || Math.round(b) > Math.round(space.height)) {\n // smallest distance to edge of space\n d = Math.min(rect.y, space.height - (rect.y + rect.height));\n\n // new top and bottom offsets\n t = rect.y - d;\n b = rect.y + rect.height + d;\n\n // resulting height\n h = b - t;\n\n // resulting width based on ratio\n w = h / ratio;\n\n // new right position\n r = l + w;\n }\n\n return {\n x: l,\n y: t,\n width: r - l,\n height: b - t\n };\n },\n w: function w(rect, offset, space, ratio) {\n var t, r, b, l, w, h, p, d;\n\n // right is fixed\n r = rect.x + rect.width;\n\n // intended left edge\n l = limit(offset.x, 0, r);\n\n // if is too small vertically\n if (r - l < space.min.width) {\n l = r - space.min.width;\n }\n\n // if should scale by ratio, pick height by ratio of new width\n h = ratio ? (r - l) * ratio : rect.height;\n\n // check if has fallen below min width or height\n if (h < space.min.height) {\n h = space.min.height;\n l = r - h / ratio;\n }\n\n // add half to top and bottom\n p = (h - rect.height) * 0.5;\n t = rect.y - p;\n b = rect.y + rect.height + p;\n\n // check if any of the edges has moved out of the available space, if so,\n // set max size of rectangle from original position\n if (t < 0 || Math.round(b) > Math.round(space.height)) {\n // smallest distance to edge of space\n d = Math.min(rect.y, space.height - (rect.y + rect.height));\n\n // new top and bottom offsets\n t = rect.y - d;\n b = rect.y + rect.height + d;\n\n // resulting height\n h = b - t;\n\n // resulting width based on ratio\n w = h / ratio;\n\n // new right position\n l = r - w;\n }\n\n return {\n x: l,\n y: t,\n width: r - l,\n height: b - t\n };\n },\n ne: function ne(rect, offset, space, ratio) {\n var t, r, b, l, w, h, d;\n\n // left and bottom are fixed\n l = rect.x;\n b = rect.y + rect.height;\n\n // intended right edge\n r = limit(offset.x, l, space.width);\n\n // if is too small vertically\n if (r - l < space.min.width) {\n r = l + space.min.width;\n }\n\n // if should scale by ratio, pick height by ratio of new width\n h = ratio ? (r - l) * ratio : limit(b - offset.y, space.min.height, b);\n\n // check if has fallen below min width or height\n if (h < space.min.height) {\n h = space.min.height;\n r = l + h / ratio;\n }\n\n // add height difference with original height to top\n t = rect.y - (h - rect.height);\n\n // check if any of the edges has moved out of the available space, if so,\n // set max size of rectangle from original position\n if (t < 0 || Math.round(b) > Math.round(space.height)) {\n // smallest distance to edge of space\n d = Math.min(rect.y, space.height - (rect.y + rect.height));\n\n // new top and bottom offsets\n t = rect.y - d;\n\n // resulting height\n h = b - t;\n\n // resulting width based on ratio\n w = h / ratio;\n\n // new right position\n r = l + w;\n }\n\n return {\n x: l,\n y: t,\n width: r - l,\n height: b - t\n };\n },\n se: function se(rect, offset, space, ratio) {\n var t, r, b, l, w, h, d;\n\n // left and top are fixed\n l = rect.x;\n t = rect.y;\n\n // intended right edge\n r = limit(offset.x, l, space.width);\n\n // if is too small vertically\n if (r - l < space.min.width) {\n r = l + space.min.width;\n }\n\n // if should scale by ratio, pick height by ratio of new width\n h = ratio ? (r - l) * ratio : limit(offset.y - rect.y, space.min.height, space.height - t);\n\n // check if has fallen below min width or height\n if (h < space.min.height) {\n h = space.min.height;\n r = l + h / ratio;\n }\n\n // add height difference with original height to bottom\n b = rect.y + rect.height + (h - rect.height);\n\n // check if any of the edges has moved out of the available space, if so,\n // set max size of rectangle from original position\n if (t < 0 || Math.round(b) > Math.round(space.height)) {\n // smallest distance to edge of space\n d = Math.min(rect.y, space.height - (rect.y + rect.height));\n\n // new bottom offset\n b = rect.y + rect.height + d;\n\n // resulting height\n h = b - t;\n\n // resulting width based on ratio\n w = h / ratio;\n\n // new right position\n r = l + w;\n }\n\n return {\n x: l,\n y: t,\n width: r - l,\n height: b - t\n };\n },\n sw: function sw(rect, offset, space, ratio) {\n var t, r, b, l, w, h, d;\n\n // right and top are fixed\n r = rect.x + rect.width;\n t = rect.y;\n\n // intended left edge\n l = limit(offset.x, 0, r);\n\n // if is too small vertically\n if (r - l < space.min.width) {\n l = r - space.min.width;\n }\n\n // if should scale by ratio, pick height by ratio of new width\n h = ratio ? (r - l) * ratio : limit(offset.y - rect.y, space.min.height, space.height - t);\n\n // check if has fallen below min width or height\n if (h < space.min.height) {\n h = space.min.height;\n l = r - h / ratio;\n }\n\n // add height difference with original height to bottom\n b = rect.y + rect.height + (h - rect.height);\n\n // check if any of the edges has moved out of the available space, if so,\n // set max size of rectangle from original position\n if (t < 0 || Math.round(b) > Math.round(space.height)) {\n // smallest distance to edge of space\n d = Math.min(rect.y, space.height - (rect.y + rect.height));\n\n // new bottom offset\n b = rect.y + rect.height + d;\n\n // resulting height\n h = b - t;\n\n // resulting width based on ratio\n w = h / ratio;\n\n // new left position\n l = r - w;\n }\n\n return {\n x: l,\n y: t,\n width: r - l,\n height: b - t\n };\n },\n nw: function nw(rect, offset, space, ratio) {\n var t, r, b, l, w, h, d;\n\n // right and bottom are fixed\n r = rect.x + rect.width;\n b = rect.y + rect.height;\n\n // intended left edge\n l = limit(offset.x, 0, r);\n\n // if is too small vertically\n if (r - l < space.min.width) {\n l = r - space.min.width;\n }\n\n // if should scale by ratio, pick height by ratio of new width\n h = ratio ? (r - l) * ratio : limit(b - offset.y, space.min.height, b);\n\n // check if has fallen below min width or height\n if (h < space.min.height) {\n h = space.min.height;\n l = r - h / ratio;\n }\n\n // add height difference with original height to bottom\n t = rect.y - (h - rect.height);\n\n // check if any of the edges has moved out of the available space, if so,\n // set max size of rectangle from original position\n if (t < 0 || Math.round(b) > Math.round(space.height)) {\n // smallest distance to edge of space\n d = Math.min(rect.y, space.height - (rect.y + rect.height));\n\n // new bottom offset\n t = rect.y - d;\n\n // resulting height\n h = b - t;\n\n // resulting width based on ratio\n w = h / ratio;\n\n // new left position\n l = r - w;\n }\n\n return {\n x: l,\n y: t,\n width: r - l,\n height: b - t\n };\n }\n };\n\n /**\n * CropArea\n */\n return function () {\n function CropArea() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.createElement('div');\n\n _classCallCheck(this, CropArea);\n\n this._element = element;\n\n this._interaction = null;\n\n this._minWidth = 1;\n this._minHeight = 1;\n\n this._ratio = null;\n\n this._rect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n\n this._space = {\n width: 0,\n height: 0\n };\n\n this._rectChanged = false;\n\n this._init();\n }\n\n _createClass(CropArea, [{\n key: '_init',\n value: function _init() {\n this._element.className = 'slim-crop-area';\n\n // lines\n var lines = create('div', 'grid');\n this._element.appendChild(lines);\n\n // corner & edge resize buttons\n for (var handler in resizers) {\n if (!resizers.hasOwnProperty(handler)) {\n continue;\n }\n var _btn = create('button', handler);\n this._element.appendChild(_btn);\n }\n var btn = create('button', 'c');\n this._element.appendChild(btn);\n\n addEvents(document, Events.DOWN, this);\n }\n }, {\n key: 'reset',\n value: function reset() {\n this._interaction = null;\n\n this._rect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n\n this._rectChanged = true;\n\n this._redraw();\n\n this._element.dispatchEvent(new CustomEvent('change'));\n }\n }, {\n key: 'rescale',\n value: function rescale(scale) {\n // no rescale\n if (scale === 1) {\n return;\n }\n\n this._interaction = null;\n\n this._rectChanged = true;\n\n this._rect.x *= scale;\n this._rect.y *= scale;\n this._rect.width *= scale;\n this._rect.height *= scale;\n\n this._redraw();\n\n this._element.dispatchEvent(new CustomEvent('change'));\n }\n }, {\n key: 'limit',\n value: function limit(width, height) {\n this._space.width = width;\n this._space.height = height;\n }\n }, {\n key: 'offset',\n value: function offset(x, y) {\n this._space.x = x;\n this._space.y = y;\n }\n }, {\n key: 'resize',\n value: function resize(x, y, width, height) {\n this._interaction = null;\n\n this._rect = {\n x: limit(x, 0, this._space.width - this._minWidth),\n y: limit(y, 0, this._space.height - this._minHeight),\n width: limit(width, this._minWidth, this._space.width),\n height: limit(height, this._minHeight, this._space.height)\n };\n\n this._rectChanged = true;\n\n this._redraw();\n\n this._element.dispatchEvent(new CustomEvent('change'));\n }\n }, {\n key: 'handleEvent',\n value: function handleEvent(e) {\n switch (e.type) {\n case 'touchstart':\n case 'pointerdown':\n case 'mousedown':\n {\n this._onStartDrag(e);\n }\n break;\n case 'touchmove':\n case 'pointermove':\n case 'mousemove':\n {\n this._onDrag(e);\n }\n break;\n case 'touchend':\n case 'touchcancel':\n case 'pointerup':\n case 'mouseup':\n {\n this._onStopDrag(e);\n }\n }\n }\n }, {\n key: '_onStartDrag',\n value: function _onStartDrag(e) {\n // is not my event?\n if (!this._element.contains(e.target)) {\n return;\n }\n\n e.preventDefault();\n\n // listen to drag related events\n addEvents(document, Events.MOVE, this);\n addEvents(document, Events.UP, this);\n\n this._interaction = {\n type: e.target.className,\n offset: getEventOffsetScroll(e)\n };\n\n this._interaction.offset.x -= this._rect.x;\n this._interaction.offset.y -= this._rect.y;\n\n // now dragging\n this._element.setAttribute('data-dragging', 'true');\n\n // start the redraw update loop\n this._redraw();\n }\n }, {\n key: '_onDrag',\n value: function _onDrag(e) {\n e.preventDefault();\n\n // get local offset for this event\n var offset = getEventOffsetScroll(e);\n var type = this._interaction.type;\n\n // drag\n if (type === 'c') {\n this._rect.x = limit(offset.x - this._interaction.offset.x, 0, this._space.width - this._rect.width);\n this._rect.y = limit(offset.y - this._interaction.offset.y, 0, this._space.height - this._rect.height);\n } else if (resizers[type]) {\n // resize\n this._rect = resizers[type](this._rect, {\n x: offset.x - this._space.x,\n y: offset.y - this._space.y\n }, {\n x: 0,\n y: 0,\n width: this._space.width,\n height: this._space.height,\n min: {\n width: this._minWidth,\n height: this._minHeight\n }\n }, this._ratio);\n }\n\n this._rectChanged = true;\n\n // dispatch\n this._element.dispatchEvent(new CustomEvent('input'));\n }\n }, {\n key: '_onStopDrag',\n value: function _onStopDrag(e) {\n e.preventDefault();\n\n // stop listening to drag related events\n removeEvents(document, Events.MOVE, this);\n removeEvents(document, Events.UP, this);\n\n // no longer interacting, so no need to redraw\n this._interaction = null;\n\n // now dragging\n this._element.setAttribute('data-dragging', 'false');\n\n // fire change event\n this._element.dispatchEvent(new CustomEvent('change'));\n }\n }, {\n key: '_redraw',\n value: function _redraw() {\n var _this = this;\n\n if (this._rectChanged) {\n var transform = 'translate(' + this._rect.x + 'px,' + this._rect.y + 'px);';\n this._element.style.cssText = '\\n\\t\\t\\t\\t\\t-webkit-transform: ' + transform + ';\\n\\t\\t\\t\\t\\ttransform: ' + transform + ';\\n\\t\\t\\t\\t\\twidth:' + this._rect.width + 'px;\\n\\t\\t\\t\\t\\theight:' + this._rect.height + 'px;\\n\\t\\t\\t\\t';\n\n this._rectChanged = false;\n }\n\n // if no longer interacting with crop area stop here\n if (!this._interaction) {\n return;\n }\n\n // redraw\n requestAnimationFrame(function () {\n return _this._redraw();\n });\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this._interaction = false;\n this._rectChanged = false;\n\n removeEvents(document, Events.DOWN, this);\n removeEvents(document, Events.MOVE, this);\n removeEvents(document, Events.UP, this);\n\n removeElement(this._element);\n }\n }, {\n key: 'element',\n get: function get() {\n return this._element;\n }\n }, {\n key: 'space',\n get: function get() {\n return this._space;\n }\n }, {\n key: 'area',\n get: function get() {\n var x = this._rect.x / this._space.width;\n var y = this._rect.y / this._space.height;\n var width = this._rect.width / this._space.width;\n var height = this._rect.height / this._space.height;\n\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n }, {\n key: 'dirty',\n get: function get() {\n return this._rect.x !== 0 || this._rect.y !== 0 || this._rect.width !== 0 || this._rect.height !== 0;\n }\n }, {\n key: 'minWidth',\n set: function set(value) {\n this._minWidth = Math.max(value, 1);\n }\n }, {\n key: 'minHeight',\n set: function set(value) {\n this._minHeight = Math.max(value, 1);\n }\n }, {\n key: 'ratio',\n set: function set(value) {\n this._ratio = value;\n }\n }]);\n\n return CropArea;\n }();\n}();\n\nvar ImageEditor = function () {\n /**\n * ImageEditor\n * @param element\n * @param options\n * @constructor\n */\n\n var CropAreaEvents = ['input', 'change'];\n\n var ImageEditor = function () {\n function ImageEditor() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.createElement('div');\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, ImageEditor);\n\n this._element = element;\n this._options = mergeOptions(ImageEditor.options(), options);\n\n this._ratio = null;\n this._output = null;\n this._rotating = false;\n\n this._input = null;\n\n this._preview = null;\n this._previewBlurred = null;\n\n this._blurredPreview = false;\n\n this._cropper = null;\n this._straightCrop = null;\n this._previewWrapper = null;\n this._currentWindowSize = {};\n\n this._btnGroup = null;\n this._maskFrame = null;\n\n this._dirty = false;\n\n this._wrapperRotation = 0;\n this._wrapperScale = 1.0;\n\n this._init();\n }\n\n _createClass(ImageEditor, [{\n key: '_init',\n value: function _init() {\n var _this2 = this;\n\n this._element.className = 'slim-image-editor';\n\n // container\n this._container = create('div', 'slim-container');\n\n // wrapper\n this._wrapper = create('div', 'slim-wrapper');\n\n // photo crop mark container\n this._stage = create('div', 'slim-stage');\n this._container.appendChild(this._stage);\n\n // create crop marks\n this._cropper = new CropArea();\n CropAreaEvents.forEach(function (e) {\n _this2._cropper.element.addEventListener(e, _this2);\n });\n this._stage.appendChild(this._cropper.element);\n\n // canvas ghost\n this._previewWrapper = create('div', 'slim-image-editor-preview slim-crop-preview');\n this._previewBlurred = create('canvas', 'slim-crop-blur');\n this._previewWrapper.appendChild(this._previewBlurred);\n this._wrapper.appendChild(this._previewWrapper);\n\n this._previewMask = create('div', 'slim-crop-mask');\n this._preview = create('img');\n this._previewMask.appendChild(this._preview);\n this._cropper.element.appendChild(this._previewMask);\n\n // buttons\n this._btnGroup = create('div', 'slim-editor-btn-group');\n ImageEditor.Buttons.forEach(function (c) {\n var prop = capitalizeFirstLetter(c);\n var label = _this2._options['button' + prop + 'Label'];\n var title = _this2._options['button' + prop + 'Title'];\n var className = _this2._options['button' + prop + 'ClassName'];\n var btn = create('button', 'slim-editor-btn slim-btn-' + c + (className ? ' ' + className : ''));\n btn.innerHTML = label;\n btn.title = title || label;\n btn.type = 'button';\n btn.setAttribute('data-action', c);\n btn.addEventListener('click', _this2);\n _this2._btnGroup.appendChild(btn);\n });\n\n // utils\n this._utilsGroup = create('div', 'slim-editor-utils-group');\n\n // create rotation button\n var btn = create('button', 'slim-editor-utils-btn slim-btn-rotate' + (this._options.buttonRotateClassName ? ' ' + this._options.buttonRotateClassName : ''));\n btn.setAttribute('data-action', 'rotate');\n btn.addEventListener('click', this);\n btn.title = this._options.buttonRotateTitle;\n this._utilsGroup.appendChild(btn);\n\n this._container.appendChild(this._wrapper);\n\n this._element.appendChild(this._container);\n this._element.appendChild(this._utilsGroup);\n this._element.appendChild(this._btnGroup);\n }\n }, {\n key: 'dirty',\n value: function dirty() {\n this._dirty = true;\n }\n }, {\n key: 'handleEvent',\n value: function handleEvent(e) {\n switch (e.type) {\n case 'click':\n this._onClick(e);\n break;\n case 'change':\n this._onGridChange(e);\n break;\n case 'input':\n this._onGridInput(e);\n break;\n case 'keydown':\n this._onKeyDown(e);\n break;\n case 'resize':\n this._onResize(e);\n break;\n }\n }\n }, {\n key: '_onKeyDown',\n value: function _onKeyDown(e) {\n switch (e.keyCode) {\n case Key.RETURN:\n {\n this._confirm();\n break;\n }\n case Key.ESC:\n {\n this._cancel();\n break;\n }\n }\n }\n }, {\n key: '_onClick',\n value: function _onClick(e) {\n if (e.target.classList.contains('slim-btn-cancel')) {\n this._cancel();\n }\n\n if (e.target.classList.contains('slim-btn-confirm')) {\n this._confirm();\n }\n\n if (e.target.classList.contains('slim-btn-rotate')) {\n this._rotate();\n }\n }\n }, {\n key: '_onResize',\n value: function _onResize() {\n // remember window size\n this._currentWindowSize = {\n width: window.innerWidth,\n height: window.innerHeight\n };\n\n // redraw the image editor based on new dimensions\n this._redraw();\n\n this._redrawCropper(this._cropper.area);\n\n this._updateWrapperScale();\n\n // apply rotation and scale\n this._redrawWrapper();\n }\n }, {\n key: '_redrawWrapper',\n value: function _redrawWrapper() {\n var matrix = snabbt.createMatrix();\n matrix.scale(this._wrapperScale, this._wrapperScale);\n matrix.rotateZ(this._wrapperRotation * (Math.PI / 180));\n snabbt.setElementTransform(this._previewWrapper, matrix);\n }\n }, {\n key: '_onGridInput',\n value: function _onGridInput() {\n this._redrawCropMask();\n }\n }, {\n key: '_onGridChange',\n value: function _onGridChange() {\n this._redrawCropMask();\n }\n }, {\n key: '_updateWrapperRotation',\n value: function _updateWrapperRotation() {\n if (this._options.minSize.width > this._input.height || this._options.minSize.height > this._input.width) {\n this._wrapperRotation += 180;\n } else {\n this._wrapperRotation += 90;\n }\n }\n }, {\n key: '_updateWrapperScale',\n value: function _updateWrapperScale() {\n // test if is tilted\n var isTilted = this._wrapperRotation % 180 !== 0;\n\n // if tilted determine correct scale factor\n if (isTilted) {\n // maximum size\n var maxWidth = this._container.offsetWidth;\n var maxHeight = this._container.offsetHeight;\n\n // get wrapper size\n var wrapperWidth = this._wrapper.offsetHeight;\n var wrapperHeight = this._wrapper.offsetWidth;\n\n var scalar = maxWidth / wrapperWidth;\n if (scalar * wrapperHeight > maxHeight) {\n scalar = maxHeight / wrapperHeight;\n }\n\n this._wrapperScale = scalar;\n } else {\n this._wrapperScale = 1.0;\n }\n }\n\n /**\n * Action handlers\n */\n\n }, {\n key: '_cancel',\n value: function _cancel() {\n if (this._rotating) {\n return;\n }\n\n this._element.dispatchEvent(new CustomEvent('cancel'));\n }\n }, {\n key: '_confirm',\n value: function _confirm() {\n if (this._rotating) {\n return;\n }\n\n var isTilted = this._wrapperRotation % 180 !== 0;\n var area = this._cropper.area;\n\n var result = scaleRect(area, isTilted ? this._input.height : this._input.width, isTilted ? this._input.width : this._input.height);\n\n this._element.dispatchEvent(new CustomEvent('confirm', {\n detail: {\n rotation: this._wrapperRotation % 360,\n crop: result\n }\n }));\n }\n }, {\n key: '_rotate',\n value: function _rotate() {\n var _this3 = this;\n\n if (this._rotating) {\n return;\n }\n\n this._rotating = true;\n\n // rotate!\n this._updateWrapperRotation();\n\n // only pass current rect if is 1:1 or free\n var rect = this.ratio === 1 || this._ratio === null ? this._cropper.area : null;\n if (rect) {\n rotate(rect, 90);\n }\n\n // wrapper might also need to be scaled\n this._updateWrapperScale();\n\n // hide the cropper\n this._hideCropper();\n\n // rotation effect\n snabbt(this._previewWrapper, {\n rotation: [0, 0, this._wrapperRotation * (Math.PI / 180)],\n scale: [this._wrapperScale, this._wrapperScale],\n easing: 'spring',\n springConstant: 0.8,\n springDeceleration: 0.65,\n complete: function complete() {\n // redraws auto cropper\n _this3._redrawCropper(rect);\n\n // shows the cropper\n _this3._showCropper();\n\n // done rotating\n _this3._rotating = false;\n }\n });\n }\n }, {\n key: '_showCropper',\n value: function _showCropper() {\n snabbt(this._stage, {\n easing: 'ease',\n duration: 250,\n fromOpacity: 0,\n opacity: 1.0\n });\n }\n }, {\n key: '_hideCropper',\n value: function _hideCropper() {\n snabbt(this._stage, {\n duration: 0,\n fromOpacity: 0,\n opacity: 0\n });\n }\n }, {\n key: '_redrawCropMask',\n value: function _redrawCropMask() {\n var _this4 = this;\n\n // get rotation\n var rotation = this._wrapperRotation % 360;\n\n // get scale\n var scale = this._wrapperScale;\n\n // get image size\n var canvas = {\n width: this._wrapper.offsetWidth,\n height: this._wrapper.offsetHeight\n };\n\n // get default mask cropper area\n var mask = this._cropper.area;\n var preview = {\n x: 0,\n y: 0\n };\n\n if (rotation === 0) {\n preview.x = -mask.x;\n preview.y = -mask.y;\n } else if (rotation === 90) {\n preview.x = -(1 - mask.y);\n preview.y = -mask.x;\n } else if (rotation === 180) {\n preview.x = -(1 - mask.x);\n preview.y = -(1 - mask.y);\n } else if (rotation === 270) {\n preview.x = -mask.y;\n preview.y = -(1 - mask.x);\n }\n\n // scale rect to fit canvas\n preview.x *= canvas.width;\n preview.y *= canvas.height;\n\n // update on next frame (so it's in sync with crop area redraw)\n cancelAnimationFrame(this._maskFrame);\n this._maskFrame = requestAnimationFrame(function () {\n var transform = 'scale(' + scale + ') rotate(' + -rotation + 'deg) translate(' + preview.x + 'px, ' + preview.y + 'px);';\n _this4._preview.style.cssText = '\\n\\t\\t\\t\\t\\twidth: ' + _this4._previewSize.width + 'px;\\n\\t\\t\\t\\t\\theight: ' + _this4._previewSize.height + 'px;\\n\\t\\t\\t\\t\\t-webkit-transform: ' + transform + ';\\n\\t\\t\\t\\t\\ttransform: ' + transform + ';\\n\\t\\t\\t\\t';\n });\n }\n }, {\n key: 'open',\n value: function open(image, ratio, crop, rotation, complete) {\n var _this5 = this;\n\n // test if is same image\n if (this._input && !this._dirty && this._ratio === ratio) {\n complete();\n return;\n }\n\n // remember current window size\n this._currentWindowSize = {\n width: window.innerWidth,\n height: window.innerHeight\n };\n\n // reset dirty value\n this._dirty = false;\n\n // reset rotation\n this._wrapperRotation = rotation || 0;\n\n // we'll always have to blur the preview of a newly opened image\n this._blurredPreview = false;\n\n // set ratio\n this._ratio = ratio;\n\n // reset preview size\n this._previewSize = null;\n\n // hide editor\n this._element.style.opacity = '0';\n\n // set as new input image\n this._input = image;\n\n // calculate crop\n var tilted = rotation % 180 !== 0;\n var relativeCrop = divideRect(crop, tilted ? image.height : image.width, tilted ? image.width : image.height);\n\n // preview has now loaded\n this._preview.onload = function () {\n // reset onload listener\n _this5._preview.onload = null;\n\n // setup cropper\n _this5._cropper.ratio = _this5.ratio;\n\n // redraw view (for first time)\n _this5._redraw();\n\n // redraw cropper\n _this5._redrawCropper(relativeCrop);\n\n // done\n complete();\n\n // fade in\n _this5._element.style.opacity = '';\n };\n\n // load lower resolution preview image\n this._preview.src = '';\n this._preview.src = cloneCanvasScaled(this._input, Math.min(this._container.offsetWidth / this._input.width, this._container.offsetHeight / this._input.height) * this._options.devicePixelRatio).toDataURL();\n }\n }, {\n key: '_redrawCropper',\n value: function _redrawCropper(rect) {\n var isTilted = this._wrapperRotation % 180 !== 0;\n\n // image ratio\n var imageRatio = isTilted ? this._input.height / this._input.width : this._input.width / this._input.height;\n\n // get dimensions of image wrapper\n var width = this._wrapper.offsetWidth;\n var height = this._wrapper.offsetHeight;\n\n // get space\n var maxWidth = this._container.offsetWidth;\n var maxHeight = this._container.offsetHeight;\n\n // rescale wrapper\n this._updateWrapperScale();\n\n // position cropper container to fit wrapper\n var sw = this._wrapperScale * (isTilted ? height : width);\n var sh = this._wrapperScale * (isTilted ? width : height);\n var sx = isTilted ? (maxWidth - sw) * 0.5 : this._wrapper.offsetLeft;\n var sy = isTilted ? (maxHeight - sh) * 0.5 : this._wrapper.offsetTop;\n\n this._stage.style.cssText = '\\n\\t\\t\\t\\tleft:' + sx + 'px;\\n\\t\\t\\t\\ttop:' + sy + 'px;\\n\\t\\t\\t\\twidth:' + sw + 'px;\\n\\t\\t\\t\\theight:' + sh + 'px;\\n\\t\\t\\t';\n\n // set new size limit for crops\n // use image ratio so we have exact amount of pixels\n this._cropper.limit(sw, sw / imageRatio);\n this._cropper.offset(sx + this._element.offsetLeft, sy + this._element.offsetTop);\n\n // set min and max height of cropper\n this._cropper.minWidth = this._wrapperScale * this._options.minSize.width * this.scalar;\n this._cropper.minHeight = this._wrapperScale * this._options.minSize.height * this.scalar;\n\n // set crop rect\n var crop = null;\n if (rect) {\n crop = {\n x: rect.x * sw,\n y: rect.y * sh,\n width: rect.width * sw,\n height: rect.height * sh\n };\n } else {\n crop = getAutoCropRect(sw, sh, this._ratio || sh / sw);\n }\n\n this._cropper.resize(crop.x, crop.y, crop.width, crop.height);\n }\n }, {\n key: '_redraw',\n value: function _redraw() {\n // image ratio\n var ratio = this._input.height / this._input.width;\n\n // determine rounded size\n var maxWidth = this._container.clientWidth;\n var maxHeight = this._container.clientHeight;\n\n var width = maxWidth;\n var height = width * ratio;\n\n if (height > maxHeight) {\n height = maxHeight;\n width = height / ratio;\n }\n\n width = Math.round(width);\n height = Math.round(height);\n\n // rescale and recenter wrapper\n var x = (maxWidth - width) / 2;\n var y = (maxHeight - height) / 2;\n\n this._wrapper.style.cssText = '\\n\\t\\t\\t\\tleft:' + x + 'px;\\n\\t\\t\\t\\ttop:' + y + 'px;\\n\\t\\t\\t\\twidth:' + width + 'px;\\n\\t\\t\\t\\theight:' + height + 'px;\\n\\t\\t\\t';\n\n // set image size based on container dimensions\n this._previewBlurred.style.cssText = '\\n\\t\\t\\t\\twidth:' + width + 'px;\\n\\t\\t\\t\\theight:' + height + 'px;\\n\\t\\t\\t';\n\n this._preview.style.cssText = '\\n\\t\\t\\t\\twidth:' + width + 'px;\\n\\t\\t\\t\\theight:' + height + 'px;\\n\\t\\t\\t';\n\n this._previewSize = {\n width: width,\n height: height\n };\n\n // scale and blur the blurry preview\n if (!this._blurredPreview) {\n this._previewBlurred.width = 300;\n this._previewBlurred.height = this._previewBlurred.width * ratio;\n\n copyCanvas(this._input, this._previewBlurred);\n\n blurCanvas(this._previewBlurred, 3);\n\n this._blurredPreview = true;\n }\n }\n }, {\n key: 'show',\n value: function show() {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n // test if window size has changed since previous showing\n if (this._currentWindowSize.width !== window.innerWidth || this._currentWindowSize.height !== window.innerHeight) {\n // if so, reposition elements\n this._redraw();\n\n // redraw cropper position\n this._redrawCropper(this._cropper.area);\n }\n\n // listen to keydown so we can close or confirm with RETURN / ESC\n document.addEventListener('keydown', this);\n\n // when window is scaled we want to resize the editor\n window.addEventListener('resize', this);\n\n // fade in preview\n var rotation = this._wrapperRotation * (Math.PI / 180);\n snabbt(this._previewWrapper, {\n fromRotation: [0, 0, rotation],\n rotation: [0, 0, rotation],\n fromPosition: [0, 0, 0],\n position: [0, 0, 0],\n fromOpacity: 0,\n opacity: 1,\n fromScale: [this._wrapperScale - 0.02, this._wrapperScale - 0.02],\n scale: [this._wrapperScale, this._wrapperScale],\n easing: 'spring',\n springConstant: 0.3,\n springDeceleration: 0.85,\n delay: 450,\n complete: function complete() {\n // don't reset transforms because we need rotation to stick\n }\n });\n\n if (this._cropper.dirty) {\n // now show cropper\n snabbt(this._stage, {\n fromPosition: [0, 0, 0],\n position: [0, 0, 0],\n fromOpacity: 0,\n opacity: 1,\n duration: 250,\n delay: 850,\n complete: function complete() {\n resetTransforms(this);\n callback();\n }\n });\n } else {\n // now show cropper\n snabbt(this._stage, {\n fromPosition: [0, 0, 0],\n position: [0, 0, 0],\n fromOpacity: 0,\n opacity: 1,\n duration: 250,\n delay: 1000,\n complete: function complete() {\n resetTransforms(this);\n }\n });\n }\n\n // now show buttons\n snabbt(this._btnGroup.childNodes, {\n fromScale: [0.9, 0.9],\n scale: [1, 1],\n fromOpacity: 0,\n opacity: 1,\n delay: function delay(i) {\n return 1000 + i * 100;\n },\n easing: 'spring',\n springConstant: 0.3,\n springDeceleration: 0.85,\n complete: function complete() {\n resetTransforms(this);\n }\n });\n\n snabbt(this._utilsGroup.childNodes, {\n fromScale: [0.9, 0.9],\n scale: [1, 1],\n fromOpacity: 0,\n opacity: 1,\n easing: 'spring',\n springConstant: 0.3,\n springDeceleration: 0.85,\n delay: 1250,\n complete: function complete() {\n resetTransforms(this);\n }\n });\n }\n }, {\n key: 'hide',\n value: function hide() {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n // no more need to listen to keydown\n document.removeEventListener('keydown', this);\n\n // no more need to resize editor when window is scaled\n window.removeEventListener('resize', this);\n\n // fade out buttons\n snabbt(this._utilsGroup.childNodes, {\n fromOpacity: 1,\n opacity: 0,\n duration: 250\n });\n\n snabbt(this._btnGroup.childNodes, {\n fromOpacity: 1,\n opacity: 0,\n delay: 200,\n duration: 350\n });\n\n snabbt([this._stage, this._previewWrapper], {\n fromPosition: [0, 0, 0],\n position: [0, -250, 0],\n fromOpacity: 1,\n opacity: 0,\n easing: 'spring',\n springConstant: 0.3,\n springDeceleration: 0.75,\n delay: 250,\n allDone: function allDone() {\n callback();\n }\n });\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n var _this6 = this;\n\n nodeListToArray(this._btnGroup.children).forEach(function (btn) {\n btn.removeEventListener('click', _this6);\n });\n\n CropAreaEvents.forEach(function (e) {\n _this6._cropper.element.removeEventListener(e, _this6);\n });\n\n this._cropper.destroy();\n\n // if still attached to DOM, detach\n if (this._element.parentNode) {\n removeElement(this._element);\n }\n }\n }, {\n key: 'showRotateButton',\n set: function set(enabled) {\n if (enabled) {\n this._element.classList.remove('slim-rotation-disabled');\n } else {\n this._element.classList.add('slim-rotation-disabled');\n }\n }\n }, {\n key: 'element',\n get: function get() {\n return this._element;\n }\n }, {\n key: 'ratio',\n get: function get() {\n if (this._ratio === 'input') {\n return this._input.height / this._input.width;\n }\n return this._ratio;\n }\n }, {\n key: 'offset',\n get: function get() {\n return this._element.getBoundingClientRect();\n }\n }, {\n key: 'original',\n get: function get() {\n return this._input;\n }\n }, {\n key: 'scalar',\n get: function get() {\n return this._previewSize.width / this._input.width;\n }\n }], [{\n key: 'options',\n value: function options() {\n return {\n buttonCancelClassName: null,\n buttonConfirmClassName: null,\n buttonCancelLabel: 'Cancel',\n buttonConfirmLabel: 'Confirm',\n buttonCancelTitle: null,\n buttonConfirmTitle: null,\n\n buttonRotateTitle: 'Rotate',\n buttonRotateClassName: null,\n\n devicePixelRatio: null,\n\n minSize: {\n width: 0,\n height: 0\n }\n };\n }\n }]);\n\n return ImageEditor;\n }();\n\n ImageEditor.Buttons = ['cancel', 'confirm'];\n\n return ImageEditor;\n}(CropArea);\n\nvar FileHopper = function () {\n /**\n * FileHopper\n * @param element\n * @param options\n * @constructor\n */\n var DragDropEvents = ['dragenter', 'dragover', 'dragleave', 'drop'];\n\n return function () {\n function FileHopper() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.createElement('div');\n\n _classCallCheck(this, FileHopper);\n\n this._element = element;\n this._accept = [];\n this._allowURLs = false;\n\n this._dragPath = null;\n\n this._init();\n }\n\n // public properties\n\n\n _createClass(FileHopper, [{\n key: 'isValidDataTransfer',\n value: function isValidDataTransfer(dataTransfer) {\n if (dataTransfer.files && dataTransfer.files.length) {\n return this.areValidDataTransferFiles(dataTransfer.files);\n }\n\n if (dataTransfer.items && dataTransfer.items.length) {\n return this.areValidDataTransferItems(dataTransfer.items);\n }\n\n return null;\n }\n }, {\n key: 'areValidDataTransferFiles',\n value: function areValidDataTransferFiles(files) {\n if (this._accept.length && files) {\n return this._accept.indexOf(files[0].type) !== -1;\n }\n return true;\n }\n }, {\n key: 'areValidDataTransferItems',\n value: function areValidDataTransferItems(items) {\n if (this._accept.length && items) {\n // is possibly dropping url\n if (this._allowURLs && items[0].kind === 'string') {\n return null;\n }\n\n // is http website so firefox will not return file type\n if (items[0].type && items[0].type.indexOf('application') === 0) {\n return null;\n }\n\n return this._accept.indexOf(items[0].type) !== -1;\n }\n\n return true;\n }\n\n // public methods\n\n }, {\n key: 'reset',\n value: function reset() {\n this._element.files = null;\n }\n\n // private\n\n }, {\n key: '_init',\n value: function _init() {\n var _this7 = this;\n\n this._element.className = 'slim-file-hopper';\n\n DragDropEvents.forEach(function (e) {\n _this7._element.addEventListener(e, _this7);\n });\n }\n\n // the input has changed\n\n }, {\n key: 'handleEvent',\n value: function handleEvent(e) {\n switch (e.type) {\n case 'dragenter':\n case 'dragover':\n this._onDragOver(e);\n break;\n case 'dragleave':\n this._onDragLeave(e);\n break;\n case 'drop':\n this._onDrop(e);\n break;\n }\n }\n }, {\n key: '_onDrop',\n value: function _onDrop(e) {\n // prevents browser from opening image\n e.preventDefault();\n\n // test if a url was dropped\n var remote = null;\n\n if (this._allowURLs) {\n var url = void 0;\n var meta = void 0;\n try {\n url = e.dataTransfer.getData('url');\n meta = e.dataTransfer.getData('text/html');\n } catch (e) {\n // nope nope nope (ie11 trouble)\n }\n\n if (meta && meta.length) {\n var parsed = meta.match(/src\\s*=\\s*\"(.+?)\"/);\n if (parsed) {\n remote = parsed[1];\n }\n } else if (url && url.length) {\n remote = url;\n }\n }\n\n if (remote) {\n this._element.files = [{ remote: remote }];\n } else {\n // nope, must have been a file\n // test type in older browsers\n var filesValidity = this.isValidDataTransfer(e.dataTransfer);\n if (!filesValidity) {\n // invalid files, stop here\n this._element.dispatchEvent(new CustomEvent('file-invalid-drop'));\n\n // no longer hovering\n this._dragPath = null;\n return;\n }\n\n // store dropped files on element files property, so can be accessed by same function as file input handler\n this._element.files = e.dataTransfer.files;\n }\n\n // file has been dropped\n this._element.dispatchEvent(new CustomEvent('file-drop', {\n detail: getOffsetByEvent(e)\n }));\n\n // file list has changed, let's notify others\n this._element.dispatchEvent(new CustomEvent('change'));\n\n // no longer hovering\n this._dragPath = null;\n }\n }, {\n key: '_onDragOver',\n value: function _onDragOver(e) {\n // prevents browser from opening image\n e.preventDefault();\n\n // set drop effect\n e.dataTransfer.dropEffect = 'copy';\n\n // determin if is valid data\n var dataValidity = this.isValidDataTransfer(e.dataTransfer);\n // if validity is null is undetermined\n if (dataValidity !== null && !dataValidity) {\n // indicate drop mode to user\n e.dataTransfer.dropEffect = 'none';\n\n // invalid files, stop here\n this._element.dispatchEvent(new CustomEvent('file-invalid'));\n return;\n }\n\n // now hovering file over the area\n if (!this._dragPath) {\n this._dragPath = [];\n }\n\n // push location\n this._dragPath.push(getOffsetByEvent(e));\n\n // file is hovering over element\n this._element.dispatchEvent(new CustomEvent('file-over', {\n detail: {\n x: last(this._dragPath).x,\n y: last(this._dragPath).y\n }\n }));\n }\n }, {\n key: '_onDragLeave',\n value: function _onDragLeave(e) {\n // user has dragged file out of element area\n this._element.dispatchEvent(new CustomEvent('file-out', {\n detail: getOffsetByEvent(e)\n }));\n\n // now longer hovering file\n this._dragPath = null;\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n var _this8 = this;\n\n DragDropEvents.forEach(function (e) {\n _this8._element.removeEventListener(e, _this8);\n });\n\n removeElement(this._element);\n\n this._element = null;\n this._dragPath = null;\n this._accept = null;\n }\n }, {\n key: 'element',\n get: function get() {\n return this._element;\n }\n }, {\n key: 'dragPath',\n get: function get() {\n return this._dragPath;\n }\n }, {\n key: 'enabled',\n get: function get() {\n return this._element.style.display === '';\n },\n set: function set(value) {\n this._element.style.display = value ? '' : 'none';\n }\n }, {\n key: 'allowURLs',\n set: function set(value) {\n this._allowURLs = value;\n }\n }, {\n key: 'accept',\n set: function set(mimetypes) {\n this._accept = mimetypes;\n },\n get: function get() {\n return this._accept;\n }\n }]);\n\n return FileHopper;\n }();\n}();\n\nvar Popover = function () {\n /**\n * Popover\n */\n return function () {\n function Popover() {\n _classCallCheck(this, Popover);\n\n this._element = null;\n this._inner = null;\n\n this._init();\n }\n\n _createClass(Popover, [{\n key: '_init',\n value: function _init() {\n this._element = create('div', 'slim-popover');\n this._element.setAttribute('data-state', 'off');\n document.body.appendChild(this._element);\n\n // prevent body scrolling on iOS 11.3\n this._element.addEventListener('touchmove', function (e) {\n e.preventDefault();\n }, true);\n }\n }, {\n key: 'show',\n value: function show() {\n var _this9 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n // turn on\n this._element.setAttribute('data-state', 'on');\n\n // show and animate in\n snabbt(this._element, {\n fromOpacity: 0,\n opacity: 1,\n duration: 350,\n complete: function complete() {\n // clean up transforms\n resetTransforms(_this9._element);\n\n // ready!\n callback();\n }\n });\n }\n }, {\n key: 'hide',\n value: function hide() {\n var _this10 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n // animate out and hide\n snabbt(this._element, {\n fromOpacity: 1,\n opacity: 0,\n duration: 500,\n complete: function complete() {\n // clean up transforms\n resetTransforms(_this10._element);\n\n // hide the editor\n _this10._element.setAttribute('data-state', 'off');\n\n // ready!\n callback();\n }\n });\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n if (!this._element.parentNode) {\n return;\n }\n this._element.parentNode.removeChild(this._element);\n this._element = null;\n this._inner = null;\n }\n }, {\n key: 'inner',\n set: function set(element) {\n this._inner = element;\n if (this._element.firstChild) {\n this._element.removeChild(this._element.firstChild);\n }\n this._element.appendChild(this._inner);\n }\n }, {\n key: 'className',\n set: function set(value) {\n this._element.className = 'slim-popover' + (value === null ? '' : ' ' + value);\n }\n }]);\n\n return Popover;\n }();\n}();\n\nvar intSplit = function intSplit(v, c) {\n return v.split(c).map(function (v) {\n return parseInt(v, 10);\n });\n};\n\nvar isWrapper = function isWrapper(element) {\n return element.nodeName === 'DIV' || element.nodeName === 'SPAN';\n};\n\nvar CropType = {\n AUTO: 'auto',\n INITIAL: 'initial',\n MANUAL: 'manual'\n};\n\nvar Rect = ['x', 'y', 'width', 'height'];\n\nvar HopperEvents = ['file-invalid-drop', 'file-invalid', 'file-drop', 'file-over', 'file-out', 'click'];\n\nvar ImageEditorEvents = ['cancel', 'confirm'];\n\nvar SlimButtons = ['remove', 'edit', 'download', 'upload'];\n\nvar SlimPopover = null;\nvar SlimCount = 0;\n\nvar SlimLoaderHTML = '\\n
\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n
\\n';\n\nvar SlimUploadStatusHTML = '\\n
\\n';\n\nvar stringToSize = function stringToSize(str) {\n var size = str.split(',');\n return {\n width: parseInt(size[0], 10),\n height: parseInt(size[1], 10)\n };\n};\n\nvar removeTimer = function removeTimer(timers, timer) {\n var i = timers.indexOf(timer);\n timers.splice(i, 1);\n};\n\nvar Slim = function () {\n function Slim(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Slim);\n\n // create popover element if not already created\n if (!SlimPopover) {\n SlimPopover = new Popover();\n }\n\n // we create a new counter, we use this counter to determine if we need to clean up the popover\n this._uid = SlimCount++;\n\n // the options to use\n this._options = mergeOptions(Slim.options(), options);\n\n // test options correctness\n if (this._options.forceSize) {\n if (typeof this._options.forceSize === 'string') {\n this._options.forceSize = stringToSize(this._options.forceSize);\n }\n this._options.ratio = this._options.forceSize.width + ':' + this._options.forceSize.height;\n this._options.size = clone(this._options.forceSize);\n }\n\n // test for size set as string\n if (typeof this._options.size === 'string') {\n this._options.size = stringToSize(this._options.size);\n }\n\n // test for size set as string\n if (typeof this._options.minSize === 'string') {\n this._options.minSize = stringToSize(this._options.minSize);\n }\n\n // fix post formatting if is supplied as string\n if (typeof this._options.post === 'string') {\n this._options.post = this._options.post.split(',').map(function (part) {\n return part.trim();\n });\n }\n\n // reference to original element so we can restore original situation\n this._originalElement = element;\n this._originalElementInner = element.innerHTML;\n this._originalElementAttributes = getElementAttributes(element);\n\n // should be file input, image or slim wrapper, if not wrapper, wrap\n if (!isWrapper(element)) {\n this._element = wrap(element);\n this._element.className = element.className;\n element.className = '';\n\n // ratio is used for CSS so let's set default attribute\n this._element.setAttribute('data-ratio', this._options.ratio);\n } else {\n this._element = element;\n }\n this._element.classList.add('slim');\n this._element.setAttribute('data-state', 'init');\n\n // editor state\n this._state = [];\n\n // internal timer array for async processes\n this._timers = [];\n\n // the source element (can either be an input or an img)\n this._input = null;\n\n // the source element unique name if is input type file\n this._inputReference = null;\n\n // the output element (hidden input that contains the resulting json object)\n this._output = null;\n\n // current image ratio\n this._ratio = null;\n\n // was required field\n this._isRequired = false;\n\n // components\n this._imageHopper = null;\n this._imageEditor = null;\n\n // progress path\n this._progressEnabled = true;\n\n // resulting data\n this._data = {};\n this._resetData();\n\n // the circle below the mouse hover point\n this._drip = null;\n\n // had initial image\n this._hasInitialImage = false;\n\n // initial crop\n this._initialCrop = this._options.crop;\n\n // initial rotation\n this._initialRotation = this._options.rotation && this._options.rotation % 90 === 0 ? this._options.rotation : null;\n\n // set to true when destroy method is called, used to halt any timeouts or async processes\n this._isBeingDestroyed = false;\n\n // stop here if not supported\n if (!Slim.supported) {\n this._fallback();\n } else {\n // let's go!\n this._init();\n }\n }\n\n _createClass(Slim, [{\n key: 'setRotation',\n value: function setRotation(rotation, callback) {\n if (typeof rotation !== 'number' && rotation % 90 !== 0) {\n return;\n }\n\n this._data.actions.rotation = rotation;\n var isTilted = this._data.actions.rotation % 180 !== 0;\n\n if (this._data.input.image) {\n var w = isTilted ? this._data.input.image.height : this._data.input.image.width;\n var h = isTilted ? this._data.input.image.width : this._data.input.image.height;\n this._data.actions.crop = getAutoCropRect(w, h, this._ratio);\n this._data.actions.crop.type = CropType.AUTO;\n }\n\n if (this._data.input.image && callback) {\n this._manualTransform(callback);\n }\n }\n }, {\n key: 'setSize',\n value: function setSize(dimensions, callback) {\n if (typeof dimensions === 'string') {\n dimensions = stringToSize(dimensions);\n }\n\n if (!dimensions || !dimensions.width || !dimensions.height) {\n return;\n }\n\n this._options.size = clone(dimensions);\n this._data.actions.size = clone(dimensions);\n\n // if a crop area is set do re-crop to conform to size\n if (this._data.input.image && callback) {\n this._manualTransform(callback);\n }\n }\n }, {\n key: 'setForceSize',\n value: function setForceSize(dimensions, callback) {\n if (typeof dimensions === 'string') {\n dimensions = stringToSize(dimensions);\n }\n\n if (!dimensions || !dimensions.width || !dimensions.height) {\n return;\n }\n\n this._options.size = clone(dimensions);\n this._options.forceSize = clone(dimensions);\n this._data.actions.size = clone(dimensions);\n\n this.setRatio(this._options.forceSize.width + ':' + this._options.forceSize.height, callback);\n }\n }, {\n key: 'setRatio',\n value: function setRatio(ratio, callback) {\n var _this11 = this;\n\n if (!ratio || typeof ratio !== 'string') {\n return;\n }\n\n this._options.ratio = ratio;\n\n if (this._isFixedRatio()) {\n\n var parts = intSplit(this._options.ratio, ':');\n this._ratio = parts[1] / parts[0];\n\n if (this._data.input.image && callback) {\n this._cropAuto(function (data) {\n _this11._scaleDropArea(_this11._ratio);\n if (callback) {\n callback(data);\n }\n });\n } else {\n if (this._data.input.image) {\n this._data.actions.crop = getAutoCropRect(this._data.input.image.width, this._data.input.image.height, this._ratio);\n this._data.actions.crop.type = CropType.AUTO;\n }\n\n this._scaleDropArea(this._ratio);\n\n if (callback) {\n callback(null);\n }\n }\n }\n }\n\n // methods\n // Test if this Slim object has been bound to the given element\n\n }, {\n key: 'isAttachedTo',\n value: function isAttachedTo(element) {\n return this._element === element || this._originalElement === element;\n }\n }, {\n key: 'isDetached',\n value: function isDetached() {\n return this._element.parentNode === null;\n }\n }, {\n key: 'load',\n value: function load(src) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var callback = arguments[2];\n\n if (typeof options === 'function') {\n callback = options;\n } else {\n // store in options\n this._options.crop = options.crop;\n\n // set rotation\n this._options.rotation = options.rotation;\n\n // initial rotation\n this._initialRotation = options.rotation && options.rotation % 90 === 0 ? options.rotation : null;\n\n // set initial crop\n this._initialCrop = this._options.crop;\n }\n\n this._load(src, callback, { blockPush: options.blockPush });\n }\n }, {\n key: 'upload',\n value: function upload(callback) {\n this._doUpload(callback);\n }\n }, {\n key: 'download',\n value: function download() {\n this._doDownload();\n }\n }, {\n key: 'remove',\n value: function remove() {\n return this._doRemove();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this._doDestroy();\n }\n }, {\n key: 'edit',\n value: function edit() {\n this._doEdit();\n }\n }, {\n key: 'crop',\n value: function crop(rect, callback) {\n this._crop(rect.x, rect.y, rect.width, rect.height, callback);\n }\n }, {\n key: 'containsImage',\n value: function containsImage() {\n return this._data.input.name !== null;\n }\n\n /**\n * State Related\n */\n\n }, {\n key: '_canInstantEdit',\n value: function _canInstantEdit() {\n return this._options.instantEdit && !this._isInitialising;\n }\n }, {\n key: '_getFileInput',\n value: function _getFileInput() {\n return this._element.querySelector('input[type=file]');\n }\n }, {\n key: '_getInitialImage',\n value: function _getInitialImage() {\n return this._element.querySelector('img');\n }\n }, {\n key: '_getInputElement',\n value: function _getInputElement() {\n return this._getFileInput() || this._getInitialImage();\n }\n }, {\n key: '_getRatioSpacerElement',\n value: function _getRatioSpacerElement() {\n return this._element.children[0];\n }\n }, {\n key: '_isImageOnly',\n value: function _isImageOnly() {\n return this._input.nodeName !== 'INPUT';\n }\n }, {\n key: '_isFixedRatio',\n value: function _isFixedRatio() {\n return this._options.ratio.indexOf(':') !== -1;\n }\n }, {\n key: '_isAutoCrop',\n value: function _isAutoCrop() {\n return this._data.actions.crop.type === CropType.AUTO;\n }\n }, {\n key: '_toggleButton',\n value: function _toggleButton(action, state) {\n toggleDisplayBySelector('.slim-btn[data-action=\"' + action + '\"]', state, this._element);\n }\n }, {\n key: '_clearState',\n value: function _clearState() {\n this._state = [];\n this._updateState();\n }\n }, {\n key: '_removeState',\n value: function _removeState(state) {\n this._state = this._state.filter(function (item) {\n return item !== state;\n });\n this._updateState();\n }\n }, {\n key: '_addState',\n value: function _addState(state) {\n if (inArray(state, this._state)) {\n return;\n }\n this._state.push(state);\n this._updateState();\n }\n }, {\n key: '_updateState',\n value: function _updateState() {\n if (!this._element) {\n return;\n }\n this._element.setAttribute('data-state', this._state.join(','));\n }\n }, {\n key: '_resetData',\n value: function _resetData() {\n // resets data object\n this._data = {\n server: null,\n meta: clone(this._options.meta),\n input: {\n field: this._inputReference,\n name: null,\n type: null,\n width: 0,\n height: 0,\n file: null\n },\n output: {\n image: null,\n width: 0,\n height: 0\n },\n actions: {\n rotation: null,\n crop: null,\n size: null\n }\n };\n\n // resets hidden input clone (has not yet been created when reset call in constructor, hence the check)\n if (this._output) {\n this._output.value = '';\n }\n\n // should reset file input\n resetFileInput(this._getFileInput());\n }\n\n /**\n * Initialisation\n */\n\n }, {\n key: '_init',\n value: function _init() {\n var _this12 = this;\n\n // busy initialising\n this._isInitialising = true;\n\n // cropper root is not file input\n this._addState('empty');\n\n // define input reference field name\n if (inArray('input', this._options.post)) {\n this._inputReference = 'slim_input_' + this._uid;\n }\n\n // get input element\n this._input = this._getInputElement();\n\n // if no input supplied we'll automatically create one\n if (!this._input) {\n this._input = create('input');\n this._input.type = 'file';\n this._element.appendChild(this._input);\n }\n\n // get required state of input element\n this._isRequired = this._input.required === true;\n\n // set or create output field\n this._output = this._element.querySelector('input[type=hidden]');\n\n // if no output element defined we'll create one automagically\n if (!this._output) {\n this._output = create('input');\n this._output.type = 'hidden';\n this._output.name = this._input.name || this._options.defaultInputName;\n this._element.appendChild(this._output);\n } else {\n var initialData = null;\n try {\n initialData = JSON.parse(this._output.value);\n } catch (e) {}\n if (initialData) {\n var img = new Image();\n img.src = initialData.output.image;\n img.setAttribute('data-filename', initialData.output.name);\n this._element.insertBefore(img, this._element.firstChild);\n }\n }\n\n // prevent the original file input field from posting (value will be duplicated to output field)\n this._input.removeAttribute('name');\n\n // create drop area\n var area = create('div', 'slim-area');\n\n // test if contains initial image\n var initialImage = this._getInitialImage();\n var initialImageSrc = (initialImage || {}).src;\n var initialImageName = initialImage ? initialImage.getAttribute('data-filename') : null;\n\n if (initialImageSrc) {\n this._hasInitialImage = true;\n } else {\n this._initialCrop = null;\n this._initialRotation = null;\n }\n\n var resultHTML = '\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t
';\n\n // add drop overlay\n if (this._isImageOnly()) {\n area.innerHTML = '\\n\\t\\t\\t\\t' + SlimLoaderHTML + '\\n\\t\\t\\t\\t' + SlimUploadStatusHTML + '\\n\\t\\t\\t\\t' + resultHTML + '\\n\\t\\t\\t\\t
' + (this._options.labelLoading || '') + '
\\n\\t\\t\\t';\n } else {\n // if should post input data\n if (inArray('input', this._options.post)) {\n this._data.input.field = this._inputReference;\n\n // if is sync post\n // and should post input data\n if (!this._options.service) {\n this._input.name = this._inputReference;\n }\n }\n\n // set common image mime type to the accept attribute\n var mimetypes = void 0;\n if (!this._input.hasAttribute('accept') || this._input.getAttribute('accept') === 'image/*') {\n mimetypes = getCommonMimeTypes();\n this._input.setAttribute('accept', mimetypes.join(','));\n } else {\n mimetypes = this._input.accept.split(',').map(function (mimetype) {\n return mimetype.trim();\n }).filter(function (mimetype) {\n return mimetype.length > 0;\n });\n }\n\n // setup hopper\n this._imageHopper = new FileHopper();\n this._imageHopper.accept = mimetypes;\n this._imageHopper.allowURLs = typeof this._options.fetcher === 'string';\n this._element.appendChild(this._imageHopper.element);\n HopperEvents.forEach(function (e) {\n _this12._imageHopper.element.addEventListener(e, _this12);\n });\n\n // render area\n area.innerHTML = '\\n\\t\\t\\t\\t' + SlimLoaderHTML + '\\n\\t\\t\\t\\t' + SlimUploadStatusHTML + '\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
' + (this._options.label || '') + '
' + (this._options.labelLoading || '') + '
\\n\\t\\t\\t\\t' + resultHTML + '\\n\\t\\t\\t';\n\n // start listening for events so we can load image on file input change\n this._input.addEventListener('change', this);\n }\n\n // add area node\n this._element.appendChild(area);\n\n // add button group\n this._btnGroup = create('div', 'slim-btn-group');\n this._btnGroup.style.display = 'none';\n this._element.appendChild(this._btnGroup);\n SlimButtons.filter(function (c) {\n return _this12._isButtonAllowed(c);\n }).forEach(function (c) {\n var prop = capitalizeFirstLetter(c);\n var label = _this12._options['button' + prop + 'Label'];\n var title = _this12._options['button' + prop + 'Title'] || label;\n var className = _this12._options['button' + prop + 'ClassName'];\n var btn = create('button', 'slim-btn slim-btn-' + c + (className ? ' ' + className : ''));\n btn.innerHTML = label;\n btn.title = title;\n btn.type = 'button';\n btn.addEventListener('click', _this12);\n btn.setAttribute('data-action', c);\n _this12._btnGroup.appendChild(btn);\n });\n\n // add ratio padding\n if (this._isFixedRatio()) {\n var parts = intSplit(this._options.ratio, ':');\n this._ratio = parts[1] / parts[0];\n this._scaleDropArea(this._ratio);\n }\n\n // setup loader\n this._updateProgress(0.5);\n\n // preload source\n if (initialImageSrc) {\n this._load(initialImageSrc, function () {\n _this12._onInit();\n }, { name: initialImageName });\n } else {\n this._onInit();\n }\n }\n }, {\n key: '_onInit',\n value: function _onInit() {\n var _this13 = this;\n\n // we're done initialising\n this._isInitialising = false;\n\n // done initialising now, else is only called after image load\n var done = function done() {\n // we call this async so the constructor of Slim has returned before the onInit is called, allowing clean immidiate destroy\n var timer = setTimeout(function () {\n removeTimer(_this13._timers, timer);\n _this13._options.didInit.apply(_this13, [_this13.data, _this13]);\n }, 0);\n _this13._timers.push(timer);\n };\n\n // save initial image\n if (this._options.saveInitialImage && this.containsImage()) {\n if (!this._options.service) {\n this._save(function () {\n done();\n }, false);\n }\n } else {\n // by default upload button is disabled for existing images\n if (this._options.service && this.containsImage()) {\n this._toggleButton('upload', false);\n }\n\n done();\n }\n }\n }, {\n key: '_updateProgress',\n value: function _updateProgress(progress) {\n progress = Math.min(0.99999, progress);\n\n if (!this._element) {\n return;\n }\n\n if (!this._progressEnabled) {\n return;\n }\n\n var loader = this._element.querySelector('.slim-loader');\n if (!loader) {\n return;\n }\n\n var size = loader.offsetWidth;\n var paths = loader.querySelectorAll('path');\n var ringWidth = parseInt(paths[0].getAttribute('stroke-width'), 10);\n\n // loader is not visible yet\n if (size * .5 < ringWidth) {\n return;\n }\n\n paths[0].setAttribute('d', percentageArc(size * 0.5, size * 0.5, size * 0.5 - ringWidth, 0.9999));\n\n paths[1].setAttribute('d', percentageArc(size * 0.5, size * 0.5, size * 0.5 - ringWidth, progress));\n }\n }, {\n key: '_startProgress',\n value: function _startProgress(cb) {\n var _this14 = this;\n\n if (!this._element) {\n return;\n }\n\n this._progressEnabled = false;\n\n var loader = this._element.querySelector('.slim-loader');\n if (!loader) {\n return;\n }\n var ring = loader.children[0];\n\n this._stopProgressLoop(function () {\n loader.removeAttribute('style');\n ring.removeAttribute('style');\n\n _this14._progressEnabled = true;\n\n _this14._updateProgress(0);\n\n _this14._progressEnabled = false;\n\n snabbt(ring, {\n fromOpacity: 0,\n opacity: 1,\n duration: 250,\n complete: function complete() {\n _this14._progressEnabled = true;\n if (cb) {\n cb();\n }\n }\n });\n });\n }\n }, {\n key: '_stopProgress',\n value: function _stopProgress() {\n var _this15 = this;\n\n if (!this._element) {\n return;\n }\n\n var loader = this._element.querySelector('.slim-loader');\n if (!loader) {\n return;\n }\n var ring = loader.children[0];\n\n this._updateProgress(1);\n\n snabbt(ring, {\n fromOpacity: 1,\n opacity: 0,\n duration: 250,\n complete: function complete() {\n loader.removeAttribute('style');\n ring.removeAttribute('style');\n\n _this15._updateProgress(0.5);\n\n _this15._progressEnabled = false;\n }\n });\n }\n }, {\n key: '_startProgressLoop',\n value: function _startProgressLoop() {\n if (!this._element) {\n return;\n }\n\n // start loading animation\n var loader = this._element.querySelector('.slim-loader');\n if (!loader) {\n return;\n }\n\n var ring = loader.children[0];\n loader.removeAttribute('style');\n ring.removeAttribute('style');\n\n // set infinite load state\n this._updateProgress(0.5);\n\n // repeat!\n var repeat = 1000;\n\n snabbt(loader, 'stop');\n\n snabbt(loader, {\n rotation: [0, 0, -(Math.PI * 2) * repeat],\n easing: 'linear',\n duration: repeat * 1000\n });\n\n snabbt(ring, {\n fromOpacity: 0,\n opacity: 1,\n duration: 250\n });\n }\n }, {\n key: '_stopProgressLoop',\n value: function _stopProgressLoop(callback) {\n if (!this._element) {\n return;\n }\n\n var loader = this._element.querySelector('.slim-loader');\n if (!loader) {\n return;\n }\n\n var ring = loader.children[0];\n\n snabbt(ring, {\n fromOpacity: parseFloat(ring.style.opacity),\n opacity: 0,\n duration: 250,\n complete: function complete() {\n snabbt(loader, 'stop');\n\n loader.removeAttribute('style');\n ring.removeAttribute('style');\n\n if (callback) {\n callback();\n }\n }\n });\n }\n }, {\n key: '_isButtonAllowed',\n value: function _isButtonAllowed(button) {\n if (button === 'edit') {\n return this._options.edit;\n }\n\n if (button === 'download') {\n return this._options.download;\n }\n\n if (button === 'upload') {\n // if no service defined upload button makes no sense\n if (!this._options.service) {\n return false;\n }\n\n // if push mode is set, no need for upload button\n if (this._options.push) {\n return false;\n }\n\n // set upload button\n return true;\n }\n\n if (button === 'remove') {\n return !this._isImageOnly();\n }\n\n return true;\n }\n }, {\n key: '_fallback',\n value: function _fallback() {\n // create status area\n var area = create('div', 'slim-area');\n area.innerHTML = '\\n\\t\\t\\t
' + (this._options.label || '') + '
\\n\\t\\t';\n this._element.appendChild(area);\n\n this._throwError(this._options.statusNoSupport);\n }\n\n /**\n * Event routing\n */\n\n }, {\n key: 'handleEvent',\n value: function handleEvent(e) {\n switch (e.type) {\n case 'click':\n this._onClick(e);\n break;\n case 'change':\n this._onChange(e);\n break;\n case 'cancel':\n this._onCancel(e);\n break;\n case 'confirm':\n this._onConfirm(e);\n break;\n case 'file-over':\n this._onFileOver(e);\n break;\n case 'file-out':\n this._onFileOut(e);\n break;\n case 'file-drop':\n this._onDropFile(e);\n break;\n case 'file-invalid':\n this._onInvalidFile(e);\n break;\n case 'file-invalid-drop':\n this._onInvalidFileDrop(e);\n break;\n }\n }\n }, {\n key: '_getIntro',\n value: function _getIntro() {\n return this._element.querySelector('.slim-result .in');\n }\n }, {\n key: '_getOutro',\n value: function _getOutro() {\n return this._element.querySelector('.slim-result .out');\n }\n }, {\n key: '_getInOut',\n value: function _getInOut() {\n return this._element.querySelectorAll('.slim-result img');\n }\n }, {\n key: '_getDrip',\n value: function _getDrip() {\n if (!this._drip) {\n this._drip = this._element.querySelector('.slim-drip > span');\n }\n return this._drip;\n }\n\n // errors\n\n }, {\n key: '_throwError',\n value: function _throwError(error) {\n this._addState('error');\n\n this._element.querySelector('.slim-label').style.display = 'none';\n\n var node = this._element.querySelector('.slim-error');\n if (!node) {\n node = create('div', 'slim-error');\n this._element.querySelector('.slim-status').appendChild(node);\n }\n\n node.innerHTML = error;\n\n this._options.didThrowError.apply(this, [error]);\n }\n }, {\n key: '_removeError',\n value: function _removeError() {\n this._removeState('error');\n this._element.querySelector('.slim-label').style.display = '';\n\n var error = this._element.querySelector('.slim-error');\n if (error) {\n error.parentNode.removeChild(error);\n }\n }\n }, {\n key: '_openFileDialog',\n value: function _openFileDialog() {\n this._removeError();\n this._input.click();\n }\n\n // drop area clicked\n\n }, {\n key: '_onClick',\n value: function _onClick(e) {\n var _this16 = this;\n\n var list = e.target.classList;\n var target = e.target;\n\n // no preview, so possible to drop file\n if (list.contains('slim-file-hopper')) {\n e.preventDefault();\n this._openFileDialog();\n return;\n }\n\n // decide what button was clicked\n switch (target.getAttribute('data-action')) {\n case 'remove':\n this._options.willRemove.apply(this, [this.data, function () {\n _this16._doRemove();\n }]);\n break;\n case 'edit':\n this._doEdit();\n break;\n case 'download':\n this._doDownload();\n break;\n case 'upload':\n this._doUpload();\n break;\n }\n }\n }, {\n key: '_onInvalidFileDrop',\n value: function _onInvalidFileDrop() {\n this._onInvalidFile();\n\n this._removeState('file-over');\n\n // animate out drip\n var drip = this._getDrip();\n snabbt(drip.firstChild, {\n fromScale: [0.5, 0.5],\n scale: [0, 0],\n fromOpacity: 0.5,\n opacity: 0,\n duration: 150,\n complete: function complete() {\n // clean up transforms\n resetTransforms(drip.firstChild);\n }\n });\n }\n }, {\n key: '_onInvalidFile',\n value: function _onInvalidFile() {\n var types = this._imageHopper.accept.map(getExtensionByMimeType);\n var error = this._options.statusFileType.replace('$0', types.join(', '));\n this._throwError(error);\n }\n }, {\n key: '_onImageTooSmall',\n value: function _onImageTooSmall() {\n var error = this._options.statusImageTooSmall.replace('$0', this._options.minSize.width + ' \\xD7 ' + this._options.minSize.height);\n this._throwError(error);\n }\n }, {\n key: '_onOverWeightFile',\n value: function _onOverWeightFile() {\n var error = this._options.statusFileSize.replace('$0', this._options.maxFileSize);\n this._throwError(error);\n }\n }, {\n key: '_onLocalURLProblem',\n value: function _onLocalURLProblem(error) {\n this._throwError(this._options.statusLocalUrlProblem || error);\n }\n }, {\n key: '_onRemoteURLProblem',\n value: function _onRemoteURLProblem(error) {\n this._throwError(error);\n }\n }, {\n key: '_onFileOver',\n value: function _onFileOver(e) {\n this._addState('file-over');\n this._removeError();\n\n // animations\n var drip = this._getDrip();\n\n // move around drip\n var matrix = snabbt.createMatrix();\n matrix.translate(e.detail.x, e.detail.y, 0);\n snabbt.setElementTransform(drip, matrix);\n\n // on first entry fade in blob\n if (this._imageHopper.dragPath.length == 1) {\n // show\n drip.style.opacity = 1;\n\n // animate in\n snabbt(drip.firstChild, {\n fromOpacity: 0,\n opacity: 0.5,\n fromScale: [0, 0],\n scale: [0.5, 0.5],\n duration: 150\n });\n }\n }\n }, {\n key: '_onFileOut',\n value: function _onFileOut(e) {\n this._removeState('file-over');\n this._removeState('file-invalid');\n this._removeError();\n\n // move to last position\n var drip = this._getDrip();\n var matrix = snabbt.createMatrix();\n matrix.translate(e.detail.x, e.detail.y, 0);\n snabbt.setElementTransform(drip, matrix);\n\n // animate out\n snabbt(drip.firstChild, {\n fromScale: [0.5, 0.5],\n scale: [0, 0],\n fromOpacity: 0.5,\n opacity: 0,\n duration: 150,\n complete: function complete() {\n // clean up transforms\n resetTransforms(drip.firstChild);\n }\n });\n }\n\n /**\n * When a file was literally dropped on the drop area\n * @param e\n * @private\n */\n\n }, {\n key: '_onDropFile',\n value: function _onDropFile(e) {\n var _this17 = this;\n\n this._removeState('file-over');\n\n // get drip node reference and set to last position\n var drip = this._getDrip();\n var matrix = snabbt.createMatrix();\n matrix.translate(e.detail.x, e.detail.y, 0);\n snabbt.setElementTransform(drip, matrix);\n\n // get element minimum 10 entries distant from the last entry so we can calculate velocity of movement\n var l = this._imageHopper.dragPath.length;\n var jump = this._imageHopper.dragPath[l - Math.min(10, l)];\n\n // velocity\n var dx = e.detail.x - jump.x;\n var dy = e.detail.y - jump.y;\n\n snabbt(drip, {\n fromPosition: [e.detail.x, e.detail.y, 0],\n position: [e.detail.x + dx, e.detail.y + dy, 0],\n duration: 200\n });\n\n // animate out drip\n snabbt(drip.firstChild, {\n fromScale: [0.5, 0.5],\n scale: [2, 2],\n fromOpacity: 1,\n opacity: 0,\n duration: 200,\n\n complete: function complete() {\n // clean up transforms\n resetTransforms(drip.firstChild);\n\n // load dropped resource\n _this17._load(e.target.files[0]);\n }\n });\n }\n\n /**\n * When a file has been selected after a click on the drop area\n * @param e\n * @private\n */\n\n }, {\n key: '_onChange',\n value: function _onChange(e) {\n if (e.target.files.length) {\n this._load(e.target.files[0]);\n }\n }\n\n /**\n * Loads a resource (blocking operation)\n * @param resource\n * @param callback(err)\n * @param options\n * @private\n */\n\n }, {\n key: '_load',\n value: function _load(resource, callback) {\n var _this18 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // stop here\n if (this._isBeingDestroyed) {\n return;\n }\n\n // if currently contains image, remove it\n if (this.containsImage()) {\n clearTimeout(this._replaceTimeout);\n\n this._doRemove(function () {\n _this18._replaceTimeout = setTimeout(function () {\n _this18._load(resource, callback, options);\n }, 100);\n });\n\n return;\n }\n\n // no longer empty\n this._removeState('empty');\n this._addState('busy');\n\n // start loading indicator\n this._startProgressLoop();\n\n // can't drop any other image while loading\n if (this._imageHopper) {\n this._imageHopper.enabled = false;\n }\n\n clearTimeout(this._loadTimeout);\n var load = function load() {\n clearTimeout(_this18._loadTimeout);\n _this18._loadTimeout = setTimeout(function () {\n if (_this18._isBeingDestroyed) {\n return;\n }\n\n _this18._addState('loading');\n\n snabbt(_this18._element.querySelector('.slim-label-loading'), {\n fromOpacity: 0,\n opacity: 1,\n duration: 250\n });\n }, 500);\n };\n\n // early exit\n var exit = function exit() {\n if (_this18._imageHopper) {\n _this18._imageHopper.enabled = true;\n }\n _this18._removeState('loading');\n _this18._removeState('busy');\n _this18._addState('empty');\n _this18._stopProgressLoop();\n };\n\n // turn string based resources (url / base64) into file objects\n if (typeof resource === 'string') {\n if (resourceIsBase64Data(resource)) {\n // resource is base64 data, turn into file\n this._load(base64ToBlob(resource), callback, options);\n } else {\n\n // will take a while, show loading indicator\n load();\n\n // resource is url, load with XHR\n loadURL(resource, this._options.willLoad, function (file) {\n\n // continue with file object\n _this18._load(file, callback, options);\n }, function (error) {\n\n setTimeout(function () {\n\n exit();\n\n _this18._onLocalURLProblem('

' + error + '

');\n\n if (callback) {\n callback.apply(_this18, ['local-url-problem']);\n }\n }, 500);\n });\n }\n\n // don't continue, wait for load\n return;\n } else if (typeof resource.remote !== 'undefined') {\n // is dropped link\n // test if happens to be base64 data\n if (resourceIsBase64Data(resource.remote)) {\n this._load(base64ToBlob(resource.remote), callback, options);\n return;\n }\n\n if (this._options.fetcher) {\n loadRemoteURL(this._options.fetcher, this._options.willFetch, this._options.willLoad, resource.remote, function (error) {\n exit();\n\n _this18._onRemoteURLProblem('

' + error + '

');\n\n if (callback) {\n callback.apply(_this18, ['remote-url-problem']);\n }\n }, function (file) {\n // continue with file object\n _this18._load(file, callback, options);\n });\n }\n\n // don't continue wait for server fetch\n return;\n }\n\n // let's continue with file resource\n var file = resource;\n\n // re-test if is valid file type\n // in case of loading base64 data or url\n if (this._imageHopper && this._imageHopper.accept.indexOf(file.type) === -1) {\n exit();\n\n this._onInvalidFile();\n if (callback) {\n callback.apply(this, ['file-invalid']);\n }\n return;\n }\n\n // test if too big\n if (file.size && this._options.maxFileSize && bytesToMegaBytes(file.size) > this._options.maxFileSize) {\n exit();\n\n this._onOverWeightFile();\n if (callback) {\n callback.apply(this, ['file-too-big']);\n }\n return;\n }\n\n // if has loaded image editor set to dirty\n if (this._imageEditor) {\n this._imageEditor.dirty();\n }\n\n // continue\n this._data.input.name = options && options.name ? options.name : getFileNameByFile(file);\n this._data.input.type = getFileTypeByFile(file);\n this._data.input.size = file.size;\n this._data.input.file = file;\n\n // internal canvas size\n var internalCanvasSize = this._options.internalCanvasSize;\n if (isLowMemoryDevice()) {\n internalCanvasSize = this._options.internalCanvasSizeLowMemory;\n }\n\n // fetch resource\n getImageAsCanvas(file, internalCanvasSize, function (image, meta) {\n\n var rewind = function rewind() {\n\n // rewind state\n if (_this18._imageHopper) {\n _this18._imageHopper.enabled = true;\n }\n\n _this18._removeState('loading');\n _this18._removeState('busy');\n _this18._addState('empty');\n _this18._stopProgressLoop();\n _this18._resetData();\n };\n\n // if no image, something went wrong\n if (!image) {\n rewind();\n\n if (callback) {\n callback.apply(_this18, ['file-not-found']);\n }\n\n return;\n }\n\n // test if image is too small\n if (!covers(image, _this18._options.minSize)) {\n rewind();\n\n _this18._onImageTooSmall();\n\n if (callback) {\n callback.apply(_this18, ['image-too-small']);\n }\n\n return;\n }\n\n var status = _this18._options.didLoad.apply(_this18, [file, image, meta, _this18]);\n if (status !== true) {\n rewind();\n\n if (status !== false) {\n _this18._throwError(status);\n }\n\n if (callback) {\n callback.apply(_this18, [status]);\n }\n\n return;\n }\n\n // done loading file\n _this18._removeState('loading');\n\n var revealCanvas = function revealCanvas(done) {\n // done, enable hopper\n if (_this18._imageHopper && _this18._options.dropReplace) {\n _this18._imageHopper.enabled = true;\n }\n\n // do intro stuff\n var intro = _this18._getIntro();\n\n // setup base animation\n var animation = {\n fromScale: [1.25, 1.25],\n scale: [1, 1],\n fromOpacity: 0,\n opacity: 1,\n complete: function complete() {\n resetTransforms(intro);\n\n intro.style.opacity = 1;\n\n done();\n }\n };\n\n // if not attached to DOM, don't animate\n if (_this18.isDetached()) {\n animation.duration = 1;\n } else {\n animation.easing = 'spring';\n animation.springConstant = 0.3;\n animation.springDeceleration = 0.7;\n }\n\n // if is instant edit mode don't zoom out but zoom in\n if (_this18._canInstantEdit()) {\n animation.delay = 500;\n animation.duration = 1;\n\n // instant edit mode just fire up the editor immidiately\n _this18._doEdit();\n }\n\n // reveal loaded image\n snabbt(intro, animation);\n };\n\n // load the image\n _this18._loadCanvas(image,\n\n // done loading the canvas\n function (isUploading) {\n _this18._addState('preview');\n\n revealCanvas(function () {\n // don't show buttons when instant editing\n // the buttons will be triggered by the closing of the popup\n if (!_this18._canInstantEdit() && !isUploading) {\n _this18._showButtons();\n }\n\n if (!isUploading) {\n _this18._stopProgressLoop();\n _this18._removeState('busy');\n }\n\n if (callback) {\n callback.apply(_this18, [null, _this18.data]);\n }\n });\n },\n\n // done uploading\n function () {\n // don't show buttons when instant editing\n if (!_this18._canInstantEdit()) {\n _this18._showButtons();\n }\n\n _this18._removeState('busy');\n },\n\n // options for canvas load\n {\n blockPush: options.blockPush\n });\n });\n }\n }, {\n key: '_loadCanvas',\n value: function _loadCanvas(image, ready, complete, options) {\n var _this19 = this;\n\n // set default options object if not supplied\n if (!options) {\n options = {};\n }\n\n // halt here if cropper is currently being destroyed\n if (this._isBeingDestroyed) {\n return;\n }\n\n // store raw data\n if (isLowMemoryDevice()) {\n this._data.input.image = new Image();\n this._data.input.image.src = image.toDataURL();\n } else {\n this._data.input.image = image;\n }\n this._data.input.width = image.width;\n this._data.input.height = image.height;\n\n if (this._initialRotation) {\n this._data.actions.rotation = this._initialRotation;\n this._initialRotation = null;\n }\n\n var isTilted = this._data.actions.rotation % 180 !== 0;\n\n // scales the drop area\n // if is 'input' or 'free' parameter\n if (!this._isFixedRatio()) {\n if (this._initialCrop) {\n this._ratio = this._initialCrop.height / this._initialCrop.width;\n } else {\n this._ratio = isTilted ? image.width / image.height : image.height / image.width;\n }\n this._scaleDropArea(this._ratio);\n }\n\n var applyTransforms = function applyTransforms() {\n\n // if max size set\n if (_this19._options.size) {\n _this19._data.actions.size = {\n width: _this19._options.size.width,\n height: _this19._options.size.height\n };\n }\n\n // do initial auto transform\n _this19._applyTransforms(image, function (transformedImage) {\n var intro = _this19._getIntro();\n var scalar = intro.offsetWidth / transformedImage.width;\n\n // store data, if has preview image this prevents initial load from pushing\n var willUpload = false;\n\n // can only do auto upload when service is defined and push is enabled...\n if (_this19._options.service && _this19._options.push && !options.blockPush) {\n // ...and is not transformation of initial image\n // + is not instant edit mode\n if (!_this19._hasInitialImage && !_this19._canInstantEdit()) {\n willUpload = true;\n _this19._stopProgressLoop(function () {\n _this19._startProgress(function () {\n _this19._updateProgress(0.1);\n });\n });\n }\n }\n\n // no service set, and instant edit\n if (!_this19._canInstantEdit()) {\n // store data (possibly)\n _this19._save(function () {\n if (_this19._isBeingDestroyed) {\n return;\n }\n if (willUpload) {\n _this19._stopProgress();\n complete();\n }\n }, willUpload);\n }\n\n // scale ratio\n var ratio = _this19._options.devicePixelRatio === 'auto' ? window.devicePixelRatio : _this19._options.devicePixelRatio;\n\n // show intro animation\n intro.src = '';\n intro.src = cloneCanvasScaled(transformedImage, scalar * ratio).toDataURL();\n intro.onload = function () {\n intro.onload = null;\n\n // bail out if we've been cleaned up\n if (_this19._isBeingDestroyed) {\n return;\n }\n\n if (ready) {\n ready(willUpload);\n }\n };\n });\n };\n\n if (this._initialCrop) {\n\n // use initial supplied crop rectangle\n this._data.actions.crop = clone(this._initialCrop);\n this._data.actions.crop.type = CropType.INITIAL;\n\n // clear initial crop, it's no longer useful\n this._initialCrop = null;\n\n // go!\n applyTransforms();\n } else {\n\n this._options.willCropInitial.apply(this, [this.data, function (rect) {\n\n if (rect) {\n\n // apply custom crop rectangle\n _this19._data.actions.crop = rect;\n _this19._data.actions.crop.type = CropType.INITIAL;\n } else {\n\n // get automagical crop rectangle\n _this19._data.actions.crop = getAutoCropRect(isTilted ? image.height : image.width, isTilted ? image.width : image.height, _this19._ratio);\n _this19._data.actions.crop.type = CropType.AUTO;\n }\n\n applyTransforms();\n }, this]);\n }\n }\n }, {\n key: '_applyTransforms',\n value: function _applyTransforms(image, ready) {\n var _this20 = this;\n\n var actions = clone(this._data.actions);\n actions.filters = {\n sharpen: this._options.filterSharpen / 100\n };\n\n // if should force minimum size on output image\n if (this._options.forceMinSize) {\n actions.minSize = this._options.minSize;\n } else {\n actions.minSize = {\n width: 0,\n height: 0\n };\n }\n\n transformCanvas(image, actions, function (transformedImage) {\n var outputImage = transformedImage;\n\n // if should force/correct output size?\n // - is forced size set?\n // - is a discrepancy found between requested output size and transformed size\n if (_this20._options.forceSize || _this20._options.size && sizeDist(_this20._options.size, transformedImage) == 1) {\n outputImage = create('canvas');\n outputImage.width = _this20._options.size.width;\n outputImage.height = _this20._options.size.height;\n var ctx = outputImage.getContext('2d');\n ctx.drawImage(transformedImage, 0, 0, _this20._options.size.width, _this20._options.size.height);\n }\n\n // make sure min size is respected when size is equal to min size\n if (_this20._options.forceMinSize && _this20._options.size && _this20._options.minSize.width === _this20._options.size.width && _this20._options.minSize.height === _this20._options.size.height && (outputImage.width < _this20._options.minSize.width || outputImage.height < _this20._options.minSize.height)) {\n var w = Math.max(outputImage.width, _this20._options.minSize.width);\n var h = Math.max(outputImage.height, _this20._options.minSize.height);\n outputImage = create('canvas');\n outputImage.width = w;\n outputImage.height = h;\n var _ctx = outputImage.getContext('2d');\n _ctx.drawImage(transformedImage, 0, 0, w, h);\n }\n\n // prevent smaller square output image, this is a quick fix for square images, should be done a lot neater\n if (_this20._options.forceMinSize && _this20._ratio === 1 && (outputImage.width < _this20._options.minSize.width || outputImage.height < _this20._options.minSize.height)) {\n outputImage = create('canvas');\n outputImage.width = _this20._options.minSize.width;\n outputImage.height = _this20._options.minSize.height;\n var _ctx2 = outputImage.getContext('2d');\n _ctx2.drawImage(transformedImage, 0, 0, outputImage.width, outputImage.height);\n }\n\n // store output\n _this20._data.output.width = outputImage.width;\n _this20._data.output.height = outputImage.height;\n _this20._data.output.image = outputImage;\n\n _this20._onTransformCanvas(function (transformedData) {\n _this20._data = transformedData;\n _this20._options.didTransform.apply(_this20, [_this20.data, _this20]);\n ready(_this20._data.output.image);\n });\n });\n }\n }, {\n key: '_onTransformCanvas',\n value: function _onTransformCanvas(ready) {\n this._options.willTransform.apply(this, [this.data, ready, this]);\n }\n\n /**\n * Creates the editor nodes\n * @private\n */\n\n }, {\n key: '_appendEditor',\n value: function _appendEditor() {\n var _this21 = this;\n\n // we already have an editor\n if (this._imageEditor) {\n return;\n }\n\n // add editor\n this._imageEditor = new ImageEditor(create('div'), {\n minSize: this._options.minSize,\n devicePixelRatio: this._options.devicePixelRatio,\n\n buttonConfirmClassName: this._options.buttonConfirmClassName,\n buttonCancelClassName: this._options.buttonCancelClassName,\n buttonRotateClassName: this._options.buttonRotateClassName,\n\n buttonConfirmLabel: this._options.buttonConfirmLabel,\n buttonCancelLabel: this._options.buttonCancelLabel,\n buttonRotateLabel: this._options.buttonRotateLabel,\n\n buttonConfirmTitle: this._options.buttonConfirmTitle,\n buttonCancelTitle: this._options.buttonCancelTitle,\n buttonRotateTitle: this._options.buttonRotateTitle\n });\n\n // listen to events\n ImageEditorEvents.forEach(function (e) {\n _this21._imageEditor.element.addEventListener(e, _this21);\n });\n }\n }, {\n key: '_scaleDropArea',\n value: function _scaleDropArea(ratio) {\n var node = this._getRatioSpacerElement();\n if (!node || !this._element) {\n return;\n }\n node.style.marginBottom = ratio * 100 + '%';\n this._element.setAttribute('data-ratio', '1:' + ratio);\n }\n\n /**\n * Data Layer\n * @private\n */\n // image editor closed\n\n }, {\n key: '_onCancel',\n value: function _onCancel(e) {\n this._removeState('editor');\n\n this._options.didCancel.apply(this, [this]);\n\n this._showButtons();\n\n this._hideEditor();\n\n if (this._options.instantEdit && !this._hasInitialImage && this._isAutoCrop()) {\n this._doRemove();\n }\n }\n\n // user confirmed changes\n\n }, {\n key: '_onConfirm',\n value: function _onConfirm(e) {\n var _this22 = this;\n\n // if\n // - service set\n // - and we are pushing\n // - and we don't instant edit\n // we will upload\n var willUpload = this._options.service && this._options.push;\n if (willUpload) {\n this._startProgress(function () {\n _this22._updateProgress(0.1);\n });\n } else {\n this._startProgressLoop();\n }\n\n this._removeState('editor');\n\n this._addState('busy');\n\n // clear data\n this._output.value = '';\n\n // apply new action object to this._data\n this._data.actions.rotation = e.detail.rotation;\n this._data.actions.crop = e.detail.crop;\n this._data.actions.crop.type = CropType.MANUAL;\n\n // do transforms\n this._applyTransforms(this._data.input.image, function (transformedImage) {\n\n // user confirmed the crop (and changes have been applied to data)\n _this22._options.didConfirm.apply(_this22, [_this22.data, _this22]);\n\n // set new image result\n var images = _this22._getInOut();\n var intro = images[0].className === 'out' ? images[0] : images[1];\n var outro = intro === images[0] ? images[1] : images[0];\n\n intro.className = 'in';\n intro.style.opacity = '0';\n intro.style.zIndex = '2';\n outro.className = 'out';\n outro.style.zIndex = '1';\n\n // scale ratio\n var ratio = _this22._options.devicePixelRatio === 'auto' ? window.devicePixelRatio : _this22._options.devicePixelRatio;\n\n // new image get's\n intro.src = '';\n intro.src = cloneCanvasScaled(transformedImage, intro.offsetWidth / transformedImage.width * ratio).toDataURL();\n intro.onload = function () {\n intro.onload = null;\n\n // scale the dropzone\n if (_this22._options.ratio === 'free') {\n _this22._ratio = intro.naturalHeight / intro.naturalWidth;\n _this22._scaleDropArea(_this22._ratio);\n }\n\n // close the editor\n _this22._hideEditor();\n\n // wait a tiny bit so animations sync up nicely\n var timer = setTimeout(function () {\n\n removeTimer(_this22._timers, timer);\n\n // show the preview\n _this22._showPreview(intro, function () {\n // save the data\n _this22._save(function (err, data, res) {\n // done!\n _this22._toggleButton('upload', true);\n\n if (willUpload) {\n _this22._stopProgress();\n } else {\n _this22._stopProgressLoop();\n }\n\n _this22._removeState('busy');\n\n _this22._showButtons();\n }, willUpload);\n });\n }, 250);\n\n _this22._timers.push(timer);\n };\n });\n }\n }, {\n key: '_cropAuto',\n value: function _cropAuto() {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (data) {};\n\n var isTilted = this._data.actions.rotation % 180 !== 0;\n\n var rect = getAutoCropRect(isTilted ? this._data.input.image.height : this._data.input.image.width, isTilted ? this._data.input.image.width : this._data.input.image.height, this._ratio);\n\n this._crop(rect.x, rect.y, rect.width, rect.height, callback, CropType.AUTO);\n }\n }, {\n key: '_crop',\n value: function _crop(x, y, width, height) {\n var callback = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (data) {};\n var cropType = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : CropType.MANUAL;\n\n\n // clear data\n this._output.value = '';\n\n // apply new action object to this._data\n this._data.actions.crop = {\n x: x,\n y: y,\n width: width,\n height: height\n };\n this._data.actions.crop.type = cropType;\n\n this._manualTransform(callback);\n }\n }, {\n key: '_manualTransform',\n value: function _manualTransform(callback) {\n var _this23 = this;\n\n this._startProgressLoop();\n this._addState('busy');\n\n // do transforms\n this._applyTransforms(this._data.input.image, function (transformedImage) {\n // set new image result\n var images = _this23._getInOut();\n var intro = images[0].className === 'out' ? images[0] : images[1];\n var outro = intro === images[0] ? images[1] : images[0];\n\n intro.className = 'in';\n intro.style.opacity = '1';\n intro.style.zIndex = '2';\n outro.className = 'out';\n outro.style.zIndex = '0';\n\n // scale ratio\n var pixelRatio = _this23._options.devicePixelRatio === 'auto' ? window.devicePixelRatio : _this23._options.devicePixelRatio;\n\n // new image\n intro.src = '';\n intro.src = cloneCanvasScaled(transformedImage, intro.offsetWidth / transformedImage.width * pixelRatio).toDataURL();\n intro.onload = function () {\n intro.onload = null;\n\n // scale the dropzone\n if (_this23._options.ratio === 'free') {\n _this23._ratio = intro.naturalHeight / intro.naturalWidth;\n _this23._scaleDropArea(_this23._ratio);\n }\n\n // determine if will also upload\n var willUpload = _this23._options.service && _this23._options.push;\n\n var save = function save() {\n // save the data\n _this23._save(function (err, data, res) {\n // stop loader\n if (!willUpload) {\n _this23._stopProgressLoop();\n }\n\n _this23._removeState('busy');\n\n callback.apply(_this23, [_this23.data]);\n }, willUpload);\n };\n\n if (willUpload) {\n _this23._startProgress(save);\n } else {\n save();\n }\n };\n });\n }\n }, {\n key: '_save',\n value: function _save() {\n var _this24 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n var allowUpload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (this._isBeingDestroyed) {\n return;\n }\n\n // flatten data also turns output canvas into data uri\n // removes input file object and image object\n var data = this.dataBase64;\n\n // decide if we need to\n // - A. Store the data in an output field\n // - B. Upload the data and store the response in output field\n\n // - we are not doing async uploading (in which case output is used for response)\n // - we are not initialising a replaceable image\n if (!this._options.service && !(this._isInitialising && !this._isImageOnly())) {\n this._options.willSave.apply(this, [data, function (data) {\n _this24._store(data);\n\n _this24._options.didSave.apply(_this24, [data, _this24]);\n }, this]);\n }\n\n if (this._isBeingDestroyed) {\n return;\n }\n\n // is remote service defined upload async\n if (this._options.service && allowUpload) {\n // allow user to modify the data\n this._options.willSave.apply(this, [data, function (data) {\n _this24._addState('upload');\n\n if (_this24._imageHopper && _this24._options.dropReplace) {\n _this24._imageHopper.enabled = false;\n }\n\n // do the actual uploading\n _this24._upload(data, function (err, res) {\n if (_this24._imageHopper && _this24._options.dropReplace) {\n _this24._imageHopper.enabled = true;\n }\n\n // store response\n if (!err) {\n _this24._storeServerResponse(res);\n }\n\n // we did upload data\n _this24._options.didUpload.apply(_this24, [err, data, res, _this24]);\n\n _this24._removeState('upload');\n\n // done!\n callback(err, data, res);\n });\n }, this]);\n }\n\n // if no service, we're done here\n if (!this._options.service || !allowUpload) {\n callback();\n }\n }\n\n // stores active file information in hidden output field\n\n }, {\n key: '_storeServerResponse',\n value: function _storeServerResponse(data) {\n // remove required flag\n if (this._isRequired) {\n this._input.required = false;\n }\n\n // store data returned from server\n this._data.server = data;\n\n // sync with output value\n this._output.value = (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' ? JSON.stringify(this._data.server) : data;\n }\n\n // stores data in output field\n\n }, {\n key: '_store',\n value: function _store(data) {\n if (this._isRequired) {\n this._input.required = false;\n }\n\n this._output.value = JSON.stringify(data);\n }\n\n // uploads given data to server\n\n }, {\n key: '_upload',\n value: function _upload(data, callback) {\n var // function(error) {} \t\t\t// error message (string),\n _this25 = this;\n\n this.requestOutput(function (fileData, formData) {\n var statusNode = _this25._element.querySelector('.slim-upload-status');\n\n var requestDecorator = _this25._options.willRequest;\n\n // callback methods\n var onProgress = function onProgress(loaded, total) {\n _this25._updateProgress(Math.max(0.1, loaded / total));\n };\n\n var onSuccess = function onSuccess(obj) {\n var timer = setTimeout(function () {\n\n removeTimer(_this25._timers, timer);\n\n // it's possible that Slim has been destroyed in the mean time.\n if (_this25._isBeingDestroyed) {\n return;\n }\n\n statusNode.innerHTML = _this25._options.statusUploadSuccess;\n statusNode.setAttribute('data-state', 'success');\n statusNode.style.opacity = 1;\n\n // hide status update after 2 seconds\n var timer = setTimeout(function () {\n removeTimer(_this25._timers, timer);\n statusNode.style.opacity = 0;\n }, 2000);\n\n _this25._timers.push(timer);\n }, 250);\n\n _this25._timers.push(timer);\n\n callback(null, obj);\n };\n\n var onError = function onError(status) {\n var html = '';\n if (status === 'file-too-big') {\n html = _this25._options.statusContentLength;\n } else {\n html = _this25._options.didReceiveServerError.apply(_this25, [status, _this25._options.statusUnknownResponse, _this25]);\n }\n\n // when an error occurs the status update is not automatically hidden\n var timer = setTimeout(function () {\n\n removeTimer(_this25._timers, timer);\n\n statusNode.innerHTML = html;\n statusNode.setAttribute('data-state', 'error');\n statusNode.style.opacity = 1;\n }, 250);\n\n _this25._timers.push(timer);\n\n callback(status);\n };\n\n // use default send method or custom implementation\n if (typeof _this25._options.service === 'string') {\n send(_this25._options.service, _this25._options.uploadMethod, formData, requestDecorator, onProgress, onSuccess, onError);\n } else if (typeof _this25._options.service === 'function') {\n _this25._options.service.apply(_this25, [_this25._options.serviceFormat === 'file' ? fileData : formData, onProgress, // function(loaded, total) {} // loaded bytes (number), total bytes (number)\n onSuccess, // function(response) {} \t\t// response (object or string)\n onError, _this25]);\n }\n }, data);\n }\n }, {\n key: 'requestOutput',\n value: function requestOutput(cb, data) {\n var _this26 = this;\n\n if (!this._data.input.file) {\n cb(null, null);\n return;\n }\n\n if (!data) {\n data = this.dataBase64;\n }\n\n // copy the meta data of the original file to the output\n loadImage.parseMetaData(this._data.input.file,\n\n // receives image data from input file\n function (imageData) {\n var fileData = [];\n var formData = new FormData();\n\n // if input should be posted along, append data\n // to FormData object as file\n if (inArray('input', _this26._options.post)) {\n // add to data array\n fileData.push(_this26._data.input.file);\n\n // add to formdata\n formData.append(_this26._inputReference, _this26._data.input.file, _this26._data.input.file.name);\n }\n\n // if image data is defined, turn it into a file object (we can send files if we're uploading)\n if (inArray('output', _this26._options.post) && _this26._data.output.image !== null && _this26._options.uploadBase64 === false) {\n var output = base64ToBlob(data.output.image, data.output.name);\n\n // if image head available, inject in output\n if (imageData.imageHead && _this26._options.copyImageHead) {\n\n try {\n output = new Blob([imageData.imageHead, loadImage.blobSlice.call(output, 20)], {\n type: getMimeTypeFromDataURI(data.output.image)\n });\n\n output = blobToFile(output, data.output.name);\n } catch (e) {}\n }\n\n // add to data array\n fileData.push(output);\n\n // add to formdata\n var field = 'slim_output_' + _this26._uid;\n data.output.image = null; // clear base64 data\n data.output.field = field;\n formData.append(field, output, data.output.name);\n }\n\n // output dataset\n formData.append(_this26._output.name, JSON.stringify(data));\n\n // done\n cb(fileData, formData);\n }, {\n maxMetaDataSize: 262144,\n disableImageHead: false\n });\n }\n }, {\n key: '_showEditor',\n value: function _showEditor() {\n SlimPopover.className = this._options.popoverClassName;\n\n SlimPopover.show();\n\n this._imageEditor.show();\n }\n }, {\n key: '_hideEditor',\n value: function _hideEditor() {\n var _this27 = this;\n\n this._imageEditor.hide();\n\n var timer = setTimeout(function () {\n removeTimer(_this27._timers, timer);\n SlimPopover.hide();\n }, 250);\n\n this._timers.push(timer);\n }\n\n /**\n * Animations\n */\n\n }, {\n key: '_showPreview',\n value: function _showPreview(intro, callback) {\n snabbt(intro, {\n fromPosition: [0, 50, 0],\n position: [0, 0, 0],\n\n fromScale: [1.5, 1.5],\n scale: [1, 1],\n\n fromOpacity: 0,\n opacity: 1,\n\n easing: 'spring',\n springConstant: 0.3,\n springDeceleration: 0.7,\n\n complete: function complete() {\n resetTransforms(intro);\n\n if (callback) {\n callback();\n }\n }\n });\n }\n }, {\n key: '_hideResult',\n value: function _hideResult(callback) {\n var intro = this._getIntro();\n if (!intro) {\n return;\n }\n\n snabbt(intro, {\n fromScale: [1, 1],\n scale: [0.5, 0.5],\n\n fromOpacity: 1,\n opacity: 0,\n\n easing: 'spring',\n springConstant: 0.3,\n springDeceleration: 0.75,\n\n complete: function complete() {\n resetTransforms(intro);\n if (callback) {\n callback();\n }\n }\n });\n }\n }, {\n key: '_showButtons',\n value: function _showButtons(callback) {\n if (!this._btnGroup) {\n return;\n }\n\n this._btnGroup.style.display = '';\n\n // setup animation\n var animation = {\n fromScale: [0.5, 0.5],\n scale: [1, 1],\n fromPosition: [0, 10, 0],\n position: [0, 0, 0],\n fromOpacity: 0,\n opacity: 1,\n complete: function complete() {\n resetTransforms(this);\n },\n allDone: function allDone() {\n if (callback) {\n callback();\n }\n }\n };\n\n // don't animate when detached\n if (this.isDetached()) {\n animation.duration = 1;\n } else {\n animation.delay = function (i) {\n return 250 + i * 50;\n };\n animation.easing = 'spring';\n animation.springConstant = 0.3;\n animation.springDeceleration = 0.85;\n }\n\n snabbt(this._btnGroup.childNodes, animation);\n }\n }, {\n key: '_hideButtons',\n value: function _hideButtons(callback) {\n var _this28 = this;\n\n if (!this._btnGroup) {\n return;\n }\n\n var animation = {\n fromScale: [1, 1],\n scale: [0.85, 0.85],\n fromOpacity: 1,\n opacity: 0,\n allDone: function allDone() {\n _this28._btnGroup.style.display = 'none';\n if (callback) {\n callback();\n }\n }\n };\n\n // don't animate when detached\n if (this.isDetached()) {\n animation.duration = 1;\n } else {\n animation.easing = 'spring';\n animation.springConstant = 0.3;\n animation.springDeceleration = 0.75;\n }\n\n // go hide the buttons\n snabbt(this._btnGroup.childNodes, animation);\n }\n }, {\n key: '_hideStatus',\n value: function _hideStatus() {\n var statusNode = this._element.querySelector('.slim-upload-status');\n statusNode.style.opacity = 0;\n }\n }, {\n key: '_doEdit',\n value: function _doEdit() {\n var _this29 = this;\n\n // if no input data available, can't edit anything\n if (!this._data.input.image) {\n return;\n }\n\n // now in editor mode\n this._addState('editor');\n\n // create editor (if not already created)\n if (!this._imageEditor) {\n this._appendEditor();\n }\n\n // hide or show rotate button\n this._imageEditor.showRotateButton = this._options.rotateButton;\n\n // append to popover\n SlimPopover.inner = this._imageEditor.element;\n\n // read the data\n this._imageEditor.open(\n // send copy of canvas to the editor\n //cloneCanvas(this._data.input.image),\n this._data.input.image,\n\n // determine ratio\n this._options.ratio === 'free' ? null : this._ratio,\n\n // the initial crop to show\n this._data.actions.crop,\n\n // the initial rotation of the image\n this._data.actions.rotation,\n\n // handle editor load\n function () {\n _this29._showEditor();\n\n _this29._hideButtons();\n\n _this29._hideStatus();\n });\n }\n }, {\n key: '_doRemove',\n value: function _doRemove(done) {\n var _this30 = this;\n\n // cannot remove when is only one image\n if (this._isImageOnly()) {\n return;\n }\n\n this._clearState();\n this._addState('empty');\n\n this._hasInitialImage = false;\n if (this._imageHopper) {\n this._imageHopper.enabled = true;\n }\n\n if (this._isRequired) {\n this._input.required = true;\n }\n\n var out = this._getOutro();\n if (out) {\n out.style.opacity = '0';\n }\n\n // get public available clone of data\n var data = this.data;\n\n // now reset all data\n this._resetData();\n\n var timer = setTimeout(function () {\n removeTimer(_this30._timers, timer);\n if (_this30._isBeingDestroyed) {\n return;\n }\n\n _this30._hideButtons(function () {\n _this30._toggleButton('upload', true);\n });\n\n _this30._hideStatus();\n\n _this30._hideResult();\n\n _this30._options.didRemove.apply(_this30, [data, _this30]);\n\n if (done) {\n done();\n }\n }, this.isDetached() ? 0 : 250);\n\n this._timers.push(timer);\n\n return data;\n }\n }, {\n key: '_doUpload',\n value: function _doUpload(callback) {\n var _this31 = this;\n\n // if no input data available, can't upload anything\n if (!this._data.input.image) {\n return;\n }\n\n this._addState('upload');\n this._startProgress();\n\n this._hideButtons(function () {\n // block upload button\n _this31._toggleButton('upload', false);\n\n _this31._save(function (err, data, res) {\n _this31._removeState('upload');\n _this31._stopProgress();\n\n if (callback) {\n callback.apply(_this31, [err, data, res]);\n }\n\n if (err) {\n _this31._toggleButton('upload', true);\n }\n\n _this31._showButtons();\n });\n });\n }\n }, {\n key: '_doDownload',\n value: function _doDownload() {\n var image = this._data.output.image;\n if (!image) {\n return;\n }\n\n downloadCanvas(this._data, this._options.jpegCompression, this._options.forceType);\n }\n }, {\n key: '_doDestroy',\n value: function _doDestroy() {\n var _this32 = this;\n\n // set destroy flag to halt any running functionality\n this._isBeingDestroyed = true;\n\n // clear timers\n this._timers.forEach(function (timer) {\n clearTimeout(timer);\n });\n this._timers = [];\n\n // clean up snabbt animations\n snabbt(this._element, 'detach');\n\n // this removes the image hopper if it's attached\n if (this._imageHopper) {\n HopperEvents.forEach(function (e) {\n _this32._imageHopper.element.removeEventListener(e, _this32);\n });\n this._imageHopper.destroy();\n this._imageHopper = null;\n }\n\n // this block removes the image editor\n if (this._imageEditor) {\n ImageEditorEvents.forEach(function (e) {\n _this32._imageEditor.element.removeEventListener(e, _this32);\n });\n this._imageEditor.destroy();\n this._imageEditor = null;\n }\n\n // remove button event listeners\n nodeListToArray(this._btnGroup.children).forEach(function (btn) {\n btn.removeEventListener('click', _this32);\n });\n\n // stop listening to input\n this._input.removeEventListener('change', this);\n\n // detect if was wrapped, if so, remove wrapping (needs to have parent node)\n if (this._element !== this._originalElement && this._element.parentNode) {\n this._element.parentNode.replaceChild(this._originalElement, this._element);\n }\n\n // restore HTML of original element\n this._originalElement.innerHTML = this._originalElementInner;\n\n // get current attributes and remove all, then add original attributes\n function matchesAttributeInList(a, attributes) {\n return attributes.filter(function (attr) {\n return a.name === attr.name && a.value === attr.value;\n }).length !== 0;\n }\n\n var attributes = getElementAttributes(this._originalElement);\n attributes.forEach(function (attribute) {\n // if attribute is contained in original element attribute list and is the same, don't remove\n if (matchesAttributeInList(attribute, _this32._originalElementAttributes)) {\n return;\n }\n\n // else remove\n _this32._originalElement.removeAttribute(attribute.name);\n });\n\n this._originalElementAttributes.forEach(function (attribute) {\n // attribute was never removed\n if (matchesAttributeInList(attribute, attributes)) {\n return;\n }\n\n // add attribute\n _this32._originalElement.setAttribute(attribute.name, attribute.value);\n });\n\n // now destroyed this counter so the total Slim count can be lowered\n SlimCount = Math.max(0, SlimCount - 1);\n\n // if slim count has reached 0 it's time to clean up the popover\n if (SlimPopover && SlimCount === 0) {\n SlimPopover.destroy();\n SlimPopover = null;\n }\n\n this._originalElement = null;\n this._element = null;\n this._input = null;\n this._output = null;\n this._btnGroup = null;\n this._options = null;\n }\n }, {\n key: 'dataBase64',\n\n\n /**\n * Public API\n */\n // properties\n get: function get() {\n return flattenData(this._data, this._options.post, this._options.jpegCompression, this._options.forceType, this._options.service !== null);\n }\n }, {\n key: 'data',\n get: function get() {\n return cloneData(this._data);\n }\n }, {\n key: 'element',\n get: function get() {\n return this._element;\n }\n }, {\n key: 'service',\n set: function set(service) {\n this._options.service = service;\n }\n }, {\n key: 'size',\n set: function set(dimensions) {\n this.setSize(dimensions, null);\n }\n }, {\n key: 'rotation',\n set: function set(rotation) {\n this.setRotation(rotation, null);\n }\n }, {\n key: 'forceSize',\n set: function set(dimensions) {\n this.setForceSize(dimensions, null);\n }\n }, {\n key: 'ratio',\n set: function set(ratio) {\n this.setRatio(ratio, null);\n }\n }], [{\n key: 'options',\n value: function options() {\n var defaults = {\n // edit button is enabled by default\n edit: true,\n\n // immidiately summons editor on load\n instantEdit: false,\n\n // set to true to upload data as base64 string\n uploadBase64: false,\n\n // metadata values\n meta: {},\n\n // ratio of crop by default is the same as input image ratio\n ratio: 'free',\n\n // use fix value for device pixel ratio\n devicePixelRatio: 1, // set to 'auto' to use device ratio\n\n // dimensions to resize the resulting image to\n size: null,\n\n // set initial rotation\n rotation: null,\n\n // initial crop settings for example: {x:0, y:0, width:100, height:100}\n crop: null,\n\n // post these values\n post: ['output', 'actions'],\n\n // call this service to submit cropped data\n service: null,\n serviceFormat: null,\n\n // sharpen filter value, really low values might improve image output\n filterSharpen: 0,\n\n // when service is set, and this is set to true, Soon will auto upload all crops (also auto crops)\n push: false,\n\n // default fallback name for field\n defaultInputName: 'slim[]',\n\n // minimum size of cropped area object with width and height property\n minSize: {\n width: 0,\n height: 0\n },\n\n // maximum file size in MB to upload\n maxFileSize: null,\n\n // compression of JPEG (between 0 and 100)\n jpegCompression: null,\n\n // upload method of request\n uploadMethod: 'POST',\n\n // render download link\n download: false,\n\n // save initially loaded image\n saveInitialImage: false,\n\n // the type to force (jpe|jpg|jpeg or png)\n forceType: false,\n\n // the forced output size of the image\n forceSize: null,\n\n forceMinSize: true,\n\n // disable drop to replace\n dropReplace: true,\n\n // remote URL service\n fetcher: null,\n\n // set the internal canvas size\n internalCanvasSize: {\n width: 4096,\n height: 4096\n },\n\n // use these settings on low memory enviroment\n internalCanvasSizeLowMemory: {\n width: 4096,\n height: 4096\n },\n\n // copies the input image meta data to the output image\n copyImageHead: false,\n\n // enable or disable rotation\n rotateButton: true,\n\n // popover classname\n popoverClassName: null,\n\n // label HTML to show inside drop area\n label: '

Drop your image here

',\n labelLoading: '

Loading image...

',\n\n // error messages\n statusFileType: '

Invalid file type, expects: $0.

',\n statusFileSize: '

File is too big, maximum file size: $0 MB.

',\n statusNoSupport: '

Your browser does not support image cropping.

',\n statusImageTooSmall: '

Image is too small, minimum size is: $0 pixels.

',\n statusContentLength: ' The file is probably too big',\n statusUnknownResponse: ' An unknown error occurred',\n statusUploadSuccess: ' Saved',\n statusLocalUrlProblem: null,\n\n // callback methods\n didInit: function didInit(data) {},\n didLoad: function didLoad(file, image, meta) {\n return true;\n },\n didSave: function didSave(data) {},\n didUpload: function didUpload(err, data, res) {},\n didReceiveServerError: function didReceiveServerError(err, defaultError) {\n return defaultError;\n },\n didRemove: function didRemove(data) {},\n didTransform: function didTransform(data) {},\n didConfirm: function didConfirm(data) {},\n didCancel: function didCancel() {},\n didThrowError: function didThrowError() {},\n\n willCropInitial: function willCropInitial(file, cb) {\n cb(null);\n },\n willTransform: function willTransform(data, cb) {\n cb(data);\n },\n willSave: function willSave(data, cb) {\n cb(data);\n },\n willRemove: function willRemove(data, cb) {\n cb();\n },\n willRequest: function willRequest(xhr, data) {},\n willFetch: function willFetch(xhr) {},\n willLoad: function willLoad(xhr) {}\n };\n\n // add default button labels\n SlimButtons.concat(ImageEditor.Buttons).concat('rotate').forEach(function (btn) {\n var capitalized = capitalizeFirstLetter(btn);\n defaults['button' + capitalized + 'ClassName'] = null;\n defaults['button' + capitalized + 'Label'] = capitalized;\n defaults['button' + capitalized + 'Title'] = capitalized;\n });\n\n return defaults;\n }\n }]);\n\n return Slim;\n}();\n\n/**\n * Slim Static Methods\n */\n\n\n(function () {\n var instances = [];\n\n var indexOfElement = function indexOfElement(element) {\n var i = 0;\n var l = instances.length;\n for (; i < l; i++) {\n if (instances[i].isAttachedTo(element)) {\n return i;\n }\n }\n return -1;\n };\n\n function toLabel(v) {\n // if value set, use as label\n if (v) {\n return '

' + v + '

';\n }\n\n // else use default text\n return null;\n }\n\n function toFunctionReference(name) {\n var ref = window;\n var levels = name.split('.');\n levels.forEach(function (level, index) {\n if (!ref[levels[index]]) {\n return;\n }\n ref = ref[levels[index]];\n });\n return ref !== window ? ref : null;\n }\n\n var passThrough = function passThrough(v) {\n return v;\n };\n var defaultFalse = function defaultFalse(v) {\n return v === 'true';\n };\n var defaultTrue = function defaultTrue(v) {\n return v ? v === 'true' : true;\n };\n var defaultLabel = function defaultLabel(v) {\n return toLabel(v);\n };\n var defaultFunction = function defaultFunction(v) {\n return v ? toFunctionReference(v) : null;\n };\n var defaultSize = function defaultSize(v) {\n if (!v) {\n return null;\n }\n var parts = intSplit(v, ',');\n return {\n width: parts[0],\n height: parts[1]\n };\n };\n\n var toFloat = function toFloat(v) {\n if (!v) {\n return null;\n }\n return parseFloat(v);\n };\n\n var toInt = function toInt(v) {\n if (!v) {\n return null;\n }\n return parseInt(v, 10);\n };\n\n var toRect = function toRect(v) {\n if (!v) {\n return null;\n }\n var obj = {};\n v.split(',').map(function (p) {\n return parseInt(p, 10);\n }).forEach(function (v, i) {\n obj[Rect[i]] = v;\n });\n return obj;\n };\n\n var defaults = {\n // is user allowed to download the cropped image?\n download: defaultFalse,\n\n // is user allowed to edit the cropped image?\n edit: defaultTrue,\n\n // open editor immidiately on file drop\n instantEdit: defaultFalse,\n\n // minimum crop size in pixels of original image\n minSize: defaultSize,\n\n // the final bounding box of the output image\n size: defaultSize,\n\n // the forced output size of the image\n forceSize: defaultSize,\n\n forceMinSize: defaultTrue,\n\n // the internal data canvas size\n internalCanvasSize: defaultSize,\n internalCanvasSizeLowMemory: defaultSize,\n\n // url to post to\n service: function service(v) {\n if (typeof v === 'undefined') {\n return null;\n }\n var fn = toFunctionReference(v);\n if (fn) {\n return fn;\n }\n return v;\n },\n\n // format of service data\n serviceFormat: function serviceFormat(v) {\n return typeof v === 'undefined' ? null : v;\n },\n\n // url to fetch service\n fetcher: function fetcher(v) {\n return typeof v === 'undefined' ? null : v;\n },\n\n // set auto push mode\n push: defaultFalse,\n\n // initial rotation\n rotation: function rotation(v) {\n return typeof v === 'undefined' ? null : parseInt(v, 10);\n },\n\n // set crop rect\n crop: toRect,\n\n // what to post\n post: function post(v) {\n if (!v) {\n return null;\n }\n return v.split(',').map(function (item) {\n return item.trim();\n });\n },\n\n // default input name\n defaultInputName: passThrough,\n\n // the ratio of the crop\n ratio: function ratio(v) {\n if (!v) {\n return null;\n }\n return v;\n },\n\n // maximum file size\n maxFileSize: toFloat,\n\n // sharpen filter\n filterSharpen: toInt,\n\n // jpeg compression\n jpegCompression: toInt,\n\n // base64 data uploading\n uploadBase64: defaultFalse,\n\n // sets file type to force output to\n forceType: passThrough,\n\n // drop to replace\n dropReplace: defaultTrue,\n\n // bool determining if initial image should be saved\n saveInitialImage: defaultFalse,\n\n // copies input image head to output image\n copyImageHead: defaultFalse,\n\n // rotate button\n rotateButton: defaultTrue,\n\n // default labels\n label: defaultLabel,\n labelLoading: defaultLabel,\n\n // class name to put on popover element\n popoverClassName: passThrough,\n\n // the ratio for pixels\n devicePixelRatio: passThrough,\n\n // upload request method\n uploadMethod: passThrough\n };\n\n // labels\n ['FileSize', 'FileType', 'NoSupport', 'ImageTooSmall'].forEach(function (status) {\n defaults['status' + status] = defaultLabel;\n });\n\n // status\n ['ContentLength', 'UnknownResponse', 'UploadSuccess', 'localUrlProblem'].forEach(function (status) {\n defaults['status' + status] = passThrough;\n });\n\n // the did callbacks\n ['Init', 'Load', 'Save', 'Upload', 'Remove', 'Transform', 'ReceiveServerError', 'Confirm', 'Cancel', 'ThrowError'].forEach(function (cb) {\n defaults['did' + cb] = defaultFunction;\n });\n\n // the will callbacks\n ['CropInitial', 'Transform', 'Save', 'Remove', 'Request', 'Load', 'Fetch'].forEach(function (cb) {\n defaults['will' + cb] = defaultFunction;\n });\n\n // button defaults\n var buttonOptions = ['ClassName', 'Label', 'Title'];\n SlimButtons.concat(ImageEditor.Buttons).concat('rotate').forEach(function (btn) {\n var capitalized = capitalizeFirstLetter(btn);\n buttonOptions.forEach(function (opt) {\n defaults['button' + capitalized + opt] = passThrough;\n });\n });\n\n Slim.supported = function () {\n return !( // is opera mini\n Object.prototype.toString.call(window.operamini) === '[object OperaMini]' ||\n // no event listener support\n typeof window.addEventListener === 'undefined' ||\n // no file reader support\n typeof window.FileReader === 'undefined' ||\n // no blob slicing (can't dupe files)\n !('slice' in Blob.prototype) ||\n // no .createObjectURL support, used by download method but also convenient to exclude Android 4.3 and lower\n // Android 4.3 and lower don't support XHR2 responseType blob\n typeof window.URL === 'undefined' || typeof window.URL.createObjectURL === 'undefined');\n }();\n\n Slim.parse = function (context) {\n var elements;\n var element;\n var i;\n var croppers = [];\n\n // find all crop elements and bind Crop behavior\n elements = context.querySelectorAll('.slim:not([data-state])');\n i = elements.length;\n\n while (i--) {\n element = elements[i];\n croppers.push(Slim.create(element, Slim.getOptionsFromAttributes(element)));\n }\n\n return croppers;\n };\n\n Slim.getOptionsFromAttributes = function (element) {\n var dataset = getDataset(element);\n\n var options = {\n meta: {}\n };\n\n for (var prop in dataset) {\n var valueTransformer = defaults[prop];\n var _value = dataset[prop];\n\n if (valueTransformer) {\n _value = valueTransformer(_value);\n _value = _value === null ? clone(Slim.options()[prop]) : _value;\n options[prop] = _value;\n } else if (prop.indexOf('meta') === 0) {\n options['meta'][lowercaseFirstLetter(prop.substr(4))] = _value;\n }\n }\n\n return options;\n };\n\n Slim.find = function (element) {\n var result = instances.filter(function (instance) {\n return instance.isAttachedTo(element);\n });\n return result ? result[0] : null;\n };\n\n Slim.create = function (element, options) {\n // if already in array, can't create another slim\n if (Slim.find(element)) {\n return;\n }\n\n // if no options supplied, try to get the options from the element\n if (!options) {\n options = Slim.getOptionsFromAttributes(element);\n }\n\n // instance\n var slim = new Slim(element, options);\n\n // add new slim\n instances.push(slim);\n\n // return the slim instance\n return slim;\n };\n\n Slim.destroy = function (element) {\n var index = indexOfElement(element);\n\n if (index < 0) {\n return false;\n }\n\n instances[index].destroy();\n instances.splice(index, 1);\n\n return true;\n };\n})();\n return Slim;\n}());","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessDenied.vue?vue&type=style&index=0&id=2f39f54d&lang=scss&scoped=true&\"","import type ActivityContact from '@/Activity/interfaces/ActivityContact'\nimport ArrivalService from '@/Common/services/ArrivalService'\nimport ContactTask from '../interfaces/ContactTask'\nimport ContactTaskGrouping from '../interfaces/ContactTaskGrouping'\nimport GenericResponse from '@/Common/interfaces/GenericResponse'\nimport { ServiceError } from '@/Common/interfaces/ServiceError'\nimport Task from '../interfaces/Task'\nimport TaskType from '../interfaces/TaskType'\nimport store from '@/Common/store'\n\nclass TaskService extends ArrivalService {\n public static async AddTask(task: Task): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/tasks`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: task,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async UpdateTask(task: Task): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'PUT',\n url: `${baseUrl}/api/tasks/${task.id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: task,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async RemoveTask(taskId: number): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'DELETE',\n url: `${baseUrl}/api/tasks/${taskId}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async AddTaskType(taskType: TaskType): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/tasktypes`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: taskType,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async RemoveTaskType(taskTypeId: number): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'DELETE',\n url: `${baseUrl}/api/tasktypes/${taskTypeId}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async UpdateTaskType(taskType: TaskType): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'PUT',\n url: `${baseUrl}/api/tasktypes/${taskType.id}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: taskType,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async FetchTaskTypes(): Promise {\n let result: any = []\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/tasktypes`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async FetchTasks(): Promise {\n let result: any = []\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'GET',\n url: `${baseUrl}/api/tasks`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async FetchContactTasks(\n activityContacts: ActivityContact[],\n locationId: number\n ): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/tasks/ContactTaskGrouping/Location/${locationId}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: activityContacts,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n\n public static async CompleteContactTask(request: ContactTask): Promise {\n let result: any = null\n try {\n const baseUrl = store.getters['settings/baseUrl']\n const { data, status } = await this.http({\n method: 'POST',\n url: `${baseUrl}/api/tasks/contact/complete${request.completeEndpoint}`,\n headers: {\n Authorization: `Bearer ${store.getters['oidcStore/oidcAccessToken']}`,\n },\n data: request,\n })\n\n if (data && status === 200) {\n result = data\n }\n } catch (error) {\n const err = error as any\n const serviceError: ServiceError = {\n error: err.response as object,\n flag: false as boolean,\n generalError: 'An error happened' as string,\n }\n throw serviceError\n }\n\n return result\n }\n}\n\nexport default TaskService\n"],"sourceRoot":""}