{"version":3,"file":"js/app.6fc85618.js","mappings":"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","sources":["webpack://post-office/./src/components/dialogs/basicDialog.vue","webpack://post-office/src/components/dialogs/basicDialog.vue","webpack://post-office/./src/components/dialogs/basicDialog.vue?4314","webpack://post-office/./src/components/dialogs/basicDialog.vue?9c18","webpack://post-office/./src/components/dialogs/confirmDialog.vue","webpack://post-office/src/components/dialogs/confirmDialog.vue","webpack://post-office/./src/components/dialogs/confirmDialog.vue?f602","webpack://post-office/./src/components/dialogs/confirmDialog.vue?4a8d","webpack://post-office/./src/components/dialogs/dialogToolbar.vue","webpack://post-office/src/components/dialogs/dialogToolbar.vue","webpack://post-office/./src/components/dialogs/dialogToolbar.vue?ac21","webpack://post-office/./src/components/dialogs/dialogToolbar.vue?2730","webpack://post-office/./src/components/input/bigButton.vue","webpack://post-office/src/components/input/bigButton.vue","webpack://post-office/./src/components/input/bigButton.vue?6599","webpack://post-office/./src/components/input/bigButton.vue?2331","webpack://post-office/./src/components/output/loading.vue","webpack://post-office/src/components/output/loading.vue","webpack://post-office/./src/components/output/loading.vue?a4da","webpack://post-office/./src/components/output/loading.vue?ac6d","webpack://post-office/./src/components/dialogs/mixins/baseDialog.ts","webpack://post-office/./src/components/structure/selectOption.ts","webpack://post-office/./src/components/output/poIcon.vue","webpack://post-office/src/components/output/poIcon.vue","webpack://post-office/./src/components/output/poIcon.vue?4071","webpack://post-office/./src/components/output/poIcon.vue?8dbd","webpack://post-office/./src/plugins/routerHooks.ts","webpack://post-office/./src/plugins/dateFormat.ts","webpack://post-office/./src/plugins/navigation.ts","webpack://post-office/./src/plugins/vuetify.ts","webpack://post-office/./src/filters/capitalize.ts","webpack://post-office/./src/registerServiceWorker.ts","webpack://post-office/./src/app.vue","webpack://post-office/./src/components/notifications.vue","webpack://post-office/src/components/notifications.vue","webpack://post-office/./src/components/notifications.vue?5f3f","webpack://post-office/./src/components/notifications.vue?9027","webpack://post-office/./src/components/dialogs/updateDialog.vue","webpack://post-office/src/components/dialogs/updateDialog.vue","webpack://post-office/./src/components/dialogs/updateDialog.vue?cca8","webpack://post-office/./src/components/dialogs/updateDialog.vue?b9aa","webpack://post-office/./src/components/offlineBanner.vue","webpack://post-office/src/components/offlineBanner.vue","webpack://post-office/./src/components/offlineBanner.vue?bc73","webpack://post-office/./src/components/offlineBanner.vue?192b","webpack://post-office/./src/components/dialogs/loadingOverlay.vue","webpack://post-office/src/components/dialogs/loadingOverlay.vue","webpack://post-office/./src/components/dialogs/loadingOverlay.vue?9572","webpack://post-office/./src/components/dialogs/loadingOverlay.vue?84e7","webpack://post-office/./src/components/dialogs/cookieConsentDialog.vue","webpack://post-office/src/components/dialogs/cookieConsentDialog.vue","webpack://post-office/./src/components/dialogs/cookieConsentDialog.vue?a1c9","webpack://post-office/./src/components/dialogs/cookieConsentDialog.vue?24e9","webpack://post-office/src/app.vue","webpack://post-office/./src/app.vue?7902","webpack://post-office/./src/app.vue?7487","webpack://post-office/./src/errorHandling.ts","webpack://post-office/./src/main.ts","webpack://post-office/./src/store/authentication/facebookPortal.ts","webpack://post-office/./src/managers/authentication/facebook.ts","webpack://post-office/./src/store/authentication/savedLogin.ts","webpack://post-office/./src/managers/authentication/savedLogin.ts","webpack://post-office/./src/store/authentication/authentication.ts","webpack://post-office/./src/managers/authentication/authentication.ts","webpack://post-office/./src/managers/base/list.ts","webpack://post-office/./src/managers/base/itemList.ts","webpack://post-office/./src/managers/base/listEditable.ts","webpack://post-office/./src/managers/base/listModifiable.ts","webpack://post-office/./src/managers/data/facebook/facebookAccount.ts","webpack://post-office/./src/managers/data/facebook/facebookPage.ts","webpack://post-office/./src/managers/data/instagram/InstagramBusinessAccount.ts","webpack://post-office/./src/managers/data/location/location.ts","webpack://post-office/./src/managers/data/organization/dealConfiguration.ts","webpack://post-office/./src/managers/data/organization/dealTexts.ts","webpack://post-office/./src/managers/data/organization/organizationPermission.ts","webpack://post-office/./src/managers/data/organization/organization.ts","webpack://post-office/./src/managers/data/preferences/calendarType.ts","webpack://post-office/./src/managers/data/serviceConnection/service.ts","webpack://post-office/./src/managers/data/serviceConnection/serviceConnection.ts","webpack://post-office/./src/managers/data/user/publicUser.ts","webpack://post-office/./src/managers/data/user/user.ts","webpack://post-office/./src/store/facebook/accounts.ts","webpack://post-office/./src/managers/facebook/accounts.ts","webpack://post-office/./src/managers/facebook/authentication.ts","webpack://post-office/./src/managers/facebook/loader.ts","webpack://post-office/./src/managers/facebook/pages.ts","webpack://post-office/./src/managers/facebook/permissions.ts","webpack://post-office/./src/managers/data/location/contentSubscription.ts","webpack://post-office/./src/managers/location/contentSubscriptions.ts","webpack://post-office/./src/managers/location/locations.ts","webpack://post-office/./src/managers/data/serviceConnection/publicServiceConnection.ts","webpack://post-office/./src/store/location/services.ts","webpack://post-office/./src/managers/data/serviceConnection/detailedService.ts","webpack://post-office/./src/managers/location/services.ts","webpack://post-office/./src/store/organization/organizations.ts","webpack://post-office/./src/managers/base/listMain.ts","webpack://post-office/./src/managers/organization/organizations.ts","webpack://post-office/./src/managers/portal.ts","webpack://post-office/./src/managers/session/globalEvents.ts","webpack://post-office/./src/managers/session/loading.ts","webpack://post-office/./src/managers/session/localization.ts","webpack://post-office/./src/managers/session/logging/globalSiteTag.ts","webpack://post-office/./src/managers/session/logging/awsLog.ts","webpack://post-office/./src/managers/session/logging/log.ts","webpack://post-office/./src/managers/session/logging/tracking.ts","webpack://post-office/./src/managers/system/cookies.ts","webpack://post-office/./src/managers/session/navigation.ts","webpack://post-office/./src/managers/data/session/notification.ts","webpack://post-office/./src/store/session/notifications.ts","webpack://post-office/./src/managers/session/notifications.ts","webpack://post-office/./src/managers/session/page.ts","webpack://post-office/./src/managers/session/signUpModules.ts","webpack://post-office/./src/managers/session/support.ts","webpack://post-office/./src/managers/system/capabilities.ts","webpack://post-office/./src/managers/system/configuration.ts","webpack://post-office/./src/managers/system/fallbackStorage.ts","webpack://post-office/./src/store/data/installState.ts","webpack://post-office/./src/store/system/install.ts","webpack://post-office/./src/managers/system/install.ts","webpack://post-office/./src/managers/system/preferences.ts","webpack://post-office/./src/store/user/serviceConnections.ts","webpack://post-office/./src/managers/data/serviceConnection/privateServiceConnection.ts","webpack://post-office/./src/managers/user/serviceConnections.ts","webpack://post-office/./src/store/user/user.ts","webpack://post-office/./src/managers/data/user/privateUser.ts","webpack://post-office/./src/managers/user/user.ts","webpack://post-office/./src/mixins/i18n.ts","webpack://post-office/./src/mixins/i18nView.ts","webpack://post-office/./src/mixins/i18nComponent.ts","webpack://post-office/./src/mixins/i18nViewComponent.ts","webpack://post-office/./src/mixins/mainLocation.ts","webpack://post-office/./src/mixins/mainOrganization.ts","webpack://post-office/./src/mixins/closableEditor.ts","webpack://post-office/./src/mixins/currencyComponent.ts","webpack://post-office/./src/mixins/trackingComponent.ts","webpack://post-office/./src/mixins/combinations.ts","webpack://post-office/./src/plugins/i18n.ts","webpack://post-office/./src/plugins/routerGuardAuthentication.ts","webpack://post-office/./src/plugins/routerGuardStatus.ts","webpack://post-office/./src/plugins/routerGuardOrganization.ts","webpack://post-office/./src/plugins/routerGuardLocation.ts","webpack://post-office/./src/plugins/router.ts","webpack://post-office/./src/store/authentication/iauthenticationMethod.ts","webpack://post-office/./src/store/authentication/usernamePassword.ts","webpack://post-office/./src/store/facebook/authentication.ts","webpack://post-office/./src/store/session/routing.ts","webpack://post-office/./src/store/store.ts","webpack://post-office/./src/utility/actions/throttledAction.ts","webpack://post-office/./src/utility/data/dateTime.ts","webpack://post-office/./src/utility/data/error.ts","webpack://post-office/./src/utility/data/url.ts","webpack://post-office/./src/utility/structure/array.ts","webpack://post-office/./src/locales/da.yaml","webpack://post-office/./src/locales/en.yaml","webpack://post-office/./src/locales/numberFormats.yaml","webpack://post-office/./src/assets/icons/po-icons/ sync ^\\.\\/.*\\.svg$","webpack://post-office/./src/locales/ sync nonrecursive \\/[a-z]{2}\\.yaml$i","webpack://post-office/webpack/bootstrap","webpack://post-office/webpack/runtime/chunk loaded","webpack://post-office/webpack/runtime/compat get default export","webpack://post-office/webpack/runtime/create fake namespace object","webpack://post-office/webpack/runtime/define property getters","webpack://post-office/webpack/runtime/ensure chunk","webpack://post-office/webpack/runtime/get javascript chunk filename","webpack://post-office/webpack/runtime/get mini-css chunk filename","webpack://post-office/webpack/runtime/global","webpack://post-office/webpack/runtime/hasOwnProperty shorthand","webpack://post-office/webpack/runtime/load script","webpack://post-office/webpack/runtime/make namespace object","webpack://post-office/webpack/runtime/publicPath","webpack://post-office/webpack/runtime/css loading","webpack://post-office/webpack/runtime/jsonp chunk loading","webpack://post-office/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',_vm._b({attrs:{\"content-class\":`basicDialog${_vm.overflowVisible ? ' overflowVisible' : ''}`,\"transition\":_vm.transition,\"persistent\":_vm.persistent,\"scrollable\":_vm.scrollable,\"width\":_vm.width,\"overlay-opacity\":\"1\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(props){return [_vm._t(\"activator\",null,{\"on\":props.on,\"attrs\":props.attrs})]}}],null,true),model:{value:(_vm.isOpenValue),callback:function ($$v) {_vm.isOpenValue=$$v},expression:\"isOpenValue\"}},'v-dialog',_vm.$attrs,false),[_c('v-card',{staticClass:\"elevation-0\",class:{wideMargins: _vm.wideMargins, fullscreen: _vm.$attrs.fullscreen},attrs:{\"height\":_vm.height}},[(_vm.$slots.toolbar)?_vm._t(\"toolbar\"):_c('DialogToolbar',{attrs:{\"header\":_vm.header,\"disabled\":_vm.disableClose,\"closable\":_vm.closable,\"no-divider\":_vm.noDivider || _vm.wideMargins,\"closeRight\":_vm.closeRight},on:{\"close\":_vm.close}},[_vm._t(\"headerActions\")],2),_c('v-card-text',{staticClass:\"mb-auto pa-4\",class:{'pt-1': _vm.noDivider || _vm.wideMargins}},[_vm._t(\"default\")],2),(_vm.$slots.actions)?[_c('v-card-actions',{staticClass:\"actions px-2 pb-2 pa-md-4\",class:{actionsDivider: _vm.actionsDivider}},[_vm._t(\"actions\")],2)]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./basicDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./basicDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./basicDialog.vue?vue&type=template&id=7a27a342&scoped=true&lang=pug\"\nimport script from \"./basicDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./basicDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./basicDialog.vue?vue&type=style&index=0&id=7a27a342&prod&lang=sass&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a27a342\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('BasicDialog',{attrs:{\"width\":_vm.$vuetify.breakpoint.mdAndUp ? 614 : 500,\"header\":_vm.header,\"isOpen\":_vm.innerIsOpen,\"persistent\":_vm.persistent,\"wideMargins\":\"\"},on:{\"update:isOpen\":function($event){_vm.innerIsOpen=$event},\"update:is-open\":function($event){_vm.innerIsOpen=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(props){return [_vm._t(\"activator\",null,{\"on\":props.on,\"attrs\":props.attrs})]}},{key:\"actions\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-grow-1 flex-sm-grow-0 mx-auto\"},[_c('BigButton',{staticClass:\"ma-1\",attrs:{\"loading\":_vm.isWorking,\"secondary\":\"\"},on:{\"click\":_vm.cancelClicked}},[_vm._v(_vm._s(_vm._f(\"capitalize\")(_vm.cancel ? _vm.cancel : _vm.$t(\"common.cancel\"))))]),(_vm.canConfirm)?_c('BigButton',{staticClass:\"ma-1\",attrs:{\"loading\":_vm.isWorking},on:{\"click\":_vm.confirmClicked}},[_vm._v(_vm._s(_vm._f(\"capitalize\")(_vm.confirm ? _vm.confirm : _vm.$t(\"common.yes\"))))]):_vm._e()],1)]},proxy:true}],null,true)},[_c('div',{staticClass:\"text-center px-md-10\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./confirmDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./confirmDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./confirmDialog.vue?vue&type=template&id=83d44822&lang=pug\"\nimport script from \"./confirmDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./confirmDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-toolbar',{staticClass:\"dialogToolbar flex-grow-0\",class:{fullscreen: _vm.fullscreen, divider: _vm.divider, 'center': !_vm.closable && !_vm.fullscreen, closeRight: _vm.closeRight},attrs:{\"height\":_vm.$vuetify.breakpoint.mdAndUp ? _vm.fullscreen ? '80' : '78' : '65',\"flat\":\"\"}},[(_vm.closable)?_c('v-btn',{staticClass:\"midnight--text\",attrs:{\"disabled\":_vm.disabled,\"small\":\"\",\"depressed\":\"\",\"text\":\"\",\"fab\":\"\"},on:{\"click\":_vm.close}},[_c('PoIcon',{attrs:{\"icon\":\"close\",\"size\":\"16\"}})],1):_vm._e(),(_vm.closable && _vm.closeRight)?_c('v-spacer'):_vm._e(),(_vm.hasHeader)?_c('v-toolbar-title',{staticClass:\"font-weight-bold midnight--text\",class:{'ml-2 ml-md-3': _vm.closable}},[_vm._v(_vm._s(_vm._f(\"capitalize\")(_vm.header)))]):_vm._e(),(_vm.closable && !_vm.closeRight)?_c('v-spacer'):_vm._e(),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./dialogToolbar.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./dialogToolbar.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./dialogToolbar.vue?vue&type=template&id=210d2acf&scoped=true&lang=pug\"\nimport script from \"./dialogToolbar.vue?vue&type=script&lang=ts\"\nexport * from \"./dialogToolbar.vue?vue&type=script&lang=ts\"\nimport style0 from \"./dialogToolbar.vue?vue&type=style&index=0&id=210d2acf&prod&lang=sass&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"210d2acf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',_vm._g({staticClass:\"bigButton overflow-hidden px-6 px-md-9\",attrs:{\"disabled\":_vm.disabled,\"min-width\":_vm.$vuetify.breakpoint.smAndUp ? 140 : null,\"loading\":_vm.loading,\"outlined\":_vm.secondary,\"color\":_vm.color,\"type\":_vm.submit ? 'submit' : undefined,\"height\":\"48\",\"depressed\":\"\"}},_vm.$listeners),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./bigButton.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./bigButton.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./bigButton.vue?vue&type=template&id=c2ebfa2a&scoped=true&lang=pug\"\nimport script from \"./bigButton.vue?vue&type=script&lang=ts\"\nexport * from \"./bigButton.vue?vue&type=script&lang=ts\"\nimport style0 from \"./bigButton.vue?vue&type=style&index=0&id=c2ebfa2a&prod&lang=sass&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c2ebfa2a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"fill-height justify-center loading\"},[_c('v-progress-circular',{class:{'mb-10': _vm.bottomMargin},attrs:{\"size\":_vm.size,\"width\":2,\"color\":_vm.color,\"indeterminate\":\"\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./loading.vue?vue&type=template&id=536b7b41&lang=pug\"\nimport script from \"./loading.vue?vue&type=script&lang=ts\"\nexport * from \"./loading.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/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","import { Component, Prop, Vue } from \"vue-property-decorator\"\n\n@Component\nexport default class BaseDialog extends Vue {\n\t@Prop({default: null})\n\tpublic readonly header!: string | null\n}\n","import type {TranslateResult} from \"vue-i18n\"\n\nexport default class SelectOption implements ISelectOption{\n\tpublic readonly value: T\n\tpublic readonly text: string\n\tpublic readonly icon?: string\n\n\tconstructor(value: T, text: string | TranslateResult, icon?: string) {\n\t\tthis.value = value\n\t\tthis.text = text.toString()\n\t\tthis.icon = icon\n\t}\n\n\tpublic toString(): string {\n\t\treturn this.text\n\t}\n\n\tpublic static createSimple(value: string): SelectOption {\n\t\treturn new SelectOption(value, value)\n\t}\n}\n\nexport interface ISelectOption {\n\treadonly value: T\n\treadonly text: string\n\treadonly icon?: string\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isRaw)?_c('img',{attrs:{\"src\":_vm.path,\"width\":_vm.width || _vm.size,\"height\":_vm.height}}):(!!_vm.icon)?_c('svg',{staticClass:\"poIcon\",class:{'pa-0': _vm.fill || _vm.noOffset, shadow: _vm.shadow},style:({color: _vm.$vuetify.theme.themes.light[_vm.color] || _vm.color}),attrs:{\"width\":_vm.width || _vm.fillSize || _vm.size,\"height\":_vm.height || _vm.fillSize || _vm.size,\"stroke-width\":_vm.strokeWidth,\"viewBox\":`0 0 ${_vm.fillSize || _vm.size} ${_vm.fillSize || _vm.size}`,\"xmlns\":\"http://www.w3.org/2000/svg\"}},[(_vm.fill)?_c('circle',{attrs:{\"cx\":\"50%\",\"cy\":\"50%\",\"r\":\"50%\",\"fill\":_vm.$vuetify.theme.themes.light[_vm.fill] || _vm.fill}}):_vm._e(),_c('use',_vm._b({attrs:{\"href\":_vm.href}},'use',_vm.fill && _vm.useAttrs,false))]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./poIcon.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./poIcon.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./poIcon.vue?vue&type=template&id=77833b86&scoped=true&lang=pug\"\nimport script from \"./poIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./poIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./poIcon.vue?vue&type=style&index=0&id=77833b86&prod&lang=sass&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77833b86\",\n null\n \n)\n\nexport default component.exports","import Component from \"vue-class-component\"\nimport type { RawLocation, Route } from \"vue-router\"\n\nComponent.registerHooks([\n\t\"beforeRouteEnter\",\n\t\"beforeRouteLeave\",\n\t\"beforeRouteUpdate\"\n])\n\ndeclare module \"vue/types/vue\" {\n\t// tslint:disable-next-line:interface-name\n\tinterface Vue {\n\t\tbeforeRouteEnter?(\n\t\t\tto: Route,\n\t\t\tfrom: Route,\n\t\t\tnext: (to?: RawLocation | false | ((vm: Vue) => void)) => void\n\t\t): void\n\n\t\tbeforeRouteLeave?(\n\t\t\tto: Route,\n\t\t\tfrom: Route,\n\t\t\tnext: (to?: RawLocation | false | ((vm: Vue) => void)) => void\n\t\t): void\n\n\t\tbeforeRouteUpdate?(\n\t\t\tto: Route,\n\t\t\tfrom: Route,\n\t\t\tnext: (to?: RawLocation | false | ((vm: Vue) => void)) => void\n\t\t): void\n\t}\n}\n","import type {DateTime} from \"luxon\"\nimport Vue from \"vue\"\nimport I18n from \"./i18n\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Configuration from \"@/managers/system/configuration\"\n\nclass DateFormat {\n\tprivate lastLocale: string | null = null\n\tprivate formatters!: {[key: string]: (date: Date) => string}\n\n\tpublic install(vue: typeof Vue, options: any): void {\n\t\tvue.prototype.$df = (value: Date | DateTime, format: string) => {\n\t\t\tthis.updateFormatters()\n\n\t\t\tif (\"setZone\" in value) {\n\t\t\t\tif (!value.isValid) {\n\t\t\t\t\tNotifications.warning(\"Trying to format invalid date\")\n\t\t\t\t\treturn \"\"\n\t\t\t\t}\n\n\t\t\t\tvalue = value.setZone(\"local\", {keepLocalTime: true}).toJSDate()\n\t\t\t}\n\n\t\t\tif (this.formatters.hasOwnProperty(format))\n\t\t\t\treturn this.formatters[format](value)\n\n\t\t\tNotifications.warning(\"Missing format: \" + format)\n\t\t\treturn value.toISOString()\n\t\t}\n\t}\n\n\tprivate updateFormatters(): void {\n\t\tif (I18n.locale === this.lastLocale)\n\t\t\treturn\n\n\t\tthis.lastLocale = I18n.locale\n\n\t\tconst timeFormatter = new Intl.DateTimeFormat(\n\t\t\t\"en-GB\",\n\t\t\t{\n\t\t\t\thour: valueFormats.digit,\n\t\t\t\tminute: valueFormats.digit,\n\t\t\t\thour12: false,\n\t\t\t})\n\n\t\tconst shortMonthDay = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tmonth: valueFormats.short,\n\t\t\t\tday: valueFormats.numeric\n\t\t\t})\n\n\t\tconst numericMonthDay = new Intl.DateTimeFormat(\n\t\t\t\"en-GB\",\n\t\t\t{\n\t\t\t\tday: valueFormats.digit,\n\t\t\t\tmonth: valueFormats.digit\n\t\t\t})\n\n\t\tconst numericMonthDayYear = new Intl.DateTimeFormat(\n\t\t\t\"en-GB\",\n\t\t\t{\n\t\t\t\tday: valueFormats.digit,\n\t\t\t\tmonth: valueFormats.digit,\n\t\t\t\tyear: valueFormats.digit\n\t\t\t})\n\n\t\tconst shortDate = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tyear: valueFormats.numeric,\n\t\t\t\tmonth: valueFormats.short,\n\t\t\t\tday: valueFormats.numeric\n\t\t\t})\n\n\t\tconst longDate = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tyear: valueFormats.numeric,\n\t\t\t\tmonth: valueFormats.short,\n\t\t\t\tday: valueFormats.numeric\n\t\t\t})\n\n\t\tconst month = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tmonth: valueFormats.long,\n\t\t\t})\n\n\t\tconst monthDay = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tmonth: valueFormats.long,\n\t\t\t\tday: valueFormats.numeric\n\t\t\t})\n\n\t\tconst monthYear = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tyear: valueFormats.numeric,\n\t\t\t\tmonth: valueFormats.long\n\t\t\t})\n\n\t\tconst dayOfMonth = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tday: valueFormats.numeric\n\t\t\t})\n\n\t\tconst weekday = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tweekday: valueFormats.long\n\t\t\t})\n\n\t\tconst shortWeekday = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tweekday: valueFormats.short\n\t\t\t})\n\n\t\tconst veryShortDate = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tmonth: valueFormats.short,\n\t\t\t\tday: valueFormats.numeric\n\t\t\t})\n\n\t\tconst longNoYear = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tmonth: valueFormats.long,\n\t\t\t\tday: valueFormats.numeric,\n\t\t\t\tweekday: valueFormats.long\n\t\t\t})\n\n\t\tconst mediumNoYear = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tmonth: valueFormats.short,\n\t\t\t\tday: valueFormats.numeric,\n\t\t\t\tweekday: valueFormats.long\n\t\t\t})\n\n\t\tconst shortNoYear = new Intl.DateTimeFormat(\n\t\t\t[this.lastLocale, Configuration.localization.fallback],\n\t\t\t{\n\t\t\t\tmonth: valueFormats.short,\n\t\t\t\tday: valueFormats.numeric,\n\t\t\t\tweekday: valueFormats.short\n\t\t\t})\n\n\n\t\tthis.formatters = {\n\t\t\ttime: timeFormatter.format,\n\t\t\tdateTime: date => `${shortMonthDay.format(date)} ${timeFormatter.format(date)}`,\n\t\t\tmediumDateTime: date => `${mediumNoYear.format(date)} ${timeFormatter.format(date)}`,\n\t\t\tnumericDateTime: date => `${numericMonthDay.format(date)} ${timeFormatter.format(date)}`,\n\t\t\tnumericDateYearTime: date => `${numericMonthDayYear.format(date)}, ${timeFormatter.format(date)}`,\n\t\t\tmediumNoYear: mediumNoYear.format,\n\t\t\tshort: shortDate.format,\n\t\t\tmonth: month.format,\n\t\t\tmonthDay: monthDay.format,\n\t\t\tnumericMonthDay: numericMonthDay.format,\n\t\t\tnumericMonthDayYear: numericMonthDayYear.format,\n\t\t\tmonthYear: monthYear.format,\n\t\t\tdayOfMonth: dayOfMonth.format,\n\t\t\tweekday: weekday.format,\n\t\t\tshortWeekday: shortWeekday.format,\n\t\t\tveryShortDate: veryShortDate.format,\n\t\t\tlongNoYear: longNoYear.format,\n\t\t\tlongDate: longDate.format,\n\t\t\tshortNoYear: shortNoYear.format\n\t\t}\n\t}\n}\n\nVue.use(new DateFormat())\n\nenum valueFormats {\n\tnumeric = \"numeric\",\n\tdigit = \"2-digit\",\n\tlong = \"long\",\n\tshort = \"short\",\n\tnarrow = \"narrow\"\n}\n\ndeclare module \"vue/types/vue\" {\n\t// tslint:disable-next-line\n\tinterface Vue {\n\t\t$df: (value: Date | DateTime, format: string) => string\n\t}\n}\n","import Vue from \"vue\"\nimport type { RawLocation, Route } from \"vue-router\"\nimport Router from \"vue-router\"\n\nclass Navigation {\n\tpublic install(vue: typeof Vue, options: any): void {\n\t\tvue.prototype.$navigateTo = function(this: Vue, location: RawLocation, replace: boolean = false) {\n\t\t\treturn (replace ? this.$router.replace(location) : this.$router.push(location))\n\t\t\t\t.catch(reason => {\n\t\t\t\t\tif (!Router.isNavigationFailure(reason, Router.NavigationFailureType.redirected))\n\t\t\t\t\t\tthrow reason\n\t\t\t\t})\n\t\t}\n\t}\n}\n\nVue.use(new Navigation())\n\ndeclare module \"vue/types/vue\" {\n\t// tslint:disable:interface-name\n\tinterface Vue {\n\t\t$navigateTo(location: RawLocation, replace?: boolean): Promise\n\t}\n}\n","import \"@mdi/font/css/materialdesignicons.css\"\nimport \"@/styles/styles.sass\"\nimport Vue from \"vue\"\nimport Vuetify from \"vuetify/lib\"\n\nVue.use(Vuetify)\n\nconst colors = {\n\tprimary: \"#2172fe\",\n\tsecondary: \"#2d2f39\",\n\taccent: \"#e73540\",\n\terror: \"#e73540\",\n\tinfo: \"#2172fe\",\n\tinformation: \"#2172fe\",\n\tsuccess: \"#12bf68\",\n\twarning: \"#ffbb01\",\n\twhite: \"#ffffff\",\n\tblack: \"#000000\",\n\tred: \"#e73540\",\n\tgreen: \"#12bf68\",\n\tgreenvibrant: \"#27c32c\",\n\tgreenapple: \"#4db837\",\n\tdarkgrey: \"#637178\",\n\tgrey: \"#818e94\",\n\tgraymedium: \"#d8d8d8\",\n\tgraydarken: \"#65676B\",\n\tlightgrey: \"#ebecee\",\n\tcheckboxbase: \"#c4cdd5\",\n\tbackground: \"#ffffff\",\n\tgraylighter: \"#f3f3f5\",\n\tgrayevenlighter: \"#f5f5f5\",\n\twhiteghost: \"#f0f2f5\",\n\tsilver: \"#ced0d4\",\n\tbluelight: \"#9fa3b0\",\n\tbluedark: \"#454c64\",\n\tdodgerblue: \"#315aff\",\n\tyellow: \"#ffbb01\",\n\tyellowlight: \"#ffeaba\",\n\tredtinted: \"#f5aeb3\",\n\tmidnight: \"#0f1729\",\n\tbluebright: \"#006cfa\",\n\tathensgray: \"#f8f9fb\",\n\tmelrose: \"#b7c6ff\",\n\tshark: \"#1a1d1f\",\n\tseashell: \"#eef0f5\",\n\tazureblue: \"#005fdc\",\n\tgraylightdarker: \"#e3e6ef\",\n\tjordyblue: \"#7faeed\"\n}\n\nexport default new Vuetify({\n\ticonfont: \"mdi\",\n\ttheme: {\n\t\tthemes: {\n\t\t\tlight: colors,\n\t\t\tdark: colors\n\t\t}\n\t}\n})\n","import Vue from \"vue\"\n\nVue.filter(\"capitalize\", (value: string | null) => {\n\tif (!value) return \"\"\n\tvalue = value.toString()\n\treturn value.charAt(0).toUpperCase() + value.slice(1)\n})\n","import { register } from \"register-service-worker\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Install from \"@/managers/system/install\"\nimport Tracking from \"@/managers/session/logging/tracking\"\n\nif (process.env.NODE_ENV === \"production\")\n\tregister(`${process.env.BASE_URL}service-worker.js`, {\n\t\tready(registration) {\n\t\t\tTracking.event(\"ServiceWorker\", \"Ready\", undefined, true)\n\t\t\tNotifications.debug(\"Serving from cache via service worker\")\n\t\t},\n\t\tregistered(registration) {\n\t\t\tNotifications.debug(\"Service worker has been registered.\")\n\t\t},\n\t\tcached(registration) {\n\t\t\tNotifications.debug(\"Content has been cached for offline use.\")\n\t\t},\n\t\tupdatefound(registration) {\n\t\t\tInstall.updateIsAvailable()\n\t\t},\n\t\tupdated(registration) {\n\t\t\tInstall.updateIsReady(registration)\n\t\t},\n\t\toffline() {\n\t\t\tInstall.isOffline = true\n\t\t},\n\t\terror(error: Error) {\n\t\t\tTracking.event(\"ServiceWorker\", \"Error\", error.message, true)\n\t\t\tNotifications.warning(\"Error during service worker registration:\", error)\n\t\t}\n\t})\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{class:{preload: _vm.preload},attrs:{\"id\":\"app\"}},[_c('v-main',[_c('OfflineBanner'),(_vm.isRouting)?_c('Loading'):_vm._e(),(_vm.isRouteValid)?_c('router-view',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isRouting),expression:\"!isRouting\"}]}):_vm._e()],1),_c('LoadingOverlay'),_c('UpdateDialog'),_c('Notifications'),_c('CookieConsentDialog'),_c('v-chip',{staticClass:\"pa-1 version\",attrs:{\"x-small\":\"\"}},[_vm._v(_vm._s(_vm.version))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-snackbar',{attrs:{\"value\":_vm.isVisible,\"min-height\":\"97\",\"color\":_vm.typeName,\"timeout\":-1},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('v-btn',{staticClass:\"align-self-start\",attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('PoIcon',{attrs:{\"icon\":\"close\",\"size\":\"16\"}})],1)]},proxy:true}])},[_c('div',{staticClass:\"d-flex\"},[(_vm.icon)?_c('PoIcon',{staticClass:\"mr--7\",attrs:{\"icon\":_vm.icon,\"size\":\"49\",\"color\":\"white\",\"no-offset\":\"\"}}):_vm._e(),_c('div',{staticClass:\"d-flex flex-column justify-start\"},[_c('h4',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm._f(\"capitalize\")(_vm.title)))]),_c('p',{staticClass:\"text-body-1 mb-2\"},[_vm._v(_vm._s(_vm.message))])])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./notifications.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./notifications.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./notifications.vue?vue&type=template&id=45d3b6d4&scoped=true&lang=pug\"\nimport script from \"./notifications.vue?vue&type=script&lang=ts\"\nexport * from \"./notifications.vue?vue&type=script&lang=ts\"\nimport style0 from \"./notifications.vue?vue&type=style&index=0&id=45d3b6d4&prod&lang=sass&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"45d3b6d4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ConfirmDialog',{attrs:{\"isOpen\":_vm.isVisible,\"persistent\":\"\",\"header\":_vm.$tk('header'),\"confirm\":_vm.$tk('update'),\"cancel\":_vm.$tk('dismiss')},on:{\"update:isOpen\":function($event){_vm.isVisible=$event},\"update:is-open\":function($event){_vm.isVisible=$event},\"confirmed\":_vm.update}},[_vm._v(_vm._s(_vm.$tk('text', {newVersion: _vm.newVersion})))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./updateDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./updateDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./updateDialog.vue?vue&type=template&id=2ff0330b&lang=pug\"\nimport script from \"./updateDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./updateDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-banner',{staticClass:\"warning--text\",attrs:{\"app\":\"\",\"sticky\":\"\",\"icon-color\":\"warning\",\"icon\":\"mdi-wifi-strength-alert-outline\"},scopedSlots:_vm._u([{key:\"actions\",fn:function({ dismiss }){return [_c('v-btn',{attrs:{\"text\":\"\",\"icon\":\"\"},on:{\"click\":dismiss}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]}}]),model:{value:(_vm.isVisible),callback:function ($$v) {_vm.isVisible=$$v},expression:\"isVisible\"}},[_vm._v(_vm._s(_vm.$tk('text')))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./offlineBanner.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./offlineBanner.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./offlineBanner.vue?vue&type=template&id=00edfe34&lang=pug\"\nimport script from \"./offlineBanner.vue?vue&type=script&lang=ts\"\nexport * from \"./offlineBanner.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-overlay',{attrs:{\"value\":_vm.isOpen,\"opacity\":_vm.isFullyVisible ? 1 : 0,\"z-index\":\"1000\"}},[(_vm.isFullyVisible)?_c('Loading',{attrs:{\"size\":\"50\",\"bottomMargin\":false}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./loadingOverlay.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./loadingOverlay.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./loadingOverlay.vue?vue&type=template&id=41514a09&lang=pug\"\nimport script from \"./loadingOverlay.vue?vue&type=script&lang=ts\"\nexport * from \"./loadingOverlay.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isOpen)?_c('v-card',{staticClass:\"cookieConsent d-flex align-end\",attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-toolbar',{attrs:{\"height\":\"auto\",\"flat\":\"\"}},[_c('v-container',{staticClass:\"d-flex flex-column flex-md-row justify-space-between align-md-end black--text py-4 px-1 pt-sm-5 px-sm-2 pb-sm-6\"},[_c('div',[_c('div',{staticClass:\"h3\"},[_vm._v(_vm._s(_vm.$tk('header')))]),_c('div',{staticClass:\"text-body-2\"},[_vm._v(\" \"+_vm._s(_vm.$tk('text')))]),_c('v-list',{staticClass:\"content overflow-hidden pa-0\",class:{show: _vm.show}},_vm._l((_vm.cookies),function(cookie){return _c('v-list-item',{key:cookie.name,staticClass:\"midnight--text pa-0\"},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"text-body-2 font-weight-bold\"},[_vm._v(_vm._s(cookie.name))]),_c('div',{staticClass:\"text-body-2 bluedark--text\"},[_vm._v(_vm._s(cookie.description))])],1)],1)}),1)],1),_c('div',{staticClass:\"d-flex flex-column flex-sm-row align-sm-center mb-1 ml-sm-auto\"},[_c('v-btn',{staticClass:\"btn align-self-start my-5 my-sm-0 px-1 px-sm-6\",attrs:{\"color\":\"bluelight\",\"min-width\":\"0\",\"x-large\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.show = !_vm.show}}},[_vm._v(_vm._s(_vm.$tk('learnMore')))]),_c('div',{staticClass:\"d-flex\"},[_c('v-btn',{staticClass:\"btn midnight--text px-2\",attrs:{\"min-width\":\"146px\",\"color\":\"graylightdarker\",\"x-large\":\"\",\"depressed\":\"\"},on:{\"click\":_vm.deny}},[_vm._v(_vm._s(_vm.$tk(\"deny\")))]),_c('v-btn',{staticClass:\"btn white--text mr-0 px-2\",attrs:{\"min-width\":\"146px\",\"color\":\"primary\",\"x-large\":\"\",\"depressed\":\"\"},on:{\"click\":_vm.allow}},[_vm._v(_vm._s(_vm.$tk(\"allow\")))])],1)],1),_c('Transition',{attrs:{\"name\":\"fade\"}},[(_vm.show)?_c('v-btn',{staticClass:\"btn-close\",attrs:{\"width\":\"36\",\"height\":\"36\",\"icon\":\"\"},on:{\"click\":function($event){_vm.show = false}}},[_c('PoIcon',{attrs:{\"icon\":\"close\",\"size\":\"14\",\"color\":\"midnight\"}})],1):_vm._e()],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./cookieConsentDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./cookieConsentDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./cookieConsentDialog.vue?vue&type=template&id=0d4a689f&scoped=true&lang=pug\"\nimport script from \"./cookieConsentDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./cookieConsentDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./cookieConsentDialog.vue?vue&type=style&index=0&id=0d4a689f&prod&lang=sass&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d4a689f\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./app.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-38.use[2]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./app.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./app.vue?vue&type=template&id=20a6c79e&scoped=true&lang=pug\"\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&id=20a6c79e&prod&lang=sass&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20a6c79e\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Page from \"@/managers/session/page\"\nimport {getErrorLocation} from \"@/utility/data/error\"\n\nconst noneFatalErrors = [\"aborterror\"]\nconst noneFatalMessage = [\n\t\"resizeobserver loop limit exceeded\",\n\t\"getBoundingClientRect\",\n\t\"directive intersect inserted hook\",\n\t\"the operation was aborted\",\n\t\"annulleret\",\n\t\"navigation cancelled from\",\n\t\"avoided redundant navigation to current location\",\n\t\"failed to load image\",\n\t\"this.$refs.content.focus\",\n\t\"reading 'focus'\",\n\t\"onFocusin\",\n\t\"this.$refs.content\",\n\t\"cannot read properties of undefined (reading 'contains')\"]\nconst noneFatalErrorDetails = [\"focus\"]\n\nVue.config.errorHandler = (error, vm, info) => {\n\treportError(`Unhandled Vue error in \"${info}\"`, error)\n}\n\nwindow.addEventListener(\"unhandledrejection\", event => {\n\tconst reason = event.reason ?? \"unknown rejection\"\n\tconst isError = reason instanceof Error\n\treportError(\"Unhandled promise rejection\" + (isError ? \"\" : \": \" + reason.toString()), isError ? reason : undefined)\n\tevent.preventDefault()\n})\nwindow.addEventListener(\"error\", event => {\n\tif (!(event.error instanceof Error))\n\t\treportError(\"Unhandled error: \" + event.message)\n\telse\n\t\treportError(\"Unhandled error\", event.error)\n\n\tevent.preventDefault()\n})\n\nfunction reportError(message: string, error?: Error): void {\n\tif (warningCheck(message, error))\n\t\tNotifications.warning(message, error)\n\telse\n\t\tNotifications.error(message, error)\n}\n\nfunction warningCheck(message: string, error?: Error): boolean {\n\treturn Page.isUnloaded\n\t\t|| (error && (\n\t\t\tnoneFatalErrors.some(e => e === error.name.toLocaleLowerCase())\n\t\t\t|| noneFatalMessage.some(m => error.message.toLocaleLowerCase().includes(m))\n\t\t\t|| noneFatalErrorDetails.some(detail => detail === getErrorLocation(error).toLowerCase())\n\t\t)) || noneFatalMessage.some(m => message.toLocaleLowerCase().includes(m))\n}\n","import {Settings} from \"luxon\"\n\nSettings.defaultLocale = \"da-DK\" // Ensure week start and weekend are consistent\n\nimport \"core-js/stable\"\nimport \"regenerator-runtime/runtime\"\n\nimport Vue from \"vue\"\n\nimport PoIcon from \"@/components/output/poIcon.vue\"\nVue.component(\"PoIcon\", PoIcon)\n\nimport \"./plugins/routerHooks\"\nimport \"vue-class-component/hooks\"\nimport \"./plugins/dateFormat\"\nimport \"./plugins/navigation\"\nimport i18n from \"./plugins/i18n\"\nimport router from \"./plugins/router\"\nimport store from \"./store/store\"\nimport vuetify from \"./plugins/vuetify\"\n\nimport \"./filters/capitalize\"\n\nimport \"./registerServiceWorker\"\n\nimport {localStorage} from \"@/managers/system/fallbackStorage\"\n\nimport App from \"./app.vue\"\nimport \"./errorHandling\"\nimport \"@/managers/session/support\"\n\nhandleOldStorage()\n\nVue.config.productionTip = false\nVue.config.keyCodes = {period: 190, semicolon: 186}\n\nconst vue = new Vue({\n\trouter,\n\tvuetify,\n\ti18n,\n\tstore,\n\trender: h => h(App)\n}).$mount(\"#app\")\n\nfunction handleOldStorage(): void {\n\tconst oldKeys = [\"InterfaceLanguage\", \"MainAccount\", \"MainBrand\"]\n\tconst language = localStorage.getItem(\"InterfaceLanguage\")\n\n\tif (language !== null && i18n.availableLocales.indexOf(language) !== -1)\n\t\ti18n.locale = language\n\n\toldKeys.forEach(key => localStorage.removeItem(key)) // Remove storage from old version\n}\n","import { getModule, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"@/store/store\"\nimport IAuthenticationMethod, {AuthenticationMethodState} from \"./iauthenticationMethod\"\n\n@Module({dynamic: true, namespaced: true, name: \"authentication/facebookPortal\", store})\nclass FacebookPortal extends VuexModule implements IAuthenticationMethod {\n\tpublic currentState = AuthenticationMethodState.Uninitialized\n\n\tpublic get isLoggingIn(): boolean {\n\t\treturn this.currentState === AuthenticationMethodState.LoggingIn\n\t}\n\n\tpublic get canLogin(): boolean {\n\t\treturn this.currentState === AuthenticationMethodState.CanLogin\n\t}\n\n\t@Mutation\n\tpublic setState(value: AuthenticationMethodState): void {\n\t\tthis.currentState = value\n\t}\n}\n\nexport default getModule(FacebookPortal)\n","import {watch} from \"@/store/store\"\nimport State from \"@/store/authentication/facebookPortal\"\nimport FacebookAuthentication from \"@/managers/facebook/authentication\"\nimport IAuthenticationMethod, {AuthenticationMethodState} from \"@/store/authentication/iauthenticationMethod\"\nimport Portal, {hasServiceErrorCode, PostOfficeErrorCode} from \"@/managers/portal\"\n\nclass Facebook implements IAuthenticationMethod {\n\tpublic get currentState(): AuthenticationMethodState {\n\t\treturn State.currentState\n\t}\n\n\tpublic get canLogin(): boolean {\n\t\treturn State.canLogin\n\t}\n\n\tpublic get isLoggingIn(): boolean {\n\t\treturn State.isLoggingIn\n\t}\n\n\tconstructor() {\n\t\twatch(() => FacebookAuthentication.isLoggedIn, isLoggedIn => State.setState(isLoggedIn ? AuthenticationMethodState.CanLogin : AuthenticationMethodState.CannotLogin), {immediate: true})\n\t}\n\n\tpublic async login(): Promise {\n\t\tif (!this.canLogin)\n\t\t\tthrow new Error(\"Can't login now\")\n\n\t\tif (FacebookAuthentication.authResponse === null)\n\t\t\tthrow new Error(\"authResponse is null\")\n\n\t\tState.setState(AuthenticationMethodState.LoggingIn)\n\t\ttry {\n\t\t\tawait Portal.call.sessions.facebookLogin(FacebookAuthentication.authResponse.accessToken).response\n\t\t} catch (error: any) {\n\t\t\tif (this.isUserNotKnownError(error))\n\t\t\t\tawait FacebookAuthentication.logOut()\n\t\t\tthrow error\n\t\t} finally {\n\t\t\tState.setState(FacebookAuthentication.isLoggedIn ? AuthenticationMethodState.CanLogin : AuthenticationMethodState.CannotLogin)\n\t\t}\n\t}\n\n\tpublic isUserNotKnownError(error: Error): boolean {\n\t\treturn hasServiceErrorCode(error, PostOfficeErrorCode.facebookUserNotFound)\n\t}\n}\n\nexport default new Facebook()\n","import { getModule, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"@/store/store\"\nimport IAuthenticationMethod, {AuthenticationMethodState} from \"./iauthenticationMethod\"\n\n@Module({dynamic: true, namespaced: true, name: \"authentication/savedLogin\", store})\nexport class SavedLogin extends VuexModule implements IAuthenticationMethod {\n\tpublic currentState = AuthenticationMethodState.Uninitialized\n\n\tpublic get isLoggingIn(): boolean {\n\t\treturn this.currentState === AuthenticationMethodState.LoggingIn\n\t}\n\n\tpublic get canLogin(): boolean {\n\t\treturn this.currentState === AuthenticationMethodState.CanLogin\n\t}\n\n\t@Mutation\n\tpublic setState(value: AuthenticationMethodState): void {\n\t\tthis.currentState = value\n\t}\n}\n\nexport default getModule(SavedLogin)\n","import State from \"@/store/authentication/savedLogin\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Portal from \"@/managers/portal\"\nimport IAuthenticationMethod, {AuthenticationMethodState} from \"@/store/authentication/iauthenticationMethod\"\nimport {localStorage} from \"@/managers/system/fallbackStorage\"\nimport Page from \"@/managers/session/page\"\n\nclass SavedLogin implements IAuthenticationMethod {\n\tprivate static readonly idKey = \"SecureCookieId\"\n\tprivate static readonly passwordKey = \"SecureCookiePassword\"\n\n\tpublic get currentState(): AuthenticationMethodState {\n\t\treturn State.currentState\n\t}\n\n\tpublic get canLogin(): boolean {\n\t\treturn State.canLogin\n\t}\n\n\tpublic get isLoggingIn(): boolean {\n\t\treturn State.isLoggingIn\n\t}\n\n\tconstructor() {\n\t\tconst data = SavedLogin.getData()\n\n\t\tState.setState(data !== null ? AuthenticationMethodState.CanLogin : AuthenticationMethodState.CannotLogin)\n\t}\n\n\tpublic async login(): Promise {\n\t\tif (!this.canLogin)\n\t\t\tthrow new Error(\"Can't login now\")\n\n\t\tconst data = SavedLogin.getData()\n\n\t\tif (data === null)\n\t\t\tthrow new Error(\"No saved login\")\n\n\t\tState.setState(AuthenticationMethodState.LoggingIn)\n\t\ttry {\n\t\t\tconst response = await Portal.call.sessions.secureCookieLogin(data.id, data.password).response\n\t\t\tSavedLogin.setData(response.SecureCookie.Id, response.SecureCookie.Password)\n\t\t\tState.setState(AuthenticationMethodState.CanLogin)\n\t\t} catch (error: any) {\n\t\t\tthis.clear()\n\t\t\tthrow error\n\t\t}\n\t}\n\n\tpublic save(): void {\n\t\tconst data = SavedLogin.getData()\n\n\t\tif (data !== null)\n\t\t\treturn\n\n\t\tPortal.call.sessions.secureCookiePost()\n\t\t\t.response\n\t\t\t.then(\n\t\t\t\tresponse => {\n\t\t\t\t\tSavedLogin.setData(response.Id, response.Password)\n\t\t\t\t\tState.setState(AuthenticationMethodState.CanLogin)\n\t\t\t\t},\n\t\t\t\tmessage => Notifications.warning(`Failed to create secure cookie: ${message}`))\n\t}\n\n\tpublic clear(): void {\n\t\tif (!Page.isUnloaded)\n\t\t\tSavedLogin.clearData()\n\t\tState.setState(AuthenticationMethodState.CannotLogin)\n\t}\n\n\tprivate static getData(): {id: string, password: string} | null {\n\t\tconst id = localStorage.getItem(SavedLogin.idKey)\n\t\tconst password = localStorage.getItem(SavedLogin.passwordKey)\n\n\t\treturn id !== null && password !== null\n\t\t\t? {id, password}\n\t\t\t: null\n\t}\n\n\tprivate static setData(id: string, password: string): void {\n\t\tlocalStorage.setItem(SavedLogin.idKey, id)\n\t\tlocalStorage.setItem(SavedLogin.passwordKey, password)\n\t}\n\n\tprivate static clearData(): void {\n\t\tlocalStorage.removeItem(SavedLogin.idKey)\n\t\tlocalStorage.removeItem(SavedLogin.passwordKey)\n\t}\n}\n\nexport default new SavedLogin()\n","import { getModule, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"@/store/store\"\nimport UsernamePassword from \"./usernamePassword\"\nimport FacebookPortal from \"./facebookPortal\"\nimport SavedLogin from \"./savedLogin\"\n\n@Module({dynamic: true, namespaced: true, name: \"authentication\", store})\nclass Authentication extends VuexModule {\n\tpublic isAuthenticated = false\n\tpublic isCheckingLogin = false\n\n\tpublic get isLoggingIn(): boolean {\n\t\treturn UsernamePassword.isLoggingIn || FacebookPortal.isLoggingIn || SavedLogin.isLoggingIn\n\t}\n\n\t@Mutation\n\tpublic setIsAuthenticated(value: boolean): void {\n\t\tthis.isAuthenticated = value\n\t}\n\n\t@Mutation\n\tpublic setIsCheckingLogin(value: boolean): void {\n\t\tthis.isCheckingLogin = value\n\t}\n}\n\nexport default getModule(Authentication)\n","import Notifications from \"@/managers/session/notifications\"\nimport Portal from \"@/managers/portal\"\nimport Facebook from \"@/managers/facebook/authentication\"\nimport FacebookAuthentication from \"@/managers/authentication/facebook\"\nimport SavedLogin from \"@/managers/authentication/savedLogin\"\nimport State from \"@/store/authentication/authentication\"\nimport {watch, when} from \"@/store/store\"\nimport Tracking from \"@/managers/session/logging/tracking\"\n\nclass Authentication {\n\tprivate sessionExpiredHandling: Promise | null = null\n\n\tpublic get isLoggingIn(): boolean {\n\t\treturn State.isLoggingIn\n\t}\n\n\tpublic get isAuthenticated(): boolean {\n\t\treturn State.isAuthenticated\n\t}\n\n\tpublic get canLogin(): boolean {\n\t\treturn !this.isAuthenticated && !this.isLoggingIn\n\t}\n\n\tpublic constructor() {\n\t\tthis.listenForAuthentication()\n\n\t\tState.setIsCheckingLogin(true)\n\t\tthis.attemptLogin()\n\t\t\t.finally(() => {\n\t\t\t\tState.setIsCheckingLogin(false)\n\t\t\t\tthis.handleSessionExpired()\n\t\t\t})\n\t}\n\n\tpublic getAuthenticationType(): string | null {\n\t\treturn Portal.client.authenticationType\n\t}\n\n\tpublic async logOut(): Promise {\n\t\tif (this.isLoggingIn)\n\t\t\tthrow new Error(\"Can't log out when currently logging in\")\n\n\t\tif (!this.isAuthenticated)\n\t\t\treturn\n\n\t\tif (Facebook.isLoggedIn)\n\t\t\tawait Facebook.logOut()\n\t\tPortal.client.updateSession(null)\n\t\tTracking.event(\"Authentication\", \"Log out\")\n\t}\n\n\tpublic watchIsAuthenticated(callback: (isAuthenticated: boolean) => void, immediate: boolean = false): () => void {\n\t\treturn watch(() => this.isAuthenticated, callback, {immediate})\n\t}\n\n\tpublic async checkLogin(): Promise {\n\t\tawait when(() => Facebook.hasCheckedLogin && !State.isLoggingIn && !State.isCheckingLogin)\n\n\t\treturn this.isAuthenticated\n\t}\n\n\tpublic takeOverSession(sessionId: string): void{\n\t\tNotifications.debug(\"Taking over session\")\n\t\tPortal.client.updateSession({Id: sessionId, DateCreated: Date.now(), DateModified: Date.now()})\n\t\tPortal.client.setAuthenticated(\"TakeOver\")\n\t}\n\n\tprivate handleSessionExpired(): void {\n\t\tPortal.sessionExpiredHandler = () => {\n\t\t\tif (this.sessionExpiredHandling === null)\n\t\t\t\tthis.sessionExpiredHandling = this.attemptLogin()\n\t\t\t\t\t.catch(\n\t\t\t\t\t\treason => {\n\t\t\t\t\t\t\tNotifications.warning(\"Failed to reauthenticate after expired session\", reason)\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t\t.then(success => {\n\t\t\t\t\t\tthis.sessionExpiredHandling = null\n\t\t\t\t\t\tif (!success)\n\t\t\t\t\t\t\tPortal.clearSession()\n\t\t\t\t\t\treturn success\n\t\t\t\t\t})\n\t\t\treturn this.sessionExpiredHandling\n\t\t}\n\t}\n\n\tprivate listenForAuthentication(): void {\n\t\tconst authenticated = (isAuthenticated: boolean) => {\n\t\t\tif (isAuthenticated) {\n\t\t\t\tSavedLogin.save()\n\t\t\t\tTracking.login(Portal.client.authenticationType ?? \"unknown\")\n\t\t\t} else\n\t\t\t\tSavedLogin.clear()\n\n\t\t\tState.setIsAuthenticated(isAuthenticated)\n\t\t\tPortal.client.whenIsAuthenticatedChange.then(authenticated)\n\t\t}\n\n\t\tif (Portal.client.isAuthenticated)\n\t\t\tauthenticated(true)\n\t\telse\n\t\t\tPortal.client.whenIsAuthenticatedChange.then(authenticated)\n\t}\n\n\tprivate async attemptLogin(): Promise {\n\t\ttry {\n\t\t\tif (SavedLogin.canLogin) {\n\t\t\t\tawait SavedLogin.login()\n\t\t\t\treturn true\n\t\t\t}\n\t\t} catch (error: any) {\n\t\t\tNotifications.warning(`Failed to use saved login: ${error.message}`)\n\t\t}\n\n\t\tawait when(() => Facebook.hasCheckedLogin)\n\n\t\ttry {\n\t\t\tif (FacebookAuthentication.canLogin) {\n\t\t\t\tawait FacebookAuthentication.login()\n\t\t\t\treturn true\n\t\t\t}\n\t\t} catch (error: any) {\n\t\t\tif (FacebookAuthentication.isUserNotKnownError(error))\n\t\t\t\tNotifications.warning(`Failed login with unknown Facebook user`)\n\t\t\telse\n\t\t\t\tNotifications.warning(`Failed login with Facebook: ${error.message}`)\n\t\t}\n\n\t\treturn false\n\t}\n}\n\nexport default new Authentication()\n","/* tslint:disable:max-classes-per-file */\nimport {watch} from \"@/store/store\"\nimport Notifications from \"@/managers/session/notifications\"\nimport type {IStoreList} from \"@/store/data/iStoreList\"\n\nexport default abstract class List {\n\tpublic get isReady(): boolean {\n\t\treturn this.state.isReady\n\t}\n\n\tpublic get list(): T[] | null {\n\t\treturn this.state.list\n\t}\n\n\tpublic get hasAny(): boolean {\n\t\treturn this.isReady && this.list!.length > 0\n\t}\n\n\tpublic get hasMoreThanOne(): boolean {\n\t\treturn this.isReady && this.list!.length > 1\n\t}\n\n\tprotected abstract get dependent(): U | null\n\tprotected abstract get state(): IStoreList\n\n\tprotected constructor(protected readonly itemName: string) {\n\t\twatch(\n\t\t\t() => this.dependent,\n\t\t\tdependent => {\n\t\t\t\tthis.reset()\n\t\t\t\tif (dependent !== null)\n\t\t\t\t\tthis.updateListWithDependent(dependent)\n\t\t\t}, {immediate: true})\n\t}\n\n\tpublic updateList(): Promise {\n\t\tif (this.dependent === null)\n\t\t\treturn Promise.resolve([])\n\t\treturn this.updateListWithDependent(this.dependent)\n\t}\n\n\tprotected updateListWithDependent(dependent: U): Promise {\n\t\treturn this.apiLoad(dependent)\n\t\t\t.then(list => {\n\t\t\t\tif (dependent === this.dependent)\n\t\t\t\t\tthis.state.setList(list)\n\t\t\t\treturn list\n\t\t\t}, reason => {\n\t\t\t\tNotifications.error(`Failed to update ${this.itemName} list`, reason)\n\t\t\t\tthrow reason\n\t\t\t})\n\t}\n\n\tprotected reset(): void {\n\t\tthis.state.setList(null)\n\t}\n\n\tprotected abstract apiLoad(dependent: U): Promise\n}\n\nexport {IStoreList}\n","/* tslint:disable:max-classes-per-file */\nimport type IItem from \"@/managers/data/base/iItem\"\nimport type {IStoreItemList} from \"@/store/data/iStoreList\"\nimport List from \"@/managers/base/list\"\nimport {when} from \"@/store/store\"\nimport {toItemMap} from \"@/utility/structure/array\"\n\nexport default abstract class ItemList extends List {\n\tprotected abstract get state(): IStoreItemList\n\n\tpublic getById(id: T[\"id\"]): T | null {\n\t\tif (this.list === null)\n\t\t\treturn null\n\n\t\tfor (const item of this.list)\n\t\t\tif (item.id === id)\n\t\t\t\treturn item\n\n\t\treturn null\n\t}\n\n\tpublic getMap(): Map {\n\t\tif (this.list === null)\n\t\t\tthrow new Error(\"List is now ready\")\n\n\t\treturn toItemMap(this.list!)\n\t}\n\n\tpublic async getMapWhenReady(): Promise> {\n\t\tawait when(() => this.isReady)\n\t\treturn this.getMap()\n\t}\n\n\tprotected getIndex(id: T[\"id\"]): number | null {\n\t\tif (this.state.list === null)\n\t\t\treturn null\n\n\t\tconst index = this.state.list!.findIndex(item => item.id === id)\n\n\t\treturn index !== -1 ? index : null\n\t}\n}\n\nexport {IStoreItemList}\n","import ItemList from \"@/managers/base/itemList\"\nimport type IItem from \"@/managers/data/base/iItem\"\nimport type {IStoreItemListEditable} from \"@/store/data/iStoreList\"\n\nexport default abstract class ListEditable extends ItemList {\n\tprotected abstract get state(): IStoreItemListEditable\n\n\tpublic async delete(id: T[\"id\"]): Promise {\n\t\tif (this.dependent === null)\n\t\t\tthrow new Error(\"Dependent not set\")\n\n\t\tawait this.apiDelete(this.dependent, id)\n\n\t\tif (!this.isReady)\n\t\t\treturn\n\n\t\tconst index = this.getIndex(id)\n\n\t\tif (index !== null)\n\t\t\tthis.state.remove(index)\n\t}\n\n\tprotected async createItem(dependent: U, createTask: Promise): Promise {\n\t\tconst item = await createTask\n\n\t\tif (this.dependent === dependent)\n\t\t\tthis.state.add(item)\n\n\t\treturn item\n\t}\n\n\tprotected abstract apiDelete(dependent: U, id: T[\"id\"]): Promise\n}\n\nexport {IStoreItemListEditable}\n","import ListEditable from \"@/managers/base/listEditable\"\nimport type IItem from \"@/managers/data/base/iItem\"\nimport type {IStoreListModifiable} from \"@/store/data/iStoreList\"\n\nexport default abstract class ListModifiable extends ListEditable {\n\tprotected abstract get state(): IStoreListModifiable\n\n\tprotected modifyItem(item: Partial & Pick): T | null {\n\t\tconst index = this.getIndex(item.id)\n\n\t\tif (index === null)\n\t\t\treturn null\n\n\t\tthis.state.modify({index, data: item})\n\t\treturn this.list![index]\n\t}\n}\n\nexport {IStoreListModifiable}\n","import FacebookPage from \"@/managers/data/facebook/facebookPage\"\nimport InstagramBusinessAccount from \"@/managers/data/instagram/InstagramBusinessAccount\"\n\nexport default class FacebookAccount extends FacebookPage {\n\tpublic static readonly requiredTasks = [\"ANALYZE\", \"CREATE_CONTENT\", \"MODERATE\", \"MESSAGING\"]\n\n\tpublic tasks?: string[]\n\tpublic accessToken: string\n\n\tpublic get hasRequiredTasks(): boolean {\n\t\treturn this.missingTasks.length === 0\n\t}\n\n\tpublic get areTasksUnknown(): boolean {\n\t\treturn this.tasks === undefined\n\t}\n\n\tpublic get missingTasks(): string[] {\n\t\treturn this.areTasksUnknown ? [] : FacebookAccount.requiredTasks.filter(t => this.tasks!.indexOf(t) === -1)\n\t}\n\n\tconstructor(id: string, name: string, tasks: string[] | undefined, accessToken: string, city: string | null, street: string | null, instagramAccount: InstagramBusinessAccount | null) {\n\t\tsuper(id, name, city, street, instagramAccount)\n\t\tthis.tasks = tasks\n\t\tthis.accessToken = accessToken\n\t}\n\n\tpublic static fromSdk(data: IFacebookAccount): FacebookAccount {\n\t\treturn new FacebookAccount(\n\t\t\tdata.id,\n\t\t\tdata.name,\n\t\t\tdata.tasks,\n\t\t\tdata.access_token,\n\t\t\tdata.location?.city ?? null,\n\t\t\tdata.location?.street ?? null,\n\t\t\tdata.instagram_business_account ? InstagramBusinessAccount.fromSdk(data.instagram_business_account) : null)\n\t}\n}\n","import Pages from \"@/managers/facebook/pages\"\nimport InstagramBusinessAccount from \"@/managers/data/instagram/InstagramBusinessAccount\"\n\nexport default class FacebookPage {\n\tpublic id: string\n\tpublic name: string\n\tpublic city: string | null\n\tpublic street: string | null\n\tpublic instagramAccount: InstagramBusinessAccount | null\n\n\tpublic get subName(): string {\n\t\treturn [\n\t\t\tthis.city,\n\t\t\tthis.street\n\t\t].filter(i => i !== null).join(\", \")\n\t}\n\n\tpublic get hasSubName(): boolean {\n\t\treturn this.subName !== \"\"\n\t}\n\n\tpublic get sortName(): string {\n\t\treturn this.name + this.subName\n\t}\n\n\tpublic get imageUrl(): string {\n\t\treturn Pages.getImage(this.id)\n\t}\n\n\tpublic get hasInstagram(): boolean {\n\t\treturn this.instagramAccount !== null\n\t}\n\n\tpublic get url(): string {\n\t\treturn FacebookPage.getUrlFromId(this.id)\n\t}\n\n\tconstructor(id: string, name: string, city: string | null, street: string | null, instagramAccount: InstagramBusinessAccount | null) {\n\t\tthis.id = id\n\t\tthis.name = name\n\t\tthis.city = city\n\t\tthis.street = street\n\t\tthis.instagramAccount = instagramAccount\n\t}\n\n\tpublic static fromSdk(data: IFacebookPage): FacebookPage {\n\t\treturn new FacebookPage(\n\t\t\tdata.id,\n\t\t\tdata.name,\n\t\t\tdata.location?.city ?? null,\n\t\t\tdata.location?.street ?? null,\n\t\t\tdata.instagram_business_account ? InstagramBusinessAccount.fromSdk(data.instagram_business_account) : null)\n\t}\n\n\tpublic static getUrlFromId(id: string): string {\n\t\treturn `https://www.facebook.com/${id}`\n\t}\n}\n","const instagramUrlMask = / /g\n\nexport default class InstagramBusinessAccount {\n\tpublic id: string\n\tpublic username: string\n\n\tpublic get url(): string {\n\t\treturn InstagramBusinessAccount.getUrlFromUsername(this.username)\n\t}\n\n\tconstructor(id: string, username: string) {\n\t\tthis.id = id\n\t\tthis.username = username\n\t}\n\n\tpublic static fromSdk(data: IInstagramBusinessAccount): InstagramBusinessAccount {\n\t\treturn new InstagramBusinessAccount(\n\t\t\tdata.id,\n\t\t\tdata.username)\n\t}\n\n\tpublic static getUrlFromUsername(username: string): string {\n\t\treturn `https://www.instagram.com/${username.replace(instagramUrlMask, \"\").toLocaleLowerCase()}`\n\t}\n}\n","import type {ILocation} from \"@chaosinsight/postoffice-portalclient\"\nimport type {IItemKeyed} from \"@/managers/data/base/iItem\"\nimport type PublicUser from \"@/managers/data/user/publicUser\"\nimport DealConfiguration from \"@/managers/data/organization/dealConfiguration\"\n\nexport default class Location implements IItemKeyed {\n\tpublic id: number\n\tpublic userDefinedId: string | null\n\tpublic organizationId: number\n\tpublic name: string\n\tpublic key: string\n\tpublic timeZone: string\n\tpublic logoUrl: string | null\n\tpublic language: string\n\n\tpublic lastActivityOn: Date | null\n\tpublic userCount: number\n\tpublic followers: number\n\n\tpublic isSharingInsightsWithOrganization: boolean\n\tpublic isDealsEnabled: boolean\n\tpublic isPrioritizingMessaging: boolean | null\n\tpublic isLiveDealsEnabled: boolean\n\tpublic isLikeCommentOnOrderEnabled: boolean\n\tpublic isPickupReminderEnabled: boolean\n\n\tpublic dealConfiguration: DealConfiguration\n\n\tpublic users: PublicUser[] | null\n\n\tconstructor(\n\t\tid: number, userDefinedId: string | null, organizationId: number, key: string, name: string, timeZone: string, logoUrl: string | null, language: string,\n\t\tlastActivityOn: Date | null, userCount: number, followers: number, isSharingInsightsWithOrganization: boolean, isDealsEnabled: boolean,\n\t\tisPrioritizingMessaging: boolean | null, isLiveDealsEnabled: boolean, isLikeCommentOnOrderEnabled: boolean, isPickupReminderEnabled: boolean,\n\t\tdealConfiguration: DealConfiguration,\n\t\tusers: PublicUser[] | null) {\n\t\tthis.id = id\n\t\tthis.userDefinedId = userDefinedId\n\t\tthis.organizationId = organizationId\n\t\tthis.name = name\n\t\tthis.key = key\n\t\tthis.timeZone = timeZone\n\t\tthis.logoUrl = logoUrl\n\t\tthis.language = language\n\t\tthis.lastActivityOn = lastActivityOn\n\t\tthis.userCount = userCount\n\t\tthis.followers = followers\n\t\tthis.isSharingInsightsWithOrganization = isSharingInsightsWithOrganization\n\t\tthis.isDealsEnabled = isDealsEnabled\n\t\tthis.isPrioritizingMessaging = isPrioritizingMessaging\n\t\tthis.isLiveDealsEnabled = isLiveDealsEnabled\n\t\tthis.isLikeCommentOnOrderEnabled = isLikeCommentOnOrderEnabled\n\t\tthis.isPickupReminderEnabled = isPickupReminderEnabled\n\t\tthis.dealConfiguration = dealConfiguration\n\t\tthis.users = users\n\t}\n\n\tpublic static fromApi(data: ILocation): Location {\n\t\treturn new Location(\n\t\t\tdata.Id,\n\t\t\tdata.UserDefinedId,\n\t\t\tdata.OrganizationId,\n\t\t\tdata.Key,\n\t\t\tdata.Name,\n\t\t\tdata.TimeZone,\n\t\t\tdata.LogoUrl,\n\t\t\tdata.Language,\n\t\t\tdata.Statistics.LastActivityOn !== null ? new Date(data.Statistics.LastActivityOn) : null,\n\t\t\tdata.Statistics.UserCount,\n\t\t\tdata.Statistics.Followers,\n\t\t\tdata.Statistics.IsShareInsightsWithOrganizationEnabled,\n\t\t\tdata.Deals.Regular.IsEnabled,\n\t\t\tdata.Deals.Common.IsMessagingPrioritized,\n\t\t\tdata.Deals.Live.IsEnabled,\n\t\t\tdata.Deals.Common.IsLikeCommentOnOrderEnabled,\n\t\t\tdata.Deals.Common.IsPickupReminderEnabled,\n\t\t\tDealConfiguration.fromApi(data.Deals, data.Language),\n\t\t\tnull)\n\t}\n}\n","import type {IDealTextConfiguration, IDealTextWithLanguage, IOrganizationDealsConfiguration} from \"@chaosinsight/postoffice-portalclient\"\nimport DealTexts, {type DealTextKeys} from \"@/managers/data/organization/dealTexts\"\nimport {flatten} from \"@/utility/structure/array\"\n\nexport default class DealConfiguration {\n\tpublic texts!: Map\n\n\tprivate constructor() {\n\t}\n\n\tpublic toApi(): IDealTextConfiguration {\n\t\treturn {\n\t\t\tCommon: {\n\t\t\t\tTexts: {\n\t\t\t\t\tExpiredHeader: this.getDealTextsByKey(\"expiredHeader\"),\n\t\t\t\t\tOutOfStockHeader: this.getDealTextsByKey(\"outOfStockHeader\"),\n\t\t\t\t\tAlcoholFooter: this.getDealTextsByKey(\"alcoholFooter\"),\n\t\t\t\t\tPleaseTryAgain: this.getDealTextsByKey(\"pleaseTryAgain\"),\n\t\t\t\t\tPickupReminder: this.getDealTextsByKey(\"pickupReminder\"),\n\t\t\t\t\tPickupReminderLastDay: this.getDealTextsByKey(\"pickupReminderLastDay\")\n\t\t\t\t}\n\t\t\t},\n\t\t\tRegular: {\n\t\t\t\tTexts: {\n\t\t\t\t\tFooter: this.getDealTextsByKey(\"footer\"),\n\t\t\t\t\tVariantFooter: this.getDealTextsByKey(\"variantFooter\"),\n\t\t\t\t\tConfirmation: this.getDealTextsByKey(\"confirmation\"),\n\t\t\t\t\tConfirmationWithLink: this.getDealTextsByKey(\"confirmationWithLink\"),\n\t\t\t\t\tExceedsMaxAllowedQuantity: this.getDealTextsByKey(\"exceedsMaxAllowedQuantity\"),\n\t\t\t\t\tExceedsStock: this.getDealTextsByKey(\"exceedsStock\"),\n\t\t\t\t\tExpired: this.getDealTextsByKey(\"expired\"),\n\t\t\t\t\tOutOfStock: this.getDealTextsByKey(\"outOfStock\")\n\t\t\t\t}\n\t\t\t},\n\t\t\tLive: {\n\t\t\t\tTexts: {\n\t\t\t\t\tLiveFooter: this.getDealTextsByKey(\"liveFooter\"),\n\t\t\t\t\tRobotDisconnectedHeader: this.getDealTextsByKey(\"robotDisconnectedHeader\"),\n\t\t\t\t\tConfirmation: this.getDealTextsByKey(\"liveConfirmation\"),\n\t\t\t\t\tConfirmationWithLink: this.getDealTextsByKey(\"liveConfirmationWithLink\"),\n\t\t\t\t\tOrderCheckout: this.getDealTextsByKey(\"orderCheckout\"),\n\t\t\t\t\tRobotConnected: this.getDealTextsByKey(\"robotConnected\"),\n\t\t\t\t\tProductSoldOut: this.getDealTextsByKey(\"productSoldOut\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic toOrganizationApi(isDealsEnabled: boolean, isLiveDealsEnabled: boolean, isAnonymousBuyerEnabled: boolean, isMessagingPrioritized: boolean, isAlcoholEnabled: boolean): IOrganizationDealsConfiguration {\n\t\tconst value = this.toApi() as Partial\n\n\t\tvalue.Common!.IsAnonymousBuyerEnabled = isAnonymousBuyerEnabled\n\t\tvalue.Common!.IsAlcoholEnabled = isAlcoholEnabled\n\t\tvalue.Common!.IsMessagingPrioritized = isMessagingPrioritized\n\t\tvalue.Regular!.IsEnabled = isDealsEnabled\n\t\tvalue.Live!.IsEnabled = isLiveDealsEnabled\n\n\t\treturn value as IOrganizationDealsConfiguration\n\t}\n\n\tpublic fromApi(data: IDealTextConfiguration, requiredLanguage?: string): this {\n\t\tthis.texts = DealTexts.eachLanguageFromApi(data)\n\n\t\tif (requiredLanguage !== undefined && this.texts.size === 0)\n\t\t\tthis.texts.set(requiredLanguage, DealTexts.empty(requiredLanguage))\n\n\t\treturn this\n\t}\n\n\tpublic clone(texts: DealTexts): DealConfiguration {\n\t\tconst clone = new DealConfiguration()\n\t\tclone.texts = new Map(Array.from((this.texts).values()).map(t => [t.language, texts.language === t.language ? texts : t.clone()]))\n\n\t\tif (!clone.texts.has(texts.language))\n\t\t\tclone.texts.set(texts.language, texts)\n\n\t\treturn clone\n\t}\n\n\tprivate getDealTextsByKey(key: DealTextKeys): IDealTextWithLanguage[] {\n\t\treturn flatten(Array.from(this.texts.values()).map(texts => this.getDealTexts(texts[key], texts.language)))\n\t}\n\n\tprivate getDealTexts(values: string[], language: string): IDealTextWithLanguage[] {\n\t\treturn values.map(value => ({Text: value, Language: language}))\n\t}\n\n\tpublic static fromApi(data: IDealTextConfiguration, requiredLanguage?: string): DealConfiguration {\n\t\treturn new this()\n\t\t\t.fromApi(data, requiredLanguage)\n\t}\n}\n\nexport {DealTexts}\n","import type {IDealText, IDealTextAndPlaceholders, IDealTextWithLanguage, IDefaultDealTextConfiguration, ILocationDealTextConfiguration, IOrganizationDealTextConfiguration} from \"@chaosinsight/postoffice-portalclient\"\n\nconst dealTextLiteralKeys: Array = [\"alcoholFooter\", ]\n\nexport default class DealTexts {\n\tprivate static excludedProperties: Array = [\"language\"]\n\tpublic readonly language!: string\n\n\tpublic alcoholFooter!: string[]\n\tpublic outOfStockHeader!: string[]\n\tpublic expiredHeader!: string[]\n\tpublic pleaseTryAgain!: string[]\n\tpublic pickupReminder!: string[]\n\tpublic pickupReminderLastDay!: string[]\n\n\tpublic footer!: string[]\n\tpublic variantFooter!: string[]\n\tpublic confirmation!: string[]\n\tpublic confirmationWithLink!: string[]\n\tpublic expired!: string[]\n\tpublic outOfStock!: string[]\n\tpublic exceedsMaxAllowedQuantity!: string[]\n\tpublic exceedsStock!: string[]\n\n\tpublic liveFooter!: string[]\n\tpublic robotDisconnectedHeader!: string[]\n\tpublic orderCheckout!: string[]\n\tpublic liveConfirmation!: string[]\n\tpublic liveConfirmationWithLink!: string[]\n\tpublic robotConnected!: string[]\n\tpublic productSoldOut!: string[]\n\n\tprivate constructor(language: string) {\n\t\tthis.language = language\n\t}\n\n\tpublic fromApi(data: IOrganizationDealTextConfiguration | IDefaultDealTextConfiguration | ILocationDealTextConfiguration): this {\n\t\tthis.alcoholFooter = this.getValues(data.Common.Texts.AlcoholFooter)\n\t\tthis.outOfStockHeader = this.getValues(data.Common.Texts.OutOfStockHeader)\n\t\tthis.expiredHeader = this.getValues(data.Common.Texts.ExpiredHeader)\n\t\tthis.pleaseTryAgain = this.getValues(data.Common.Texts.PleaseTryAgain)\n\t\tthis.pickupReminder = this.getValues(data.Common.Texts.PickupReminder)\n\t\tthis.pickupReminderLastDay = this.getValues(data.Common.Texts.PickupReminderLastDay)\n\n\t\tthis.footer = this.getValues(data.Regular.Texts.Footer)\n\t\tthis.variantFooter = this.getValues(data.Regular.Texts.VariantFooter)\n\t\tthis.confirmation = this.getValues(data.Regular.Texts.Confirmation)\n\t\tthis.confirmationWithLink = this.getValues(data.Regular.Texts.ConfirmationWithLink)\n\t\tthis.expired = this.getValues(data.Regular.Texts.Expired)\n\t\tthis.outOfStock = this.getValues(data.Regular.Texts.OutOfStock)\n\t\tthis.exceedsMaxAllowedQuantity = this.getValues(data.Regular.Texts.ExceedsMaxAllowedQuantity)\n\t\tthis.exceedsStock = this.getValues(data.Regular.Texts.ExceedsStock)\n\n\t\tthis.liveFooter = this.getValues(data.Live.Texts.LiveFooter)\n\t\tthis.robotDisconnectedHeader = this.getValues(data.Live.Texts.RobotDisconnectedHeader)\n\t\tthis.orderCheckout = this.getValues(data.Live.Texts.OrderCheckout)\n\t\tthis.liveConfirmation = this.getValues(data.Live.Texts.Confirmation)\n\t\tthis.liveConfirmationWithLink = this.getValues(data.Live.Texts.ConfirmationWithLink)\n\t\tthis.robotConnected = this.getValues(data.Live.Texts.RobotConnected)\n\t\tthis.productSoldOut = this.getValues(data.Live.Texts.ProductSoldOut)\n\n\t\treturn this\n\t}\n\n\tpublic clone(): DealTexts {\n\t\tconst clone = new DealTexts(this.language) as any\n\n\t\tfor (const [key, value] of Object.entries(this)) {\n\t\t\tif (DealTexts.excludedProperties.includes(key as keyof DealTexts))\n\t\t\t\tcontinue\n\t\t\tclone[key as keyof DealTexts] = [...value as string[]]\n\t\t}\n\n\t\treturn clone\n\t}\n\n\tpublic cloneAndReplace(other: DealTexts): DealTexts {\n\t\tconst clone = new DealTexts(this.language) as any\n\n\t\tfor (const [key, value] of Object.entries(this)) {\n\t\t\tif (DealTexts.excludedProperties.includes(key as keyof DealTexts))\n\t\t\t\tcontinue\n\n\t\t\tconst otherValue = other[key as keyof DealTexts] as string[]\n\n\t\t\tclone[key as keyof DealTexts] = otherValue.length > 0 ? [...otherValue] : [...value as string[]]\n\t\t}\n\n\t\treturn clone\n\t}\n\n\tprivate getValues(data: IDealText[] | IDealTextWithLanguage[] | IDealTextAndPlaceholders): string[] {\n\t\tconst rawValues = \"Placeholders\" in data ? (data as IDealTextAndPlaceholders).Texts : data as (IDealText[] | IDealTextWithLanguage[])\n\n\t\treturn rawValues\n\t\t\t.filter(t => !(\"Language\" in t) || t.Language === this.language)\n\t\t\t.map(t => t.Text)\n\t}\n\n\tpublic static fromApi(data: IDefaultDealTextConfiguration | IOrganizationDealTextConfiguration | ILocationDealTextConfiguration, language: string): DealTexts {\n\t\treturn new this(language)\n\t\t\t.fromApi(data)\n\t}\n\n\tpublic static empty(language: string): DealTexts {\n\t\tconst texts = new DealTexts(language)\n\n\t\tfor (const [key, value] of Object.entries(texts)) {\n\t\t\tif (DealTexts.excludedProperties.includes(key as keyof DealTexts))\n\t\t\t\tcontinue\n\t\t\t;(texts as any)[key] = []\n\t\t}\n\n\t\treturn texts\n\t}\n\n\tpublic static eachLanguageFromApi(data: IDefaultDealTextConfiguration | IOrganizationDealTextConfiguration | ILocationDealTextConfiguration): Map {\n\t\tconst languages = this.getLanguages(data)\n\t\treturn new Map(languages.map(language => [language, this.fromApi(data, language)]))\n\t}\n\n\tpublic static getLanguages(data: IDefaultDealTextConfiguration | IOrganizationDealTextConfiguration | ILocationDealTextConfiguration): string[] {\n\t\tconst languages = new Set()\n\t\tconst isDefault = \"Placeholders\" in data.Common.Texts.AlcoholFooter\n\n\t\t;([\"Common\", \"Regular\", \"Live\"] as Array).forEach(key => {\n\t\t\tObject.values(data[key].Texts).forEach(\n\t\t\t\ttextArray => {\n\t\t\t\t\tif (isDefault)\n\t\t\t\t\t\ttextArray = textArray.Texts\n\t\t\t\t\t;(textArray as IDealTextWithLanguage[]).forEach(text => languages.add(text.Language))\n\t\t\t\t}\n\t\t\t)\n\t\t})\n\n\t\treturn Array.from(languages.keys())\n\t}\n}\n\nexport type DealTextKeys = Exclude\n","import type {IOrganizationPermission} from \"@chaosinsight/postoffice-portalclient\"\n\nexport default class OrganizationPermission {\n\tpublic readonly canView: boolean\n\tpublic readonly canModify: boolean\n\tpublic readonly canDelete: boolean\n\tpublic readonly canViewUsers: boolean\n\tpublic readonly canModifyUsers: boolean\n\tpublic readonly canRemoveUsers: boolean\n\tpublic readonly canViewPostsForReview: boolean\n\tpublic readonly canModifyPostsForReview: boolean\n\tpublic readonly canViewContentGroups: boolean\n\tpublic readonly canModifyContentGroups: boolean\n\tpublic readonly canModifyFilters: boolean\n\tpublic readonly canViewStatistics: boolean\n\n\tconstructor(\n\t\tcanView: boolean, canModify: boolean, canDelete: boolean,\n\t\tcanViewUsers: boolean, canModifyUsers: boolean, canRemoveUsers: boolean,\n\t\tcanViewPostsForReview: boolean, canModifyPostsForReview: boolean,\n\t\tcanViewContentGroups: boolean, canModifyContentGroups: boolean,\n\t\tcanModifyFilters: boolean, canViewStatistics: boolean) {\n\t\tthis.canView = canView\n\t\tthis.canModify = canModify\n\t\tthis.canDelete = canDelete\n\t\tthis.canViewUsers = canViewUsers\n\t\tthis.canModifyUsers = canModifyUsers\n\t\tthis.canRemoveUsers = canRemoveUsers\n\t\tthis.canViewPostsForReview = canViewPostsForReview\n\t\tthis.canModifyPostsForReview = canModifyPostsForReview\n\t\tthis.canViewContentGroups = canViewContentGroups\n\t\tthis.canModifyContentGroups = canModifyContentGroups\n\t\tthis.canModifyFilters = canModifyFilters\n\t\tthis.canViewStatistics = canViewStatistics\n\t}\n\n\tpublic static fromApi(data: IOrganizationPermission): OrganizationPermission {\n\t\treturn new OrganizationPermission(data.CanView, data.CanModify, data.CanDelete,\n\t\t\tdata.CanViewUsers, data.CanModifyUsers, data.CanRemoveUsers,\n\t\t\tdata.CanViewPostsForReview, data.CanModifyPostsForReview,\n\t\t\tdata.CanViewContentGroups, data.CanModifyContentGroups,\n\t\t\tdata.CanModifyFilters, data.CanViewStatistics)\n\t}\n}\n","import {DateTime} from \"luxon\"\nimport {IOrganization, OrganizationType} from \"@chaosinsight/postoffice-portalclient\"\nimport type {IItemKeyed} from \"@/managers/data/base/iItem\"\nimport OrganizationPermission from \"@/managers/data/organization/organizationPermission\"\nimport DealConfiguration from \"@/managers/data/organization/dealConfiguration\"\nimport DateTimeUtility from \"@/utility/data/dateTime\"\n\nexport default class Organization implements IItemKeyed {\n\tpublic id: number\n\tpublic name: string\n\tpublic key: string\n\tpublic type: OrganizationType\n\tpublic phone: string | null\n\tpublic industry: number\n\tpublic logoUrl: string | null\n\tpublic currency: string\n\n\tpublic locationSignupToken: string | null\n\tpublic contentSubscriptionToken: string | null\n\n\tpublic trialExpirationDate: DateTime | null\n\tpublic paidUntilDate: DateTime | null\n\n\tpublic isActive: boolean\n\n\tpublic isReviewRequired: boolean\n\tpublic isNotificationsEnabled: boolean\n\tpublic isDealsEnabled: boolean\n\tpublic isPrioritizingMessaging: boolean\n\tpublic isLiveDealsEnabled: boolean\n\tpublic isCustomersAnonymized: boolean\n\tpublic isAlcoholEnabled: boolean\n\n\tpublic dealConfiguration: DealConfiguration\n\n\tpublic permission: OrganizationPermission | null\n\n\tpublic locationsCount: number\n\tpublic locationsWithDealsEnabledCount: number\n\tpublic locationsWithConnections: number\n\tpublic locationsWithWorkingConnections: number\n\n\tpublic get canManage(): boolean {\n\t\treturn this.permission !== null\n\t\t\t&& this.permission.canView\n\t\t\t&& (this.permission.canViewUsers\n\t\t\t\t|| this.permission.canViewContentGroups\n\t\t\t\t|| this.permission.canViewPostsForReview\n\t\t\t\t|| this.permission.canViewStatistics)\n\t}\n\n\tpublic get hasUpdatedPermission(): boolean {\n\t\treturn this.permission !== null\n\t}\n\n\tpublic get isOnTrial(): boolean {\n\t\tif (this.trialExpirationDate === null)\n\t\t\treturn false\n\n\t\tif (this.paidUntilDate === null)\n\t\t\treturn true\n\n\t\treturn this.trialExpirationDate > this.paidUntilDate\n\t}\n\n\tpublic get paidSort(): number {\n\t\tconst trial = this.trialExpirationDate?.toMillis() ?? 0\n\t\tconst paid = this.paidUntilDate?.toMillis() ?? 0\n\n\t\treturn trial >= paid ? trial : paid + DateTimeUtility.maxDate\n\t}\n\n\tpublic get isSingleStore(): boolean {\n\t\treturn this.type === OrganizationType.singleStore\n\t}\n\n\tpublic get isBrand(): boolean {\n\t\treturn this.type === OrganizationType.brand\n\t}\n\n\tconstructor(\n\t\tid: number,\n\t\tname: string,\n\t\tkey: string,\n\t\ttype: OrganizationType,\n\t\tphone: string | null,\n\t\tindustry: number,\n\t\tlogoUrl: string | null,\n\t\tcurrency: string,\n\t\tlocationSignupToken: string | null,\n\t\tcontentSubscriptionToken: string | null,\n\t\ttrialExpirationDate: DateTime | null,\n\t\tpaidUntilDate: DateTime | null,\n\t\tisActive: boolean,\n\t\tisReviewRequired: boolean,\n\t\tisNotificationsEnabled: boolean,\n\t\tisDealsEnabled: boolean,\n\t\tisPrioritizingMessaging: boolean,\n\t\tisLiveDealsEnabled: boolean,\n\t\tisCustomersAnonymized: boolean,\n\t\tisAlcoholEnabled: boolean,\n\t\tpermission: OrganizationPermission | null,\n\t\tdealConfiguration: DealConfiguration,\n\t\tlocationsCount: number,\n\t\tlocationsWithDealsEnabledCount: number,\n\t\tlocationsWithConnections: number,\n\t\tlocationsWithWorkingConnections: number) {\n\t\tthis.id = id\n\t\tthis.name = name\n\t\tthis.key = key\n\t\tthis.type = type\n\t\tthis.phone = phone\n\t\tthis.industry = industry\n\t\tthis.logoUrl = logoUrl\n\t\tthis.currency = currency\n\t\tthis.locationSignupToken = locationSignupToken\n\t\tthis.contentSubscriptionToken = contentSubscriptionToken\n\t\tthis.trialExpirationDate = trialExpirationDate\n\t\tthis.paidUntilDate = paidUntilDate\n\t\tthis.isActive = isActive\n\t\tthis.isReviewRequired = isReviewRequired\n\t\tthis.isNotificationsEnabled = isNotificationsEnabled\n\t\tthis.isDealsEnabled = isDealsEnabled\n\t\tthis.isPrioritizingMessaging = isPrioritizingMessaging\n\t\tthis.isLiveDealsEnabled = isLiveDealsEnabled\n\t\tthis.isCustomersAnonymized = isCustomersAnonymized\n\t\tthis.isAlcoholEnabled = isAlcoholEnabled\n\t\tthis.permission = permission\n\t\tthis.dealConfiguration = dealConfiguration\n\t\tthis.locationsCount = locationsCount\n\t\tthis.locationsWithDealsEnabledCount = locationsWithDealsEnabledCount\n\t\tthis.locationsWithConnections = locationsWithConnections\n\t\tthis.locationsWithWorkingConnections = locationsWithWorkingConnections\n\t}\n\n\tpublic static fromApi(data: IOrganization): Organization {\n\t\treturn new Organization(\n\t\t\tdata.Id,\n\t\t\tdata.Name,\n\t\t\tdata.Key,\n\t\t\tdata.Type,\n\t\t\tdata.ContactPhoneNumber,\n\t\t\tdata.Industry,\n\t\t\tdata.LogoUrl,\n\t\t\tdata.Currency,\n\t\t\tdata.LocationSignupToken,\n\t\t\tdata.ContentSubscriptionToken,\n\t\t\tdata.TrialExpirationDate !== null ? DateTime.fromISO(data.TrialExpirationDate) : null,\n\t\t\tdata.PaidUntilDate !== null ? DateTime.fromISO(data.PaidUntilDate) : null,\n\t\t\tdata.IsActive,\n\t\t\tdata.Review.IsEnabled,\n\t\t\tdata.Notifications.IsEnabled,\n\t\t\tdata.Deals.Regular.IsEnabled,\n\t\t\tdata.Deals.Common.IsMessagingPrioritized,\n\t\t\tdata.Deals.Live.IsEnabled,\n\t\t\tdata.Deals.Common.IsAnonymousBuyerEnabled,\n\t\t\tdata.Deals.Common.IsAlcoholEnabled,\n\t\t\tnull,\n\t\t\tDealConfiguration.fromApi(data.Deals),\n\t\t\tdata.Statistics.Locations,\n\t\t\tdata.Statistics.LocationsWithDeals,\n\t\t\tdata.Statistics.LocationsWithConnections,\n\t\t\tdata.Statistics.LocationsWithWorkingConnections)\n\t}\n}\n\nexport {DealConfiguration, OrganizationPermission, OrganizationType}\n","enum CalendarType {\n\tlist,\n\tgrid4Day,\n\tgridWeek,\n\tgridMonth\n}\n\nexport default CalendarType\n","import {ServiceConnectionType} from \"@chaosinsight/postoffice-portalclient\"\nimport FacebookPage from \"@/managers/data/facebook/facebookPage\"\nimport InstagramBusinessAccount from \"@/managers/data/instagram/InstagramBusinessAccount\"\n\nexport default class Service {\n\tpublic externalId: string\n\tpublic externalName: string | null\n\tpublic type: ServiceConnectionType\n\n\tpublic get isFacebook(): boolean {\n\t\treturn this.type === ServiceConnectionType.facebook\n\t}\n\n\tpublic get isInstagram(): boolean {\n\t\treturn this.type === ServiceConnectionType.instagram\n\t}\n\n\tpublic get url(): string | null {\n\t\treturn this.isFacebook\n\t\t\t? FacebookPage.getUrlFromId(this.externalId)\n\t\t\t: this.externalName !== null\n\t\t\t\t? InstagramBusinessAccount.getUrlFromUsername(this.externalName!)\n\t\t\t\t: null\n\t}\n\n\tconstructor(externalId: string, name: string | null, type: ServiceConnectionType) {\n\t\tthis.externalId = externalId\n\t\tthis.externalName = name\n\t\tthis.type = type\n\t}\n\n\tpublic compare(value: Service): number {\n\t\tif (value.type !== this.type)\n\t\t\treturn this.type - value.type\n\n\t\tif (value.externalName !== this.externalName)\n\t\t\treturn (this.externalName ?? \"\").localeCompare(value.externalName ?? \"\")\n\n\t\treturn this.externalId.localeCompare(value.externalId)\n\t}\n}\n\nexport {ServiceConnectionType}\n","import {IServiceConnection, ServiceConnectionType} from \"@chaosinsight/postoffice-portalclient\"\n\nexport default class ServiceConnection {\n\tpublic id: string\n\tpublic type: ServiceConnectionType\n\tpublic serviceId: string\n\tpublic mustRenew: boolean\n\tpublic createdOn: Date\n\tpublic modifiedOn: Date\n\n\tpublic get isFacebook(): boolean {\n\t\treturn this.type === ServiceConnectionType.facebook\n\t}\n\n\tconstructor(id: string, typeId: ServiceConnectionType, serviceId: string, mustRenew: boolean, createdOn: Date, modifiedOn: Date) {\n\t\tthis.id = id\n\t\tthis.type = typeId\n\t\tthis.serviceId = serviceId\n\t\tthis.mustRenew = mustRenew\n\t\tthis.createdOn = createdOn\n\t\tthis.modifiedOn = modifiedOn\n\t}\n\n\tpublic static fromApi(data: IServiceConnection): ServiceConnection {\n\t\treturn new ServiceConnection(\n\t\t\tdata.Id,\n\t\t\tdata.TypeId,\n\t\t\tdata.ServiceId,\n\t\t\tdata.MustRenew,\n\t\t\tnew Date(data.CreatedOn),\n\t\t\tnew Date(data.ModifiedOn))\n\t}\n}\n\nexport {ServiceConnectionType}\n","import type {IPublicUser} from \"@chaosinsight/postoffice-portalclient\"\nimport User from \"@/managers/data/user/user\"\n\nexport default class PublicUser extends User {\n\tpublic createdOn: Date\n\tpublic lastSeenOn: Date\n\tpublic memberOfLocationsCount: number\n\n\tconstructor(id: string, emailAddress: string, name: string, profilePictureUrl: string | null, createdOn: Date, lastSeenOn: Date, memberOfLocationsCount: number) {\n\t\tsuper(id, emailAddress, name, profilePictureUrl)\n\t\tthis.createdOn = createdOn\n\t\tthis.lastSeenOn = lastSeenOn\n\t\tthis.memberOfLocationsCount = memberOfLocationsCount\n\t}\n\n\tpublic static fromApi(data: IPublicUser): PublicUser {\n\t\treturn new PublicUser(\n\t\t\tdata.Id,\n\t\t\tdata.Email,\n\t\t\tdata.Name,\n\t\t\tdata.ProfilePictureUrl,\n\t\t\tnew Date(data.CreatedOn),\n\t\t\tnew Date(data.LastSeenOn),\n\t\t\tdata.MemberOfLocationsCount)\n\t}\n}\n","import type IItem from \"@/managers/data/base/iItem\"\n\nexport default class User implements IItem {\n\tpublic id: string\n\tpublic emailAddress: string\n\tpublic name: string\n\tpublic profilePictureUrl: string | null\n\n\tpublic get initials(): string {\n\t\tconst initials = this.name.split(\" \")\n\t\t\t.filter(part => part.length > 0)\n\t\t\t.map(part => part[0].toLocaleUpperCase())\n\t\tswitch (initials.length) {\n\t\t\tcase 0:\n\t\t\t\treturn \"?\"\n\t\t\tcase 1:\n\t\t\t\treturn initials[0]\n\t\t\tdefault:\n\t\t\t\treturn initials[0] + initials[initials.length - 1]\n\t\t}\n\t}\n\n\tconstructor(id: string,\temailAddress: string, name: string, profilePictureUrl: string | null) {\n\t\tthis.id = id\n\t\tthis.emailAddress = emailAddress\n\t\tthis.name = name\n\t\tthis.profilePictureUrl = profilePictureUrl\n\t}\n\n\tpublic updaterFromUser(other: User): void {\n\t\tthis.emailAddress = other.emailAddress\n\t\tthis.name = other.name\n\t\tthis.profilePictureUrl = other.profilePictureUrl\n\t}\n}\n","import { getModule, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"@/store/store\"\nimport type FacebookAccount from \"@/managers/data/facebook/facebookAccount\"\nimport type {IModifyDataPayload, IStoreListModifiable} from \"@/store/data/iStoreList\"\n\n@Module({dynamic: true, namespaced: true, name: \"facebook/accounts\", store})\nclass Accounts extends VuexModule implements IStoreListModifiable {\n\tpublic list: FacebookAccount[] | null = null\n\tpublic updater: Promise | null = null\n\tpublic lastUpdateFailed: boolean = false\n\n\tpublic get isReady(): boolean {\n\t\treturn this.list !== null\n\t}\n\n\t@Mutation\n\tpublic setList(value: FacebookAccount[] | null): void {\n\t\tthis.list = value\n\t\tthis.lastUpdateFailed = false\n\t}\n\n\t@Mutation\n\tpublic add(value: FacebookAccount): void {\n\t\tthis.list!.push(value)\n\t}\n\n\t@Mutation\n\tpublic remove(index: number): void {\n\t\tthis.list!.splice(index, 1)\n\t}\n\n\t@Mutation\n\tpublic modify(value: IModifyDataPayload): void {\n\t\tconst account = this.list![value.index] as any\n\t\tconst data = value.data as any\n\n\t\tif (account === undefined)\n\t\t\tthrow new Error(\"Failed to find account to modify\")\n\n\t\tfor (const key in data)\n\t\t\tif (data[key] !== undefined)\n\t\t\t\taccount[key] = data[key]\n\t}\n\n\t@Mutation\n\tpublic setUpdater(value: Promise | null): void {\n\t\tthis.updater = value\n\t}\n\n\t@Mutation\n\tpublic setLastUpdateFailed(value: boolean): void {\n\t\tthis.lastUpdateFailed = value\n\t}\n}\n\nexport default getModule(Accounts)\n","import {ServiceConnectionType} from \"@chaosinsight/postoffice-portalclient\"\nimport Authentication from \"@/managers/facebook/authentication\"\nimport Notifications from \"@/managers/session/notifications\"\nimport {watch} from \"@/store/store\"\nimport State from \"@/store/facebook/accounts\"\nimport FacebookAccount from \"@/managers/data/facebook/facebookAccount\"\nimport {call} from \"@/managers/facebook/loader\"\nimport Permissions from \"@/managers/facebook/permissions\"\nimport {firstOrNull, toItemMap} from \"@/utility/structure/array\"\n\nclass Accounts {\n\tpublic get isReady(): boolean {\n\t\treturn this.state.isReady\n\t}\n\n\tpublic get list(): FacebookAccount[] | null {\n\t\treturn this.state.list\n\t}\n\n\tpublic get isUpdating(): boolean {\n\t\treturn this.state.updater !== null\n\t}\n\n\tpublic get canLoad(): boolean {\n\t\treturn Authentication.isLoggedIn\n\t}\n\n\tpublic get lastUpdateFailed(): boolean {\n\t\treturn this.state.lastUpdateFailed\n\t}\n\n\tprivate get state(): typeof State {\n\t\treturn State\n\t}\n\n\tconstructor() {\n\t\twatch(\n\t\t\t() => [Permissions.hasAllPagePermissions, Permissions.hasAllInstagramPermissions],\n\t\t\t() => {\n\t\t\t\tif (Authentication.authResponse !== null)\n\t\t\t\t\tthis.updatePages()\n\t\t\t\t\t\t.catch(reason => Notifications.warning(\"Failed to update Facebook pages after login\", reason))\n\t\t\t\telse\n\t\t\t\t\tthis.state.setList(null)\n\t\t\t}, {immediate: true})\n\t}\n\n\tpublic async updatePages(): Promise {\n\t\tif (!Authentication.isLoggedIn || !Permissions.hasCheckedPermissions) {\n\t\t\tthis.state.setList(null)\n\t\t\treturn\n\t\t}\n\n\t\tif (this.isUpdating)\n\t\t\treturn this.state.updater!\n\n\t\tconst updater = this.getAndMergePages()\n\t\t\t.then(\n\t\t\t\tpages => {\n\t\t\t\t\tif (Authentication.isLoggedIn) {\n\t\t\t\t\t\tpages.sort((a1, a2) => a1.sortName.localeCompare(a2.sortName))\n\t\t\t\t\t\tthis.state.setList(pages)\n\t\t\t\t\t} else\n\t\t\t\t\t\tthis.state.setLastUpdateFailed(false)\n\t\t\t\t},\n\t\t\t\treason => {\n\t\t\t\t\tthis.state.setLastUpdateFailed(true)\n\t\t\t\t\tthrow reason\n\t\t\t\t})\n\t\t\t.finally(() => this.state.setUpdater(null))\n\n\t\tthis.state.setUpdater(updater)\n\n\t\treturn updater\n\t}\n\n\tpublic isAccount(account: FacebookAccount, id: string, type: ServiceConnectionType): boolean {\n\t\treturn type === ServiceConnectionType.facebook\n\t\t\t? account.id === id\n\t\t\t: account.instagramAccount?.id === id\n\t}\n\n\tpublic getById(id: string, type: ServiceConnectionType): FacebookAccount | null {\n\t\tif (this.list === null)\n\t\t\treturn null\n\t\treturn firstOrNull(this.list, account => this.isAccount(account, id, type))\n\t}\n\n\tprivate getAndMergePages(): Promise {\n\t\treturn Promise.all(\n\t\t\t[\n\t\t\t\tthis.getAllPages(false),\n\t\t\t\tPermissions.hasAllInstagramPermissions ? this.getAllPages(true) : Promise.resolve([])\n\t\t\t])\n\t\t\t.then(pages => {\n\t\t\t\tconst instagramMap = toItemMap(pages[1])\n\t\t\t\treturn pages[0].map(p => instagramMap.get(p.id) ?? p)\n\t\t\t})\n\t}\n\n\tprivate getAllPages(includeInstagram: boolean): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst result: FacebookAccount[] = []\n\n\t\t\tconst handleResponse = (responsePromise: Promise) => {\n\t\t\t\tresponsePromise.then(response => {\n\t\t\t\t\tresult.push(...response.data.map(data => FacebookAccount.fromSdk(data)))\n\n\t\t\t\t\tif (!response.paging || response.data.length === 0 || response.data.length === response.summary.total_count)\n\t\t\t\t\t\tresolve(result)\n\t\t\t\t\telse\n\t\t\t\t\t\thandleResponse(this.callGetPages(response.paging.cursors.after, includeInstagram))\n\t\t\t\t}, reject)\n\t\t\t}\n\t\t\thandleResponse(this.callGetPages(null, includeInstagram))\n\t\t})\n\t}\n\n\tprivate callGetPages(after: string | null, includeInstagram: boolean): Promise {\n\t\tconst parameters: any = {summary: \"total_count\", fields: [\"id\", \"name\", \"tasks\", \"location\"]}\n\t\tif (includeInstagram)\n\t\t\tparameters.fields.push(\"instagram_business_account{username}\")\n\t\tif (after !== null)\n\t\t\tparameters.after = after\n\n\t\treturn call(\"me/accounts\", parameters)\n\t}\n}\nexport {FacebookAccount, ServiceConnectionType}\nexport default new Accounts()\n","import Loader, {call} from \"@/managers/facebook/loader\"\nimport State from \"@/store/facebook/authentication\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Configuration from \"@/managers/system/configuration\"\nimport {sessionStorage} from \"@/managers/system/fallbackStorage\"\nimport Tracking from \"@/managers/session/logging/tracking\"\n\nclass Authentication {\n\tprivate readonly logOutStorage = {key: \"LoggedOut\", value: \"yes\"}\n\n\tpublic get isLoggingIn(): boolean {\n\t\treturn State.isLoggingIn\n\t}\n\n\tpublic get hasCheckedLogin(): boolean {\n\t\treturn State.hasCheckedLogin\n\t}\n\n\tpublic get isLoggedIn(): boolean {\n\t\treturn State.isLoggedIn\n\t}\n\n\tpublic get canLogin(): boolean {\n\t\treturn State.canLogin\n\t}\n\n\tpublic get hasModuleFailed(): boolean {\n\t\treturn State.hasModuleFailed\n\t}\n\n\tpublic get authResponse(): IFacebookAuthResponse | null {\n\t\treturn State.authResponse\n\t}\n\n\tpublic constructor() {\n\t\tLoader.then(facebook => {\n\t\t\tfacebook.getLoginStatus(response => {\n\t\t\t\tthis.authResponseChanged(response)\n\n\t\t\t\tif (response.status === \"unknown\")\n\t\t\t\t\tthis.handleInitialUnknown(facebook)\n\n\t\t\t\t//noinspection TypeScriptValidateTypes\n\t\t\t\tfacebook!.Event.subscribe(\"auth.authResponseChange\", r => this.authResponseChanged(r))\n\t\t\t\tTracking.event(\"Facebook\", \"Initial status\", response.status, true)\n\t\t\t}, false)\n\t\t}, reason => {\n\t\t\tState.setHasModuleFailed(true)\n\t\t\tState.setHasCheckedLogin(true)\n\n\t\t\tconst message = reason\n\t\t\t\t? reason instanceof Error\n\t\t\t\t\t? reason.message\n\t\t\t\t\t: reason.toString()\n\t\t\t\t: \"unknown\"\n\n\t\t\tNotifications.warning(\"Failed to load Facebook module\", reason instanceof Error ? reason : undefined)\n\t\t\tTracking.event(\"Facebook\", \"Failed to load module\", message, true)\n\t\t})\n\t}\n\n\tpublic async login(): Promise {\n\t\tthis.clearLogOutCookie()\n\n\t\tif (State.isLoggedIn)\n\t\t\treturn true\n\t\telse if (!State.canLogin)\n\t\t\treturn false\n\t\telse\n\t\t\treturn this.requestPermissions([])\n\t}\n\n\tpublic requestPermissions(permissions: string[]): Promise {\n\t\tif (!this.isLoggedIn)\n\t\t\tState.setIsLoggingIn(true)\n\n\t\treturn Loader.then(facebook => {\n\t\t\treturn new Promise(((resolve, reject) => {\n\t\t\t\ttry {\n\t\t\t\t\tfacebook!.login(response => {\n\t\t\t\t\t\tState.authResponseChanged(response)\n\t\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\t\t() => resolve(State.isLoggedIn && permissions.every(p => State.grantedPermissions.indexOf(p) !== -1)),\n\t\t\t\t\t\t\t\treason => reject(reason))\n\t\t\t\t\t}, { scope: permissions.join(\",\"), return_scopes: true})\n\t\t\t\t} catch (error: any) {\n\t\t\t\t\treject(new Error(\"Failed to login to Facebook: \" + (error.message ?? error.toString())))\n\t\t\t\t}\n\t\t\t}))\n\t\t})\n\t}\n\n\tpublic async logOut(): Promise {\n\t\tsessionStorage.setItem(this.logOutStorage.key, this.logOutStorage.value)\n\t\treturn Loader.then(facebook => {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tfacebook!.logout(response => {\n\t\t\t\t\tState.setHasHandledInitialUnknown(false)\n\t\t\t\t\tresolve()\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate authResponseChanged(response: IFacebookUserAuthenticate): void {\n\t\tState.authResponseChanged(response)\n\t\t\t.then(() => {\n\t\t\t\tif (State.isLoggedIn && !State.hasCheckedPermissions)\n\t\t\t\t\tthis.updatePermissions()\n\t\t\t})\n\t}\n\n\tprivate updatePermissions(): Promise {\n\t\treturn call>(\"me/permissions\", {})\n\t\t\t.then(response => {\n\t\t\t\tconst permissions: string[] = []\n\n\t\t\t\tif (response !== undefined && response.data !== undefined)\n\t\t\t\t\tfor (const permission of response.data)\n\t\t\t\t\t\tif (permission.status === \"granted\")\n\t\t\t\t\t\t\tpermissions.push(permission.permission)\n\t\t\t\tState.updatePermissions(permissions)\n\t\t\t\tTracking.event(\"Facebook\", \"Permissions\", permissions.join(\", \"), true)\n\t\t\t})\n\t}\n\n\tprivate handleInitialUnknown(facebook: IFacebook): void {\n\t\tif (sessionStorage.getItem(this.logOutStorage.key) === this.logOutStorage.value || State.hasHandledInitialUnknown)\n\t\t\treturn\n\n\t\tState.setHasHandledInitialUnknown(true)\n\n\t\tthis.clearLogOutCookie()\n\n\t\tfacebook!.getLoginStatus(response =>\n\t\t\tState.authResponseChanged(response), true)\n\n\t\tTracking.event(\"Facebook\", \"Initial unknown\", undefined, true)\n\t}\n\n\tprivate clearLogOutCookie(): void {\n\t\tsessionStorage.removeItem(this.logOutStorage.key)\n\t\tthis.clearCookieOnAllDomainsAndPaths(`fblo_${Configuration.connections.facebookAppId}`)\n\t}\n\n\tprivate clearCookieOnAllDomainsAndPaths(name: string): void {\n\t\tthis.clearCookie(name)\n\t\tthis.clearCookie(name, \".postofficesocial.com\")\n\t\tthis.clearCookie(name, \".postofficesocial.com\", \"/\")\n\t\tthis.clearCookie(name, \".app.postofficesocial.com\")\n\t\tthis.clearCookie(name, \".app.postofficesocial.com\", \"/\")\n\t}\n\n\tprivate clearCookie(name: string, domain?: string, path?: string): void {\n\t\tlet command = `${name}=;`\n\n\t\tif (domain)\n\t\t\tcommand += ` domain=${domain};`\n\n\t\tif (path)\n\t\t\tcommand += ` path=${path};`\n\n\t\tdocument.cookie = `${command} expires=Thu, 01 Jan 1970 00:00:01 GMT;`\n\t}\n}\n\nexport default new Authentication()\n","import Configuration from \"@/managers/system/configuration\"\nimport Notifications from \"@/managers/session/notifications\"\n\nenum ScriptState {\n\tinitial,\n\ttimeout,\n\terror,\n\tready\n}\n\nconst loader = new Promise((resolve, reject) => {\n\tlet state = ScriptState.initial\n\tlet timeout: number | undefined\n\n\t// @ts-ignore\n\twindow.fbAsyncInit = () => {\n\t\tconst shouldResolve = state === ScriptState.initial\n\t\tif (shouldResolve)\n\t\t\tstate = ScriptState.ready\n\t\telse\n\t\t\tNotifications.error(\"Facebook SDK loaded after state was: \" + state)\n\n\t\twindow.clearTimeout(timeout)\n\t\tFB.init({\n\t\t\tappId: Configuration.connections.facebookAppId,\n\t\t\tversion: \"v21.0\",\n\t\t\tstatus: false,\n\t\t\txfbml: false,\n\t\t\tlocalStorage: true\n\t\t})\n\t\tif (shouldResolve)\n\t\t\tresolve(FB)\n\t}\n\n\tconst script = document.createElement(\"script\")\n\tscript.src = \"https://connect.facebook.net/en_US/sdk.js\"\n\tscript.async = true\n\tscript.addEventListener(\"load\", () => {\n\t\tif (state !== ScriptState.initial)\n\t\t\treturn\n\n\t\ttimeout = window.setTimeout(() => {\n\t\t\tif (state !== ScriptState.initial)\n\t\t\t\treturn\n\t\t\tstate = ScriptState.timeout\n\t\t\treject(new Error(\"Facebook SDK timed out\"))\n\t\t}, Configuration.connections.facebookSdkTimeout)\n\t})\n\tscript.addEventListener(\"error\", event => {\n\t\tevent.preventDefault()\n\t\tif (event?.error)\n\t\t\tNotifications.warning(`Failed to load Facebook: ${event?.error?.toString() ?? \"Unknown error\"}`)\n\n\t\tif (state !== ScriptState.initial)\n\t\t\treturn\n\n\t\tstate = ScriptState.error\n\t\twindow.clearTimeout(timeout)\n\t\treject(new Error(\"Failed to load Facebook SDK\"))\n\t})\n\tdocument.head!.appendChild(script)\n})\n\nexport function call(path: string, parameters: object): Promise {\n\treturn loader.then(facebook => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tfacebook.api(path, parameters, (response: T | undefined | IFacebookError) => {\n\t\t\t\t\tif (!response)\n\t\t\t\t\t\treject(new Error(\"No response from Facebook on \" + path))\n\t\t\t\t\telse if ((response as IFacebookError).error)\n\t\t\t\t\t\treject(new Error(\"Facebook call \" + path + \" failed: \" + (response as IFacebookError).error.message))\n\t\t\t\t\telse\n\t\t\t\t\t\tresolve(response as T)\n\t\t\t\t})\n\t\t\t} catch (error: any) {\n\t\t\t\treject(new Error(\"Failed to call Facebook: \" + (error.message ?? error.toString())))\n\t\t\t}\n\t\t})\n\t})\n}\n\ninterface IFacebookError {\n\terror: {\n\t\tmessage: string\n\t}\n}\n\nexport default loader\n","import type FacebookPage from \"@/managers/data/facebook/facebookPage\"\nimport Accounts, {ServiceConnectionType} from \"@/managers/facebook/accounts\"\nimport {when} from \"@/store/store\"\nimport {firstOrNull} from \"@/utility/structure/array\"\n\nclass Pages {\n\tpublic get canGet(): boolean {\n\t\treturn Accounts.canLoad\n\t}\n\n\tpublic getImage(id: string): string {\n\t\treturn `https://graph.facebook.com/${id}/picture?type=normal`\n\t}\n\n\tpublic getPage(id: string): Promise {\n\t\treturn this.getPageByType(id, ServiceConnectionType.facebook)\n\t}\n\n\tpublic getPageByInstagram(id: string): Promise {\n\t\treturn this.getPageByType(id, ServiceConnectionType.instagram)\n\t}\n\n\tpublic async getPageByType(id: string, type: ServiceConnectionType): Promise {\n\t\tawait when(() => Accounts.isReady || !Accounts.isUpdating)\n\n\t\tif (Accounts.isReady) {\n\t\t\tconst account = firstOrNull(Accounts.list!, a => Accounts.isAccount(a, id, type))\n\t\t\tif (account !== null)\n\t\t\t\treturn account\n\t\t}\n\n\t\tthrow new Error(\"Failed to get page\")\n\t}\n}\n\nexport default new Pages()\n","import State from \"@/store/facebook/authentication\"\nimport Authentication from \"@/managers/facebook/authentication\"\n\nclass Permissions {\n\tprivate readonly pagePermissions = [\"pages_show_list\", \"pages_manage_posts\", \"pages_read_engagement\", \"pages_read_user_content\", \"pages_manage_metadata\", \"pages_manage_engagement\", \"pages_messaging\", \"read_insights\", \"business_management\"]\n\tprivate readonly instagramPermissions = [\"pages_show_list\", \"pages_read_engagement\", \"instagram_basic\", \"instagram_content_publish\", \"instagram_manage_insights\"]\n\n\tpublic get allPermissions(): string[] {\n\t\treturn Array.from(new Set(this.pagePermissions.concat(this.instagramPermissions)))\n\t}\n\n\tpublic get hasCheckedPermissions(): boolean {\n\t\treturn State.hasCheckedPermissions\n\t}\n\n\tpublic get hasPermissionsChanged(): boolean {\n\t\treturn State.hasPermissionsChanged\n\t}\n\n\tpublic get hasAllPagePermissions(): boolean {\n\t\treturn this.pagePermissions.every(p => State.grantedPermissions.indexOf(p) !== -1)\n\t}\n\n\tpublic get hasAllInstagramPermissions(): boolean {\n\t\treturn this.instagramPermissions.every(p => State.grantedPermissions.indexOf(p) !== -1)\n\t}\n\n\tpublic requestPagePermissions(): Promise {\n\t\treturn Authentication.requestPermissions(this.pagePermissions)\n\t}\n\n\tpublic requestInstagramPermissions(): Promise {\n\t\treturn Authentication.requestPermissions(this.instagramPermissions)\n\t}\n\n\tpublic requestAllPermissions(): Promise {\n\t\treturn Authentication.requestPermissions(this.allPermissions)\n\t}\n}\n\nexport default new Permissions()\n","import type {IExternalOrganization} from \"@chaosinsight/postoffice-portalclient\"\nimport type {IItemNamed} from \"@/managers/data/base/iItem\"\n\nexport default class ContentSubscription implements IItemNamed {\n\tpublic id!: number\n\tpublic name!: string\n\tpublic logoUrl!: string\n\n\tprivate constructor() {\n\t}\n\n\tprivate setFromApi(data: IExternalOrganization): this {\n\t\tthis.id = data.Id\n\t\tthis.name = data.Name\n\t\tthis.logoUrl = data.LogoUrl\n\n\t\treturn this\n\t}\n\n\tpublic static fromApi(data: IExternalOrganization): ContentSubscription {\n\t\treturn new ContentSubscription().setFromApi(data)\n\t}\n}\n","import Vue from \"vue\"\nimport {watch} from \"@/store/store\"\nimport Portal from \"@/managers/portal\"\nimport Locations from \"@/managers/location/locations\"\nimport ContentSubscription from \"@/managers/data/location/contentSubscription\"\n\nclass ContentSubscriptions {\n\tprivate readonly state: {list: ContentSubscription[] | null}\n\n\tpublic get isReady(): boolean {\n\t\treturn this.state.list !== null\n\t}\n\n\tpublic get hasAny(): boolean {\n\t\treturn this.isReady && this.list.length > 0\n\t}\n\n\tpublic get list(): ContentSubscription[] {\n\t\tif (this.state.list === null)\n\t\t\tthrow new Error(\"ContentSubscribers are not ready\")\n\n\t\treturn this.state.list\n\t}\n\n\tpublic get map(): Map {\n\t\treturn new Map(this.list.map(s => [s.id, s]))\n\t}\n\n\tconstructor() {\n\t\tthis.state = Vue.observable({ list: null })\n\t\twatch(\n\t\t\t() => Locations.main,\n\t\t\tlocation => {\n\t\t\t\tthis.state.list = null\n\t\t\t\tif (location !== null)\n\t\t\t\t\tthis.updateList(location.id)\n\t\t\t},\n\t\t\t{immediate: true}\n\t\t)\n\t}\n\n\tpublic update(): Promise {\n\t\treturn this.updateList(Locations.main!.id)\n\t}\n\n\tpublic async subscribeMain(ticket: string): Promise {\n\t\tconst locationId = Locations.main!.id\n\t\tawait this.subscribe(locationId, ticket)\n\n\t\tif (locationId !== Locations.main?.id)\n\t\t\treturn\n\n\t\treturn this.updateList(locationId)\n\t}\n\n\tpublic subscribe(locationId: number, ticket: string): Promise {\n\t\treturn Portal.call.locations.contentSubscriptionsPost(locationId, ticket).response\n\t}\n\n\tpublic async delete(organizationId: number): Promise {\n\t\tconst locationId = Locations.main!.id\n\t\tawait Portal.call.organizations.contentSubscribersDelete(organizationId, locationId).response\n\n\t\tif (locationId !== Locations.main?.id)\n\t\t\treturn\n\n\t\tconst index = this.state.list!.findIndex(s => s.id === organizationId)\n\n\t\tif (index !== -1)\n\t\t\tthis.list.splice(index, 1)\n\t}\n\n\tprivate async updateList(locationId: number): Promise {\n\t\tconst data = await Portal.call.locations.contentSubscriptionsGet(locationId).response\n\n\t\tif (locationId !== Locations.main?.id)\n\t\t\treturn\n\n\t\tthis.state.list = data\n\t\t\t.map(d => ContentSubscription.fromApi(d.Organization))\n\t}\n}\n\nexport {ContentSubscription}\nexport default new ContentSubscriptions()\n","import Location from \"@/managers/data/location/location\"\nimport Portal from \"@/managers/portal\"\nimport PublicUser from \"@/managers/data/user/publicUser\"\nimport {Vue} from \"@/mixins/combinations\"\nimport {when} from \"@/store/store\"\nimport Authentication from \"@/managers/authentication/authentication\"\nimport {addGlobalEventListener, globalEvents} from \"@/managers/session/globalEvents\"\nimport type User from \"@/managers/data/user/user\"\nimport type DealConfiguration from \"@/managers/data/organization/dealConfiguration\"\n\nclass Locations {\n\tprivate readonly state: {main: Location | null, count: number | null}\n\n\tpublic get main(): Location | null {\n\t\treturn this.state.main\n\t}\n\n\tpublic get isReady(): boolean {\n\t\treturn Authentication.isAuthenticated\n\t}\n\n\tpublic get hasMain(): boolean {\n\t\treturn this.main !== null\n\t}\n\n\tpublic get hasUpdatedCount(): boolean {\n\t\treturn this.state.count !== null\n\t}\n\n\tpublic get hasAny(): boolean {\n\t\treturn this.hasUpdatedCount ? this.state.count! > 0 : false\n\t}\n\n\tpublic get hasMultiple(): boolean {\n\t\treturn this.hasUpdatedCount ? this.state.count! > 1 : false\n\t}\n\n\tpublic get count(): number {\n\t\treturn this.state.count!\n\t}\n\n\tprivate get mainOrError(): Location {\n\t\tconst main = this.main\n\t\tif (main !== null)\n\t\t\treturn main\n\t\tthrow new Error(\"Main location not set\")\n\t}\n\n\tconstructor() {\n\t\tthis.state = Vue.observable({main: null, count: null})\n\n\t\twhen(() => this.isReady)\n\t\t\t.then(() => this.updateCount())\n\t\taddGlobalEventListener(globalEvents.userChanged, user => this.updateUser(user))\n\t}\n\n\tpublic async updateCount(): Promise {\n\t\tconst rawLocations = await this.getLocations(0, 2)\n\n\t\tthis.state.count = rawLocations.length\n\t}\n\n\tpublic modifyLogo(file: File): Promise {\n\t\treturn this.modifyMainAfterCall(\n\t\t\tid => Portal.call.locations.logosPost(id, file).response,\n\t\t\tresponse => ({logoUrl: response.Url})\n\t\t)\n\t}\n\n\tpublic async modifyTimeZone(timeZone: string): Promise {\n\t\treturn this.modify({timeZone})\n\t}\n\n\tpublic async modifyIsLikeCommentOnOrderEnabled(isLikeCommentOnOrderEnabled: boolean): Promise {\n\t\treturn this.modify({isLikeCommentOnOrderEnabled})\n\t}\n\n\tpublic async modifyIsDealPrioritizingMessaging(isPrioritizingMessaging: boolean | null): Promise {\n\t\treturn this.modify({isPrioritizingMessaging})\n\t}\n\n\tpublic async modifyDealConfiguration(dealConfiguration: DealConfiguration): Promise {\n\t\treturn this.modifyPatch({dealConfiguration})\n\t}\n\n\tpublic async updateUsers(): Promise {\n\t\treturn this.modifyMainAfterCall(\n\t\t\tid => Portal.call.locations.usersGet(id).response\n\t\t\t\t.then(response => response.map(user => PublicUser.fromApi(user))),\n\t\t\tresponse => ({users: response, userCount: response.length})\n\t\t)\n\t}\n\n\tpublic async removeUser(userId: string): Promise {\n\t\treturn this.modifyMainAfterCall(\n\t\t\tid => Portal.call.locations.usersDelete(id, userId).response,\n\t\t\tresponse => {\n\t\t\t\tlet users = this.main!.users\n\n\t\t\t\tif (users === null)\n\t\t\t\t\treturn {}\n\n\t\t\t\tusers = users.filter(u => u.id !== userId)\n\t\t\t\treturn {users, userCount: users.length}\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic getLocations(index: number, size: number, query?: string): Promise {\n\t\treturn Portal.call.locations.get(index, size, query).response\n\t\t\t.then(response => response.map(Location.fromApi))\n\t}\n\n\tpublic async getLocationFromId(id: number): Promise {\n\t\tif (this.hasMain && this.main!.id === id)\n\t\t\treturn this.main!\n\n\t\tconst locations = await Portal.call.locations.get().response\n\t\t\t.then(response => response.map(Location.fromApi))\n\n\t\tthis.state.count = locations.length\n\n\t\tfor (const location of locations)\n\t\t\tif (location.id === id)\n\t\t\t\treturn location\n\n\t\tthrow new Error(`Location with id: ${id} not found`)\n\t}\n\n\tpublic async setMainFromKey(key: string): Promise {\n\t\tif (this.main?.key === key)\n\t\t\treturn this.main\n\n\t\tconst location = Location.fromApi(await Portal.call.locations.getByKey(key).response)\n\n\t\tthis.state.main = location\n\t\treturn location\n\t}\n\n\tpublic clearMain(): void {\n\t\tthis.state.main = null\n\t}\n\n\tpublic async modifyMainAfterCall(call: (id: number) => Promise, change: (response: T) => Partial): Promise {\n\t\tconst main = this.mainOrError\n\n\t\treturn call(main.id)\n\t\t\t.then(\n\t\t\t\tresponse => {\n\t\t\t\t\tif (main.id !== this.main?.id)\n\t\t\t\t\t\treturn\n\n\t\t\t\t\tconst changes = change(response) as any\n\n\t\t\t\t\tfor (const key in changes)\n\t\t\t\t\t\tif (changes[key] !== undefined)\n\t\t\t\t\t\t\t(main as any)[key] = changes[key]\n\t\t\t\t}\n\t\t\t)\n\t}\n\n\tprotected apiDelete(dependent: boolean, id: Location[\"id\"]): Promise {\n\t\treturn Portal.call.locations.delete(id).response\n\t}\n\n\tprotected apiLoad(dependent: true): Promise {\n\t\treturn Portal.call.locations.get()\n\t\t\t.response\n\t\t\t.then(locations => locations.map(Location.fromApi))\n\t\t\t.then(locations => locations.sort((l1, l2) => l1.name.localeCompare(l2.name)))\n\t}\n\n\tprivate updateUser(updatedUser: User): void {\n\t\tif (this.main === null || this.main.users === null)\n\t\t\treturn\n\t\tfor (const user of this.main.users) {\n\t\t\tif (user.id !== user.id)\n\t\t\t\tcontinue\n\n\t\t\tuser.updaterFromUser(updatedUser)\n\t\t\treturn\n\t\t}\n\t}\n\n\tprivate async modify(data: Partial): Promise {\n\t\tconst location = {...this.mainOrError, ... data}\n\n\t\treturn this.modifyMainAfterCall(\n\t\t\tid => Portal.call.locations.put(\n\t\t\t\tid, location.name, location.isSharingInsightsWithOrganization, location.timeZone, location.language, location.userDefinedId,\n\t\t\t\tlocation.isPrioritizingMessaging,\n\t\t\t\t{\n\t\t\t\t\tIsDealsEnabled: location.isDealsEnabled,\n\t\t\t\t\tIsLiveDealsEnabled: location.isLiveDealsEnabled,\n\t\t\t\t\tIsLikeCommentOnOrderEnabled: location.isLikeCommentOnOrderEnabled,\n\t\t\t\t\tIsPickupReminderEnabled: location.isPickupReminderEnabled\n\t\t\t\t}\n\t\t\t).response,\n\t\t\tresponse => location\n\t\t)\n\t}\n\n\tprivate async modifyPatch(data: Partial): Promise {\n\t\tconst location = {...this.mainOrError, ... data}\n\t\treturn this.modifyMainAfterCall(\n\t\t\tid => Portal.call.locations.patch(\n\t\t\t\tid, location.dealConfiguration.toApi(),\n\t\t\t).response,\n\t\t\tresponse => location\n\t\t)\n\t}\n}\n\nexport {Location}\nexport default new Locations()\n","import type {IPublicServiceConnection} from \"@chaosinsight/postoffice-portalclient\"\nimport {ServiceConnectionType} from \"@chaosinsight/postoffice-portalclient\"\nimport PublicUser from \"@/managers/data/user/publicUser\"\nimport ServiceConnection from \"@/managers/data/serviceConnection/serviceConnection\"\n\nexport default class PublicServiceConnection extends ServiceConnection {\n\tpublic user: PublicUser\n\n\tconstructor(id: string, typeId: ServiceConnectionType, serviceId: string, mustRenew: boolean, createdOn: Date, modifiedOn: Date, user: PublicUser) {\n\t\tsuper(id, typeId, serviceId, mustRenew, createdOn, modifiedOn)\n\t\tthis.user = user\n\t}\n\n\tpublic static fromApi(data: IPublicServiceConnection): PublicServiceConnection {\n\t\treturn new PublicServiceConnection(\n\t\t\tdata.Id,\n\t\t\tdata.TypeId,\n\t\t\tdata.ServiceId,\n\t\t\tdata.MustRenew,\n\t\t\tnew Date(data.CreatedOn),\n\t\t\tnew Date(data.ModifiedOn),\n\t\t\tPublicUser.fromApi(data.User))\n\t}\n}\n\nexport {ServiceConnectionType}\n","import {getModule, Module, Mutation, VuexModule} from \"vuex-module-decorators\"\nimport store from \"../store\"\nimport type PublicServiceConnection from \"@/managers/data/serviceConnection/publicServiceConnection\"\nimport type {IStoreListEditable} from \"@/store/data/iStoreList\"\nimport type DetailedService from \"@/managers/data/serviceConnection/detailedService\"\n\n@Module({dynamic: true, namespaced: true, name: \"location/services\", store})\nclass Services extends VuexModule implements IStoreListEditable {\n\tpublic list: DetailedService[] | null = null\n\n\tpublic get isReady(): boolean {\n\t\treturn this.list !== null\n\t}\n\n\t@Mutation\n\tpublic setList(value: DetailedService[] | null): void {\n\t\tthis.list = value\n\t}\n\n\t@Mutation\n\tpublic add(value: DetailedService): void {\n\t\tthis.list!.push(value)\n\t}\n\n\t@Mutation\n\tpublic remove(index: number): void {\n\t\tthis.list!.splice(index, 1)\n\t}\n\n\t@Mutation\n\tpublic addConnection(value: {serviceIndex: number, connection: PublicServiceConnection}): void {\n\t\tthis.list![value.serviceIndex].connections.push(value.connection)\n\t}\n\n\t@Mutation\n\tpublic removeConnection(value: {serviceIndex: number, connectionIndex: number}): void {\n\t\tthis.list![value.serviceIndex].connections.splice(value.connectionIndex, 1)\n\t}\n}\n\nexport default getModule(Services)\n","import {IService, ServiceConnectionType} from \"@chaosinsight/postoffice-portalclient\"\nimport PublicServiceConnection from \"@/managers/data/serviceConnection/publicServiceConnection\"\nimport Service from \"@/managers/data/serviceConnection/service\"\n\nexport default class DetailedService extends Service {\n\tpublic locationId: number\n\tpublic connections: PublicServiceConnection[]\n\n\tpublic get hasActiveConnections(): boolean {\n\t\treturn this.connections.some(c => !c.mustRenew)\n\t}\n\n\tconstructor(externalId: string, locationId: number, name: string | null, type: ServiceConnectionType, connections: PublicServiceConnection[]) {\n\t\tsuper(externalId, name, type)\n\t\tthis.locationId = locationId\n\t\tthis.connections = connections\n\t}\n\n\tpublic static fromApi(data: IService): DetailedService {\n\t\treturn new DetailedService(\n\t\t\tdata.ExternalId,\n\t\t\tdata.LocationId,\n\t\t\tdata.Name,\n\t\t\tdata.Type,\n\t\t\tdata.Connections.map(PublicServiceConnection.fromApi)\n\t\t)\n\t}\n}\n\nexport {ServiceConnectionType, PublicServiceConnection}\n","import Locations from \"@/managers/location/locations\"\nimport PublicServiceConnection, {ServiceConnectionType} from \"@/managers/data/serviceConnection/publicServiceConnection\"\nimport State from \"@/store/location/services\"\nimport Portal from \"@/managers/portal\"\nimport List from \"@/managers/base/list\"\nimport Authentication from \"@/managers/facebook/authentication\"\nimport {when} from \"@/store/store\"\nimport User from \"../user/user\"\nimport DetailedService from \"@/managers/data/serviceConnection/detailedService\"\nimport {globalEvents, sendGlobalEvent} from \"@/managers/session/globalEvents\"\nimport type ServiceConnection from \"@/managers/data/serviceConnection/serviceConnection\"\n\nclass Services extends List {\n\tpublic get hasAnyWorking(): boolean {\n\t\treturn this.isReady && this.list!.some(s => s.connections.length > 0)\n\t}\n\n\tprotected get dependent(): number | null {\n\t\treturn Locations.main !== null ? Locations.main.id : null\n\t}\n\n\tprotected get state(): typeof State {\n\t\treturn State\n\t}\n\n\tconstructor() {\n\t\tsuper(\"service connections\")\n\t}\n\n\tpublic addFacebook(id: string): Promise {\n\t\treturn this.add(id, ServiceConnectionType.facebook)\n\t}\n\n\tpublic addInstagram(id: string): Promise {\n\t\treturn this.add(id, ServiceConnectionType.instagram)\n\t}\n\n\tpublic async add(id: string, type: ServiceConnectionType): Promise {\n\t\treturn this.addToLocation(id, type, this.dependent!)\n\t}\n\n\tpublic async addToLocation(id: string, type: ServiceConnectionType, locationId: number): Promise {\n\t\tif (Authentication.authResponse === null)\n\t\t\tthrow new Error(\"No Facebook auth response available\")\n\n\t\tconst newConnection = await Portal.call.locations.serviceConnectionsPost(locationId, type, id, Authentication.authResponse.accessToken, Authentication.authResponse.userID).response\n\t\t\t.then(PublicServiceConnection.fromApi)\n\n\t\tawait this.updateList()\n\n\t\tif (this.dependent === locationId) {\n\t\t\tconst service = this.list!.find(s => s.type === type)\n\t\t\tif (service && User.isReady)\n\t\t\t\treturn service.connections.find(c => c.user.id === User.current!.id) ?? newConnection\n\t\t}\n\n\t\tsendGlobalEvent(globalEvents.locationServiceChanged, locationId, type)\n\n\t\treturn newConnection\n\t}\n\n\tpublic async deleteFromLocation(locationId: number, type: ServiceConnectionType, all: boolean): Promise {\n\t\tawait Portal.call.locations.serviceConnectionsDelete(locationId, type, all).response\n\n\t\tif (locationId === this.dependent) {\n\t\t\tconst serviceIndex = this.list!.findIndex(service => service.type === type)\n\n\t\t\tif (serviceIndex !== -1) {\n\t\t\t\tif (all)\n\t\t\t\t\tthis.state.remove(serviceIndex)\n\t\t\t\telse if(User.isReady) {\n\t\t\t\t\tconst connectionIndex = this.list![serviceIndex].connections\n\t\t\t\t\t\t.findIndex(connection => connection.user.id === User.current!.id)\n\n\t\t\t\t\tif (connectionIndex !== -1)\n\t\t\t\t\t\tthis.state.removeConnection({serviceIndex, connectionIndex})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tsendGlobalEvent(globalEvents.locationServiceChanged, locationId, type)\n\t}\n\n\tpublic async deleteConnection(locationId: number, connection: ServiceConnection): Promise {\n\t\tawait Portal.call.serviceConnections.delete(connection.id).response\n\n\t\tif (locationId === this.dependent) {\n\t\t\tconst serviceIndex = this.list!.findIndex(service => service.type === connection.type)\n\n\t\t\tif (serviceIndex !== -1) {\n\t\t\t\tconst connectionIndex = this.list![serviceIndex].connections\n\t\t\t\t\t.findIndex(existingConnection => existingConnection.id === connection.id)\n\n\t\t\t\tif (connectionIndex !== -1)\n\t\t\t\t\tthis.state.removeConnection({serviceIndex, connectionIndex})\n\t\t\t}\n\t\t}\n\n\t\tsendGlobalEvent(globalEvents.locationServiceChanged, locationId, connection.type)\n\t}\n\n\tpublic async loadFromLocation(id: number): Promise {\n\t\tif (this.dependent === id) {\n\t\t\tawait when(() => this.isReady)\n\t\t\treturn this.list!\n\t\t}\n\t\treturn this.apiLoad(id)\n\t}\n\n\tprotected apiLoad(dependent: number): Promise {\n\t\treturn Portal.call.locations.servicesGet(dependent)\n\t\t\t.response.then(locations => locations.map(DetailedService.fromApi))\n\t}\n}\n\nexport {PublicServiceConnection, DetailedService, ServiceConnectionType}\nexport default new Services()\n","import {getModule, Module, Mutation, VuexModule} from \"vuex-module-decorators\"\nimport store from \"../store\"\nimport type Organization from \"@/managers/data/organization/organization\"\nimport type {IModifyDataPayload, IStoreListModifiable, IStoreMain} from \"@/store/data/iStoreList\"\n\n@Module({dynamic: true, namespaced: true, name: \"organization/organizations\", store})\nclass Organizations extends VuexModule implements IStoreListModifiable, IStoreMain {\n\tpublic list: Organization[] | null = null\n\tpublic mainId: number | null = null\n\tpublic wasMainSetFromLocation: boolean = false\n\n\tpublic get isReady(): boolean {\n\t\treturn this.list !== null\n\t}\n\n\t@Mutation\n\tpublic setMainId(value: number | null): void {\n\t\tif (value === this.mainId)\n\t\t\treturn\n\t\tthis.mainId = value\n\t}\n\n\t@Mutation\n\tpublic setWasMainSetByLocation(value: boolean): void {\n\t\tthis.wasMainSetFromLocation = value\n\t}\n\n\t@Mutation\n\tpublic setList(value: Organization[] | null): void {\n\t\tthis.list = value\n\t}\n\n\t@Mutation\n\tpublic add(value: Organization): void {\n\t\tthis.list!.push(value)\n\t}\n\n\t@Mutation\n\tpublic remove(index: number): void {\n\t\tthis.list!.splice(index, 1)\n\t}\n\n\t@Mutation\n\tpublic modify(value: IModifyDataPayload): void {\n\t\tconst organization = this.list![value.index] as any\n\t\tconst data = value.data as any\n\n\t\tif (organization === undefined)\n\t\t\tthrow new Error(\"Failed to find organization to modify\")\n\n\t\tfor (const key in data)\n\t\t\tif (data[key] !== undefined)\n\t\t\t\torganization[key] = data[key]\n\t}\n}\n\nexport default getModule(Organizations)\n","import Authentication from \"@/managers/authentication/authentication\"\nimport {when} from \"@/store/store\"\nimport ListModifiable from \"@/managers/base/listModifiable\"\nimport type {IItemKeyed} from \"@/managers/data/base/iItem\"\nimport type {IStoreListModifiable, IStoreMain} from \"@/store/data/iStoreList\"\n\nexport default abstract class ListMain extends ListModifiable {\n\tpublic get main(): T | null {\n\t\tconst id = this.state.mainId\n\t\treturn id !== null ? this.getById(id) : null\n\t}\n\n\tpublic set main(value: T | null) {\n\t\tif (value === null) {\n\t\t\tif (this.state.mainId === null)\n\t\t\t\treturn\n\t\t\tthis.state.setMainId(null)\n\t\t} else {\n\t\t\tif (this.state.mainId === value.id)\n\t\t\t\treturn\n\t\t\tthis.state.setMainId(value.id)\n\t\t}\n\t}\n\n\tprotected abstract get state(): IStoreListModifiable & IStoreMain\n\n\tprotected get dependent(): true | null {\n\t\treturn Authentication.isAuthenticated ? true : null\n\t}\n\n\tpublic getByKey(key: string): T | null {\n\t\tfor (const item of this.list!)\n\t\t\tif (item.key === key)\n\t\t\t\treturn item\n\n\t\treturn null\n\t}\n\n\tpublic async getByKeyWhenReady(key: string): Promise {\n\t\tawait when(() => this.isReady)\n\n\t\tconst item = this.getByKey(key)\n\n\t\tif (item === null)\n\t\t\tthrow new Error(`${this.itemName} with key: ${key} not found`)\n\t\treturn item\n\t}\n\n\tprotected reset(): void {\n\t\tthis.main = null\n\t\tsuper.reset()\n\t}\n}\n\nexport {IStoreListModifiable, IStoreMain}\n","import State from \"@/store/organization/organizations\"\nimport Organization, {OrganizationPermission, OrganizationType} from \"@/managers/data/organization/organization\"\nimport Portal from \"@/managers/portal\"\nimport ListMain from \"@/managers/base/listMain\"\nimport {watch, when} from \"@/store/store\"\nimport Notifications from \"@/managers/session/notifications\"\nimport DealConfiguration from \"@/managers/data/organization/dealConfiguration\"\nimport {firstOrNull} from \"@/utility/structure/array\"\nimport {addGlobalEventListener, globalEvents, sendGlobalEvent} from \"@/managers/session/globalEvents\"\nimport type {IOrganizationDealsConfiguration} from \"@chaosinsight/postoffice-portalclient\"\n\nclass Organizations extends ListMain {\n\tpublic get wasMainSetFromLocation(): boolean {\n\t\treturn this.state.wasMainSetFromLocation\n\t}\n\n\tpublic get main(): Organization | null {\n\t\treturn super.main\n\t}\n\n\tpublic set main(value: Organization | null) {\n\t\tsuper.main = value\n\t\tthis.state.setWasMainSetByLocation(false)\n\t}\n\n\tpublic get canManageMain(): boolean {\n\t\treturn this.main?.canManage ?? false\n\t}\n\n\tpublic get hasAnyNoneSingleStore(): boolean {\n\t\treturn this.hasAny && this.list!.some(o => !o.isSingleStore)\n\t}\n\n\tprotected get state(): typeof State {\n\t\treturn State\n\t}\n\n\tconstructor() {\n\t\tsuper(\"organizations\")\n\n\t\twatch(() => this.state.mainId, mainId => {\n\t\t\tif (mainId === null)\n\t\t\t\treturn\n\n\t\t\tthis.updatePermission(mainId)\n\t\t\t\t.catch(reason => Notifications.warning(\"Failed to update permission for main org: \", reason))\n\t\t})\n\n\t\taddGlobalEventListener(globalEvents.organizationAdded, (organization: Organization) => {\n\t\t\tif (this.getById(organization.id) === null)\n\t\t\t\tthis.updateList() // todo: Optimize this by cloning the organization\n\t\t})\n\t\taddGlobalEventListener(globalEvents.organizationChanged, () => this.updateList()) // todo: Optimize this by using the event parameter\n\t}\n\n\tpublic async setMainFromLocation(organizationId: number): Promise {\n\t\tawait when(() => this.isReady)\n\t\tconst organization = this.getById(organizationId)\n\n\t\tif (organization === null)\n\t\t\tthrow new Error(`Organization with id: ${organizationId} not found`)\n\n\t\tthis.state.setWasMainSetByLocation(true)\n\t\tsuper.main = organization\n\t}\n\n\tpublic createSingleStore(name: string, key: string, language: string, timeZone: string, phone: string, industry: number, currency?: string, deal?: boolean): Promise {\n\t\treturn Portal.call.organizations.post(\n\t\t\ttrue,\n\t\t\ttrue,\n\t\t\tname,\n\t\t\tkey,\n\t\t\tOrganizationType.singleStore,\n\t\t\tphone,\n\t\t\tindustry,\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\tcurrency,\n\t\t\tdeal\n\t\t\t\t? {\n\t\t\t\t\tCommon: {\n\t\t\t\t\t\tIsAlcoholEnabled: true,\n\t\t\t\t\t\tTexts: {}\n\t\t\t\t\t},\n\t\t\t\t\tRegular: {\n\t\t\t\t\t\tIsEnabled: true,\n\t\t\t\t\t\tTexts: {}\n\t\t\t\t\t},\n\t\t\t\t\tLive: {\n\t\t\t\t\t\tIsEnabled: true,\n\t\t\t\t\t\tTexts: {}\n\t\t\t\t\t}\n\t\t\t\t} as any as IOrganizationDealsConfiguration // Don't pass text keys so we get the defaults\n\t\t\t\t: undefined,\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tName: name,\n\t\t\t\t\tKey: key,\n\t\t\t\t\tLanguage: language,\n\t\t\t\t\tTimeZone: timeZone,\n\t\t\t\t\tShareInsightsWithOrganization: true,\n\t\t\t\t\tUserDefinedId: null\n\t\t\t\t}\n\t\t\t]\n\t\t).response\n\t\t\t.then(Organization.fromApi)\n\t\t\t.then(organization => {\n\t\t\t\tthis.state.add(organization)\n\n\t\t\t\tsendGlobalEvent(globalEvents.organizationAdded, organization)\n\n\t\t\t\treturn organization\n\t\t\t})\n\t}\n\n\tpublic async modifyLogo(id: number, file: File): Promise {\n\t\tconst fileInfo = await Portal.call.organizations.logosPost(id, file).response\n\t\tthis.modifyItem({id, logoUrl: fileInfo.Url})\n\t\treturn fileInfo.Url\n\t}\n\n\tpublic modifyIsCurrency(id: number, currency: string): Promise {\n\t\treturn this.modify({id, currency})\n\t}\n\n\tpublic modifyIsReviewRequired(id: number, isRequired: boolean): Promise {\n\t\treturn this.modify({id, isReviewRequired: isRequired})\n\t}\n\n\tpublic modifyDealTexts(id: number, dealConfiguration: DealConfiguration): Promise {\n\t\treturn this.modifyPatch({id, dealConfiguration})\n\t}\n\n\tpublic modifyDealEnabled(id: number, isDealsEnabled: boolean, isLiveDealsEnabled: boolean, isAlcoholEnabled: boolean): Promise {\n\t\treturn this.modifyPatch({id, isDealsEnabled, isLiveDealsEnabled, isAlcoholEnabled})\n\t}\n\n\tpublic async modifyIsDealPrioritizingMessaging(id: number, isPrioritizingMessaging: boolean): Promise {\n\t\treturn this.modifyPatch({id, isPrioritizingMessaging})\n\t}\n\n\tpublic async modifyIsAlcoholEnabled(id: number, isAlcoholEnabled: boolean): Promise {\n\t\treturn this.modifyPatch({id, isAlcoholEnabled})\n\t}\n\n\tpublic async modifyIsCustomerAnonymized(id: number, isCustomersAnonymized: boolean): Promise {\n\t\treturn this.modifyPatch({id, isCustomersAnonymized})\n\t}\n\n\tpublic async refreshLocationSignupToken(): Promise {\n\t\tconst id = this.main!.id\n\n\t\tawait Portal.call.organizations.patch(id, \"refresh\").response\n\t\tconst list = await this.apiLoad(true)\n\t\tconst main = firstOrNull(list, o => o.id === id)\n\n\t\tif (main !== null)\n\t\t\tthis.modifyItem({id, locationSignupToken: main.locationSignupToken})\n\t}\n\n\tpublic async refreshContentSubscriptionToken(): Promise {\n\t\tconst id = this.main!.id\n\n\t\tawait Portal.call.organizations.patch(id, undefined, \"refresh\").response\n\t\tconst list = await this.apiLoad(true)\n\t\tconst main = firstOrNull(list, o => o.id === id)\n\n\t\tif (main !== null)\n\t\t\tthis.modifyItem({id, contentSubscriptionToken: main.contentSubscriptionToken})\n\t}\n\n\tpublic async updatePermission(id: number, force = false): Promise {\n\t\tif (!force && this.isReady) {\n\t\t\tconst index = this.getIndex(id)\n\n\t\t\tif (index !== null && this.list![index].hasUpdatedPermission)\n\t\t\t\treturn this.list![index].permission!\n\t\t}\n\n\t\treturn Portal.call.organizations.permissionsGet(id)\n\t\t\t.response\n\t\t\t.then(OrganizationPermission.fromApi)\n\t\t\t.then(permission => {\n\t\t\t\tconst index = this.getIndex(id)\n\n\t\t\t\tif (index !== null)\n\t\t\t\t\tthis.modifyItem({id, permission})\n\n\t\t\t\treturn permission\n\t\t\t})\n\t}\n\n\tprotected apiDelete(dependent: boolean, id: Organization[\"id\"]): Promise {\n\t\treturn Promise.reject(new Error(\"Not implemented\"))\n\t}\n\n\tprotected apiLoad(dependent: true): Promise {\n\t\treturn Portal.call.organizations.get()\n\t\t\t.response.then(organizations => organizations.map(Organization.fromApi))\n\t\t\t.then(organizations => organizations.sort((o1, o2) => o1.name.localeCompare(o2.name)))\n\t}\n\n\tprivate async modify(data: Partial & Pick): Promise {\n\t\tconst organization = {...this.getBytIdOrFail(data.id), ... data}\n\n\t\tawait Portal.call.organizations.put(\n\t\t\torganization.id, organization.isReviewRequired, organization.isNotificationsEnabled, organization.isActive, organization.currency\n\t\t).response\n\t\tthis.modifyItem(data)\n\t}\n\n\tprivate async modifyPatch(data: Partial & Pick): Promise {\n\t\tconst organization = {...this.getBytIdOrFail(data.id), ... data}\n\n\t\tconst dealConfig = organization.dealConfiguration.toOrganizationApi(\n\t\t\torganization.isDealsEnabled, organization.isLiveDealsEnabled, organization.isCustomersAnonymized, organization.isPrioritizingMessaging, organization.isAlcoholEnabled\n\t\t)\n\n\t\tawait Portal.call.organizations.patch(organization.id, undefined, undefined, dealConfig).response\n\t\tthis.modifyItem(data)\n\t}\n\n\tprivate getBytIdOrFail(id: number): Organization {\n\t\tconst organization = this.getById(id)\n\n\t\tif (organization === null)\n\t\t\tthrow new Error(`Failed to find organization with id: ${id}`)\n\n\t\treturn organization\n\t}\n}\n\nexport {DealConfiguration, Organization, OrganizationPermission, OrganizationType}\nexport default new Organizations()\n","import PortalClient, {hasServiceErrorCode, ErrorCode, ExtensionHandler, IServiceError, ServiceError} from \"@chaosinsight/portalclient\"\nimport {PostOfficeErrorCode} from \"@chaosinsight/postoffice-portalclient\"\nimport Configuration from \"@/managers/system/configuration\"\nimport Notifications from \"@/managers/session/notifications\"\n\nclass Portal {\n\tpublic sessionExpiredHandler: (() => Promise) | null = null\n\tprivate readonly _client!: PortalClient // tslint:disable-line\n\n\tpublic get client(): PortalClient {\n\t\treturn this._client\n\t}\n\n\tpublic get call(): ExtensionHandler {\n\t\treturn this._client.call\n\t}\n\n\tpublic constructor() {\n\t\tthis._client = new PortalClient(Configuration.connections.portalPath, \"7\", error => this.handleError(error))\n\t}\n\n\tpublic clearSession(): void {\n\t\tNotifications.debug(\"Clearing Portal session\")\n\t\tthis.client.updateSession(null)\n\t}\n\n\tprivate handleError(error: IServiceError): Promise {\n\t\tswitch (error.Code) {\n\t\t\tcase PostOfficeErrorCode.sessionNotAuthenticated:\n\t\t\t\tif (this.sessionExpiredHandler !== null) {\n\t\t\t\t\tNotifications.debug(\"Handling error \" + error.Code + \": \" + error.Message)\n\t\t\t\t\treturn this.sessionExpiredHandler()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t\treturn Promise.resolve(false)\n\t}\n}\n\nexport {ErrorCode, hasServiceErrorCode, PostOfficeErrorCode, ServiceError}\nexport default new Portal()\n","import Vue from \"vue\"\nconst eventBus = new Vue()\n\nexport function sendGlobalEvent(type: globalEvents, ...args: any[]): void {\n\teventBus.$emit(type, ...args)\n}\n\nexport function addGlobalEventListener(type: globalEvents, handler: (...args: any[]) => void): void {\n\teventBus.$on(type, handler)\n}\n\nexport function removeGlobalEventListener(type: globalEvents, handler: (...args: any[]) => void): void {\n\teventBus.$off(type, handler)\n}\n\nexport enum globalEvents {\n\torganizationAdded = \"organizationAdded\",\n\torganizationChanged = \"organizationChanged\",\n\tuserChanged = \"userChanged\",\n\tlocationServiceChanged = \"locationServiceChanged\"\n}\n","import Vue from \"vue\"\nimport Navigation from \"@/managers/session/navigation\"\n\nclass Loading {\n\tprivate readonly state: {isLoading: boolean}\n\n\tpublic get isLoading(): boolean {\n\t\treturn this.state.isLoading\n\t}\n\n\tconstructor() {\n\t\tthis.state = Vue.observable({isLoading: false})\n\t}\n\n\tpublic while(task: Promise): void {\n\t\tthis.state.isLoading = true\n\n\t\ttask.finally(() => this.state.isLoading =false)\n\t}\n\n\tpublic goto(task: Promise): void {\n\t\tthis.state.isLoading = true\n\t\ttask\n\t\t\t.then(path => {\n\t\t\t\tif (path !== null)\n\t\t\t\t\tNavigation.to(path)\n\t\t\t})\n\t\t\t.finally(() => this.state.isLoading = false)\n\t}\n}\n\nexport default new Loading()\n","import I18n from \"@/plugins/i18n\"\nimport User from \"@/managers/user/user\"\nimport {watch} from \"@/store/store\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Configuration from \"@/managers/system/configuration\"\nimport type {TranslateResult, Values} from \"vue-i18n\"\n\nclass Localization {\n\tpublic get current(): string {\n\t\treturn I18n.locale\n\t}\n\tpublic set current(value: string) {\n\t\tif (User.isReady)\n\t\t\tUser.setLanguage(value)\n\t\t\t\t.catch(reason => Notifications.error(\"Failed to change language\", reason))\n\t\telse\n\t\t\tI18n.locale = value\n\t}\n\n\tpublic get decimalPoint(): string {\n\t\treturn this.current === \"da\" ? \",\" : \".\"\n\t}\n\n\tpublic get languages(): string[] {\n\t\treturn I18n.availableLocales\n\t}\n\n\tpublic get languageNames(): {[key: string]: string} {\n\t\treturn Configuration.localization.names\n\t}\n\n\tconstructor() {\n\t\twatch(() => User.current?.language ?? null, language => {\n\t\t\tif (language !== null)\n\t\t\t\tI18n.locale = language\n\t\t})\n\n\t\twatch(\n\t\t\t() => I18n.locale,\n\t\t\tlanguage => {\n\t\t\t\ttry {\n\t\t\t\t\twindow.document.documentElement.setAttribute(\"lang\", language)\n\t\t\t\t\twindow.document.documentElement.setAttribute(\"xml:lang\", language)\n\t\t\t\t\tdocument.head.querySelector(\"meta[http-equiv=\\\"Content-Language\\\"]\")!.setAttribute(\"content\", language)\n\t\t\t\t} catch (error: any) {\n\t\t\t\t\tNotifications.warning(\"Failed to update language attributes\", error)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{immediate: true}\n\t\t)\n\t}\n\n\tpublic exists(path: string): boolean {\n\t\treturn I18n.te(path)\n\t}\n\n\tpublic translate(path: string, values?: Values): TranslateResult {\n\t\treturn I18n.t(path, values)\n\t}\n\n\tpublic getNumber(value: number, format: string, locale?: string): TranslateResult {\n\t\treturn I18n.n(value, format, locale ?? this.current)\n\t}\n\n\tpublic getCurrency(value: number, currency: string, useSymbol: boolean, removeFraction: boolean = false): TranslateResult {\n\t\treturn I18n.n(value, {\n\t\t\tkey: \"currency\",\n\t\t\tcurrency,\n\t\t\tcurrencyDisplay: useSymbol ? \"narrowSymbol\" : \"code\",\n\t\t\tmaximumSignificantDigits: removeFraction ? Math.trunc(Math.abs(value)).toFixed().length : undefined\n\t\t} as Intl.NumberFormatOptions)\n\t}\n\n\tpublic getCurrencyFormat(currency: string, useSymbol: boolean) : Intl.NumberFormat {\n\t\tconst currencyFormat = I18n.getNumberFormat(I18n.locale)[\"currency\"]\n\t\tcurrencyFormat.currency = currency\n\t\tcurrencyFormat.currencyDisplay = useSymbol ? \"narrowSymbol\" : \"code\"\n\n\t\treturn Intl.NumberFormat(this.current, currencyFormat)\n\t}\n}\n\nexport {TranslateResult}\nexport default new Localization()\n","import Configuration from \"@/managers/system/configuration\"\nimport {watch, when} from \"@/store/store\"\nimport User from \"@/managers/user/user\"\nimport Tracking from \"@/managers/session/logging/tracking\"\n\ndeclare global {\n\tinterface Window {\n\t\tdataLayer: any[]\n\t}\n}\n\nclass GlobalSiteTag {\n\tprivate isInitialized = false\n\n\tconstructor() {\n\t\tthis.initialize()\n\n\t\twhen(() => User.canTrack || Tracking.canTrackUnauthenticated)\n\t\t\t.then(() => this.updateConsent(false, true))\n\n\t\twatch(\n\t\t\t() => User.current,\n\t\t\tuser => this.config({user_id: user?.id}),\n\t\t\t{immediate: true})\n\t}\n\n\tpublic logEvent(name: string, data: {[key: string]: any}): void {\n\t\tthis.gtag(\"event\", name, data)\n\t}\n\n\tprivate initialize(): void {\n\t\tif (this.isInitialized)\n\t\t\treturn\n\t\tthis.isInitialized = true\n\n\t\tconst script = document.createElement(\"script\")\n\t\tscript.async = true\n\t\tscript.src=`https://www.googletagmanager.com/gtag/js?id=${Configuration.connections.globalSiteTagId}`\n\t\tdocument.head.insertBefore(script, document.head.firstChild)\n\n\t\twindow.dataLayer = window.dataLayer || []\n\n\t\tthis.updateConsent(true, false)\n\n\t\tthis.gtag(\"js\", new Date())\n\t\tthis.config({send_page_view: true})\n\t}\n\n\tprivate config(data: object): void {\n\t\tthis.gtag(\"config\", Configuration.connections.globalSiteTagId, data)\n\t}\n\n\tprivate gtag(...args: any[]): void {\n\t\twindow.dataLayer.push(arguments) // Has to use arguments, NOT args, for gtag to work\n\t}\n\n\tprivate updateConsent(setDefault: boolean, granted: boolean): void {\n\t\tthis.gtag(\"consent\", setDefault ? \"default\" : \"update\", this.createConsentOptions(granted))\n\t}\n\n\tprivate createConsentOptions(granted: boolean): object {\n\t\treturn {\n\t\t\t\"ad_storage\": granted ? \"granted\" : \"denied\",\n\t\t\t\"ad_user_data\": granted ? \"granted\" : \"denied\",\n\t\t\t\"ad_personalization\": granted ? \"granted\" : \"denied\",\n\t\t\t\"analytics_storage\": granted ? \"granted\" : \"denied\"\n\t\t}\n\t}\n}\n\nexport default new GlobalSiteTag()\n","import {getErrorStack} from \"@/utility/data/error\"\nimport Configuration from \"@/managers/system/configuration\"\nimport User from \"@/managers/user/user\"\n\nclass AwsLog {\n\tpublic event(category: string, action: string, label?: string): void {\n\t\tthis.log(\n\t\t\t\"Event: \" + action,\n\t\t\tLevel.information,\n\t\t\t{\n\t\t\t\tEvent: {\n\t\t\t\t\tCategory: category,\n\t\t\t\t\tAction: action,\n\t\t\t\t\tLabel: label\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic error(message: string, error?: Error, fatal: boolean = true): void {\n\t\tthis.log(\n\t\t\tmessage,\n\t\t\tfatal ? Level.error : Level.warning,\n\t\t\t{\n\t\t\t\tError: error\n\t\t\t\t\t? {\n\t\t\t\t\t\tName: error.name,\n\t\t\t\t\t\tMessage: error.message,\n\t\t\t\t\t\tStack: getErrorStack(error)\n\t\t\t\t\t}\n\t\t\t\t\t: null\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic log(message: string, level: Level = Level.error, details?: Partial): void {\n\t\tconst url = new URL(Configuration.connections.errorLogPath)\n\t\tconst request: RequestInit = {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\tcache: \"no-cache\",\n\t\t\tcredentials: \"omit\",\n\t\t\tredirect: \"follow\",\n\t\t\theaders: {\"Content-Type\": \"application/json\"},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tLevel: level,\n\t\t\t\tMessage: message,\n\t\t\t\tProperties: {\n\t\t\t\t\t... details,\n\t\t\t\t\tEnvironment: Configuration.connections.errorLogEnvironment,\n\t\t\t\t\tUserAgent: window.navigator.userAgent,\n\t\t\t\t\tUrl: window.location.toString(),\n\t\t\t\t\tUserId: User.isReady ? User.current!.id : \"Unknown\",\n\t\t\t\t\tVersion: Configuration.system.version\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tfetch(url, request)\n\t\t\t.catch(reason => console.error(\"Failed to log\", reason)) // tslint:disable-line:no-console\n\t}\n}\n\nexport enum Level {\n\terror = \"error\",\n\twarning = \"warning\",\n\tinformation = \"information\"\n}\n\nexport interface ILog {\n\tEnvironment: string\n\tUserAgent: string\n\tUrl: string\n\tUserId: string\n\tVersion: string\n\tError: ILogError | null\n\tEvent: IEvent\n}\n\nexport interface ILogError {\n\tName: string\n\tMessage: string\n\tStack: StackFrame[]\n}\n\nexport interface IEvent {\n\tCategory: string\n\tAction: string\n\tLabel?: string\n}\n\nexport default new AwsLog()\n","import GlobalSiteTag from \"@/managers/session/logging/globalSiteTag\"\nimport AWSLog, {Level} from \"@/managers/session/logging/awsLog\"\n\nclass Log {\n\tpublic event(category: string, action: string, label?: string): void {\n\t\tGlobalSiteTag.logEvent(action, {category, label: label ?? \"\"})\n\t\tAWSLog.event(category, action, label)\n\t}\n\n\tpublic error(message: string, error?: Error, fatal: boolean = true): void {\n\t\tGlobalSiteTag.logEvent(\"exception\", {name: error?.name ?? \"\", description: error?.message ?? \"\", fatal: fatal ? \"true\" : \"false\"})\n\t\tAWSLog.error(message, error, fatal)\n\t}\n\n\tpublic informationNotification(message: string): void {\n\t\tAWSLog.log(message, Level.information)\n\t}\n\n\tpublic login(method: string): void {\n\t\tGlobalSiteTag.logEvent(\"login\", {method})\n\t\tAWSLog.event(\"Authentication\", \"login\", method)\n\t}\n\n\tpublic signUp(method: string): void {\n\t\tGlobalSiteTag.logEvent(\"sign_up\", {method})\n\t\tAWSLog.event(\"Authentication\", \"signUp\", method)\n\t}\n}\n\nexport default new Log()\n","import Vue from \"vue\"\nimport Log from \"@/managers/session/logging/log\"\nimport {localStorage} from \"@/managers/system/fallbackStorage\"\nimport Notifications from \"@/managers/session/notifications\"\nimport {getCookie} from \"@/managers/system/cookies\"\n\nclass Tracking {\n\tprivate static readonly CAN_TRACK_KEY = \"canTrackUnauthenticated\"\n\tprivate static readonly CROSS_CONSENT_KEY = \"poCrossConsent\"\n\tprivate static readonly COOKIEBOT_KEY = \"CookieConsent\"\n\tprivate state = Vue.observable({canTrackUnauthenticated: null as boolean | null})\n\n\tpublic get canTrackUnauthenticated(): boolean {\n\t\treturn this.state.canTrackUnauthenticated === true\n\t}\n\n\tpublic get hasUpdatedCanTrack(): boolean {\n\t\treturn this.state.canTrackUnauthenticated !== null\n\t}\n\n\tconstructor() {\n\t\tthis.state.canTrackUnauthenticated = this.getCanTrackFromStorage()\n\t\t\t?? this.getCrossConsent(CookieBotConsentCategory.statistics)\n\t\t\t?? this.getCookieBotConsent(CookieBotConsentCategory.statistics)\n\t}\n\n\tpublic updateCanTrackUnauthenticated(canTrack: boolean): void {\n\t\tthis.state.canTrackUnauthenticated = canTrack\n\t\tlocalStorage.setItem(Tracking.CAN_TRACK_KEY, JSON.stringify(canTrack))\n\t}\n\n\tpublic login(method: string): void {\n\t\tLog.login(method)\n\t}\n\n\tpublic signUp(method: string): void {\n\t\tLog.signUp(method)\n\t}\n\n\tpublic event(category: string, action: string, label?: string, nonInteraction?: boolean): void {\n\t\tLog.event(\n\t\t\tcategory,\n\t\t\taction,\n\t\t\tlabel\n\t\t)\n\t}\n\n\tprivate getCanTrackFromStorage(): boolean | null {\n\t\tconst trackValue = localStorage.getItem(Tracking.CAN_TRACK_KEY)\n\n\t\tif (trackValue === null)\n\t\t\treturn null\n\n\t\ttry {\n\t\t\treturn JSON.parse(trackValue) === true\n\t\t} catch (error: any) {\n\t\t\tNotifications.debug(\"Failed to parse canTrackUnauthenticated: \" + error)\n\t\t\treturn null\n\t\t}\n\t}\n\n\tprivate getCrossConsent(category: CookieBotConsentCategory): boolean | null {\n\t\tlet cookieValue = getCookie(Tracking.CROSS_CONSENT_KEY)\n\n\t\tif (cookieValue === null || cookieValue === \"-1\")\n\t\t\treturn null\n\n\t\ttry {\n\t\t\tcookieValue = decodeURIComponent(cookieValue)\n\t\t\tconst parsedCookieConsent = JSON.parse(cookieValue)\n\t\t\treturn parsedCookieConsent && !!parsedCookieConsent[category]\n\t\t} catch (error: any) {\n\t\t\treturn null\n\t\t}\n\t}\n\n\tprivate getCookieBotConsent(category: CookieBotConsentCategory): boolean | null {\n\t\tlet cookieValue = getCookie(Tracking.COOKIEBOT_KEY)\n\n\t\tif (cookieValue === null || cookieValue === \"-1\")\n\t\t\treturn null\n\n\t\ttry {\n\t\t\tcookieValue = decodeURIComponent(cookieValue)\n\n\t\t\tconst parsedCookieConsent = JSON.parse(\n\t\t\t\tcookieValue.replace(/%2c/g, \",\")\n\t\t\t\t\t.replace(/'/g, \"\\\"\")\n\t\t\t\t\t.replace(/([{\\[,])\\s*([a-zA-Z0-9_]+?):/g, \"$1\\\"$2\\\":\")\n\t\t\t)\n\t\t\treturn parsedCookieConsent && !!parsedCookieConsent[category]\n\t\t} catch (error: any) {\n\t\t\treturn null\n\t\t}\n\t}\n}\n\nenum CookieBotConsentCategory {\n\tstatistics = \"statistics\",\n\tmarketing = \"marketing\",\n\tnecessary = \"necessary\",\n\tpreferences = \"preferences\"\n}\n\nexport default new Tracking()\n","export function getCookie(name: string): string | null {\n\treturn document.cookie.match(\"(^|;)\\\\s*\" + name + \"\\\\s*=\\\\s*([^;]+)\")?.pop() ?? null\n}\n","import Notifications from \"@/managers/session/notifications\"\nimport Locations from \"@/managers/location/locations\"\nimport {watch} from \"@/store/store\"\nimport {localStorage} from \"@/managers/system/fallbackStorage\"\nimport router from \"@/plugins/router\"\nimport type {RawLocation, Route} from \"vue-router\"\nimport Router from \"vue-router\"\nimport Routing from \"@/store/session/routing\"\n\nconst InstallImport = import(\"@/managers/system/install\")\nlet Install: typeof import(\"@/managers/system/install\").default | undefined\nInstallImport.then(install => Install = install.default)\n\nclass Navigation {\n\tpublic scrollPosition: number | null = null\n\tprivate readonly preferredLocationKeyKey: string = \"preferredLocationKey\"\n\n\tpublic get isRouting(): boolean {\n\t\treturn Routing.isRouting\n\t}\n\n\tpublic get routingStatus(): string | null {\n\t\treturn Routing.routingStatus\n\t}\n\n\tpublic get isUserBusy(): boolean {\n\t\tif (this.isRouting)\n\t\t\treturn true\n\n\t\treturn router.currentRoute.matched.some(r => r.meta.isUserBusy === true)\n\t}\n\n\tpublic get preferredLocationKey(): string | null {\n\t\ttry {\n\t\t\treturn localStorage.getItem(this.preferredLocationKeyKey)\n\t\t} catch (error: any) {\n\t\t\tNotifications.warning(\"Failed to get preferredLocationKey\", error)\n\t\t\treturn null\n\t\t}\n\t}\n\tpublic set preferredLocationKey(value: string | null) {\n\t\ttry {\n\t\t\tif (value !== null)\n\t\t\t\tlocalStorage.setItem(this.preferredLocationKeyKey, value)\n\t\t\telse\n\t\t\t\tlocalStorage.removeItem(this.preferredLocationKeyKey)\n\t\t} catch (error: any) {\n\t\t\tNotifications.warning(\"Failed to set preferredLocationKey\", error)\n\t\t}\n\t}\n\n\tconstructor() {\n\t\twatch(() => Locations.main, location => {\n\t\t\tif (location !== null)\n\t\t\t\tthis.preferredLocationKey = location.key\n\t\t})\n\t}\n\n\tpublic to(location: RawLocation): Promise {\n\t\treturn router.push(location)\n\t\t\t.catch(reason => {\n\t\t\t\tif (!Router.isNavigationFailure(reason, Router.NavigationFailureType.redirected))\n\t\t\t\t\tthrow reason\n\t\t\t})\n\t}\n\n\tpublic openNewTab(url: string): void {\n\t\tconst newWindow = window.open(url, \"_blank\")\n\n\t\tif (newWindow)\n\t\t\tnewWindow.focus()\n\t}\n\n\tpublic reload(): void {\n\t\tif (Install!.isUpdateReady)\n\t\t\tInstall!.update()\n\t\telse\n\t\t\twindow.location.reload()\n\t}\n\n\tpublic replaceQuery(changes: Record): Promise {\n\t\treturn router.replace({query: this.cloneQuery(changes)})\n\t}\n\n\tpublic cloneQuery(changes?: Record): Record {\n\t\tconst query = JSON.parse(JSON.stringify(router.currentRoute.query))\n\n\t\tif (changes)\n\t\t\tfor (const key in changes)\n\t\t\t\tquery[key] = changes[key]\n\n\t\treturn query\n\t}\n}\n\nexport default new Navigation()\n","export class Notification {\n\tpublic readonly type: NotificationType\n\tpublic readonly message: string\n\tpublic readonly title: string | null\n\n\tconstructor(type: NotificationType, message: string, title: string | null = null) {\n\t\tthis.type = type\n\t\tthis.message = message\n\t\tthis.title = title\n\t}\n\n\tpublic static information(message: string): Notification {\n\t\treturn new Notification(NotificationType.information, message)\n\t}\n\n\tpublic static error(message: string, title: string | null = null): Notification {\n\t\treturn new Notification(NotificationType.error, message, title)\n\t}\n\n\tpublic static warning(message: string): Notification {\n\t\treturn new Notification(NotificationType.warning, message)\n\t}\n\n\tpublic static debug(message: string): Notification {\n\t\treturn new Notification(NotificationType.debug, message)\n\t}\n}\n\nexport enum NotificationType {\n\tinformation,\n\terror,\n\twarning,\n\tdebug\n}\n","import { getModule, Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"../store\"\nimport type { Notification } from \"@/managers/data/session/notification\"\n\n@Module({dynamic: true, namespaced: true, name: \"session/notifications\", store})\nexport class Notifications extends VuexModule {\n\tpublic list: Notification[] = []\n\n\t@Mutation\n\tpublic add(notification: Notification): void {\n\t\tthis.list.push(notification)\n\t}\n}\n\n\nexport default getModule(Notifications)\n","import {Notification, NotificationType} from \"@/managers/data/session/notification\"\nimport State from \"@/store/session/notifications\"\nimport Log from \"@/managers/session/logging/log\"\nimport Page from \"@/managers/session/page\"\n\n// tslint:disable:no-console\nclass Notifications {\n\tpublic get list(): Notification[] {\n\t\treturn State.list\n\t}\n\n\tpublic information(message: string): void {\n\t\tconsole.info(message)\n\t\tLog.informationNotification(message)\n\t\tthis.addNotification(Notification.information(message))\n\t}\n\n\tpublic error(message: string, error?: Error): void {\n\t\tPage.callIfNotUnloaded(() => {\n\t\t\tif (error !== undefined)\n\t\t\t\tconsole.error(message, error)\n\t\t\telse\n\t\t\t\tconsole.error(message)\n\n\t\t\tconst combinedMessage = message + (error !== undefined ? \": \" + Notifications.getErrorMessage(error) : \"\")\n\t\t\tLog.error(message, error)\n\t\t\tthis.addNotification(Notification.error(combinedMessage))\n\t\t})\n\t}\n\n\tpublic errorNoneTracking(title: string, message: string): void {\n\t\tthis.addNotification(Notification.error(message, title))\n\t}\n\n\tpublic warning(message: string, error?: Error): void {\n\t\tPage.callIfNotUnloaded(() => {\n\t\t\tif (error !== undefined)\n\t\t\t\tconsole.warn(message, error)\n\t\t\telse\n\t\t\t\tconsole.warn(message)\n\n\t\t\tconst combinedMessage = message + (error !== undefined ? \": \" + Notifications.getErrorMessage(error) : \"\")\n\t\t\tLog.error(message, error, false)\n\t\t\tthis.addNotification(Notification.warning(combinedMessage))\n\t\t})\n\t}\n\n\tpublic debug(message: string): void {\n\t\tconsole.debug(message)\n\t\tthis.addNotification(Notification.debug(message))\n\t}\n\n\tprivate addNotification(notification: Notification): Notification {\n\t\tsetTimeout(() => State.add(notification), 0) // Prevent dependencies in vue code\n\t\treturn notification\n\t}\n\n\tprivate static getErrorMessage(error: Error): string {\n\t\treturn error.message\n\t\t\t? error.message\n\t\t\t: error.name\n\t\t\t\t? error.name\n\t\t\t\t: \"Unknown error\"\n\t}\n}\n\nexport {Notification, NotificationType}\nexport default new Notifications()\n","// @ts-ignore\nimport lifecycle from \"page-lifecycle/dist/lifecycle.native.mjs\"\n\nimport {Vue} from \"@/mixins/combinations\"\nimport type FileReference from \"@/managers/data/file/fileReference\"\nimport {when} from \"@/store/store\"\nimport Configuration from \"@/managers/system/configuration\"\nimport type {PageState} from \"@/types/page-lifecycle\"\n\nclass Page {\n\tprivate data: {state: PageState}\n\n\tprivate preventUnloadSet = new Set()\n\tprivate unloadHandler!: (event: BeforeUnloadEvent) => string | undefined\n\n\tpublic get isUnloaded(): boolean {\n\t\treturn this.data.state === \"frozen\" || this.data.state === \"terminated\"\n\t}\n\n\tpublic get isVisible(): boolean {\n\t\treturn !this.isUnloaded && this.data.state !== \"hidden\"\n\t}\n\n\tprivate get isUnloadPrevented(): boolean {\n\t\treturn this.preventUnloadSet.size !== 0\n\t}\n\n\tconstructor() {\n\t\tthis.data = Vue.observable({state: lifecycle.state})\n\n\t\tlifecycle.addEventListener(\"statechange\", (event: any) => this.data.state = event.newState)\n\t\tthis.unloadHandler = event => this.handleUnload(event)\n\t}\n\n\tpublic callIfNotUnloaded(call: () => void): void {\n\t\tif (this.isUnloaded)\n\t\t\treturn\n\n\t\tsetTimeout(() => {\n\t\t\tif (!this.isUnloaded)\n\t\t\t\tcall()\n\t\t}, Configuration.system.isUnloadedCheckDelay)\n\t}\n\n\tpublic preventUnloadWhileUploading(file: FileReference): void {\n\t\tif (!file.isUploading)\n\t\t\tthrow new Error(\"Can't prevent unload on a file that's not uploading\")\n\n\t\tconst id = file.id\n\n\t\tthis.preventUnload(id)\n\t\twhen(() => !file.isUploading)\n\t\t\t.then(() => this.allowUnload(id))\n\t}\n\n\tpublic preventUnload(id: number): void {\n\t\tif (!this.isUnloadPrevented)\n\t\t\twindow.addEventListener(\"beforeunload\", this.handleUnload)\n\t\tthis.preventUnloadSet.add(id)\n\t}\n\n\tpublic allowUnload(id: number): void {\n\t\tthis.preventUnloadSet.delete(id)\n\n\t\tif (!this.isUnloadPrevented)\n\t\t\twindow.removeEventListener(\"beforeunload\", this.handleUnload)\n\t}\n\n\tprivate handleUnload(event: BeforeUnloadEvent): string | undefined {\n\t\tevent.preventDefault()\n\t\tconst message = \"You have files uploading\"\n\t\tevent.returnValue = message\n\t\treturn message\n\t}\n}\n\nexport default new Page()\n","import {Vue} from \"@/mixins/combinations\"\nimport {localStorage} from \"@/managers/system/fallbackStorage\"\n\nclass SignUpModules {\n\tpublic readonly scheduledModule = \"scheduleContent\"\n\tpublic readonly dealsModule = \"commentSales\"\n\tpublic readonly liveModule = \"liveShopping\"\n\n\tprivate readonly selectedModulesKey = \"selectedModules\"\n\tprivate readonly state: {modules: string[]}\n\n\tpublic get modules(): string[] {\n\t\treturn this.state.modules.slice()\n\t}\n\n\tconstructor() {\n\t\tthis.state = Vue.observable({modules: this.getModules()})\n\t}\n\n\tpublic setModules(modules: string[]) {\n\t\tmodules = this.filterModules(modules)\n\n\t\tthis.state.modules = modules\n\t\tlocalStorage.setItem(this.selectedModulesKey, modules.join(\",\"))\n\t}\n\n\tpublic isUsingCommerce(modules: string []): boolean {\n\t\treturn modules.indexOf(this.dealsModule) !== -1 || modules.indexOf(this.liveModule) !== -1\n\t}\n\n\tprivate getModules(): string[] {\n\t\tconst raw = localStorage.getItem(this.selectedModulesKey)\n\t\tif (raw === null)\n\t\t\treturn []\n\n\t\treturn this.filterModules(raw.split(\",\"))\n\t}\n\n\tprivate filterModules(modules: string[]): string[] {\n\t\tconst validModules = [this.scheduledModule, this.dealsModule, this.liveModule]\n\n\t\treturn modules.filter(module => validModules.indexOf(module) !== -1)\n\t}\n}\n\nexport default new SignUpModules()\n","import Intercom, {boot, show, shutdown, update} from \"@intercom/messenger-js-sdk\"\nimport Locations from \"@/managers/location/locations\"\nimport Organizations, {OrganizationType} from \"@/managers/organization/organizations\"\nimport User from \"@/managers/user/user\"\nimport configuration from \"@/managers/system/configuration\"\nimport Install from \"@/managers/system/install\"\nimport {isPWA} from \"@/managers/system/capabilities\"\nimport ThrottledAction from \"@/utility/actions/throttledAction\"\nimport Services from \"@/managers/location/services\"\nimport {firstOrNull} from \"@/utility/structure/array\"\nimport {watch} from \"@/store/store\"\nimport SignUpModules from \"@/managers/session/signUpModules\"\nimport Navigation from \"@/managers/session/navigation\"\nimport ContentSubscriptions from \"@/managers/location/contentSubscriptions\"\n\nclass Support {\n\tprivate isBooted = false\n\tprivate updateAction: ThrottledAction\n\n\tconstructor() {\n\t\tthis.updateAction = new ThrottledAction(() => this.update(), 1000)\n\t\tIntercom({hide_default_launcher: true, app_id: configuration.connections.intercomAppId})\n\n\t\twatch(\n\t\t\t() => User.current,\n\t\t\tuser => {\n\t\t\t\tif (user !== null)\n\t\t\t\t\tthis.updateAction.delay()\n\t\t\t\telse {\n\t\t\t\t\tthis.isBooted = false\n\t\t\t\t\tshutdown()\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\twatch(\n\t\t\t() => [Organizations.isReady && Locations.isReady, Services.isReady, Organizations.main, Organizations?.main?.hasUpdatedPermission, Locations.main, SignUpModules.modules, Navigation.isUserBusy, ContentSubscriptions.isReady],\n\t\t\tvalues => {\n\t\t\t\tif (!User.isReady || !values[0])\n\t\t\t\t\treturn\n\n\t\t\t\tthis.updateAction.delay()\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic show(): void {\n\t\tshow()\n\t}\n\n\tprivate update(): void {\n\t\tconst user = User.current!\n\t\tconst location = Locations.main\n\t\tconst organization = Organizations.main\n\t\tconst facebook = Services.isReady ? firstOrNull(Services.list!, s => s.isFacebook) : null\n\t\tconst instagram = Services.isReady ? firstOrNull(Services.list!, s => s.isFacebook) : null\n\n\t\tconst argument = {\n\t\t\thide_default_launcher: true,\n\t\t\tapp_id: configuration.connections.intercomAppId,\n\t\t\temail: user.emailAddress,\n\t\t\tuser_id: user.id,\n\t\t\tname: user.name,\n\t\t\tuserLocationsCount: Locations.count ?? 0,\n\t\t\tisUserBusy: Navigation.isUserBusy,\n\t\t\tcurrentPlatformType: isPWA ? \"PWA\" : \"Web\",\n\t\t\tcurrentFrontendVersion: Install.version,\n\t\t\tcurrentFrontendIsUpdatable: Install.isUpdateReady,\n\t\t\tsignUpModules: SignUpModules.modules.join(\",\"),\n\t\t\tcurrentOrganizationId: organization?.id ?? null,\n\t\t\tcurrentOrganizationName: organization?.name ?? null,\n\t\t\tcurrentOrganizationIsSingleStore: organization?.isSingleStore ?? false,\n\t\t\tcurrentOrganizationIsBrand: organization?.isBrand ?? false,\n\t\t\tcurrentOrganizationIsAdmin: organization?.canManage ?? false,\n\t\t\tcurrentLocationId: location?.id ?? null,\n\t\t\tcurrentLocationName: location?.name ?? null,\n\t\t\tcurrentLocationHasDeals: location?.isDealsEnabled ?? null,\n\t\t\tcurrentLocationHasLiveDeals: location?.isLiveDealsEnabled ?? null,\n\t\t\tcurrentLocationHasSubscriptions: ContentSubscriptions.hasAny,\n\t\t\tcurrentLocationMembersCount: location?.userCount ?? null,\n\t\t\tcurrentLocationFollowersCount: location?.followers ?? null,\n\t\t\tcurrentLocationFacebookAccount: facebook?.url ?? null,\n\t\t\tcurrentLocationFacebookIsWorking: facebook?.connections.some(c => !c.mustRenew) ?? false,\n\t\t\tcurrentLocationInstagramAccount: instagram?.url ?? null,\n\t\t\tcurrentLocationInstagramIsWorking: instagram?.connections.some(c => !c.mustRenew) ?? false\n\t\t}\n\n\t\tif (this.isBooted)\n\t\t\tupdate(argument)\n\t\telse\n\t\t\tboot(argument)\n\n\t\tthis.isBooted = true\n\t}\n}\n\nexport default new Support()\n","const userAgent = window.navigator.userAgent\n\nexport const isTouchDevice = !!(\"ontouchstart\" in window || navigator.maxTouchPoints)\nexport const isPWA = window.matchMedia(\"(display-mode: standalone)\").matches\nexport const isFireFox = userAgent.indexOf(\"FireFix\") !== -1\nexport const isChrome = userAgent.indexOf(\"chrome\") !== -1 || userAgent.indexOf(\"Chrome\") !== -1\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent)\n\n\nconst platform = getPlatform()\nexport const isWindows = /(Win)/i.test(platform)\nexport const isMacOS = /(Mac)/i.test(platform)\nexport const isLinux = /(Linux)/i.test(platform)\nexport const isUnix = /(X11)/i.test(platform)\nexport const isIOS = /(iPhone|iPod|iPad)/i.test(platform)\nexport const isAndroid = /(android)/i.test(platform)\n\nexport const intlSupport = !!Intl\nexport const intlNumberSupport = intlSupport && !!Intl.NumberFormat\nexport const intlNumberFormatRangeSupport = intlNumberSupport && !!Intl.NumberFormat.prototype.formatRange\n\nfunction getPlatform(): string {\n\tif ((navigator as any).userAgentData) {\n\t\treturn (navigator as any).userAgentData.platform\n\t}\n\tif (navigator.platform ) {\n\t\tif (navigator.userAgent && /android/.test(navigator.userAgent)) {\n\t\t\t// android device’s navigator.platform is often set as 'linux', so let’s use userAgent for them\n\t\t\treturn \"android\"\n\t\t}\n\t\treturn navigator.platform\n\t}\n\treturn \"unknown\"\n}\n","const minuteMs = 60_000\nconst hourMs = 60 * minuteMs\nexport default {\n\tminimumDate: -62135596800000,\n\tsystem: {\n\t\tversion: process.env.VUE_APP_VERSION!,\n\t\tupdateThreshold: 3,\n\t\tpatchNotesDismissDuration: 12 * hourMs,\n\t\tnowUpdateInterval: 10_000,\n\t\tisUnloadedCheckDelay: 300\n\t},\n\tgeneral: {\n\t\tqueryDelay: 400,\n\t\tcurrencies: [\"DKK\", \"EUR\", \"GBP\", \"NOK\", \"SEK\", \"USD\"],\n\t\tdefaultCurrency: \"DKK\"\n\t},\n\tconnections: {\n\t\tportalPath: process.env.VUE_APP_CONNECTIONS_PORTAL_PATH!,\n\t\tfacebookAppId: process.env.VUE_APP_CONNECTIONS_FACEBOOK_APP_ID!,\n\t\tintercomAppId: process.env.VUE_APP_CONNECTIONS_INTERCOM_APP_ID!,\n\t\tglobalSiteTagId: process.env.VUE_APP_CONNECTIONS_GLOBAL_SITE_TAG_ID!,\n\t\terrorLogPath: \"https://errorlog.postofficesocial.com\",\n\t\terrorLogEnvironment: process.env.VUE_APP_ERROR_LOG_ENVIRONMENT!,\n\t\tfacebookSdkTimeout: 10_000\n\t},\n\tlocalization: {\n\t\tdefault: process.env.VUE_APP_LOCALIZATION_DEFAULT!,\n\t\tfallback: \"en\",\n\t\tnames: {\"en\": \"English\",\"da\": \"Dansk\"}\n\t},\n\tdocuments: {\n\t\ttermsVersion: \"TermsOfUse:v1\"\n\t},\n\tnavigation: {\n\t\tnavigationListMaxItems: 10\n\t},\n\tfiles: {\n\t\tstatusUpdateInterval: 10_000\n\t},\n\tsignUp: {\n\t\tredirectKey: \"signUpRedirect\"\n\t},\n\tdeals: {\n\t\torders: {\n\t\t\tanonymizedName: \"Anonymized\",\n\t\t\tlist: {\n\t\t\t\tupdateInterval: 10_000\n\t\t\t}\n\t\t},\n\t\tlist: {\n\t\t\tpageSize: 10,\n\t\t\tupdateInterval: 20_000\n\t\t},\n\t\tblackListedPlaceholders: [\"ProductDescription\"]\n\t},\n\tlive: {\n\t\tgoLiveUrl: \"https://www.facebook.com/live/producer/?target_id=$id\"\n\t},\n\tcontent: {\n\t\tpageSize: 20\n\t},\n\tcalendar: {\n\t\tloadChunkWeeks: 2,\n\t\tloadInitialWeek: -1,\n\t\tloadMinimumInterval: 100,\n\t\tlimitPastWeeks: 100,\n\t\tlimitFutureWeeks: 100,\n\t\tupdateInterval: 15_000,\n\t\terrorDelay: 1_000,\n\t\tpublishSuccessCloseDelay: 2_500,\n\t\texpireInterval: 6 * hourMs\n\t},\n\tpost: {\n\t\tdefaultPublishTime: 12,\n\t\tdateMinuteInterval: 5,\n\t\tpastDateBuffer: 5 * minuteMs,\n\t\tpostingSoonLimit: 15_000,\n\t\tinvalidLinks: [/^https:\\/\\/(?:www.)?facebook.com\\/events/],\n\t\tdeals: {\n\t\t\tdefaultSaleToDurationDays: 4\n\t\t},\n\t\tlive: {\n\t\t\tdefaultMatchEndDuration: hourMs,\n\t\t\tmatchEndDurationOptions: [\n\t\t\t\t5 * minuteMs,\n\t\t\t\t15 * minuteMs,\n\t\t\t\t30 * minuteMs,\n\t\t\t\thourMs,\n\t\t\t\t2 * hourMs,\n\t\t\t\t4 * hourMs,\n\t\t\t\t6 * hourMs,\n\t\t\t\t10 * hourMs],\n\t\t}\n\t},\n\timageEditor: {\n\t\tpath: \"/imageEditor/index.html\",\n\t\tmaxNumberOfColorsAndFonts: 6\n\t},\n\tinsights: {\n\t\tpageSize: 20,\n\t\tstandardPeriods: [7, 28, 84],\n\t\tmaxPeriod: 93\n\t}\n}\n","import Notifications from \"@/managers/session/notifications\"\n\nclass FallbackStorage {\n\tpublic readonly type: \"localStorage\" | \"sessionStorage\"\n\tprivate storage: Storage | null = null\n\tprivate fallback: Map | null = null\n\n\tpublic get isAvailable(): boolean {\n\t\tif (this.storage !== null)\n\t\t\treturn true\n\t\tif (this.fallback !== null)\n\t\t\treturn false\n\n\t\tif (FallbackStorage.isStorageAvailable(this.type)) {\n\t\t\tthis.storage = window[this.type]\n\t\t\treturn true\n\t\t}\n\n\t\tthis.fallback = new Map()\n\t\tNotifications.warning(\"Storage of type \" + this.type + \" is not available\")\n\t\treturn false\n\t}\n\n\tconstructor(type: \"localStorage\" | \"sessionStorage\") {\n\t\tthis.type = type\n\t}\n\n\tpublic getItem(key: string): string | null {\n\t\treturn this.isAvailable\n\t\t\t? this.storage!.getItem(key)\n\t\t\t: this.fallback!.get(key) ?? null\n\t}\n\n\tpublic setItem(key: string, value: string): void {\n\t\tif (this.isAvailable)\n\t\t\tthis.storage!.setItem(key, value)\n\t\telse\n\t\t\tthis.fallback!.set(key, value)\n\t}\n\n\tpublic removeItem(key: string): void {\n\t\tif (this.isAvailable)\n\t\t\tthis.storage!.removeItem(key)\n\t\telse\n\t\t\tthis.fallback!.delete(key)\n\t}\n\n\tprivate static isStorageAvailable(type: \"localStorage\" | \"sessionStorage\"): boolean {\n\t\tlet storage\n\t\tconst key = \"__storage_test__\"\n\t\ttry {\n\t\t\tstorage = window[type]\n\t\t\tstorage.setItem(key, key)\n\t\t\tstorage.removeItem(key)\n\t\t\treturn true\n\t\t} catch (e) {\n\t\t\treturn false\n\t\t}\n\t}\n}\n\nexport const localStorage = new FallbackStorage(\"localStorage\")\nexport const sessionStorage = new FallbackStorage(\"sessionStorage\")\n","export enum InstallState {\n\tcurrent,\n\tupdateAvailable,\n\tupdateIsReady,\n\tisUpdating\n}\n","import {getModule, Module, Mutation, VuexModule} from \"vuex-module-decorators\"\nimport store from \"../store\"\nimport {InstallState} from \"@/store/data/installState\"\n\n@Module({dynamic: true, namespaced: true, name: \"system/install\", store})\nexport class Install extends VuexModule {\n\tpublic current = InstallState.current\n\tpublic newVersion: [number, number, number] | null = null\n\tpublic hasRequestedUpdateDialog = false\n\tpublic isOffline = false\n\n\t@Mutation\n\tpublic setCurrent(value: InstallState): void {\n\t\tthis.current = value\n\t}\n\n\t@Mutation\n\tpublic setNewVersion(value: [number, number, number] | null): void {\n\t\tthis.newVersion = value\n\t}\n\n\t@Mutation\n\tpublic setIsOffline(value: boolean): void {\n\t\tthis.isOffline = value\n\t}\n\n\t@Mutation\n\tpublic setHasRequestedUpdateDialog(value: boolean): void {\n\t\tthis.hasRequestedUpdateDialog = value\n\t}\n}\n\nexport default getModule(Install)\n","import State from \"@/store/system/install\"\nimport {InstallState} from \"@/store/data/installState\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Configuration from \"@/managers/system/configuration\"\nimport Tracking from \"@/managers/session/logging/tracking\"\n\nclass Install {\n\tpublic readonly firstVersion = \"1.0.0\"\n\tpublic readonly version = Configuration.system.version\n\tprivate readonly versionParser = /(^\\d+)\\.(\\d+)\\.(\\d+)(?:-.+)?$/\n\tprivate readyUpdate: ServiceWorkerRegistration | null = null\n\n\tpublic get versionNoReleaseInfo(): string {\n\t\treturn this.version.split(\"-\")[0]\n\t}\n\n\tpublic get isUpdateAvailable(): boolean {\n\t\treturn State.current === InstallState.updateAvailable\n\t}\n\n\tpublic get isUpdateReady(): boolean {\n\t\treturn State.current === InstallState.updateIsReady\n\t}\n\n\tpublic get newVersion(): string | null {\n\t\tconst newVersion = State.newVersion\n\n\t\treturn newVersion !== null ? `${newVersion[0].toString(10)}.${newVersion[1].toString(10)}.${newVersion[2].toString(10)}` : null\n\t}\n\n\tpublic get isImportantUpdateReady(): boolean {\n\t\tconst currentVersion = this.parseVersion(this.version)\n\t\tconst newVersion = State.newVersion\n\t\treturn this.isUpdateReady && newVersion !== null\n\t\t\t&& (newVersion[0] > currentVersion[0]\n\t\t\t\t|| newVersion[1] > currentVersion[1]\n\t\t\t\t|| newVersion[2] > currentVersion[2] + Configuration.system.updateThreshold)\n\t}\n\n\tpublic get hasRequestedUpdateDialog(): boolean {\n\t\treturn State.hasRequestedUpdateDialog\n\t}\n\tpublic set hasRequestedUpdateDialog(value: boolean) {\n\t\tState.setHasRequestedUpdateDialog(value)\n\t}\n\n\tpublic get canRequestUpdateDialog(): boolean {\n\t\treturn this.isUpdateReady && !this.hasRequestedUpdateDialog\n\t}\n\n\tpublic get isUpdating(): boolean {\n\t\treturn State.current === InstallState.isUpdating\n\t}\n\n\tpublic get isOffline(): boolean {\n\t\treturn State.isOffline\n\t}\n\n\tpublic set isOffline(value: boolean) {\n\t\tState.setIsOffline(value)\n\t}\n\n\tconstructor() {\n\t\ttry {\n\t\t\tthis.isOffline = !window.navigator.onLine\n\t\t\twindow.addEventListener(\"offline\", () => this.isOffline = true)\n\t\t\twindow.addEventListener(\"online\", () => this.isOffline = false)\n\n\t\t\tif (!window.navigator.serviceWorker) {\n\t\t\t\tTracking.event(\"ServiceWorker\", \"Not available\", undefined, true)\n\t\t\t\tNotifications.debug(\"Service worker not available\")\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tlet isRefreshing = false\n\t\t\twindow.navigator.serviceWorker.addEventListener(\"controllerchange\", () => {\n\t\t\t\tif (isRefreshing)\n\t\t\t\t\treturn\n\t\t\t\tisRefreshing = true\n\t\t\t\twindow.location.reload()\n\t\t\t})\n\n\t\t\twindow.navigator.serviceWorker.addEventListener(\"message\", event => {\n\t\t\t\tif (!event.data || !event.data.hasOwnProperty(\"type\"))\n\t\t\t\t\treturn\n\n\t\t\t\tswitch (event.data.type) {\n\t\t\t\t\tcase \"version\":\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tState.setNewVersion(this.parseVersion(event.data.version))\n\t\t\t\t\t\t\tNotifications.debug(\"New version ready: \" + event.data.version)\n\t\t\t\t\t\t\tTracking.event(\"Version\", \"ready\", event.data.version, true)\n\t\t\t\t\t\t} catch (error: any) {\n\t\t\t\t\t\t\tNotifications.warning(\"Failed to set new version\", error)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t})\n\t\t} catch (error: any) {\n\t\t\tNotifications.warning(\"Failed to listen to serviceWorker: \" + error.message)\n\t\t}\n\t\tTracking.event(\"Version\", \"current\", this.version, true)\n\t}\n\n\tpublic updateIsAvailable(): void {\n\t\tState.setCurrent(InstallState.updateAvailable)\n\t}\n\n\tpublic updateIsReady(registration: ServiceWorkerRegistration): void {\n\t\tthis.readyUpdate = registration\n\t\tif (this.readyUpdate.waiting !== null)\n\t\t\tthis.readyUpdate.waiting.postMessage({type: \"getVersion\"})\n\t\telse\n\t\t\tNotifications.warning(\"Worker waiting for update is null\")\n\n\t\tState.setCurrent(InstallState.updateIsReady)\n\t}\n\n\tpublic update(): void {\n\t\tif (!this.isUpdateReady || this.readyUpdate === null)\n\t\t\tthrow new Error(\"Update is not ready\")\n\n\t\tif (this.readyUpdate.waiting == null)\n\t\t\tthrow new Error(\"No service worker waiting\")\n\n\t\tState.setCurrent(InstallState.isUpdating)\n\t\tthis.readyUpdate.waiting.postMessage({type: \"skipWaiting\"})\n\t}\n\n\tprivate parseVersion(value: string): [number, number, number] {\n\t\tconst result = this.versionParser.exec(value)\n\n\t\tif (result === null)\n\t\t\tthrow new Error(`Failed to parse version: ${value}`)\n\n\t\treturn result.slice(1, 4).map(n => parseInt(n, 10)) as [number, number, number]\n\t}\n}\n\nexport default new Install()\n","import Vue from \"vue\"\nimport CalendarType from \"@/managers/data/preferences/calendarType\"\nimport {localStorage} from \"@/managers/system/fallbackStorage\"\nimport Notifications from \"@/managers/session/notifications\"\nimport type { DealState } from \"@chaosinsight/postoffice-portalclient\"\n\nclass Preferences {\n\tprivate static readonly storageKey = \"preferences\"\n\tprivate state = Vue.observable({calendarType: CalendarType.list, dealsFilter: {state: null, query: \"\"} as DealFilterPreference})\n\n\tpublic get calendarType(): CalendarType {\n\t\treturn this.state.calendarType\n\t}\n\tpublic set calendarType(value: CalendarType) {\n\t\tthis.state.calendarType = value\n\t\tthis.save()\n\t}\n\n\tpublic get dealsFilter(): DealFilterPreference {\n\t\treturn this.state.dealsFilter\n\t}\n\tpublic set dealsFilter(value: DealFilterPreference) {\n\t\tthis.state.dealsFilter = value\n\t\tthis.save()\n\t}\n\n\tconstructor() {\n\t\ttry {\n\t\t\tconst data = localStorage.getItem(Preferences.storageKey)\n\n\t\t\tif (data !== null) {\n\t\t\t\tconst parsedData = JSON.parse(data)\n\n\t\t\t\tif (parsedData.calendarType)\n\t\t\t\t\tthis.state.calendarType = parsedData.calendarType\n\t\t\t\tif (parsedData.dealsFilter)\n\t\t\t\t\tthis.state.dealsFilter = parsedData.dealsFilter\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tNotifications.warning(\"Failed to load preferences\", error as Error)\n\t\t}\n\t}\n\n\tprivate save(): void {\n\t\tlocalStorage.setItem(Preferences.storageKey, JSON.stringify(this.state))\n\t}\n}\n\nexport type DealFilterPreference = {state: DealState | null, query: string}\nexport default new Preferences()\n","import { getModule, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"../store\"\nimport type {IStoreList} from \"@/store/data/iStoreList\"\nimport type PrivateServiceConnection from \"@/managers/data/serviceConnection/privateServiceConnection\"\n\n@Module({dynamic: true, namespaced: true, name: \"user/serviceConnections\", store})\nexport class ServiceConnections extends VuexModule implements IStoreList {\n\tpublic list: PrivateServiceConnection[] | null = null\n\tpublic isAutomaticallyRenewing = false\n\tpublic hasAutomaticallyRenewed = false\n\tpublic isRemoving = false\n\n\tpublic get isReady(): boolean {\n\t\treturn this.list !== null\n\t}\n\n\t@Mutation\n\tpublic setList(value: PrivateServiceConnection[] | null): void {\n\t\tthis.list = value\n\t}\n\n\t@Mutation\n\tpublic setIsAutomaticallyRenewing(value: boolean): void {\n\t\tthis.isAutomaticallyRenewing = value\n\t}\n\n\t@Mutation\n\tpublic setHasAutomaticallyRenewed(value: boolean): void {\n\t\tthis.hasAutomaticallyRenewed = value\n\t}\n\n\t@Mutation\n\tpublic setIsRemoving(value: boolean): void {\n\t\tthis.isRemoving = value\n\t}\n\n\t@Mutation\n\tpublic setConnectionRenewed(index: number): void {\n\t\tthis.list![index].mustRenew = false\n\t}\n\n\t@Mutation\n\tpublic removeConnection(index: number): void {\n\t\tthis.list!.splice(index, 1)\n\t}\n}\n\nexport default getModule(ServiceConnections)\n","import type {IPrivateServiceConnection} from \"@chaosinsight/postoffice-portalclient\"\nimport {ServiceConnectionType} from \"@chaosinsight/postoffice-portalclient\"\nimport ServiceConnection from \"@/managers/data/serviceConnection/serviceConnection\"\n\nexport default class PrivateServiceConnection extends ServiceConnection {\n\tpublic locationId: number\n\tpublic errorMessage: string | null\n\n\tconstructor(id: string, typeId: ServiceConnectionType, serviceId: string, mustRenew: boolean, createdOn: Date, modifiedOn: Date, locationId: number, errorMessage: string | null) {\n\t\tsuper(id, typeId, serviceId, mustRenew, createdOn, modifiedOn)\n\t\tthis.locationId = locationId\n\t\tthis.errorMessage = errorMessage\n\t}\n\n\tpublic static fromApi(data: IPrivateServiceConnection): PrivateServiceConnection {\n\t\treturn new PrivateServiceConnection(\n\t\t\tdata.Id,\n\t\t\tdata.TypeId,\n\t\t\tdata.ServiceId,\n\t\t\tdata.MustRenew,\n\t\t\tnew Date(data.CreatedOn),\n\t\t\tnew Date(data.ModifiedOn),\n\t\t\tdata.LocationId,\n\t\t\tdata.ErrorMessage)\n\t}\n}\n\nexport {ServiceConnectionType}\n","import State from \"@/store/user/serviceConnections\"\nimport Portal from \"@/managers/portal\"\nimport List from \"@/managers/base/list\"\nimport Authentication from \"@/managers/authentication/authentication\"\nimport FacebookAccounts from \"@/managers/facebook/accounts\"\nimport FacebookAuthentication from \"@/managers/facebook/authentication\"\nimport Permissions from \"@/managers/facebook/permissions\"\nimport PrivateServiceConnection, {ServiceConnectionType} from \"@/managers/data/serviceConnection/privateServiceConnection\"\nimport {watch} from \"@/store/store\"\nimport type FacebookAccount from \"@/managers/data/facebook/facebookAccount\"\nimport {firstOrNull} from \"@/utility/structure/array\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Services from \"@/managers/location/services\"\nimport Tracking from \"@/managers/session/logging/tracking\"\n\nclass ServiceConnections extends List {\n\tprivate automaticallyRenewingPromise: Promise | null = null\n\tprivate removePromise: Promise | null = null\n\n\tpublic get hasAutomaticallyRenewed(): boolean {\n\t\treturn this.state.hasAutomaticallyRenewed\n\t}\n\n\tpublic get isAutomaticallyRenewing(): boolean {\n\t\treturn this.state.isAutomaticallyRenewing\n\t}\n\n\tpublic get isRemoving(): boolean {\n\t\treturn this.state.isRemoving\n\t}\n\n\tpublic get canAutomaticallyRenewFacebook(): boolean | null {\n\t\treturn this.canAutomaticallyRenew !== null\n\t\t\t? this.canAutomaticallyRenew && Permissions.hasAllPagePermissions\n\t\t\t: null\n\t}\n\n\tpublic get canAutomaticallyRenewInstagram(): boolean | null {\n\t\treturn this.canAutomaticallyRenew !== null\n\t\t\t? this.canAutomaticallyRenew && Permissions.hasAllInstagramPermissions\n\t\t\t: null\n\t}\n\n\tpublic get mustRenewAny(): boolean {\n\t\treturn this.isReady && this.list!.some(connection => connection.mustRenew)\n\t}\n\n\tpublic get mustRenewList(): PrivateServiceConnection[] {\n\t\treturn this.isReady\n\t\t\t? Permissions.hasPermissionsChanged\n\t\t\t\t? this.list!\n\t\t\t\t: this.list!.filter(connection => connection.mustRenew)\n\t\t\t: []\n\t}\n\n\tprotected get state(): typeof State {\n\t\treturn State\n\t}\n\n\tprotected get dependent(): true | null {\n\t\treturn Authentication.isAuthenticated || null\n\t}\n\n\tprivate get canAutomaticallyRenew(): boolean | null {\n\t\tif (FacebookAuthentication.hasModuleFailed)\n\t\t\treturn false\n\n\t\tif (!FacebookAuthentication.hasCheckedLogin || FacebookAuthentication.isLoggingIn)\n\t\t\treturn null\n\n\t\tif (!FacebookAuthentication.isLoggedIn)\n\t\t\treturn false\n\n\t\tif (!Permissions.hasCheckedPermissions)\n\t\t\treturn null\n\n\t\treturn true\n\t}\n\n\tconstructor() {\n\t\tsuper(\"user service connections\")\n\n\t\twatch(\n\t\t\t() => this.isReady && Permissions.hasAllPagePermissions && FacebookAccounts.isReady,\n\t\t\tisReady => {\n\t\t\t\tif (!isReady || this.hasAutomaticallyRenewed)\n\t\t\t\t\treturn\n\n\t\t\t\tthis.attemptAutomaticRenewal()\n\t\t\t\t\t.catch(reason => Notifications.warning(\"Failed to automatically renew service connections\", reason))\n\t\t\t}, {immediate: true})\n\t}\n\n\tpublic attemptAutomaticRenewal(): Promise {\n\t\tif (this.automaticallyRenewingPromise === null) {\n\t\t\tif (this.isRemoving)\n\t\t\t\treturn Promise.reject(new Error(\"Can't renew connections while removing\"))\n\n\t\t\tconst mustRenew = this.mustRenewList.filter(c => c.isFacebook || Permissions.hasAllInstagramPermissions)\n\t\t\tconst accounts = FacebookAccounts.list ?? []\n\n\t\t\tTracking.event(\"ServiceConnections\", \"Must renew\", mustRenew.length > 0\n\t\t\t\t? accounts.length > 0\n\t\t\t\t\t? \"Can attempt\"\n\t\t\t\t\t: \"Can't attempt\"\n\t\t\t\t: \"No need\", true)\n\t\t\tif (mustRenew.length > 0 && accounts.length > 0)\n\t\t\t\tthis.automaticallyRenewingPromise = this.renew(mustRenew, accounts)\n\t\t\t\t\t.then(() => this.mustRenewList.length === 0)\n\t\t\t\t\t.finally(() => this.automaticallyRenewingPromise = null)\n\t\t\telse {\n\t\t\t\tthis.automaticDone()\n\t\t\t\treturn Promise.resolve(true)\n\t\t\t}\n\t\t}\n\n\t\treturn this.automaticallyRenewingPromise\n\t}\n\n\tpublic removeMustRenewConnections(): Promise {\n\t\tif (this.removePromise === null) {\n\t\t\tif (this.mustRenewList.length === 0)\n\t\t\t\treturn Promise.resolve()\n\n\t\t\tif (this.isAutomaticallyRenewing)\n\t\t\t\treturn Promise.reject(new Error(\"Can't remove connections while automatically renewing\"))\n\n\t\t\tthis.state.setIsRemoving(true)\n\n\t\t\tthis.removePromise = Promise.all(this.mustRenewList.map(connection => this.removeConnection(connection)))\n\t\t\t\t.then(() => {})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.state.setIsRemoving(false)\n\t\t\t\t\tthis.removePromise = null\n\t\t\t\t})\n\t\t}\n\n\t\treturn this.removePromise\n\t}\n\n\tpublic getFromLocation(id: number, type: ServiceConnectionType): PrivateServiceConnection | null {\n\t\tif (!this.isReady)\n\t\t\treturn null\n\n\t\treturn firstOrNull(this.list!, connection => connection.locationId === id && connection.type === type)\n\t}\n\n\tprotected apiLoad(dependent: boolean): Promise {\n\t\treturn Portal.call.serviceConnections.get().response\n\t\t\t.then(connections => connections.map(connection => PrivateServiceConnection.fromApi(connection)))\n\t}\n\n\tprotected reset(): void {\n\t\tsuper.reset()\n\t\tthis.state.setHasAutomaticallyRenewed(false)\n\t\tthis.state.setIsAutomaticallyRenewing(false)\n\t}\n\n\tprivate automaticDone(): void {\n\t\tthis.state.setHasAutomaticallyRenewed(true)\n\t}\n\n\tprivate renew(connections: PrivateServiceConnection[], accounts: FacebookAccount[]): Promise {\n\t\tthis.state.setIsAutomaticallyRenewing(true)\n\t\tconst calls: Array> = []\n\n\t\tfor (const connection of connections) {\n\t\t\tconst account = firstOrNull(accounts, a => a.id === connection.serviceId)\n\n\t\t\tif (account !== null) {\n\t\t\t\tif (account.hasRequiredTasks)\n\t\t\t\t\tcalls.push(this.renewConnection(connection, account))\n\t\t\t\telse\n\t\t\t\t\tNotifications.warning(\"User no longer has rights to service: \" + connection.serviceId)\n\t\t\t} else\n\t\t\t\tNotifications.warning(\"User no longer has access to service: \" + connection.serviceId)\n\t\t}\n\t\treturn Promise.all(calls)\n\t\t\t.finally(() => {\n\t\t\t\tthis.state.setIsAutomaticallyRenewing(false)\n\t\t\t\tthis.automaticDone()\n\n\t\t\t\tTracking.event(\"ServiceConnections\", \"Automatic renew\", this.mustRenewAny\n\t\t\t\t\t? connections.length === this.mustRenewList.length\n\t\t\t\t\t\t? \"Partial\"\n\t\t\t\t\t\t: \"Failed\"\n\t\t\t\t\t: \"Success\", true)\n\t\t\t})\n\t}\n\n\tprivate async removeConnection(connection: PrivateServiceConnection): Promise {\n\t\treturn Services.deleteConnection(connection.locationId, connection)\n\t\t\t.then(() => {\n\t\t\t\tconst index = this.state.list!.findIndex(c => c.locationId === connection.locationId)\n\t\t\t\tif (index !== -1)\n\t\t\t\t\tthis.state.removeConnection(index)\n\t\t\t})\n\t}\n\n\tprivate async renewConnection(connection: PrivateServiceConnection, account: FacebookAccount): Promise {\n\t\tawait Services.addToLocation(connection.serviceId, ServiceConnectionType.facebook, connection.locationId)\n\t\t\t.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (this.state.isReady) {\n\t\t\t\t\t\tconst index = this.state.list!.findIndex(c => c.locationId === connection.locationId)\n\t\t\t\t\t\tif (index !== -1)\n\t\t\t\t\t\t\tthis.state.setConnectionRenewed(index)\n\t\t\t\t\t}\n\t\t\t\t\tNotifications.debug(`Automatically updated service connection for ${account.name}`)\n\t\t\t\t},\n\t\t\t\treason => Notifications.warning(`Failed to update service connection for ${account.name}`, reason))\n\t\treturn connection\n\t}\n}\n\nexport {PrivateServiceConnection}\nexport default new ServiceConnections()\n","import { getModule, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"../store\"\nimport type PrivateUser from \"@/managers/data/user/privateUser\"\n\n@Module({dynamic: true, namespaced: true, name: \"user/user\", store})\nexport class User extends VuexModule {\n\tpublic current: PrivateUser | null = null\n\n\tpublic get isReady(): boolean {\n\t\treturn this.current !== null\n\t}\n\n\t@Mutation\n\tpublic setCurrent(value: PrivateUser | null): void {\n\t\tthis.current = value\n\t}\n\n\t@Mutation\n\tpublic modifyCurrent(value: Partial): void {\n\t\tconst current = this.current as any\n\t\tconst data = value as any\n\n\t\tif (current === undefined)\n\t\t\tthrow new Error(\"Failed to modify current user, user not set\")\n\n\t\tfor (const key in data)\n\t\t\tif (data[key] !== undefined)\n\t\t\t\tcurrent[key] = data[key]\n\t}\n}\n\nexport default getModule(User)\n","import type {IPrivateUser} from \"@chaosinsight/postoffice-portalclient\"\nimport User from \"@/managers/data/user/user\"\nimport Notifications from \"@/managers/session/notifications\"\n\nexport default class PrivateUser extends User {\n\tpublic username: string\n\tpublic language: string\n\tpublic termsOfUseConsent: string | null\n\tpublic marketingConsent: string | null\n\tpublic notificationConsent: boolean\n\tpublic uiVersion: string | null\n\tpublic hasPassword: boolean\n\tpublic hasBackofficeAccess: boolean\n\n\tconstructor(id: string, emailAddress: string, name: string, profilePictureUrl: string | null, username: string, language: string, termsOfUseConsent: string | null, marketingConsent: string | null, notificationConsent: boolean, uiVersion: string | null, hasPassword: boolean, hasBackofficeAccess: boolean) {\t\tsuper(id, emailAddress, name, profilePictureUrl)\n\t\tthis.username = username\n\t\tthis.language = language\n\t\tthis.termsOfUseConsent = termsOfUseConsent\n\t\tthis.marketingConsent = marketingConsent\n\t\tthis.notificationConsent = notificationConsent\n\t\tthis.uiVersion = uiVersion\n\t\tthis.hasPassword = hasPassword\n\t\tthis.hasBackofficeAccess = hasBackofficeAccess\n\t}\n\n\tpublic static fromApi(data: IPrivateUser): PrivateUser {\n\t\tlet notificationConsent = false\n\t\ttry {\n\t\t\tnotificationConsent = JSON.parse(data.NotificationConsent).AllowAll === true\n\t\t} catch (error: any) {\n\t\t\tNotifications.warning(`Failed to parse notification consent \"${data.NotificationConsent}\"`, error)\n\t\t}\n\n\t\treturn new PrivateUser(\n\t\t\tdata.Id,\n\t\t\tdata.EmailAddress,\n\t\t\tdata.Name,\n\t\t\tdata.ProfilePictureUrl,\n\t\t\tdata.Username,\n\t\t\tdata.Language,\n\t\t\tdata.TermsOfUseConsent,\n\t\t\tdata.MarketingConsent,\n\t\t\tnotificationConsent,\n\t\t\tdata.UiVersion,\n\t\t\tdata.HasPassword,\n\t\t\tdata.Permissions.CanModifyOrganization)\n\t}\n}\n","import State from \"@/store/user/user\"\nimport PrivateUser from \"@/managers/data/user/privateUser\"\nimport Authentication from \"@/managers/authentication/authentication\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Portal from \"@/managers/portal\"\nimport Configuration from \"@/managers/system/configuration\"\nimport Tracking from \"@/managers/session/logging/tracking\"\nimport {globalEvents, sendGlobalEvent} from \"@/managers/session/globalEvents\"\n\nclass User {\n\tpublic get isReady(): boolean {\n\t\treturn State.isReady\n\t}\n\n\tpublic get current(): PrivateUser | null {\n\t\treturn State.current\n\t}\n\n\tpublic get hasAcceptedTermsOfUse(): boolean | null {\n\t\treturn this.current !== null ? this.current.termsOfUseConsent === Configuration.documents.termsVersion : null\n\t}\n\n\tpublic get canTrack(): boolean {\n\t\treturn this.current !== null && this.current.termsOfUseConsent !== null\n\t}\n\n\tconstructor() {\n\t\tAuthentication.watchIsAuthenticated(isAuthenticated => this.update(isAuthenticated), true)\n\t}\n\n\tpublic async acceptTermsOfUse(): Promise {\n\t\tif (!this.isReady)\n\t\t\tthrow new Error(\"User is not ready\")\n\n\t\tawait Portal.call.users.put(undefined, undefined, true).response\n\t\tState.modifyCurrent({termsOfUseConsent: Configuration.documents.termsVersion})\n\t\tTracking.event(\"UserSettings\", \"Accept terms of use\")\n\t}\n\n\tpublic async setLanguage(language: string): Promise {\n\t\tif (!this.isReady)\n\t\t\tthrow new Error(\"User is not ready\")\n\n\t\tif (this.current!.language !== language) {\n\t\t\tawait Portal.call.users.put(undefined, language).response\n\t\t\tState.modifyCurrent({language})\n\t\t\tTracking.event(\"UserSettings\", \"Change language\", language)\n\t\t} else\n\t\t\tTracking.event(\"UserSettings\", \"Language\", language, true)\n\t}\n\n\tpublic async setName(name: string): Promise {\n\t\tif (!this.isReady)\n\t\t\tthrow new Error(\"User is not ready\")\n\n\t\tif (this.current!.name !== name) {\n\t\t\tawait Portal.call.users.put(name).response\n\t\t\tState.modifyCurrent({name})\n\t\t\tsendGlobalEvent(globalEvents.userChanged, this.current)\n\t\t\tTracking.event(\"UserSettings\", \"Change name\")\n\t\t}\n\t}\n\n\tpublic async setNotificationConsent(consent: boolean): Promise {\n\t\tif (!this.isReady)\n\t\t\tthrow new Error(\"User is not ready\")\n\n\t\tawait Portal.call.users.put(undefined, undefined, undefined, undefined, consent).response\n\t\tState.modifyCurrent({notificationConsent: consent})\n\t\tTracking.event(\"UserSettings\", \"Change notifications\", consent.toString())\n\t}\n\n\tpublic async setUiVersion(uiVersion: string): Promise {\n\t\tif (!this.isReady)\n\t\t\tthrow new Error(\"User is not ready\")\n\n\t\tawait Portal.call.users.put(undefined, undefined, undefined, undefined, undefined, uiVersion).response\n\t\tState.modifyCurrent({uiVersion})\n\t}\n\n\tpublic async setUsernamePassword(username?: string, newPassword?: string, currentPassword?: string): Promise {\n\t\tif (!this.isReady)\n\t\t\tthrow new Error(\"User is not ready\")\n\n\t\tawait Portal.call.users.mePasswordsPut(username ?? null, newPassword ?? null, currentPassword ?? null).response\n\t\tState.modifyCurrent({username, emailAddress: username, hasPassword: newPassword !== undefined ? true : undefined})\n\t\tsendGlobalEvent(globalEvents.userChanged, this.current)\n\t}\n\n\tpublic async modifyUsername(username: string, password: string): Promise {\n\t\tif (!this.isReady)\n\t\t\tthrow new Error(\"User is not ready\")\n\n\t\tawait Portal.call.users.mePatch(username, password).response\n\t\tState.modifyCurrent({username})\n\t\tsendGlobalEvent(globalEvents.userChanged, this.current)\n\t}\n\n\tpublic async deleteUser(): Promise {\n\t\tif (!Authentication.isAuthenticated)\n\t\t\tthrow new Error(\"Can't delete unauthenticated user\")\n\n\t\tawait Portal.call.users.delete().response\n\t\tTracking.event(\"User\", \"Deleted\")\n\t\tawait Authentication.logOut()\n\t}\n\n\tprivate update(isAuthenticated: boolean): void {\n\t\tif (isAuthenticated)\n\t\t\tPortal.call.users.me().response\n\t\t\t\t.then(user => State.setCurrent(PrivateUser.fromApi(user)))\n\t\t\t\t.catch(reason => Notifications.error(\"Failed to get current user: \" + reason.message))\n\t\telse\n\t\t\tState.setCurrent(null)\n\t}\n}\n\nexport {PrivateUser}\nexport default new User()\n","import { Component, Vue } from \"vue-property-decorator\"\nimport type {TranslateResult, Values} from \"vue-i18n\"\n\n@Component\nexport default class I18n extends Vue {\n\tprivate innerI18nKeyValue: string | null = null\n\n\tprotected get innerI18nKey(): string | null {\n\t\tif (this.innerI18nKeyValue === null)\n\t\t\tthrow new Error(\"i18nKey is not set on \" + this.constructor.name)\n\t\treturn this.innerI18nKeyValue + \".\"\n\t}\n\n\tprotected set innerI18nKey(value: string | null) {\n\t\tif (value === null)\n\t\t\tthrow new Error(\"i18nKey can not be set to null on \" + this.constructor.name)\n\n\t\tthis.innerI18nKeyValue = value\n\t}\n\n\tprotected get i18nKey(): string | null {\n\t\treturn this.innerI18nKey\n\t}\n\n\tprotected set i18nKey(value: string | null) {\n\t\tthis.innerI18nKey = value\n\t}\n\n\tprotected $tp(path: string): string {\n\t\treturn this.i18nKey! + path\n\t}\n\n\tprotected $tk(path: string, values?: Values, check: boolean = false): TranslateResult | undefined {\n\t\tif (check && !this.$tke(path))\n\t\t\treturn undefined\n\n\t\treturn this.$t(this.$tp(path), values)\n\t}\n\n\tprotected $tke(path: string): boolean {\n\t\treturn this.$te(this.$tp(path))\n\t}\n}\n","import Component from \"vue-class-component\"\nimport I18n from \"@/mixins/i18n\"\nimport Notifications from \"@/managers/session/notifications\"\n\n@Component\nexport default class I18nView extends I18n {\n\tprivate isLeaving = false\n\n\tprotected get i18nViewKey(): string | null {\n\t\tconst hierarchy: string[] = []\n\n\t\tfor (const matched of this.$route.matched) {\n\t\t\tif (matched.meta.i18n === undefined) {\n\t\t\t\tNotifications.warning(\"I18n key is not defined on matched view: \" + matched.path)\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\thierarchy.push(matched.meta.i18n)\n\t\t\tif (matched.instances.default === this)\n\t\t\t\treturn `views.${hierarchy.join(\".\")}.`\n\t\t}\n\t\tif (!this.isLeaving)\n\t\t\tNotifications.warning(\"Current view was not matched: \" + this.$options.name)\n\t\treturn null\n\t}\n\n\tprotected get i18nKey(): string | null {\n\t\treturn this.i18nViewKey\n\t}\n\tprotected set i18nKey(value: string | null) {\n\t\tthrow new Error(\"i18nKey can not be set on a I18nView\")\n\t}\n\n\tpublic beforeRouteLeave(to: any, from: any, next: () => void): void {\n\t\tthis.isLeaving = true\n\t\tnext()\n\t}\n}\n","import Component from \"vue-class-component\"\nimport I18n from \"./i18n\"\n\n@Component\nexport default class I18nComponent extends I18n {\n\tprotected get i18nKey(): string | null {\n\t\treturn this.innerI18nKey\n\t}\n\n\tprotected set i18nKey(value: string | null) {\n\t\tsuper.i18nKey = value === null ? null : \"components.\" + value\n\t}\n}\n","import Component from \"vue-class-component\"\nimport I18n from \"@/mixins/i18n\"\n\n@Component\nexport default class I18nViewComponent extends I18n {\n\tprotected get nearestViewI18nKey(): string | null {\n\t\tlet parent: any = this.$parent\n\n\t\twhile (parent !== undefined && parent !== this.$root) {\n\t\t\tif (parent.i18nViewKey !== undefined)\n\t\t\t\treturn parent.i18nViewKey\n\n\t\t\tparent = parent.$parent\n\t\t}\n\t\treturn null\n\t}\n\n\tprotected get i18nKey(): string | null {\n\t\tconst viewKey = this.nearestViewI18nKey\n\t\tconst innerKey = this.innerI18nKey\n\n\t\tif (viewKey === null || innerKey === null)\n\t\t\treturn null\n\n\t\treturn viewKey + innerKey\n\t}\n\n\tprotected set i18nKey(value: string | null) {\n\t\tthis.innerI18nKey = value\n\t}\n}\n","import { Component, Vue } from \"vue-property-decorator\"\nimport Locations, {Location} from \"@/managers/location/locations\"\nimport type { Route } from \"vue-router\"\nimport {setInQuery, urlEncode} from \"@/utility/data/url\"\n\n@Component\nexport default class MainLocation extends Vue {\n\tprotected get location(): Location {\n\t\treturn Locations.main!\n\t}\n\n\tprotected get locationUrl(): string {\n\t\treturn \"/\" + urlEncode(this.location.key)\n\t}\n\n\tprotected getLocationUrl(subPage: string, query?: Record): string {\n\t\treturn `${this.locationUrl}/${setInQuery(subPage, query)}`\n\t}\n\n\tprotected goToLocationUrl(subPage: string): Promise {\n\t\treturn this.$navigateTo(this.getLocationUrl(subPage))\n\t}\n}\n","import { Component, Vue } from \"vue-property-decorator\"\nimport Organizations, {Organization} from \"@/managers/organization/organizations\"\nimport type { Route } from \"vue-router\"\nimport {setInQuery, urlEncode} from \"@/utility/data/url\"\n\n@Component\nexport default class MainOrganization extends Vue {\n\tprotected get organization(): Organization {\n\t\treturn Organizations.main!\n\t}\n\n\tprotected get organizationUrl(): string {\n\t\treturn \"/admin/\" + urlEncode(this.organization.key)\n\t}\n\n\tprotected getOrganizationUrl(subPage: string, query?: Record): string {\n\t\treturn `${this.organizationUrl}/${setInQuery(subPage, query)}`\n\t}\n\n\tprotected goToOrganizationUrl(subPage: string): Promise {\n\t\treturn this.$navigateTo(this.getOrganizationUrl(subPage))\n\t}\n}\n","import { Component, Vue } from \"vue-property-decorator\"\nimport Preferences from \"@/managers/system/preferences\"\nimport CalendarType from \"@/managers/data/preferences/calendarType\"\n\n@Component\nexport default class ClosableEditor extends Vue {\n\tprotected get parentPage(): string {\n\t\treturn this.$route.path.split(\"/\")[2]\n\t}\n\n\tprotected getCloseUrl(parameters?: Record): string {\n\t\tif (this.parentPage === \"calendar-grid\") {\n\t\t\tconst cols = Preferences.calendarType === CalendarType.grid4Day ? \"4\" : \"7\"\n\n\t\t\tif (parameters === undefined)\n\t\t\t\tparameters = {cols}\n\t\t\telse\n\t\t\t\tparameters.cols = cols\n\t\t}\n\n\t\tif (parameters !== undefined)\n\t\t\tObject.keys(parameters).forEach(key => {\n\t\t\t\tconst value = parameters![key]\n\t\t\t\tif (value === undefined || value === null)\n\t\t\t\t\tdelete parameters![key]\n\t\t\t})\n\n\t\tconst queryString = new URLSearchParams(parameters).toString()\n\n\t\treturn this.parentPage + (queryString !== \"\" ? \"?\" + queryString : \"\")\n\t}\n}\n","import { Component } from \"vue-property-decorator\"\nimport type {TranslateResult} from \"vue-i18n\"\nimport MainOrganization from \"@/mixins/mainOrganization\"\nimport Localization from \"@/managers/session/localization\"\nimport {intlNumberFormatRangeSupport} from \"@/managers/system/capabilities\"\n\n@Component\nexport default class CurrencyComponent extends MainOrganization {\n\tprotected $c(value: number, useSymbol: boolean = false): TranslateResult {\n\t\treturn Localization.getCurrency(value, this.organization.currency, useSymbol)\n\t}\n\n\tprotected $cr(startValue: number, endValue: number, useSymbol: boolean = false): string {\n\t\tif (!intlNumberFormatRangeSupport)\n\t\t\treturn this.$c(startValue, useSymbol).toString() + \" - \" + this.$c(endValue, useSymbol).toString()\n\n\t\treturn Localization.getCurrencyFormat(this.organization.currency, useSymbol)\n\t\t\t.formatRange(startValue, endValue)\n\t}\n}\n","import { Component, Vue } from \"vue-property-decorator\"\nimport Tracking from \"@/managers/session/logging/tracking\"\n\n@Component\nexport default class TrackingComponent extends Vue {\n\tprotected $trackEvent(category: string, action: string, label?: string): void {\n\t\tTracking.event(category, action, label)\n\t}\n}\n","import { Component, Inject, InjectReactive, Mixins, ModelSync, Prop, PropSync, Provide, ProvideReactive, Vue, Watch } from \"vue-property-decorator\"\nimport I18n from \"./i18n\"\nimport I18nView from \"./i18nView\"\nimport I18nComponent from \"./i18nComponent\"\nimport I18nViewComponent from \"./i18nViewComponent\"\nimport MainLocation from \"./mainLocation\"\nimport MainOrganization from \"./mainOrganization\"\nimport ClosableEditor from \"./closableEditor\"\nimport CurrencyComponent from \"@/mixins/currencyComponent\"\nimport TrackingComponent from \"@/mixins/trackingComponent\"\n\nconst I18nMixin = Mixins(I18n)\nconst I18nViewMixin = Mixins(I18nView)\nconst I18nComponentMixin = Mixins(I18nComponent)\nconst I18nViewComponentMixin = Mixins(I18nViewComponent)\nconst MainLocationMixin = Mixins(MainLocation)\nconst MainOrganizationMixin = Mixins(MainOrganization)\nconst CurrencyMixin = Mixins(CurrencyComponent)\nconst TrackingMixin = Mixins(TrackingComponent)\n\nconst I18nMainLocationMixin = Mixins(I18n, MainLocation)\nconst I18nMainOrganizationMixin = Mixins(I18n, MainOrganization)\n\nconst I18nComponentMainOrganizationCurrencyMixin = Mixins(I18nComponent, CurrencyComponent)\n\nconst I18nViewMainLocationMixin = Mixins(I18nView, MainLocation)\nconst I18nViewMainOrganizationMixin = Mixins(I18nView, MainOrganization)\nconst I18nViewMainLocationOrganizationMixin = Mixins(I18nView, MainLocation, MainOrganization)\n\nconst I18nComponentMainLocationMixin = Mixins(I18nComponent, MainLocation)\nconst I18nComponentMainOrganizationMixin = Mixins(I18nComponent, MainOrganization)\nconst I18nComponentMainLocationOrganizationMixin = Mixins(I18nComponent, MainLocation, MainOrganization)\n\nconst I18nViewComponentMainLocationMixin = Mixins(I18nViewComponent, MainLocation)\nconst I18nViewComponentMainOrganizationMixin = Mixins(I18nViewComponent, MainOrganization)\nconst I18nViewComponentMainLocationOrganizationMixin = Mixins(I18nViewComponent, MainLocation, MainOrganization)\n\nconst I18nViewMainLocationClosableEditorMixin = Mixins(I18nViewMainLocationMixin, ClosableEditor)\nconst I18nViewMainLocationCurrencyClosableEditorMixin = Mixins(I18nViewMainLocationMixin, CurrencyComponent, ClosableEditor)\n\nconst I18nViewTrackingMixin = Mixins(I18nViewComponent, TrackingMixin)\nconst I18nViewComponentTrackingMixin = Mixins(I18nViewComponentMixin, TrackingMixin)\nconst I18nViewMainLocationOrganizationTrackingMixin = Mixins(I18nView, MainLocation, MainOrganization, TrackingMixin)\n\nexport {Component, Inject, InjectReactive, Prop, PropSync, Provide, ProvideReactive, Mixins, ModelSync, Vue, Watch}\n\nexport {\n\tI18nMixin, I18nViewMixin, I18nComponentMixin, I18nViewComponentMixin, MainLocationMixin, MainOrganizationMixin, CurrencyMixin, TrackingComponent,\n\tI18nMainLocationMixin, I18nMainOrganizationMixin,\n\tI18nComponentMainOrganizationCurrencyMixin,\n\tI18nViewMainLocationMixin, I18nViewMainOrganizationMixin, I18nViewMainLocationOrganizationMixin,\n\tI18nComponentMainLocationMixin, I18nComponentMainOrganizationMixin, I18nComponentMainLocationOrganizationMixin,\n\tI18nViewComponentMainLocationMixin, I18nViewComponentMainOrganizationMixin,\tI18nViewComponentMainLocationOrganizationMixin,\n\tI18nViewMainLocationClosableEditorMixin, I18nViewMainLocationCurrencyClosableEditorMixin,\n\tI18nViewTrackingMixin, I18nViewComponentTrackingMixin, I18nViewMainLocationOrganizationTrackingMixin\n}\n","import Vue, { DirectiveOptions, VNode } from \"vue\"\nimport type { DirectiveBinding } from \"vue/types/options\"\nimport VueI18n, { LocaleMessages } from \"vue-i18n\"\nimport numberFormats from \"@/locales/numberFormats.yaml\"\nimport Configuration from \"@/managers/system/configuration\"\n\nconst { contextId, messages: localeMessages} = loadLocaleMessages()\nconst i18n = initialize()\nenableHotReload()\n\nfunction createDirective(source: DirectiveOptions): DirectiveOptions {\n\treturn {\n\t\tbind: (el: any, binding: DirectiveBinding, vNode: VNode, oldNode: any) => {\n\t\t\tupdatePath(binding, vNode)\n\t\t\tsource.bind!(el, binding, vNode, oldNode)\n\t\t},\n\t\tupdate: (el: any, binding: DirectiveBinding, vNode: VNode, oldNode: any) => {\n\t\t\tupdatePath(binding, vNode)\n\t\t\tsource.update!(el, binding, vNode, oldNode)\n\t\t},\n\t\tunbind: source.unbind\n\t}\n}\n\nfunction updatePath(binding: DirectiveBinding, node: VNode): void {\n\tconst key = (node.context as any).i18nKey\n\tif (key === undefined)\n\t\tthrow new Error(\"i18nKey property is missing on: \" + node.context)\n\n\tif (typeof binding.value === \"string\")\n\t\t(binding as any).value = key + binding.value\n\telse\n\t\tbinding.value.path = key + binding.value.path\n}\n\nfunction loadLocaleMessages(): { contextId: string, messages: LocaleMessages} {\n\tconst localeContext = require.context(\"../locales\", false, /\\/[a-z]{2}\\.yaml$/i, \"sync\")\n\tconst messages: LocaleMessages = {}\n\tlocaleContext.keys().forEach(key => {\n\t\tconst matched = key.match(/([A-Za-z]+)\\./i)\n\t\tif (matched && matched.length > 1) {\n\t\t\tconst locale = matched[1]\n\t\t\tmessages[locale] = localeContext(key)\n\t\t}\n\t})\n\n\treturn {contextId: localeContext.id as any as string, messages}\n}\n\nfunction getBrowserLanguageCode(): string | null {\n\tconst language = (window.navigator as any).userLanguage || window.navigator.language\n\n\tif (language === undefined || language === null || language === \"\" || language.length < 2)\n\t\treturn null\n\treturn language.slice(0, 2)\n}\n\nfunction initialize(): VueI18n {\n\tVue.use(VueI18n)\n\tconst tDirective = Vue.directive(\"t\")\n\tif (!tDirective)\n\t\tthrow new Error(\"T directive is missing\")\n\n\tVue.directive(\"tk\", createDirective(tDirective))\n\n\tconst browserLanguage = getBrowserLanguageCode()\n\tlet locale = Configuration.localization.default\n\n\tif (browserLanguage !== null && localeMessages.hasOwnProperty(browserLanguage))\n\t\tlocale = browserLanguage\n\n\treturn new VueI18n({\n\t\tlocale,\n\t\tfallbackLocale: Configuration.localization.fallback,\n\t\tnumberFormats,\n\t\tmessages: localeMessages\n\t})\n}\n\nexport function enableHotReload(): void {\n\tif (module.hot)\n\t\tmodule.hot.accept(contextId, () => {\n\t\t\tconst {messages: newMessages} = loadLocaleMessages()\n\n\t\t\tObject.keys(newMessages)\n\t\t\t\t.filter(locale => localeMessages[locale] !== newMessages[locale])\n\t\t\t\t.forEach(locale => {\n\t\t\t\t\tlocaleMessages[locale] = newMessages[locale]\n\t\t\t\t\ti18n.setLocaleMessage(locale, localeMessages[locale])\n\t\t\t\t})\n\t\t})\n}\n\nexport default i18n\n","import type {RawLocation, Route} from \"vue-router\"\nimport Router from \"vue-router\"\nimport Routing from \"@/store/session/routing\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Authentication from \"@/managers/authentication/authentication\"\n\nasync function checkRouteAuthentication(route: Route): Promise {\n\tconst requiresAuthenticated = route.matched.some(record => record.meta.requiresAuthenticated)\n\tconst requiresGuest = route.matched.some(record => record.meta.requiresGuest)\n\n\tif (!requiresAuthenticated && !requiresGuest)\n\t\treturn null\n\n\tconst isAuthenticated = await Authentication.checkLogin()\n\n\tif (requiresGuest && isAuthenticated) {\n\t\tif (route.query.hasOwnProperty(\"redirect\")) {\n\t\t\tNotifications.debug(\"Rerouting to redirect parameter, current route requires guest\")\n\t\t\treturn route.query.redirect as string\n\t\t}\n\t\tNotifications.debug(\"Rerouting to organization selection, current route requires guest\")\n\t\treturn { path: \"/\" }\n\t} else if (requiresAuthenticated && !isAuthenticated) {\n\t\tNotifications.debug(\"Rerouting to login, current route requires authentication\")\n\t\treturn {\n\t\t\tname: \"login\",\n\t\t\tquery: {\n\t\t\t\tredirect: route.fullPath\n\t\t\t}\n\t\t}\n\t} else\n\t\treturn null\n}\n\nexport default function(router: Router): void {\n\trouter.beforeEach((to, from, next) => {\n\t\tRouting.setRoutingStatus(\"checkingLogin\")\n\t\tcheckRouteAuthentication(to)\n\t\t\t.then(location => next(location ?? undefined), reason => {\n\t\t\t\tNotifications.error(\"Failed to check authentication for route\", reason)\n\t\t\t\tnext()\n\t\t\t})\n\t\t\t.catch(reason => {\n\t\t\t\tif (!Router.isNavigationFailure(reason, Router.NavigationFailureType.redirected))\n\t\t\t\t\tthrow reason\n\t\t\t})\n\t})\n\n\tAuthentication.watchIsAuthenticated(isAuthenticated => {\n\t\tcheckRouteAuthentication(router.currentRoute)\n\t\t\t.then(location => {\n\t\t\t\tif (location !== null)\n\t\t\t\t\treturn router.push(location)\n\t\t\t})\n\t\t\t.catch(reason => {\n\t\t\t\tif (!Router.isNavigationFailure(reason, Router.NavigationFailureType.redirected))\n\t\t\t\t\tthrow reason\n\t\t\t})\n\t})\n}\n","import type Router from \"vue-router\"\nimport Routing from \"@/store/session/routing\"\n\nexport default function(router: Router): void {\n\trouter.beforeEach((to, from, next) => {\n\t\tRouting.setRoutingStatus(\"routing\")\n\t\tnext()\n\t})\n\n\trouter.afterEach((to, from) => {\n\t\tRouting.routeComplete()\n\t})\n}\n","import type Router from \"vue-router\"\nimport Routing from \"@/store/session/routing\"\nimport Organizations from \"@/managers/organization/organizations\"\nimport Notifications from \"@/managers/session/notifications\"\n\nexport default function(router: Router): void {\n\trouter.beforeResolve((to, from, next) => {\n\t\tconst organizationKey = to.params.hasOwnProperty(\"organizationKey\") ? to.params.organizationKey : null\n\n\t\tif (organizationKey !== null) {\n\t\t\tRouting.setRoutingStatus(\"checkingOrganization\")\n\t\t\tOrganizations.getByKeyWhenReady(organizationKey)\n\t\t\t\t.then(organization => {\n\t\t\t\t\tOrganizations.main = organization\n\t\t\t\t\tnext()\n\t\t\t\t}, reason => {\n\t\t\t\t\tNotifications.warning(\"Failed to find organization: \" + reason)\n\t\t\t\t\tnext({name: \"notFound\", params: {0: to.fullPath}})\n\t\t\t\t})\n\t\t} else {\n\t\t\tif (Organizations.main !== null && !Organizations.wasMainSetFromLocation) {\n\t\t\t\tOrganizations.main = null\n\t\t\t\tNotifications.debug(\"Clearing main organization\")\n\t\t\t}\n\t\t\tnext()\n\t\t}\n\t})\n}\n","import type Router from \"vue-router\"\nimport Routing from \"@/store/session/routing\"\nimport Notifications from \"@/managers/session/notifications\"\nimport Locations from \"@/managers/location/locations\"\nimport Organizations from \"@/managers/organization/organizations\"\nimport Navigation from \"@/managers/session/navigation\"\n\nexport default function(router: Router): void {\n\trouter.beforeResolve((to, from, next) => {\n\t\tconst locationKey = to.params.hasOwnProperty(\"locationKey\") ? to.params.locationKey : null\n\n\t\tif (locationKey !== null) {\n\t\t\tRouting.setRoutingStatus(\"checkingLocation\")\n\t\t\tLocations.setMainFromKey(locationKey)\n\t\t\t\t.then(location => {\n\t\t\t\t\tOrganizations.setMainFromLocation(location.organizationId)\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\t() => next(),\n\t\t\t\t\t\t\treason => {\n\t\t\t\t\t\t\t\tNotifications.warning(\"Failed to set organization from location: \" + reason)\n\t\t\t\t\t\t\t\tnext({name: \"notFound\", params: {0: to.fullPath}})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t}, reason => {\n\t\t\t\t\tNotifications.warning(\"Failed to find location: \" + reason)\n\n\t\t\t\t\tif (Navigation.preferredLocationKey === locationKey) {\n\t\t\t\t\t\tNavigation.preferredLocationKey = null\n\t\t\t\t\t\tnext({name: \"locationSelection\"})\n\t\t\t\t\t} else\n\t\t\t\t\t\tnext({name: \"notFound\", params: {0: to.fullPath}})\n\t\t\t\t})\n\t\t} else {\n\t\t\tif (Locations.main !== null) {\n\t\t\t\tLocations.clearMain()\n\t\t\t\tNotifications.debug(\"Clearing main location\")\n\t\t\t}\n\t\t\tif (Organizations.wasMainSetFromLocation)\n\t\t\t\tOrganizations.main = null\n\t\t\tnext()\n\t\t}\n\t})\n}\n","import Vue from \"vue\"\nimport Router, { RawLocation, Route } from \"vue-router\"\nimport routerGuardAuthentication from \"./routerGuardAuthentication\"\nimport routerGuardStatus from \"@/plugins/routerGuardStatus\"\nimport routerGuardOrganization from \"@/plugins/routerGuardOrganization\"\nimport routerGuardLocation from \"@/plugins/routerGuardLocation\"\nimport Navigation from \"@/managers/session/navigation\"\nimport Preferences from \"@/managers/system/preferences\"\nimport CalendarType from \"@/managers/data/preferences/calendarType\"\n\nconst Login = () => import(/* webpackChunkName: \"login\" */ \"@/views/login.vue\")\nconst ResetPassword = () => import(/* webpackChunkName: \"login\" */ \"@/views/resetPassword.vue\")\n\nconst NotFoundView = () => import(/* webpackChunkName: \"common\" */ \"@/views/notFound.vue\")\nconst TermsView = () => import(/* webpackChunkName: \"common\" */ \"@/views/terms.vue\")\nconst PrivacyView = () => import(/* webpackChunkName: \"common\" */ \"@/views/privacy.vue\")\nconst UserAccountView = () => import(/* webpackChunkName: \"common\" */ \"@/views/userAccount.vue\")\nconst UserDelete = () => import(/* webpackChunkName: \"common\" */ \"@/views/userDelete.vue\")\n\nconst JoinOrganization = () => import(/* webpackChunkName: \"invitation\" */ \"@/views/invitation/joinOrganization/joinOrganization.vue\")\nconst SubscribeToOrganization = () => import(/* webpackChunkName: \"invitation\" */ \"@/views/invitation/subscribeToOrganization/subscribeToOrganization.vue\")\nconst JoinLocation = () => import(/* webpackChunkName: \"invitation\" */ \"@/views/invitation/joinLocation/joinLocation.vue\")\nconst CreateLocation = () => import(/* webpackChunkName: \"invitation\" */ \"@/views/invitation/createLocation/createLocation.vue\")\n\nconst SignUp = () => import(/* webpackChunkName: \"login\" */ \"@/views/signUp/signUp.vue\")\nconst SignUpUserSelection = () => import(/* webpackChunkName: \"login\" */ \"@/views/signUp/userSelection.vue\")\nconst SignUpCreateOrganization = () => import(/* webpackChunkName: \"login\" */ \"@/views/signUp/createOrganization.vue\")\nconst SignUpSelectModules = () => import(/* webpackChunkName: \"login\" */ \"@/views/signUp/selectModules.vue\")\nconst SignUpConnectPlatforms = () => import(/* webpackChunkName: \"login\" */ \"@/views/signUp/connectPlatforms.vue\")\n\nconst User = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/user.vue\")\nconst UserLocationSelection = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/locationSelection/locationSelection.vue\")\nconst UserAccount = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/account/account.vue\")\nconst UserAccountDealsReplyTexts = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/account/locationDealsReplyTexts.vue\")\nconst UserAccountDealsPostTexts = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/account/locationDealsPostTexts.vue\")\nconst UserCalendar = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/calendar/calendar.vue\")\nconst UserCalendarGrid = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/calendarGrid/calendarGrid.vue\")\nconst UserCalendarMonth = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/calendarGrid/calendarMonth.vue\")\nconst UserPostEditor = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/postEditor/postEditor.vue\")\nconst UserContent = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/content/content.vue\")\nconst UserDeals = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/deals/deals.vue\")\nconst UserDealsOrders = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/orders/orders.vue\")\nconst UserInsights = () => import(/* webpackChunkName: \"user\" */ \"@/views/user/insights/insights.vue\")\n\nconst Admin = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/admin.vue\")\nconst AdminOrganizationSelection = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/organizationSelection/organizationSelection.vue\")\nconst AdminAccount = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/account/account.vue\")\nconst AdminCalendar = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/calendar/calendar.vue\")\nconst AdminCalendarGrid = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/calendarGrid/calendarGrid.vue\")\nconst AdminCalendarMonth = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/calendarGrid/calendarMonth.vue\")\nconst AdminScheduledTemplateEditor = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/scheduledTemplateEditor/scheduledTemplateEditor.vue\")\nconst AdminContent = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/content/content.vue\")\nconst AdminDeals = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/deals/deals.vue\")\nconst AdminDealsReplyTexts = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/deals/organizationDealsReplyTexts.vue\")\nconst AdminDealsPostsTexts = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/deals/organizationDealsPostTexts.vue\")\nconst AdminEditor = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/editor/editor.vue\")\nconst AdminInsights = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/insights/insights.vue\")\nconst AdminLocations = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/locations/locations.vue\")\nconst AdminBrandLocations = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/brandLocations/brandLocations.vue\")\nconst AdminUsers = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/users/users.vue\")\nconst AdminGroups = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/groups/groups.vue\")\nconst AdminTemplates = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/templates/templates.vue\")\nconst AdminTemplatesPostEditor = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/templates/templateEditor.vue\")\nconst AdminReview = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/review/review.vue\")\nconst AdminReviewPostEditor = () => import(/* webpackChunkName: \"admin\" */ \"@/views/admin/review/postEditor.vue\")\n\nconst Backoffice = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/backoffice.vue\")\nconst BackofficeAccount = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/account/account.vue\")\nconst BackofficeDashboard = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/dashboard/dashboard.vue\")\nconst BackofficeLogs = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/logs/logs.vue\")\nconst BackofficeLogsPostErrors = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/logs/postErrorLog.vue\")\nconst BackofficeLogsFrontendErrors = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/logs/frontendErrorLog.vue\")\nconst BackofficeLogsServiceErrors = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/logs/serviceErrorLog.vue\")\nconst BackofficeOrganizations = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/organizations/organizations.vue\")\nconst BackofficeOrganizationLocations = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/organizationLocations/organizationLocations.vue\")\nconst BackofficeOrganizationUsers = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/organizationUsers/organizationUsers.vue\")\nconst BackofficeUsers = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/users/users.vue\")\nconst BackofficeServiceConnections = () => import(/* webpackChunkName: \"backoffice\" */ \"@/views/backoffice/serviceConnections/serviceConnections.vue\")\n\nVue.use(Router)\n\nconst router = new Router({\n\tmode: \"history\",\n\tbase: process.env.BASE_URL,\n\tscrollBehavior: (to, from, savedPosition) => {\n\t\tif (savedPosition)\n\t\t\treturn savedPosition\n\t\telse\n\t\t\treturn {x: 0, y: Navigation.scrollPosition ?? 0}\n\t},\n\troutes: [\n\t\t{\n\t\t\tpath: \"/\",\n\t\t\tbeforeEnter: (to: Route, from: Route, next: (to?: RawLocation | false | ((vm: Vue) => void)) => void) => {\n\t\t\t\tconst key = Navigation.preferredLocationKey\n\n\t\t\t\tnext(\n\t\t\t\t\tkey !== null\n\t\t\t\t\t\t? { path: `/${key}`, replace: true}\n\t\t\t\t\t\t: { name: \"locationSelection\", replace: true })\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpath: \"/brand/:id(\\\\d+)/:subPage?\",\n\t\t\tredirect: { name: \"locationSelection\", replace: true }\n\t\t},\n\t\t{\n\t\t\tpath: \"/admin/:id/feed\",\n\t\t\tredirect: { name: \"organizationSelection\", replace: true }\n\t\t},\n\t\t{\n\t\t\tname: \"login\",\n\t\t\tpath: \"/login\",\n\t\t\tcomponent: Login,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"login\",\n\t\t\t\trequiresGuest: true,\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"userAccount\",\n\t\t\tpath: \"/user\",\n\t\t\tcomponent: UserAccountView,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"userAccount\",\n\t\t\t\trequiresAuthenticated: true,\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"userDelete\",\n\t\t\tpath: \"/userdelete\",\n\t\t\tcomponent: UserDelete,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"userDelete\",\n\t\t\t\trequiresAuthenticated: true,\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"resetPassword\",\n\t\t\tpath: \"/resetpassword\",\n\t\t\tcomponent: ResetPassword,\n\t\t\tprops: route => ({ticketId: route.query.ticket}),\n\t\t\tmeta: {\n\t\t\t\ti18n: \"resetPassword\",\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpath: \"/signup\",\n\t\t\tcomponent: SignUp,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"signup\",\n\t\t\t\tisUserBusy: true\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: \"\",\n\t\t\t\t\tredirect: {name: \"signUpUserSelection\"}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"signUpUserSelection\",\n\t\t\t\t\tpath: \"user\",\n\t\t\t\t\tcomponent: SignUpUserSelection,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"userSelection\",\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"signUpCreateOrganization\",\n\t\t\t\t\tpath: \"organization\",\n\t\t\t\t\tcomponent: SignUpCreateOrganization,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"createOrganization\",\n\t\t\t\t\t\trequiresAuthenticated: true,\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"signUpSelectModules\",\n\t\t\t\t\tpath: \":organizationKey/modules\",\n\t\t\t\t\tcomponent: SignUpSelectModules,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"selectModules\",\n\t\t\t\t\t\trequiresAuthenticated: true,\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"signUpConnectPlatforms\",\n\t\t\t\t\tpath: \":locationKey/connect\",\n\t\t\t\t\tcomponent: SignUpConnectPlatforms,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"connectPlatforms\",\n\t\t\t\t\t\trequiresAuthenticated: true,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\tname: \"joinOrganization\",\n\t\t\tpath: \"/join\",\n\t\t\tcomponent: JoinOrganization,\n\t\t\tprops: route => ({ticketId: route.query.ticket}),\n\t\t\tmeta: {\n\t\t\t\ti18n: \"invitation.joinOrganization\",\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"subscribeToOrganization\",\n\t\t\tpath: \"/subscribecontent\",\n\t\t\tcomponent: SubscribeToOrganization,\n\t\t\tprops: route => ({ticketId: route.query.ticket}),\n\t\t\tmeta: {\n\t\t\t\ti18n: \"invitation.subscribeToOrganization\",\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"joinLocation\",\n\t\t\tpath: \"/joinlocation\",\n\t\t\tcomponent: JoinLocation,\n\t\t\tprops: route => ({ticketId: route.query.ticket}),\n\t\t\tmeta: {\n\t\t\t\ti18n: \"invitation.joinLocation\",\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"createLocation\",\n\t\t\tpath: \"/createlocation\",\n\t\t\tcomponent: CreateLocation,\n\t\t\tprops: route => ({ticketId: route.query.ticket}),\n\t\t\tmeta: {\n\t\t\t\ti18n: \"invitation.createLocation\",\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"privacy\",\n\t\t\tpath: \"/privacy\",\n\t\t\tcomponent: PrivacyView,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"privacy\",\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"terms\",\n\t\t\tpath: \"/terms\",\n\t\t\tcomponent: TermsView,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"terms\",\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpath: \"/backoffice\",\n\t\t\tcomponent: Backoffice,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"backoffice\",\n\t\t\t\trequiresAuthenticated: true,\n\t\t\t\tmanageType: \"backoffice\",\n\t\t\t\tisUserBusy: true\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: \"\",\n\t\t\t\t\tcomponent: BackofficeDashboard,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"dashboard\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: \"account\",\n\t\t\t\t\tcomponent: BackofficeAccount,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"account\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: \"logs\",\n\t\t\t\t\tcomponent: BackofficeLogs,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"logs\"\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: \"\",\n\t\t\t\t\t\t\tredirect: \"posts\",\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tname: \"postErrorLog\",\n\t\t\t\t\t\t\tpath: \"posts\",\n\t\t\t\t\t\t\tcomponent: BackofficeLogsPostErrors,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\ti18n: \"posts\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tname: \"frontendErrorLog\",\n\t\t\t\t\t\t\tpath: \"frontend\",\n\t\t\t\t\t\t\tcomponent: BackofficeLogsFrontendErrors,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\ti18n: \"frontend\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tname: \"serviceErrorLog\",\n\t\t\t\t\t\t\tpath: \"services\",\n\t\t\t\t\t\t\tcomponent: BackofficeLogsServiceErrors,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\ti18n: \"services\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: \"organizations\",\n\t\t\t\t\tcomponent: BackofficeOrganizations,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"organizations\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: \"organizations/:organizationId/locations\",\n\t\t\t\t\tcomponent: BackofficeOrganizationLocations,\n\t\t\t\t\tprops: true,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"organizationLocations\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: \"organizations/:organizationId/users\",\n\t\t\t\t\tcomponent: BackofficeOrganizationUsers,\n\t\t\t\t\tprops: true,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"organizationUsers\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: \"users\",\n\t\t\t\t\tcomponent: BackofficeUsers,\n\t\t\t\t\tprops: true,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"users\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"serviceConnections\",\n\t\t\t\t\tpath: \"serviceConnections/:serviceConnectionId?\",\n\t\t\t\t\tcomponent: BackofficeServiceConnections,\n\t\t\t\t\tprops: true,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"serviceConnections\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\tname: \"organizationSelection\",\n\t\t\tpath: \"/admin\",\n\t\t\tcomponent: AdminOrganizationSelection,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"admin.organizationSelection\",\n\t\t\t\trequiresAuthenticated: true,\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpath: \"/admin/:organizationKey\",\n\t\t\tcomponent: Admin,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"admin\",\n\t\t\t\trequiresAuthenticated: true,\n\t\t\t\tmanageType: \"organization\"\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: \"\",\n\t\t\t\t\tredirect: () => Preferences.calendarType === CalendarType.list\n\t\t\t\t\t\t? \"calendar\"\n\t\t\t\t\t\t: Preferences.calendarType === CalendarType.gridMonth\n\t\t\t\t\t\t? \"calendar-month\"\n\t\t\t\t\t\t: {path: \"calendar-grid\", query: {cols: Preferences.calendarType === CalendarType.grid4Day ? \"4\" : \"7\"}}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"account\",\n\t\t\t\t\tcomponent: AdminAccount,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"account\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar\",\n\t\t\t\t\tcomponent: AdminCalendar,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"calendar\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar-grid\",\n\t\t\t\t\tcomponent: AdminCalendarGrid,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"calendar\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar-month\",\n\t\t\t\t\tcomponent: AdminCalendarMonth,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"calendar\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar/editor/:templateId?\",\n\t\t\t\t\talias: [\"calendar-grid/editor/:templateId?\", \"calendar-month/editor/:templateId?\"],\n\t\t\t\t\tcomponent: AdminScheduledTemplateEditor,\n\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t...route.params,\n\t\t\t\t\t\tserviceType: route.query.serviceType,\n\t\t\t\t\t\tpostType: route.query.postType,\n\t\t\t\t\t\tpublishDate: route.query.date,\n\t\t\t\t\t\tdefaultDeal: \"deal\" in route.query\n\t\t\t\t\t}),\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"scheduledTemplateEditor\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"content\",\n\t\t\t\t\tredirect: \"content/published\"\n\t\t\t\t},{\n\t\t\t\t\tpath: \"content/:state\",\n\t\t\t\t\tcomponent: AdminContent,\n\t\t\t\t\tprops: true,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"content\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"deals\",\n\t\t\t\t\tcomponent: AdminDeals,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"deals\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"deals/replies\",\n\t\t\t\t\tcomponent: AdminDealsReplyTexts,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"deals.replies\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"deals/posts\",\n\t\t\t\t\tcomponent: AdminDealsPostsTexts,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"deals.posts\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"review\",\n\t\t\t\t\tcomponent: AdminReview,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"review\"\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: \"editor/:postId?\",\n\t\t\t\t\t\t\tcomponent: AdminReviewPostEditor,\n\t\t\t\t\t\t\tprops: true,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\ti18n: \"postEditor\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"editor\",\n\t\t\t\t\tcomponent: AdminEditor,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"editor\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"insights\",\n\t\t\t\t\tcomponent: AdminInsights,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"insights\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"locations\",\n\t\t\t\t\tcomponent: AdminLocations,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"locations\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t, {\n\t\t\t\t\tpath: \"brand-locations\",\n\t\t\t\t\tcomponent: AdminBrandLocations,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"brandLocations\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"users\",\n\t\t\t\t\tcomponent: AdminUsers,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"users\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"groups\",\n\t\t\t\t\tcomponent: AdminGroups,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"groups\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"templates\",\n\t\t\t\t\tcomponent: AdminTemplates,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"templates\"\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: \"editor/:templateId?\",\n\t\t\t\t\t\t\tcomponent: AdminTemplatesPostEditor,\n\t\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\t\t...route.params,\n\t\t\t\t\t\t\t\tcategoryId: route.query.category,\n\t\t\t\t\t\t\t\tserviceType: route.query.serviceType,\n\t\t\t\t\t\t\t\tdefaultDeal: \"deal\" in route.query\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\ti18n: \"templateEditor\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\tname: \"locationSelection\",\n\t\t\tpath: \"/\",\n\t\t\tcomponent: UserLocationSelection,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"user.locationSelection\",\n\t\t\t\trequiresAuthenticated: true,\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpath: \"/:locationKey\",\n\t\t\tcomponent: User,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"user\",\n\t\t\t\trequiresAuthenticated: true,\n\t\t\t\tmanageType: \"location\"\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: \"\",\n\t\t\t\t\tredirect: () => Preferences.calendarType === CalendarType.list\n\t\t\t\t\t\t? \"calendar\"\n\t\t\t\t\t\t: Preferences.calendarType === CalendarType.gridMonth\n\t\t\t\t\t\t? \"calendar-month\"\n\t\t\t\t\t\t: {path: \"calendar-grid\", query: {cols: Preferences.calendarType === CalendarType.grid4Day ? \"4\" : \"7\"}}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar-month\",\n\t\t\t\t\tcomponent: UserCalendarMonth,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"calendar\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"account\",\n\t\t\t\t\tcomponent: UserAccount,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"account\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"account/replyTexts\",\n\t\t\t\t\tcomponent: UserAccountDealsReplyTexts,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"account.replyTexts\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"account/postTexts\",\n\t\t\t\t\tcomponent: UserAccountDealsPostTexts,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"account.postTexts\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar\",\n\t\t\t\t\tcomponent: UserCalendar,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"calendar\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar-grid\",\n\t\t\t\t\tcomponent: UserCalendarGrid,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"calendar\"\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"deals\",\n\t\t\t\t\tcomponent: UserDeals,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"deals\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar/orders/:postId\",\n\t\t\t\t\talias: [\"calendar-grid/orders/:postId\", \"deals/orders/:postId\"],\n\t\t\t\t\tcomponent: UserDealsOrders,\n\t\t\t\t\tprops: true,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"deals.orders\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"calendar/editor/:postId?\",\n\t\t\t\t\talias: [\"calendar-grid/editor/:postId?\", \"deals/editor/:postId?\", \"calendar-month/editor/:postId?\"],\n\t\t\t\t\tcomponent: UserPostEditor,\n\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t...route.params,\n\t\t\t\t\t\tserviceType: route.query.serviceType,\n\t\t\t\t\t\tpostType: route.query.postType,\n\t\t\t\t\t\tpublishDate: route.query.date,\n\t\t\t\t\t\tdefaultDeal: \"deal\" in route.query\n\t\t\t\t\t}),\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"postEditor\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"content\",\n\t\t\t\t\tcomponent: UserContent,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"content\"\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tpath: \"insights\",\n\t\t\t\t\tcomponent: UserInsights,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ti18n: \"insights\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\tpath: \"*\",\n\t\t\tname: \"notFound\",\n\t\t\tcomponent: NotFoundView,\n\t\t\tmeta: {\n\t\t\t\ti18n: \"notFound\",\n\t\t\t\tisUserBusy: true\n\t\t\t}\n\t\t}\n\t]\n})\n\nrouterGuardStatus(router)\nrouterGuardAuthentication(router)\nrouterGuardOrganization(router)\nrouterGuardLocation(router)\n\nexport default router\n","export enum AuthenticationMethodState {\n\tUninitialized,\n\tCanLogin,\n\tCannotLogin,\n\tLoggingIn,\n}\n\nexport default interface IAuthenticationMethod {\n\tcurrentState: AuthenticationMethodState\n\tisLoggingIn: boolean\n\tcanLogin: boolean\n}\n","import { getModule, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"@/store/store\"\nimport IAuthenticationMethod, {AuthenticationMethodState} from \"./iauthenticationMethod\"\n\n@Module({dynamic: true, namespaced: true, name: \"authentication/usernamePassword\", store})\nexport class UsernamePassword extends VuexModule implements IAuthenticationMethod {\n\tpublic currentState = AuthenticationMethodState.CanLogin\n\n\tpublic get isLoggingIn(): boolean {\n\t\treturn this.currentState === AuthenticationMethodState.LoggingIn\n\t}\n\n\tpublic get canLogin(): boolean {\n\t\treturn this.currentState === AuthenticationMethodState.CanLogin\n\t}\n\n\t@Mutation\n\tpublic setState(value: AuthenticationMethodState): void {\n\t\tthis.currentState = value\n\t}\n}\n\nexport default getModule(UsernamePassword)\n","import { getModule, Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"@/store/store\"\n\n@Module({dynamic: true, namespaced: true, name: \"facebook/authentication\", store})\nclass Authentication extends VuexModule {\n\tpublic isLoggingIn = false\n\tpublic hasCheckedLogin = false\n\tpublic hasCheckedPermissions = false\n\tpublic hasPermissionsChanged = false\n\n\tpublic isCookieBlocked = false\n\tpublic hasModuleFailed = false\n\tpublic hasHandledInitialUnknown = false\n\n\tpublic authResponse: IFacebookAuthResponse | null = null\n\tpublic grantedPermissions: string[] = []\n\n\tpublic get isLoggedIn(): boolean {\n\t\treturn this.authResponse !== null\n\t}\n\n\tpublic get canLogin(): boolean {\n\t\treturn !this.isLoggingIn && this.hasCheckedLogin && !this.isLoggedIn && !this.hasModuleFailed\n\t}\n\n\t@Mutation\n\tpublic setIsLoggingIn(value: boolean): void {\n\t\tthis.isLoggingIn = value\n\t}\n\n\t@Mutation\n\tpublic setHasCheckedLogin(value: boolean): void {\n\t\tthis.hasCheckedLogin = value\n\t}\n\n\t@Mutation\n\tpublic setHasCheckedPermissions(value: boolean): void {\n\t\tthis.hasCheckedPermissions = value\n\t}\n\n\t@Mutation\n\tpublic setHasPermissionsChanged(value: boolean): void {\n\t\tthis.hasPermissionsChanged = value\n\t}\n\n\t@Mutation\n\tpublic setIsCookieBlocked(value: boolean): void {\n\t\tthis.isCookieBlocked = value\n\t}\n\n\t@Mutation\n\tpublic setHasModuleFailed(value: boolean): void {\n\t\tthis.hasModuleFailed = value\n\t}\n\n\t@Mutation\n\tpublic setHasHandledInitialUnknown(value: boolean): void {\n\t\tthis.hasHandledInitialUnknown = value\n\t}\n\n\t@Mutation\n\tpublic setAuthResponse(value: IFacebookAuthResponse | null): void {\n\t\tthis.authResponse = value\n\t}\n\n\t@Mutation\n\tpublic setGrantedPermissions(value: string[]): void {\n\t\tthis.grantedPermissions = value\n\t}\n\n\t@Action\n\tpublic async authResponseChanged(response: IFacebookUserAuthenticate): Promise {\n\t\tif (response.status === \"connected\") {\n\t\t\tconst auth = response.authResponse!\n\t\t\tthis.context.commit(\"setAuthResponse\", auth)\n\n\t\t\tif (auth.grantedScopes)\n\t\t\t\tawait this.context.dispatch(\"updatePermissions\", auth.grantedScopes.split(\",\"))\n\t\t} else {\n\t\t\tthis.context.commit(\"setGrantedPermissions\", [])\n\t\t\tthis.context.commit(\"setHasCheckedPermissions\", false)\n\t\t\tthis.context.commit(\"setHasPermissionsChanged\", false)\n\t\t\tthis.context.commit(\"setAuthResponse\", null)\n\t\t}\n\n\t\tthis.context.commit(\"setIsCookieBlocked\", response.status === \"unknown\")\n\t\tthis.context.commit(\"setIsLoggingIn\", false)\n\t\tif (!this.hasCheckedLogin)\n\t\t\tthis.context.commit(\"setHasCheckedLogin\", true)\n\t}\n\n\t@Action\n\tpublic async updatePermissions(value: string[]): Promise {\n\t\tif (this.hasCheckedPermissions && (this.grantedPermissions.length !== value.length || !this.grantedPermissions.every(p => value.includes(p))))\n\t\t\tthis.context.commit(\"setHasPermissionsChanged\", true)\n\n\t\tthis.context.commit(\"setGrantedPermissions\", value)\n\t\tthis.context.commit(\"setHasCheckedPermissions\", true)\n\t}\n}\n\nexport default getModule(Authentication)\n","import { getModule, Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\"\nimport store from \"../store\"\n\n@Module({dynamic: true, namespaced: true, name: \"session/routing\", store})\nexport class Routing extends VuexModule {\n\tpublic routingStatus: string | null = null\n\n\tpublic get isRouting(): boolean {\n\t\treturn this.routingStatus !== null\n\t}\n\n\t@Mutation\n\tpublic setRoutingStatus(value: string | null): void {\n\t\tthis.routingStatus = value\n\t}\n\n\t@Action\n\tpublic routeComplete(): void {\n\t\tthis.context.commit(\"setRoutingStatus\", null)\n\t}\n}\n\nexport default getModule(Routing)\n","import Vue, {WatchOptions} from \"vue\"\nimport Vuex from \"vuex\"\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n\tstrict: process.env.NODE_ENV !== \"production\"\n})\n\nexport async function when(condition: () => boolean): Promise {\n\tif (condition())\n\t\treturn\n\n\treturn new Promise((resolve, reject) => {\n\t\tconst unwatch = store.watch(condition, () => {\n\t\t\tunwatch()\n\t\t\tresolve()\n\t\t})\n\t})\n}\n\nexport function nextTick(): Promise {\n\treturn Vue.nextTick()\n}\n\nexport function watch(getter: () => T, cb: (value: T, oldValue: T) => void, options?: WatchOptions): () => void {\n\treturn store.watch(getter, cb, options)\n}\n\nexport default store\n","export default class ThrottledAction {\n\tprivate readonly action: () => void\n\tprivate timeOut: number | null = null\n\n\tpublic get isWaiting(): boolean {\n\t\treturn this.timeOut !== null\n\t}\n\n\tconstructor(action: () => void, private readonly delayDuration: number) {\n\t\tthis.action = () => {\n\t\t\tthis.timeOut = null\n\t\t\taction()\n\t\t}\n\t}\n\n\tpublic delay(): void {\n\t\tthis.cancel()\n\t\tthis.timeOut = window.setTimeout(this.action, this.delayDuration)\n\t}\n\n\tpublic cancel(): void {\n\t\tif (this.isWaiting) {\n\t\t\tclearTimeout(this.timeOut!)\n\t\t\tthis.timeOut = null\n\t\t}\n\t}\n}\n","import {DateTime as LuxDateTime, SystemZone} from \"luxon\"\nimport Localization from \"@/managers/session/localization\"\nimport SelectOption from \"@/components/structure/selectOption\"\n\nclass DateTime {\n\tpublic readonly maxDate = 1_000_000_000_000\n\tpublic readonly shortDateFormat = \"yyMMdd\"\n\tprivate currentTimeZoneGuess: string | null = null\n\tprivate cachedPrettyTimeZones: Array> | null = null\n\tprivate cachedSimpleTimeZoneNames: Map | null = null\n\tprivate cachedSystemTimeZone: SystemZone | null = null\n\n\tpublic get systemTimeZone(): SystemZone {\n\t\tif (this.cachedSystemTimeZone === null)\n\t\t\tthis.cachedSystemTimeZone = new SystemZone()\n\n\t\treturn this.cachedSystemTimeZone\n\t}\n\n\tpublic get timeZones(): string[] {\n\t\tconst asAny = Intl as any\n\t\tif (asAny && asAny.supportedValuesOf)\n\t\t\treturn asAny.supportedValuesOf(\"timeZone\")\n\n\t\tconst fallbackZones = [\"America/Los_Angeles\", \"America/New_York\", \"Asia/Tokyo\", \"Europe/Berlin\", \"Europe/Copenhagen\", \"Europe/London\", \"Europe/Oslo\", \"Europe/Paris\", \"Europe/Stockholm\"]\n\n\t\tif (!fallbackZones.includes(this.localTimeZone)) {\n\t\t\tfallbackZones.push(this.localTimeZone)\n\t\t\tfallbackZones.sort()\n\t\t}\n\n\t\treturn fallbackZones\n\t}\n\n\tpublic get prettyTimeZones(): Array> {\n\t\tif (this.cachedPrettyTimeZones === null)\n\t\t\tthis.cachedPrettyTimeZones = this.timeZones.map(t => new SelectOption(t, t.replaceAll(\"_\", \" \").replaceAll(\"/\", \" / \")))\n\n\t\treturn this.cachedPrettyTimeZones!\n\t}\n\n\tpublic get localTimeZone(): string {\n\t\tif (this.currentTimeZoneGuess === null)\n\t\t\tthis.currentTimeZoneGuess = LuxDateTime.local().zoneName\n\t\treturn this.currentTimeZoneGuess\n\t}\n\n\tprivate get simpleTimeZoneNames(): Map {\n\t\tif (this.cachedSimpleTimeZoneNames === null)\n\t\t\tthis.cachedSimpleTimeZoneNames = new Map(this.timeZones.map(tz => {\n\t\t\t\tconst split = tz.split(\"/\")\n\t\t\t\treturn [tz, split[split.length - 1].replace(\"_\", \" \")]\n\t\t\t}))\n\n\t\treturn this.cachedSimpleTimeZoneNames\n\t}\n\n\tpublic toSimpleTimeZoneName(name: string): string {\n\t\treturn this.simpleTimeZoneNames.get(name) ?? name\n\t}\n\n\tpublic getSimpleTimeZoneNameIfNeeded(date: LuxDateTime): string {\n\t\treturn date.zoneName !== \"UTC\" && date.offset !== this.systemTimeZone.offset(date.toMillis())\n\t\t\t?` (${this.toSimpleTimeZoneName(date.zoneName!)})`\n\t\t\t: \"\"\n\t}\n\n\tpublic fromLocalTimeZone(date: Date, timeZone: string): Date {\n\t\treturn LuxDateTime.fromJSDate(date, {zone: \"local\"}).setZone(timeZone, {keepLocalTime: true}).toJSDate()\n\t}\n\n\tpublic toLocalTimeZone(date: Date, timeZone: string): Date {\n\t\treturn LuxDateTime.fromJSDate(date, {zone: timeZone}).setZone(\"local\", {keepLocalTime: true}).toJSDate()\n\t}\n\n\tpublic asUTC(date: Date): Date {\n\t\treturn LuxDateTime.fromJSDate(date).setZone(\"utc\", {keepLocalTime: true}).toJSDate()\n\t}\n\n\tpublic getWeekNumber(date: Date): number {\n\t\treturn LuxDateTime.fromJSDate(date).weekNumber\n\t}\n\n\tpublic format(date: Date, format: string): string {\n\t\treturn LuxDateTime.fromJSDate(date).toFormat(format)\n\t}\n\tpublic parse(value: string, format: string): Date {\n\t\treturn LuxDateTime.fromFormat(value, format).toJSDate()\n\t}\n\n\tpublic toIsoString(date: Date, includeZ: boolean = true): string {\n\t\treturn date.toISOString().slice(0, -5) + (includeZ ? \"Z\" : \"\")\n\t}\n\n\tpublic toIsoDateString(date: Date): string {\n\t\treturn date.toJSON().slice(0, 10)\n\t}\n\n\tpublic toShortDateString(date: Date): string {\n\t\treturn this.format(date, this.shortDateFormat)\n\t}\n\tpublic fromShortDateString(value: string): Date {\n\t\treturn this.parse(value, this.shortDateFormat)\n\t}\n\n\tpublic toServerString(value: Date): string {\n\t\tconst dateString = this.toIsoString(value, false)\n\t\treturn dateString.replace(\"T\", \" \")\n\t}\n\tpublic fromServerString(value: string): Date {\n\t\treturn new Date(value.replace(\" \", \"T\") + \"Z\")\n\t}\n\n\tpublic cloneWithOutTime(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\t}\n\n\tpublic cloneAsWeekStart(date: Date, add: number = 0): Date {\n\t\tconst day = date.getDay()\n\n\t\treturn new Date(\n\t\t\tdate.getFullYear(),\n\t\t\tdate.getMonth(),\n\t\t\tdate.getDate() - (day === 0 ? 6 : (day - 1)) + add * 7\n\t\t)\n\t}\n\n\tpublic cloneAsDayStart(date: Date, add: number = 0): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear(),\n\t\t\tdate.getMonth(),\n\t\t\tdate.getDate() + add\n\t\t)\n\t}\n\n\tpublic cloneAsDayEnd(date: Date, add: number = 0): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear(),\n\t\t\tdate.getMonth(),\n\t\t\tdate.getDate() + 1 + add,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-1\n\t\t)\n\t}\n\n\tpublic cloneAndAdd(date: Date, days: number = 0, months: number = 0): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear(),\n\t\t\tdate.getMonth() + months,\n\t\t\tdate.getDate() + days,\n\t\t\tdate.getHours(),\n\t\t\tdate.getMinutes(),\n\t\t\tdate.getSeconds(),\n\t\t\tdate.getMilliseconds()\n\t\t)\n\t}\n\n\tpublic isInWeek(date: Date, weekStart: Date): boolean {\n\t\tconst dateTime = date.getTime()\n\t\tconst weekStartTime = weekStart.getTime()\n\n\t\tif (dateTime < weekStartTime)\n\t\t\treturn false\n\n\t\tconst weekEnd = new Date(weekStartTime)\n\n\t\treturn dateTime < weekEnd.setDate(weekEnd.getDate() + 7)\n\t}\n\n\tpublic resetTime(date: Date): Date {\n\t\tdate.setHours(0, 0, 0, 0)\n\n\t\treturn date\n\t}\n\n\tpublic isWeekend(date: Date): boolean {\n\t\treturn date.getDay() % 6 === 0\n\t}\n\n\tpublic isSameDay(date1: Date, date2: Date): boolean {\n\t\treturn (\n\t\t\tdate1.getFullYear() === date2.getFullYear() &&\n\t\t\tdate1.getMonth() === date2.getMonth() &&\n\t\t\tdate1.getDate() === date2.getDate()\n\t\t)\n\t}\n\n\tpublic isSameDayUTC(date1: Date, date2: Date): boolean {\n\t\treturn (\n\t\t\tdate1.getUTCFullYear() === date2.getUTCFullYear() &&\n\t\t\tdate1.getUTCMonth() === date2.getUTCMonth() &&\n\t\t\tdate1.getUTCDate() === date2.getUTCDate()\n\t\t)\n\t}\n\n\tpublic getNumberOfDays(from: Date, to: Date): number {\n\t\tconst day = 1000 * 60 * 60 * 24\n\t\treturn Math.round((to.getTime() - from.getTime()) / day)\n\t}\n\n\tpublic getNextRoundDateTime(minuteInterval: number = 5): LuxDateTime {\n\t\treturn this.roundToMinuteInterval(LuxDateTime.now(), minuteInterval)\n\t}\n\n\tpublic roundToMinuteInterval(date: LuxDateTime, minuteInterval: number = 5): LuxDateTime {\n\t\treturn date.set({minute: Math.ceil(date.minute / minuteInterval) * minuteInterval, second: 0, millisecond: 0})\n\t}\n\n\tpublic getNextRound(minuteInterval: number = 5): Date {\n\t\tconst date = new Date()\n\t\tconst min = date.getMinutes()\n\t\tdate.setMinutes(Math.ceil(min / minuteInterval) * minuteInterval, 0, 0)\n\t\treturn date\n\t}\n\n\tpublic fromNow(date: Date): string {\n\t\treturn LuxDateTime.fromJSDate(date).setLocale(Localization.current).toRelative({padding: 800})!\n\t}\n\n\tpublic fromNowDateTime(date: LuxDateTime): string {\n\t\treturn date.setLocale(Localization.current).toRelative({padding: 800})!\n\t}\n\n\tpublic nowAdd(days: number, seconds: number = 0): Date {\n\t\tconst date = new Date()\n\t\tdate.setDate(date.getDate() + days)\n\t\tdate.setSeconds(date.getSeconds() + seconds, 0)\n\t\treturn date\n\t}\n\n\tpublic fromDate(from: Date, days: number): Date {\n\t\tconst date = new Date(from)\n\t\tdate.setDate(date.getDate() + days)\n\t\treturn date\n\t}\n\n\tpublic isInRange(value: Date, from: Date | null, to: Date | null): boolean {\n\t\tconst valueTime = value.getTime()\n\n\t\treturn (from === null || from.getTime() <= valueTime) && (to === null || to.getTime() >= valueTime)\n\t}\n\n\tpublic sort(date1: Date | null, date2: Date | null): number {\n\t\tif (date1 === null || date2 === null)\n\t\t\tif (date1 !== null)\n\t\t\t\treturn 1\n\t\t\telse if (date2 !== null)\n\t\t\t\treturn -1\n\t\t\telse\n\t\t\t\treturn 0\n\n\t\treturn date1.getTime() - date2.getTime()\n\t}\n\n\tpublic min(...dates: Array): Date | null {\n\t\tlet result = null\n\t\tlet value = Number.MAX_VALUE\n\n\t\tfor (const date of dates) {\n\t\t\tif (date === null)\n\t\t\t\tcontinue\n\n\t\t\tconst dateValue = date.getTime()\n\t\t\tif (dateValue < value) {\n\t\t\t\tresult = date\n\t\t\t\tvalue = dateValue\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n\n\tpublic max(...dates: Array): Date | null {\n\t\tlet result = null\n\t\tlet value = Number.MIN_VALUE\n\n\t\tfor (const date of dates) {\n\t\t\tif (date === null)\n\t\t\t\tcontinue\n\n\t\t\tconst dateValue = date.getTime()\n\t\t\tif (dateValue > value) {\n\t\t\t\tresult = date\n\t\t\t\tvalue = dateValue\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n\n\tpublic parseStringOrNull(value: string | null): Date | null {\n\t\treturn value !== null ? new Date(value) : null\n\t}\n}\n\nexport default new DateTime()\n","import ErrorStackParser, {StackFrame} from \"error-stack-parser\"\n\nconst abortMessages = [\n\t\"Failed to fetch\",\n\t\"cancelled\",\n\t\"annulleret\",\n\t\"NetworkError when attempting to fetch resource.\"\n]\n\nexport function getErrorLocation(error?: Error): string {\n\tif (!error)\n\t\treturn \"No error\"\n\n\ttry {\n\t\tconst frames = ErrorStackParser.parse(error)\n\n\t\tif (frames.length === 0)\n\t\t\treturn \"Unknown\"\n\n\t\treturn (frames[0].functionName || (frames[0].fileName + \":\" + frames[0].lineNumber))\n\t} catch (error) {\n\t\treturn \"Failed to parse stack\"\n\t}\n}\n\nexport function getErrorStack(error?: Error): StackFrame[] {\n\tif (!error)\n\t\treturn []\n\n\ttry {\n\t\tconst frames = ErrorStackParser.parse(error)\n\n\t\tif (frames.length === 0)\n\t\t\treturn []\n\n\t\treturn frames\n\n\t} catch (error) {\n\t\treturn []\n\t}\n}\n\nexport function isPotentialAborted(error: Error): boolean {\n\treturn (error instanceof TypeError) && abortMessages.includes(error.message)\n}\n\nexport {StackFrame}\n","const cleanCharactersMask = /[^a-z0-9\\-_]/g\nconst noEmptyEqualsMask = /=(?=$|&)/g\n\nexport function setInQuery(url: string, parameters?: Record): string {\n\tif (!parameters)\n\t\treturn url\n\n\tconst urlSplit = url.split(\"?\")\n\n\tconst query = new URLSearchParams(\n\t\turlSplit.length > 1\n\t\t\t? urlSplit[1]\n\t\t\t: undefined)\n\n\tObject.entries(parameters).forEach(([key, value]) => {\n\t\tif (value === null)\n\t\t\tquery.set(key, \"\")\n\t\telse if (value !== undefined)\n\t\t\tquery.set(key, value.toString())\n\t})\n\n\tconst queryString = query.toString().replaceAll(noEmptyEqualsMask, \"\")\n\n\treturn queryString !== \"\"\n\t\t? `${urlSplit[0]}?${queryString}`\n\t\t: urlSplit[0]\n}\n\nexport function toUrlCleanString(value: string): string {\n\treturn value.toLocaleLowerCase().replaceAll(cleanCharactersMask, \"\")\n}\n\nexport function urlEncode(url: string): string {\n\treturn encodeURIComponent(url)\n}\n","import type IItem from \"@/managers/data/base/iItem\"\n\nexport function flatten(array: T[][]): T[] {\n\treturn array.reduce((acc, val) => acc.concat(val), [])\n}\n\nexport function firstOrNull(array: T[], check: (item: T) => boolean): T | null {\n\tfor (const item of array)\n\t\tif (check(item))\n\t\t\treturn item\n\treturn null\n}\n\nexport function removeNullItems(array: Array): T[] {\n\treturn array.filter(item => item !== null) as T[]\n}\n\nexport function toItemMap(array: T[]): Map {\n\treturn new Map(array.map(i => [i.id, i]))\n}\n","module.exports = {\"siteTitle\":{\"postFix\":\"Post Office\",\"routingStatus\":{\"routing\":\"Routing\",\"checkingLogin\":\"Tjekker login\",\"checkingOrganization\":\"Tjekker @:common.taxonomy.organization\",\"checkingLocation\":\"Tjekker @:common.taxonomy.location\"}},\"common\":{\"save\":\"gem\",\"accept\":\"accepter\",\"send\":\"send\",\"close\":\"luk\",\"dismiss\":\"luk\",\"yes\":\"ja\",\"no\":\"nej\",\"ok\":\"ok\",\"okay\":\"okay\",\"cancel\":\"annuller\",\"continue\":\"fortsæt\",\"required\":\"Påkrævet\",\"logIn\":\"log ind\",\"logOut\":\"log ud\",\"email\":\"email\",\"password\":\"kodeord\",\"create\":\"opret\",\"delete\":\"slet\",\"remove\":\"fjern\",\"edit\":\"redigere\",\"duplicate\":\"dupliker\",\"postOffice\":\"Post Office\",\"search\":\"søg\",\"notApplicable\":\"n/a\",\"supportEmail\":\"support@postofficesocial.com\",\"supportPhone\":\"+45 70 60 50 82\",\"pieces\":\"stk.\",\"minute\":\"minut\",\"minutes\":\"minutter\",\"hour\":\"time\",\"hours\":\"timer\",\"anonymizedName\":\"Anonymiseret\",\"unknownName\":\"Ukendt\",\"week\":\"uge\",\"month\":\"måned\",\"clickHere\":\"klik her\",\"next\":\"next\",\"postFeed\":\"Opslag\",\"taxonomy\":{\"contentGroup\":\"gruppe\",\"contentGroupAll\":\"Alle\",\"filter\":\"filter\",\"location\":\"lokation\",\"organization\":\"organisation\",\"post\":\"opslag\",\"scheduledTemplate\":\"skabelon\",\"serviceConnection\":\"service forbindelse\",\"templateCategory\":\"skabelonkategori\",\"template\":\"skabelon\",\"user\":\"bruger\"},\"organizationType\":{\"1\":\"Multi store\",\"2\":\"Single store\",\"3\":\"Brand\"},\"serviceType\":{\"1\":\"Facebook\",\"2\":\"Instagram\"},\"industries\":{\"automotiveDealer\":\"Bilforhandler\",\"beautyAndCosmetics\":\"Skønhed og kosmetik\",\"bicycleShop\":\"Cykelbutik\",\"bookstore\":\"Boghandler\",\"cafe\":\"Cafe\",\"clinic\":\"Klinik\",\"clothesAndFashion\":\"Tøj og mode\",\"convenienceStore\":\"Convenience\",\"craftsAndHobbies\":\"Hobbyforretning\",\"dentalClinic\":\"Tandklinik\",\"departmentStore\":\"Stormagasin\",\"electronics\":\"Elektronik\",\"fitnessCenter\":\"Fitnesscenter\",\"footwearStore\":\"Skobutik\",\"furniture\":\"Møbler\",\"gardenCenter\":\"Havecenter\",\"groceryStore\":\"Dagligvarebutik\",\"hairSalon\":\"Frisør\",\"healthAndWellness\":\"Sundhed og velvære\",\"homeDecoration\":\"Indretning\",\"homeImprovement\":\"Byggecenter\",\"jewelryStore\":\"Smykkeforretning\",\"musicalStore\":\"Musikbutik\",\"opticalStore\":\"Optiker\",\"outdoorAndCamping\":\"Outdoor og camping\",\"petSupplies\":\"Kæledyrsbutik\",\"pharmacy\":\"Apotek\",\"realEstateAgency\":\"Ejendomsmægler\",\"restaurant\":\"Restaurant\",\"sportingGoods\":\"Sportsbutik\",\"toysAndHobby\":\"Legetøjsbutik\",\"wineAndLiquor\":\"Vinhandel\",\"other\":\"Andre\"},\"dealPlaceholders\":{\"checkoutlink\":\"Check ud link\",\"dealid\":\"Deal id\",\"dealname\":\"Produktnavn\",\"firstname\":\"Fornavn\",\"locationname\":\"Lokations navn\",\"maxallowedquantity\":\"Maks tilladt mængde\",\"orderedquantity\":\"Bestilt antal\",\"orderid\":\"Ordre id\",\"orderlink\":\"Ordre link\",\"pickupend\":\"Afhentning slut\",\"pickupenddate\":\"Afhentning slut dato\",\"pickupendtime\":\"Afhentning slut tid\",\"pickupstartdate\":\"Afhentning start dato\",\"pickupstarttime\":\"Afhentning start tid\",\"productdescription\":\"Produktbeskrivelse\",\"productname\":\"Variantnavn\",\"productprice\":\"Produktpris\",\"productretailprice\":\"Produkt førpris\",\"remainingstock\":\"Lagerbeholdning\"}},\"components\":{\"acceptTermsDialog\":{\"header\":\"Accepter nye vilkår\"},\"approvePastPostDialog\":{\"header\":\"Flyt opslaget frem?\",\"text\":\"Opslaget er planlagt til en ældre dato. Vil du flytte opslaget frem og poste det nu?\",\"confirm\":\"Flyt opslaget frem\"},\"approvePostFromPastScheduledTemplateDialog\":{\"header\":\"Flyt opslaget frem?\",\"text\":\"Opslaget er planlagt til en ældre dato. Vil du flytte opslaget frem og poste det nu?\",\"confirm\":\"Flyt opslaget frem\"},\"authenticationForm\":{\"title\":\"Log ind\",\"emailWasNotFound\":\"Email blev ikke fundet\",\"notUser\":\"Har du ikke en bruger?\",\"signUp\":\"Tilmeld dig\",\"withFacebook\":\"Log ind med Facebook\",\"facebookFailed\":\"Vi kunne ikke få kontakt til Facebook, tjek venligst at du ikke har slå \\\"Pop-up-blokkering\\\" til i din browser.\",\"login\":\"Log ind\",\"emailNotValid\":\"Email ikke gyldig\",\"passwordLength\":\"Din adgangskode skal være på mindst 8 tegn\",\"newPasswordLength\":\"Din nye adgangskode skal være på mindst 8 tegn\",\"required\":\"@:common.required\",\"errorMessages\":{\"invalidLogin\":\"Email eller kodeord er ukorrekt\",\"connection\":\"Forbindelsen til Post Office afbrudt\",\"general\":\"Ukendt fejl: {message}\"},\"facebookForm\":{\"withFacebook\":\"Forsæt med Facebook\",\"otherLoginMethods\":\"Andre login-metoder\",\"failed\":\"Vi kunne ikke få kontakt til Facebook, tjek venligst at du ikke har slå \\\"Pop-up-blokkering\\\" til i din browser.\",\"unknownUser\":{\"header\":\"Prøv venligst igen\",\"message\":\"Beklager, vi kunne ikke logge dig ind. Det kan skyldes:\\n1) Du forsøgte at logge ind med en Facebook bruger vi ikke kender.\\n2) Du har allerede oprettet login med email og password\\n\\nHvis du tror der er sket en fejl, så kontakt venligst support@postofficesocial.com.\"}},\"emailPasswordForm\":{\"signIn\":\"Log ind\",\"showReset\":\"Glemt kodeord?\"},\"passwordResetForm\":{\"emailSent\":\"Instruktioner sendt\",\"showLogin\":\"Tilbage\",\"send\":\"@:common.send\",\"sent\":\"Vi har sendt en mail til din indbakke. Følg instruktionerne for at nulstille dit kodeord.\",\"passwordResetHeadline\":\"Glemt kodeord?\",\"paragraph-1\":\"Skriv den email adresse som du brugte da du tilmeldte dig Post Office. Så sender vi dig en email med yderligere instruktioner.\",\"paragraph-2\":\"Af sikkerhedsmæssige årsager gemmer vi ikke dit kodeord. Så vi vil be dig om at lave en ny.\"},\"createUser\":{\"join\":\"Tilmeld\",\"on\":\"på\",\"firstName\":\"Fornavn\",\"lastName\":\"Efternavn\",\"email\":\"Email\",\"password\":\"Kodeord\",\"create\":\"Opret\",\"consentToMarketing\":\"Jeg vil gerne have besked om nye features og særlige tilbud.\",\"consentToTermsOfUse\":{\"text\":\"Jeg accepterer {terms}, {privacy}, og generelle notifikationsindstillinger.\",\"terms\":\"vilkår\",\"privacy\":\"Privatpolitik\"}},\"userSelection\":{\"alreadyHaveUser\":\"Allerede bruger?\",\"joinAsLoggedIn\":\"Forsæt som {name}\",\"logOut\":\"Opret ny bruger\",\"showLogin\":\"Log ind\"}},\"calendarBrandLogo\":{\"fromBrand\":\"Indhold fra {brandName}\"},\"calendarListLoading\":{\"scrollToLoad\":\"Scroll for at hente flere\"},\"calendarPost\":{\"less\":\"Mindre\",\"more\":\"Mere\",\"preapproved\":\"Dette @:common.taxonomy.post er \\\"Forhåndsgodkendt\\\"\",\"needsEditBoth\":\"Opdater med din egen tekst og billede\",\"needsEditDummyImage\":\"Vi har brug for, at du udskifter billedet\",\"needsEditPlaceholder\":\"Vi har brug for, at du opdaterer teksten\",\"headerDeal\":{\"header\":\"Salg\",\"liveHeader\":\"Live\"},\"statistics\":{\"postUsage\":\"{postsPosted} udgivet, {postsScheduled} planlagte ({unscheduled} uplanlagte)\",\"impressions\":\"Visninger\",\"consumptions\":\"Interaktioner\",\"engagedUsers\":\"Engagerede brugere\"}},\"calendarTypeSelect\":{\"list\":\"Liste\",\"4days\":\"4 dage\",\"week\":\"Uge\",\"month\":\"Måned\"},\"cantApprovePreapprovedScheduledTemplateDialog\":{\"header\":\"@:common.taxonomy.scheduledTemplate kan ikke forhåndgodkendes\",\"text\":\"Denne @:common.taxonomy.scheduledTemplate kan ikke forhåndsgodkendes fordi:\",\"hasMultipleVideos\":\"Den indeholder mere end en video, den må kun han én.\",\"isMediaInvalidForPolicies\":\"Den indeholder media eller en kombination af medier der ikke er gyldig for den valgte service.\",\"multipleFileGif\":\"Den indeholder en gif fil sammen med andre billeder, en gif fil kan ikke postes sammen med andre billeder.\",\"hasDummyFiles\":\"Den indeholder filer markeret som dummy.\",\"hasPlaceholders\":\"Den indeholder [nøgleord] i dens message.\",\"isInPast\":\"Den er sat i fortiden.\",\"edit\":\"Rediger @:common.taxonomy.scheduledTemplate\"},\"cantApproveScheduledTemplateDialog\":{\"header\":\"@:common.taxonomy.scheduledTemplate ugyldig\",\"text\":\"Skabelonen kan ikke godkendes fordi:\",\"publishDateBlocked\":\"Dato og tidspunkt er låst til en ældre dato.\",\"mediaBlocked\":\"At skabelonen indeholder et Dummy billede eller en video og \\\"Lås medie\\\" samtidig er aktiveret.\",\"messageBlocked\":\"Teksten indeholder [nøgleord] og \\\"Lås tekst\\\" er samtidig aktiveret.\",\"invalidFiles\":\"Der er billeder der ikke er gyldige til {service}.\",\"edit\":\"Rediger @:common.taxonomy.scheduledTemplate\"},\"cantUseScheduledTemplateDialog\":{\"header\":\"@:common.taxonomy.scheduledTemplate ikke tilgængelig\",\"text\":\"Skabelonen kan ikke godkendes fordi:\",\"publishDateBlocked\":\"Dato og tidspunkt er låst til en ældre dato. Be din administrator om at flytte opslaget frem eller låse det op.\",\"mediaBlocked\":\"At skabelonen indeholder et Dummy billede eller en video og \\\"Lås medie\\\" samtidig er aktiveret.\",\"messageBlocked\":\"Teksten indeholder [nøgleord] og \\\"Lås tekst\\\" er samtidig aktiveret.\"},\"changeUserMode\":{\"toOrganization\":\"Skift til administrator\",\"toLocation\":\"Skift til lokation\"},\"confirmApproveScheduledTemplateDialog\":{\"header\":\"Bekræft godkendelse\",\"text\":\"Teksten indeholder tegn der ligner [nøgleord] som ikke er lukket. Ønsker du fortsat at godkende skabelonen?\",\"edit\":\"Rediger @:common.taxonomy.scheduledTemplate\",\"approve\":\"Godkend @:common.taxonomy.scheduledTemplate\"},\"confirmPublishPostDialog\":{\"header\":\"Bekræft godkendelse\",\"text\":\"Teksten indeholder tegn der ligner [nøgleord] som ikke er lukket. Ønsker du fortsat at godkende posten?\",\"edit\":\"Rediger @:common.taxonomy.post\",\"approve\":\"Godkend @:common.taxonomy.post\"},\"confirmPostedPostModifyDialog\":{\"header\":\"Opdater publiceret opslag\",\"text\":\"Dette @:common.taxonomy.post er publiceret og dine ændringer vil blive lagt ud med det samme.\"},\"cookieConsentDialog\":{\"header\":\"Cookie brug\",\"text\":\"Vi bruger cookies sammen med vores analytics partner til at hjælpe med at analysere vores webtrafik.\",\"cookies\":[{\"name\":\"intercom-device-#\",\"description\":\"Bruges til support og onboarding med Intercom. (nødvendig)\"},{\"name\":\"intercom-id-#\",\"description\":\"Bruges til support og onboarding med Intercom. (nødvendig)\"},{\"name\":\"intercom-session-#\",\"description\":\"Bruges til support og onboarding med Intercom. (nødvendig)\"},{\"name\":\"_ga\",\"description\":\"Bruges til at sende data til Google Analytics omkring en besøgendes enhed og adfærd. Følger besøgende på tværs af enheder og marketingkanaler.\"},{\"name\":\"_ga_#\",\"description\":\"Bruges til at sende data til Google Analytics omkring en besøgendes enhed og adfærd. Følger besøgende på tværs af enheder og marketingkanaler.\"}],\"learnMore\":\"Lær mere\",\"allow\":\"Tillad alle\",\"deny\":\"Tillad nødvendige\"},\"createSingleStoreForm\":{\"companyName\":\"Firmanavn\",\"companyPlaceholder\":\"Hvor arbejder du\",\"phoneNumber\":\"Telefonnummer\",\"industry\":\"Industri\",\"timeZone\":\"Tidszone\",\"currency\":\"Valuta\",\"selectOne\":\"Vælg en\"},\"emptyDeals\":{\"noDealsYet\":\"Du har ingen salgsopslag\",\"createDeals\":\"Opret et nyt salgsopslag, og det vil blive vist her.\",\"watchVideo\":\"Se video (5:32)\",\"createDealPost\":\"Opret salgsopslag\"},\"postsFromTemplateDialog\":{\"header\":\"Oprettede opslag\",\"includeUnscheduled\":\"Vis uplanlagte\",\"indicators\":{\"total\":\"Opslag\",\"published\":\"Udgivne opslag\",\"scheduled\":\"Planlagte opslag\",\"unscheduled\":\"Uplanlagte opslag\",\"failed\":\"Fejlede opslag\",\"use\":\"Lokal brug\",\"adaption\":\"Lokal tilpasning\",\"revenue\":\"Omsætning\",\"sold\":\"Solgte produkter\",\"orders\":\"Afgivede ordrer\",\"reach\":\"Visninger\",\"engagedUsers\":\"Interaktioner\",\"engagement\":\"Engagerede brugere\",\"impressionsOrganic\":\"Visninger Organisk\",\"impressionsPaid\":\"Visninger Betalt\"}},\"createLoginDialog\":{\"header\":\"Opdater profil\",\"text\":\"Facebook login bliver snart udfaset.\\nTilføj venligst venligst email og kodeord til din profil for at fortsætte med at bruge Post Office.\",\"submit\":\"Opdater\",\"later\":\"Gør det senere\",\"error\":\"Der gik noget galt, prøv venligst igen.\",\"headerDone\":\"Tak\",\"done\":\"Næste gang du skal logge ind, brug da venligst din email og kodeord.\"},\"createPostButton\":{\"deals\":\"Salgsopslag\",\"live\":\"Live salg event\"},\"dateRangePickerDialog\":{\"custom\":\"Brugerdefinerede\",\"confirm\":\"@:common.save\"},\"dateTimePickerDialog\":{\"confirm\":\"@:common.save\"},\"dealPlaceholdersMenu\":{\"activator\":\"Tilføj nøgleord\",\"required\":\"Påkrævede\",\"optional\":\"Valgfrie\"},\"dealsReplySetting\":{\"label\":\"Besvarelser\",\"value\":{\"message\":\"Privat besked\",\"comment\":\"Kommentar\",\"default\":\"Organisation standard ({default})\"}},\"dealsFilterDialog\":{\"header\":\"Filter\",\"reset\":\"Nulstil\",\"state\":\"Status\",\"states\":{\"draft\":\"Kladde\",\"approved\":\"Godkendt\",\"active\":\"Aktiv\",\"expired\":\"Udløbet\"},\"apply\":\"Anvend filter\"},\"dealsList\":{\"item\":{\"statistics\":{\"revenue\":\"Omsætning\",\"price\":\"Pris\",\"delivered\":\"Afleveret\",\"sold\":\"Solgt\"}}},\"dealsTexts\":{\"reply\":{\"generalHeader\":\"Generelle svartekster\",\"liveHeader\":\"Svartekster ved live salg event\",\"itemName\":\"svar\",\"general\":{\"confirmation\":\"Ordrebekræftelse\",\"confirmationWithLink\":\"Ordrebekræftelse (Variantopslag)\",\"expired\":\"Udløbet salgsopslag\",\"outOfStock\":\"Varen udsolgt\",\"exceedsMaxAllowedQuantity\":\"Maks antal varer overskredet\",\"exceedsStock\":\"Lav lagerbeholdning\",\"pickupReminder\":\"Afhentningspåmindelse\",\"pickupReminderLastDay\":\"Afhentningspåmindelse på den sidste dag\"},\"live\":{\"robotConnected\":\"Forbindelse klar\",\"liveDealDisconnectedHeader\":\"Forbindelse brudt\",\"pleaseTryAgain\":\"Prøv igen\",\"liveConfirmation\":\"Ordrebekræftelse\",\"liveConfirmationWithLink\":\"Bekræftelse på ordrer, afgivet efter live er afsluttet\",\"orderCheckout\":\"Bestillingslink til kunder efter live er afsluttet\",\"productSoldOut\":\"Produkt er udsolgt\"}},\"posts\":{\"header\":\"Automatiske tekster på salgsopslag\",\"itemName\":\"tekst\",\"texts\":{\"footer\":\"Footer\",\"variantFooter\":\"Footer (Variantopslag)\",\"liveFooter\":\"Live footer\",\"alcoholFooter\":\"Alkohol footer\",\"outOfStockHeader\":\"Udsolgt\",\"expiredHeader\":\"Udløbet\"}},\"messagesDialog\":{\"addItem\":\"Tilføj {item}\",\"default\":\"Brug standard\",\"contextMenu\":{\"duplicate\":\"@:common.duplicate\",\"delete\":\"@:common.delete\"}}},\"dealsSettings\":{\"header\":\"Salg\",\"isEnabled\":\"Er det muligt at oprette salgsopslag?\",\"isAlcoholEnabled\":\"Tillad alkohol i salg\",\"isAlcoholEnabledTooltip\":\"Slå til for at tillade at markere et salgsopslag som indeholdende alkohol,\\nderved bliver en alkohol footer automatisk sat på opslaget\",\"isCustomersAnonymized\":\"Anonymiser kundedata øjeblikkeligt\",\"isCustomersAnonymizedTooltip\":\"Slå til for at anonymisere kundedata for NYE ordrer øjeblikkeligt.\\nSlå fra for at beholde kundedata 90 dage fra ordreoprettelse.\",\"howTo\":\"Kontakt {email} for at aktivere interaktive salgs-posts og -templates på Facebook i din organisation.\"},\"deleteServiceConnectionDialog\":{\"header\":\"Slet forbindelse\",\"confirm\":\"Slet\",\"text\":\"Er du sikker på at du vil slette {userName}s {type} forbindelse?\\nDette vil ikke fjerne andre forbindelser til {type}.\"},\"disconnectServiceDialog\":{\"header\":\"Frakobl {type}\",\"confirm\":\"Frakoble\",\"text\":\"Er du sikker på at du vil frakoble {name} ({type})?\\nDette vil fjerne alle forbindelser og associationer mellem den og din lokation.\",\"noName\":\"denne service\"},\"liveDealOverlapDialog\":{\"header\":\"Live salg event overlap\",\"text\":\"Denne live salg event kan ikke godkendes, da dens periode overlapper med en anden allerede godkendt live salg event.\"},\"locationDealsSettings\":{\"header\":\"Salg\",\"isEnabled\":\"Er det muligt at oprette salgsopslag?\",\"likeRepliesText\":\"Automatisk like kundernes bestillinger\",\"likeRepliesTooltip\":\"Post Office vil, på vegne af din side, automatisk \\\"like\\\" kommentarer fra kunder, når deres ordre er blevet registreret.\",\"customizeReplies\":\"Tilpas svartekster\",\"customizePosts\":\"Tilpas opslagstekster\",\"howTo\":\"Kontakt en administrator fra din organisation for at aktivere interaktive salgs-posts og -templates på Facebook.\"},\"deleteDialog\":{\"header\":\"Slet {type}?\",\"text\":\"Er du sikker på at du vil slette {name}?\"},\"missingServiceForContentDialog\":{\"header\":\"Tilføj service forbindelse?\",\"text\":\"Du skal tilføje en forbindelse til {service} før du kan bruge dette indhold\",\"add\":\"Tilføj forbindelse\"},\"editActivePostDialog\":{\"header\":\"Deaktiver opslag for at redigere!\",\"text\":\"Opslaget du prøver at redigerer er allerede godkendt. For at redigere det skal du først deaktivere det.\",\"confirm\":\"Deaktiver og rediger\"},\"editActiveScheduledTemplateDialog\":{\"header\":\"Rediger godkendt opslag?\",\"text\":\"Opslaget du prøver at redigerer er allerede godkendt. Lokationer der allerede har benyttet opslaget vil ikke modtage eventuelle ændringer.\",\"confirm\":\"Rediger\"},\"endLivePostDialog\":{\"header\":\"Har du afsluttet din live salg event?\",\"confirm\":\"Afslut Live salg event\",\"text\":\"Når du trykker \\\"Afslut live salg event\\\", sender vi bekræftelseslinks til dem der har bestilt, så de kan færdiggøre deres bestilling.\"},\"approveInvalidPostDialog\":{\"header\":\"Opslaget skal tilpasses!\",\"confirm\":\"Rediger opslag\",\"placeholderMessage\":\"Der er et eller flere nøgleord i teksten som skal erstattes før opslaget kan godkendes.\",\"incompleteDeal\":\"Der er salgs detaljer som skal udfyldes før opslaget kan godkendes.\",\"dummyFiles\":\"Der er et Dummy-billede eller en dummy-video i opslaget, som skal fjernes eller erstattes før opslaget kan godkendes.\",\"invalidFiles\":\"Der er billeder der ikke er gyldige til {service}.\",\"multipleFileGif\":\"En gif fil kan ikke postes sammen med andre billeder.\"},\"externalPostEmbed\":{\"cantEmbed\":\"Kunne ikke embedde {type} post\",\"wasDeleted\":\"Denne post er blevet slettet på {type}\",\"open\":\"Åben i en ny tab\"},\"externalPostEmbedDialog\":{\"header\":\"{type} opslag\"},\"failedToAddFileDialog\":{\"header\":\"Kunne ikke tilføje fil\",\"imageFailed\":\"Ups, vi kunne ikke tilføje filen {fileName}.\\nEr du sikker på det er et billede?\",\"multipleGifs\":\"Du kan ikke tilføje flere gif'er til et opslag.\"},\"htmlTextarea\":{\"missingPlaceholders\":\"De følgende nøgleord er påkrævet : {placeholders}\"},\"imageSourceDialog\":{\"header\":\"Skift billede\",\"upload\":\"Upload billede\",\"facebook\":\"Hent fra Facebook\"},\"invalidMediaButton\":{\"mediaType\":{\"image\":\"Billedets\",\"video\":\"Videons\"},\"and\":\"og\",\"violations\":{\"dimension\":\"dimensioner\",\"length\":\"længde\"},\"invalidDimension\":\"{media} {violations} er ikke gyldig til {service}\",\"invalidType\":\"Denne type medie er ikke gyldig til {service}\",\"clickToFix\":\", klik for at rette automatisk\"},\"invitationEditor\":{\"email\":\"Email\",\"alreadyMember\":\"Den angivet email adresse tilhører et eksisterende medlem\",\"admin\":{\"header\":\"Inviter administrator\",\"open\":\"Inviter administrator\",\"completeNew\":\"@:common.send\",\"completeExisting\":\"@:common.send\"},\"member\":{\"header\":\"Inviter medlem\",\"open\":\"Inviter medlem\",\"completeNew\":\"@:common.send\",\"completeExisting\":\"@:common.send\"}},\"languageChanger\":{\"label\":\"Sprog\"},\"locationNavigation\":{\"header\":\"Vælg lokation\",\"noItems\":\"Du har ingen lokationer\",\"noMatchedItems\":\"Du har ingen matchene lokationer\"},\"locationsSelector\":{\"header\":\"Lokationer\",\"search\":\"Søg\",\"locationState\":[\"Alle\",\"Valgte\",\"Ikke-valgte\"]},\"locationUsersDialog\":{\"header\":\"Brugere\",\"noUsers\":\"Ingen medlemmer\",\"removeUser\":\"Fjern bruger fra lokation\"},\"usersLocationsDialog\":{\"header\":\"Lokationer\",\"noLocations\":\"Ingen lokationer\",\"removeLocation\":\"Fjern {user} fra lokation\"},\"locationServicesDialog\":{\"header\":\"Services\"},\"locationServiceSummary\":{\"connections\":\"{active} / {total} forbindelser virker\",\"noConnections\":\"Der er ingen forbindelser!\",\"broken\":\"Ingen fungerende forbindelser!\",\"noService\":\"Ikke forbundet\",\"delete\":\"Slet alle forbindelse til {service}\",\"manage\":\"Administrer {service} forbindelser\"},\"connectionsDialog\":{\"disconnect\":\"Frakobl {serviceType}\",\"you\":\"Dig\",\"admin\":\"Admin\",\"noConnections\":\"Der er ingen forbindelser til {name}.\",\"NoService\":\"Ikke forbundet\",\"connected\":\"Forbundet\",\"mustRenew\":\"Virker ikke\",\"reconnect\":\"Genetablér\",\"addConnection\":\"Tilføj forbindelse\"},\"locationContentSubscriptionList\":{\"header\":\"Indhold\",\"dialogHeader\":\"Fjern abonnement\",\"dialogMessage\":\"Fjern\",\"confirmRemove\":\"Er du sikker på at du vil fjerne indholds abonnementet?\"},\"locationSendInvite\":{\"header\":\"Inviter medlem\",\"completeNew\":\"@:common.send\",\"completeExisting\":\"@:common.send\",\"email\":\"@:common.email\",\"inviteLink\":\"Invitationslink\",\"copyToClipboardTooltip\":\"Kopier til udklipsholder\",\"renewLinkTooltip\":\"Generer nyt invitationslink\",\"confirmRenewText\":\"Er du sikker på at du vil genererer et nyt invitations link? Det gamle link vil ikke længere fungere.\",\"confirm\":\"@:common.yes\",\"cancel\":\"@:common.no\",\"createLinkText\":\"Opret invitationslink til lokationoprettelse som kan deles.\",\"createLink\":\"Opret link\"},\"locationUserList\":{\"header\":\"Team\",\"addUser\":\"Tilføj bruger\",\"dialogHeader\":\"Fjern bruger\",\"dialogMessage\":\"Fjern\",\"confirmRemove\":\"Er du sikker på at du vil fjerne brugeren?\",\"noUsers\":\"Ingen brugere!?\"},\"logoChanger\":{\"confirmHeader\":\"Bekræft nyt logo\",\"confirmText\":\"Er du sikker på, at du vil bruge dette billede, som logo for lokationen?\"},\"logoSelector\":{\"header\":\"Logo\"},\"logOutDialog\":{\"header\":\"Log ud\",\"logOut\":\"Log ud\",\"message\":\"Er du sikker på du vil logge ud?\"},\"deleteAccountDialog\":{\"header\":\"Slet konto\",\"delete\":\"Slet\",\"message\":\"Er du sikker på, at du vil slette din konto?\\nDette er en permanent handling og kan ikke fortrydes.\",\"confirm\":\"Jeg bekræfter sletningen\"},\"mustRenewServiceConnectionDialog\":{\"header\":\"Forbindelse skal fornyes\",\"text\":\"Forny din service forbindelse for undgå servceafbrydelser.\",\"renew\":\"Forny\"},\"needHelp\":{\"stillNeedHelp\":\"Mangler du hjælp?\",\"contactSupport\":\"Kontakt Support\"},\"noServiceConnectionDialog\":{\"header\":\"Opret forbindelse til Facebook eller Instagram\",\"text\":\"Post Office har brug for tilladelse til at slå indhold op på dine sociale medier.\"},\"ordersList\":{\"item\":{\"deletedOn\":\"Slettet den {date}\",\"deleted\":\"Slettet\",\"notNotified\":\"Det var ikke muligt for Post Office at bekræfte ordren til brugeren\"},\"activeDealProductsDetails\":{\"showProducts\":\"Se produkter\",\"hideProducts\":\"Skjul produkter\"}},\"periodsTile\":{\"impressions\":\"Visninger\",\"impressionsPaid\":\"Visninger Betalt\",\"impressionsOrganic\":\"Visninger Organisk\",\"consumptions\":\"Interaktioner\",\"engagedUsers\":\"Engagerede brugere\",\"postsPosted\":\"Opslag\",\"dealRevenue\":\"Omsætning\",\"dealPostCount\":\"@:components.periodsTile.postsPosted\",\"quantitySold\":\"Solgte varer\",\"orderCount\":\"Ordre\",\"ordersCollected\":\"Afhentede\",\"postsHarvested\":\"@:components.periodsTile.postsPosted\",\"postsPostedCombined\":\"@:components.periodsTile.postsPosted\"},\"periodsGraph\":{\"activity\":\"Aktivitet\"},\"post\":{\"alert\":{\"liveWaiting\":\"Post Office er klar. Start en livestream på din Facebook-side for at komme i gang.\",\"liveDisconnected\":\"Vi mistede forbindelsen til livestreamen. Start en ny livestream på Facebook for at fortsætte eller afslutte dette live salg event nu.\",\"tryAgain\":\"Prøv igen\",\"goToPage\":\"Gå til side\",\"restart\":\"Tilslut igen\"},\"deletedNotification\":{\"deletedByLocation\":\"Dette @:common.taxonomy.post er blevet slettet fra Facebook af en Post Office User\",\"deletedByService\":\"Dette @:common.taxonomy.post er blevet slettet fra Facebook\",\"revoked\":\"Dette @:common.taxonomy.post er blevet slettet fra Facebook af en Post Office Admin\"},\"postErrors\":{\"0\":\"Afvist af ukendte årsager.\",\"1\":\"Der var ikke nogen gyldig service forbindelse tilgængelig.\",\"2\":\"Facebook har midlertidigt blokeret din side pga overtrædelser af deres betingelser.\",\"3\":\"Vi kan ikke publicere video på jeres side. Dette kan skyldes en indstilling på siden eller midlertidige problemer hos {service}.\",\"4\":\"Der kan ikke publiceres salgsopslag på jeres side hvis \\\"beskeder\\\" ikke er slået til på siden i {service}.\",\"5\":\"Det inkluderet link er ikke tilladt på Facebook.\",\"6\":\"Din identitet skal bekræftes på Facebook.\",\"7\":\"Dit opslag indholder for mange hashtags.\",\"8\":\"Den brugte Instagram konto er ikke en Business Account.\",\"9\":\"Orgnanisationen var ikke på en betalt plan.\"},\"state\":{\"label\":{\"unapproved\":\"Ikke godkendt\",\"approved\":\"Approved\",\"sending\":\"Sender\",\"posted\":\"Sendt\",\"failed\":\"Error\",\"deleted\":\"Slettet\",\"dealActive\":\"Aktiv\",\"dealDone\":\"Udløbet\",\"liveWaiting\":\"Venter på signal\",\"live\":\"Live\",\"liveDisconnected\":\"Forbindelse afbrudt\",\"liveMissed\":\"Savnet live\"},\"tooltip\":{\"posted\":\"Opslagsdato\",\"deletedByLocation\":\"@:components.post.deletedNotification.deletedByLocation\",\"deletedByService\":\"@:components.post.deletedNotification.deletedByService\",\"revoked\":\"@:components.post.deletedNotification.revoked\",\"liveMissed\":\"Dette live salg event blev aldrig aktiveret\"}}},\"postEditor\":{\"header\":\"Opslag\",\"open\":null,\"completeNew\":\"Opret\",\"completeExisting\":\"@:common.save\",\"message\":\"Hvad har du på hjertet\",\"messageLive\":\"En besked er ikke påkrævet til live salg event. Men du kan tilføje en her og så erstatter den beskrivelsen på Facebook.\",\"date\":\"Dato\",\"dates\":\"Datoer\",\"publishDate\":\"Opslagsdato\",\"saleTo\":\"Udløbsdato\",\"pickUp\":\"Afhentning\",\"pickUpFrom\":\"Afhenting fra\",\"pickUpTo\":\"Afhenting indtil\",\"serviceType\":\"Platform\",\"post\":\"Post\",\"type\":\"Opslagstype\",\"chooseFromList\":\"Vælg fra listen\",\"emojiHint\":\"Genvej til emoji-tastatur\",\"types\":{\"normal\":\"Opslag\",\"deal\":\"Salgsopslag\",\"dealVariants\":\"Salgsopslag - varianter\",\"live\":\"Live salg event\"},\"media\":{\"link\":\"https://postofficesocial.com\",\"addImage\":\"Tilføj billede\",\"addVideo\":\"Tilføj video\",\"addLink\":\"Tilføj link\",\"editImage\":\"Rediger\",\"dummy\":\"Dummy\",\"noMediaAndLocked\":\"Der kan ikke tilføjes medier til dette @:common.taxonomy.post\",\"invalidLink\":\"Dette link kan ikke bruges til posts\",\"contextMenu\":{\"download\":\"Download\",\"delete\":{\"image\":\"Slet billede\",\"video\":\"Slet video\"},\"moveUp\":\"Flyt op\",\"moveDown\":\"Flyt ned\"},\"imageEditor\":{\"done\":\"Færdig\",\"crop\":{\"header\":\"Beskær\",\"reset\":\"Nulstil\"},\"filters\":{\"header\":\"Filter\"},\"graphics\":{\"header\":\"Grafikker\"},\"text\":{\"header\":\"Tekst\",\"done\":\"Færdig\"}}},\"deal\":{\"productName\":\"Produkt\",\"liveTitle\":\"Titel\",\"name\":\"Navn på vare\",\"namePlaceholder\":\"Indtast navn\",\"liveNamePlaceholder\":\"F.eks. Liveshopping, Juleshopping...\",\"variants\":\"Varianter\",\"addVariant\":\"Tilføj variant\",\"addProduct\":\"Tilføj produkt\",\"copy\":\"kopi\",\"product\":{\"name\":\"Indtast navn\",\"namePlaceholder\":\"Indtast navn\",\"variantName\":\"Variantnavn\",\"variantNamePlaceholder\":\"Navn på vare\",\"price\":\"Pris pr. enhed ({currency})\",\"pricePlaceholder\":\"Indtast pris\",\"retailPrice\":\"Førpris pr. enhed ({currency})\",\"retailPricePlaceholder\":\"Indtast førpris (ikke påkrævet)\",\"quantity\":\"Antal til salg\",\"quantityPlaceholder\":\"Indtast antal\",\"maxQuantityPerOrder\":\"Maks antal pr. ordre\",\"maxQuantityPerOrderPlaceholder\":\"Indtast antal\",\"triggerPhrases\":\"Søgeord\",\"triggerPhrasesPlaceholder\":\"Skriv og tryk på Enter\",\"contextMenu\":{\"remove\":\"@:common.remove\",\"duplicate\":{\"variant\":\"Dupliker variant\",\"product\":\"Dupliker produkt\"}}},\"isAlcohol\":\"Alkohol opslag\"},\"location\":{\"matchDuration\":\"Live varighed\"},\"errorMessage\":{\"title\":\"Fejl i input\",\"triggerMessage\":\"Et eller flere søgeord på produkter er ikke gyldige.\\nEt søgeord skal være på mindst 3 bogstaver og tal og må ikke indeholde andre tegn.\"},\"inputError\":{\"type\":{\"normal\":\"opslag\",\"live\":\"live salg event\",\"deal\":\"salgspost\",\"dealVariants\":\"@:components.postEditor.inputError.type.deal\"},\"title\":\"Dit {type} kunne ikke gemmes\",\"message\":{\"default\":\"Et eller flere felter er ikke udfyldt korrekt. Gennemse dine {type} detaljer og ret alle felter markeret med rødt for at gemme.\",\"deal\":\"Et eller flere felter er ikke udfyldt korrekt.\\nGennemse dine {type} detaljer og produkter og ret alle felter markeret med rødt for at gemme.\\nSøgeord skal være på mindst 3 bogstaver og tal og må ikke indeholde andre tegn og højest 3 ord per søgeord.\",\"files\":{\"1\":\"Ugyldige filer eller kombination af filer. Facebook understøtter kun en enkelt video, en enkelt gif eller en eller flere billeder.\",\"2\":\"Ugyldige filer. Instagram understøtter kun billeder i et format mellem 1,19:1 og 4:5 og video mellem 16:9 og 4:5 som højest er 60 sekunder lang. Gif'er er ikke tilladt.\"}}}},\"postIsApprovedDialog\":{\"header\":\"Opslaget er allerede godkendt\",\"text\":\"Opslaget er allerede blevet godkendt og kan derfor ikke ændres.\\nVil du fjerne godkendelsen og gemme dine ændringer? - eller annullere dine ændringer?\\n\\nHusk at du skal godkende opslaget igen hvis du gemmer dine ændringer.\",\"modify\":\"Gem ændringer\",\"cancel\":\"Annuller ændringer\"},\"postOfficeInformation\":{\"header\":\"Andet\",\"support\":\"Support\",\"terms\":\"Regler og betingelser\",\"privacy\":\"Privatpolitik\",\"reload\":\"Genindlæs Post Office\",\"showPatchNotes\":\"Vis senste ændringer\"},\"postPolicyViolationPostDialog\":{\"header\":\"Kan ikke godkende @:common.taxonomy.post\",\"headerIsApproved\":\"Kan ikke fjerne @:common.taxonomy.post godkendelse\",\"text\":\"Dette @:common.taxonomy.post er ikke gyldig til godkendelse.\\nVil du redigere den nu?\\n\",\"textIsApproved\":\"Det er ikke muligt at fjerne godkendelsen af dette @:(common.taxonomy.post).\\nDen kan være postet eller slettet af en anden bruger.\\n\",\"confirm\":\"rediger\"},\"postPolicyViolationTemplateDialog\":{\"header\":\"Kan ikke godkende @:common.taxonomy.scheduledTemplate\",\"headerIsPublished\":\"Kan ikke fjerne @:common.taxonomy.scheduledTemplate godkendelse\",\"text\":\"Dette @:common.taxonomy.scheduledTemplate er ikke gyldig til godkendelse.\\nVil du redigere den nu?\\n\",\"textIsPublished\":\"Det er ikke muligt at fjerne godkendelsen af dette @:(common.taxonomy.scheduledTemplate).\\nDen kan være postet eller slettet af en anden bruger.\\n\",\"confirm\":\"rediger\"},\"postPublishedOverlay\":{\"header\":{\"congrats\":\"Tillykke!\",\"live\":\"Klar til at gå live!\"},\"text\":{\"approved\":\"Dit opslag er nu godkendt, og vil blive postet på {service} {date} kl. {time}.\",\"listing\":\"Dit opslag er nu publiceret, og synligt for alle dine lokationer.\",\"review\":\"Dit opslag er sendt til godkendelse hos en administrator.\",\"dealApproved\":\"Dit salgsopslag er nu godkendt, og vil blive postet på {service} {date} kl. {time}.\",\"dealReview\":\"Dit salgsopslag er sendt til godkendelse hos en administrator.\",\"live\":\"Vi er nu klar til at sende besvarelser til dine kunder, når de bestiller.\"}},\"privacyDialog\":{\"header\":\"Privatpolitik\"},\"privacyText\":{\"sections\":[{\"header\":\"Overview\",\"paragraphs\":[\"Thank you for using Post Office. We care strongly about your privacy. We provide this Privacy Policy to inform users of our policies and procedures regarding the collection, use and disclosure of information received from users of our site. The personal data we gather from you is solely used to provide a better service and make you a happy user of Post Office.\",\"By using our service you are consenting to our processing of your information as presented in this Privacy Policy now and as amended by us. “Processing” means using cookies on a computer or using or accessing such information in any way, including, but not limited to, collecting, storing, deleting, using, combining and disclosing information.\"]},{\"header\":\"Consent\",\"paragraphs\":[\"Our processing of your personal information is based on your consent. Your consent is voluntary and may be withdrawn by you at any time. If you choose to withdraw consent, it does not affect the legality of our processing of your personal information based on your prior consent until the date of withdrawal. If you withdraw your consent, therefore, it will not be effective until this date.\",\"Your consent is valid for the following domains: app.postofffice.dk app.postofficesocial.com\",\"You can read more about consent on the Danish Data Protection Authority’s website. By using our site you consent to our privacy policy.\"]},{\"header\":\"Lawful base\",\"paragraphs\":[\"We collect and use data under the lawful base of Consent in that you, our users, has given clear consent for us to process their personal data for a specific purpose.\"]},{\"header\":\"What information do we collect?\",\"paragraphs\":[\"Post Office Social collects information to ensure the proper functioning of the Services and provides better insight on your use of the Services. The Personal Information collected includes, but is not limited to, the following:\",\"Name from Facebook profile, e-mail address, profile picture from Facebook profile, IP-address.\"]},{\"header\":\"Who is collecting it?\",\"paragraphs\":[\"Post Office Social IvS, Nørrebrogade 45 C, 4MF, DK-2200 København N Web: www.postoffice.dk Phone: +45 70 60 50 82 Mail: hello@postofficesocial.com\"]},{\"header\":\"How is it collected?\",\"paragraphs\":[\"To notify you when new content is available for you in your feed. To operate the services and ensure proper functionality. To allow users to access and log in. To improve our services and provide users a better experience. To search for bugs in our system and contact you for support purposes. To provide you with downloadable content, such as case studies. To provide you with periodic e-mails containing market and product news. Elaboration on collections and purpose hereof Post Office will monitor the use of the services and collect personal information on your use. Post Office may analyze the use of the services, user behavior and the collected personal information in order to improve its content and services. Post Office may, for the duration of the use of the services and hereafter, as permitted under applicable law, store the information collected on you and logs from the use of the Services. In addition to this, Post Office may use the personal information in an aggregate and anonymous manner, e.g. by compiling statistical and performance information related to the provision and operation of the services. By signing this Privacy Policy you understand that Post Office may use and publicly publish aggregated and anonymous information, provided that such information is not considered personal information. Post Office uses Google Analytics for collecting usage data. Google Analytics is a web analysis service provided by Alphabet Inc. Google utilizes the information collected to track and examine the use of the Services, to prepare reports on its activities and share them with other Google services. Google may use the data collected to contextualize and personalize the ads of its own advertising network. The Services may use a technology called javascript, that allows Post Office to collect information on your interaction with the Services, such as click-tracking, to determine popular functionalities and malfunctions of the Services.\"]},{\"header\":\"How will it be used?\",\"paragraphs\":[\"Post Office handles your personal information with confidence and ensures that only staff who need access to your information have access. We only use your personal information in accordance with the General Data Protection Regulation. We use your email to notify you when new content is available for you in your feed or with other information regarding our services or your performance.\",\"We use your name and profile picture in order for you to make sure, that you are logged in with the intended Facebook profile. We also use this information to recognize you from other users on our platform so that we can assist you, should you experience problems with our service.\",\"We use log files to search for and understand issues within our system. This could for instance be regarding a post that wasn’t sent out as planned. A log file may contain your IP-adress.\",\"We store personal information up to two months after you delete your profile before we anonymize your data. After two months none of your personal information will appear on our site.\"]},{\"header\":\"Third parties\",\"paragraphs\":[\"We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our website, conducting our business, or servicing you, so long as those parties remain compliant with the newest regulations regarding protection of personal data. Post Office will share your personal information with third parties (i.e., vendors who’s services Post Office uses to deliver, maintain, or operate our services or business, including to market our services to you. Some of these third parties (Amazon and MailChimp) might transfer data to countries outside the EU, but we have made sure that they are compliant with lawful transfer basis. If you wish to limit or restrict the use or sharing/disclosure of your personal information, you can email us at support@postofficesocial.com.\",\"Link to Amazon and GDPR compliance statement: https://aws.amazon.com/blogs/security/all-aws-services-gdpr-ready/\",\"Link to Mailchimp’s privacy policy: https://mailchimp.com/legal/privacy/? ga=2.43058285.91823652.1527148915-1157491675.1503919524\"]},{\"header\":\"Analytics\",\"paragraphs\":[\"Post Office Social make use of Google Analytics. Google Analytics is a web analysis service provided by Google Inc. (“Google”). Google utilizes the data collected to track and examine the use of this application, to prepare reports on its activities and share them with other Google services. Google may use the data collected to contextualize and personalize the ads of its own advertising network.\"]},{\"header\":\"Job applications\",\"paragraphs\":[\"If you choose to apply for a job at Post Office, and submit personal information, such as a resume and motivated application, through the Post Office webpage(s), Post Office will make use of a third party provider to store and process the application.\",\"We delete applications that are of no interest to us within a month. In case we find your resume interesting and want to keep it for future use we might ask for your permission to do so.\"]},{\"header\":\"Your rights\",\"paragraphs\":[\"In accordance with the ‘Danish Act on Processing of Personal Data’ and privacy policies of certain third party service providers, Post Office will give individuals information on the personal information processed about the individual, if the individual requests such information. If we process personal information about you, you have the following rights:\",\"Right to view information: You have the right to gain insight into the information that we are processing about you, as well as a number of additional information. Right to correction: You have the right to have incorrect information about yourself corrected. Right to delete: In special cases, you have a right to have information about you deleted before the time of our general general delete. Right to limitation of treatment: You have certain rights to limited treatment of your personal information. If you are entitled to limited treatment we may only process the information in the future – except for storage – with your consent or for the purpose of determining, enforcing or defending legal claims, or for protecting a person or important social interests. Right to objection: In some cases, you may object to our or legitimate processing of your personal information. You can also object to processing information for direct marketing. Right to transmit information (data portability): You may, in certain cases, have the right to receive your personal information in a structured, commonly used and machine-readable format, and to transfer such personal data from one data manager to another without hindrance. You can read more about your rights in the Danish Data Protection Agency guide on the rights of the data subjects, which can be found at www.datatilsynet.dk.\",\"If you have questions about our use of your personal data, want to get a copy, change the data or have your data deleted, please contact us at hello@postofficesocial.com and include the following information: 1. Your name, phone number and e-mail address 2. What your request concerns (insight, correction, deletion or blocking) 3. The type of data concerned and where it originates from Post Office will retain certain personal information for other lawful purposes, such as compliance with legal requirements, compliance with terms and conditions and defense against claims. You may therefore experience that Post Offie will not delete all Personal Information, until such information no longer can be retained in order to fulfil or safeguard Post Office’s legal interest and obligations.\",\"If you wish to complain about us processing your personal information, please contact the Danish Data Inspectorate on telephone +45 33 19 32 00 or by e-mail dt@datatilsynet.dk\"]},{\"header\":\"Private browser\",\"paragraphs\":[\"If you have opted out of storing all cookies in your browser please be advised that this may affect website functionality.\"]},{\"header\":\"Changes to our Privacy Policy\",\"paragraphs\":[\"We may change this Privacy Policy from time to time. If we make any changes, we will notify you by revising the “Last Updated” date at the top of this Privacy Policy. If we make any material changes, we will provide you with additional notice (such as by adding a notice on the Post Office homepage, modals at login screens, or by sending you an email notification). We encourage you to review our Privacy Policy whenever you use our services to stay informed about our information practices and the ways you can help protect your privacy. - If you disagree with any changes to this Privacy Policy, you will need to stop using Post Office Services and deactivate your account(s).\"]},{\"header\":\"Contacting us\",\"paragraphs\":[\"If you have any questions. Please contact us using the information below.\",\"Post Office Social Aps. Badstuestræde 3, 3 sal. DK-12090 København K\",\"www.postoffice.dk +45 70 60 50 82 hello@postofficesocial.com\"]}]},\"offlineBanner\":{\"text\":\"Du er offline! Opret forbindelse til internettet for at bruge Post Office.\"},\"organizationNavigation\":{\"header\":\"Vælg organisation\",\"noItems\":\"Du har ikke nogen organisationer\",\"noMatchedItems\":\"Du har ikke nogen matchene organisationer\"},\"organizationsPaidState\":{\"paidExpired\":\"Betaling udløbet {date}\",\"trialExpired\":\"Prøveperiode udløbet {date}\",\"inTrial\":\"Prøveperiode udløber {date}\",\"upgradeNow\":\"Upgrade now\"},\"organizationRole\":{\"member\":\"Bruger\",\"observer\":\"Analytiker\",\"administrator\":\"Administrator\",\"unknown\":\"Ukendt\"},\"mediaFile\":{\"failedToLoad\":\"Kunne ikke hente mediet\",\"failedToDisplay\":\"Mediet kan ikke vises i din browser\"},\"mediaStatus\":{\"status\":{\"1\":\"Uploader\",\"2\":\"Kunne ikke uploade\",\"3\":\"Venter på transkodning\",\"4\":\"Transkoder\",\"6\":\"Transkodning fejlede\"}},\"missingPermissionsDialog\":{\"header\":\"Opdater dine tilladelser\",\"text\":\"Facebook har lavet ændringer, som gør det nødvendigt, at du opdaterer dine tilladelser til os. Det tager kun 1 minut.\\nMange tak.\",\"successText\":\"Tak! Nu kan vi give dig vores fulde service.\",\"failText\":\"Der gik noget galt og vi fik ikke de tilladelser vi har brug for.\",\"givePermissions\":\"Opdater dine tilladelser\",\"tryAgain\":\"Prøv igen\",\"notNow\":\"Ikke nu\"},\"rankedPosts\":{\"noPosts\":\"Ingen opslag med det valgte filter\"},\"replaceableImage\":{\"hasFile\":\"Udskift billede\",\"noFile\":\"Upload billede\"},\"reviewSettings\":{\"header\":\"Review\",\"description\":\"Med “Review” slået til, skal alle opslag fra alle lokationer godkendes af administrator inden de bliver postet.\",\"isRequired\":\"Slå review til\"},\"revokeScheduledTemplateDialog\":{\"header\":\"Tilbagekald\",\"messageReady\":\"Dette opslag er blevet godkendt af {approvedCount} lokationer, hvoraf {postedOn} er blevet slået op på Facebooksider. Er du sikker på, at du vil tilbagekalde opslaget fra jeres lokationers kalendere og Facebooksider?\",\"messageRevoking\":\"Vi er tilbagekalde nu alle opslag, dette kan tage lidt tid. Vent venligst.\",\"messageSuccess\":\"Opslaget er blevet tilbagekaldt.\",\"messageFailed\":\"Opslaget kunne ikke tilbagekaldes fra {postCount} Facebooksider. Se opslagene her: \",\"revoke\":\"Tilbagekald\"},\"serviceConnections\":{\"header\":\"Kanaler\",\"serviceConnection\":{\"add\":\"Opret forbindelse\",\"delete\":\"Slet forbindelse\",\"repair\":\"Genskab forbindelse\",\"manage\":\"Administrer forbindelser\"},\"addFacebookServiceConnectionDialog\":{\"header\":\"Vælg en Facebook side\",\"headerInstagram\":\"Vælg en Instagram forbindelse\",\"headerExisting\":\"Forbind til Facebook side\",\"headerExistingInstagram\":\"Forbind til Instagram\",\"facebookFailed\":\"Vi kan ikke oprette forbindelse til Facebook\",\"needPermissionsGeneral\":\"Vi skal bruge din tilladelse for at kunne poste til Facebook\",\"requestPermissions\":\"Giv os tilladelse\",\"loginMessage\":\"Log ind på Facebook for at tilføje en Facebookside\",\"loginMessageInstagram\":\"Log ind på Facebook for at tilføje en Instagram forbindelse\",\"login\":\"Log ind på Facebook\",\"facebookWindow\":\"Giv os venligst tilladelse i det næste vindue\",\"missingPages\":\"Kan du ikke se din Facebookside? Klik her for at give os tilladelse.\",\"add\":\"Tilføj\",\"connect\":\"Forbind\"},\"facebookPageLoader\":{\"failed\":\"Ups, der skete en fejl da vi ville hente dine Facebook sider.\",\"tryAgain\":\"Prøv igen\"},\"facebookPageSelector\":{\"tasksAreUnknown\":\"Vi kunne ikke tilgå dine rettigheder. Du vil muligvis opleve problemer med at poste opslag.\",\"missingTasks\":\"Du mangler rettigheder: {tasks}\",\"tasks\":{\"ANALYZE\":\"Analyse\",\"CREATE_CONTENT\":\"Opret indhold\",\"MODERATE\":\"Moderere\",\"MESSAGING\":\"Beskeder\"},\"isInUse\":\"Bruges allerede af en anden lokation\",\"noPages\":\"Du har ingen sider eller vi har ikke tiladelse til at tilgå dine sider.\\nKlik herunder for at give os tiladelse. Rediger indstillingerne og vælg de sider du ønsker at bruge med Post Office\"},\"facebookPageConfirmer\":{\"canAdd\":\"Du kan oprette forbindelse til din Facebookside\",\"needsPermission\":\"Hvis du har adgang til denne side skal du give os tilladelse til at forbinde til den. Klik her for at komme i gang.\",\"tasksAreUnknown\":\"@:components.serviceConnections.facebookPageSelector.tasksAreUnknown\",\"missingTasks\":\"@:components.serviceConnections.facebookPageSelector.missingTasks\",\"tasks\":{\"ANALYZE\":\"@:components.serviceConnections.facebookPageSelector.tasks.ANALYZE\",\"CREATE_CONTENT\":\"@:components.serviceConnections.facebookPageSelector.tasks.CREATE_CONTENT\",\"MODERATE\":\"@:components.serviceConnections.facebookPageSelector.tasks.MODERATE\",\"MESSAGING\":\"@:components.serviceConnections.facebookPageSelector.tasks.MESSAGING\"},\"unavailablePage\":\"Facebooksiden er ikke tilgængelig. Du har formentlig ikke den nødvendige adgang eller har ikke givet os adgang til den.\",\"updatePermission\":\"Klik her for at give opdatere vores adgang\"}},\"simplePage\":{\"gotoLocation\":\"Vælg en lokation\",\"gotoOrganization\":\"Gå til admin\",\"gotoAccount\":\"Konto\",\"logOut\":\"@:common.logOut\",\"gotoLogin\":\"Login\",\"gotoTerms\":\"Regler og betingelser\",\"gotoPrivacy\":\"Privatpolitik\"},\"simplePost\":{\"openExternal\":\"Åben på {type}\"},\"simplePostDialog\":{\"header\":\"{type} opslag\"},\"statisticsFilter\":{\"serviceTypes\":{\"any\":\"Alle opslag\",\"postoffice\":\"Post Office opslag\",\"deal\":\"Post Office salgsopslag\",\"native\":\"Native Facebook / Instagram\"},\"period\":\"Seneste {count} dage\"},\"statisticsLocationList\":{\"columns\":{\"name\":\"Navn\",\"posted\":\"Opslag\",\"impressions\":\"Visninger\",\"engagement\":\"Engagement\",\"followers\":\"Følgere\"}},\"statisticsPostList\":{\"columns\":{\"posted\":\"Dato\",\"post\":\"Opslag\",\"impressions\":\"Visninger\",\"consumptions\":\"Interaktioner\",\"engagements\":\"Engagement\"}},\"statisticsPostListItem\":{\"unapproved\":\"Ikke godkendt\"},\"statisticsPostTable\":{\"unapproved\":\"Ikke godkendt\",\"failure\":\"Fejlede\",\"noData\":\"Ingen posts oprettet\",\"columns\":{\"posted\":\"Tidspunkt\",\"post\":\"Opslag\",\"adapted\":\"Tilpasset\",\"impressions\":\"Visninger\",\"consumptions\":\"Interaktioner\",\"engagements\":\"Engagement\"}},\"postsListTable\":{\"noData\":\"No posts created\",\"showPost\":\"Vis opslag\",\"typeDeal\":\"Salgsopslag - 1 produkt\",\"typeDealPlural\":\"Salgsopslag - {products} produkter\",\"columns\":{\"post\":\"Post\",\"type\":\"Type\",\"typeTooltip\":\"Viser om opslaget er almindeligt, salgs eller live shopping.\",\"date\":\"Dato\",\"dateTooltip\":\"Hvornår er opslaget sendt ud?\",\"adapted\":\"Tilpasset\",\"adaptedTooltip\":\"Er opslaget blevet tilpasset af lokationen\",\"state\":\"Status\",\"stateTooltip\":\"Viser om opslaget er planlagt, aktivt eller udløbet.\",\"media\":\"Media\",\"mediaTooltip\":\"Hvilket slags kreativ blev brugt i opslaget.\",\"revenue\":\"Omsætning\",\"revenueTooltip\":\"Potentiel omsætning genereret fra opslaget.\",\"products\":\"Antal solgte produkter\",\"productsTooltip\":\"Antal solgte produkter fra opslaget.\",\"orders\":\"Antal afhentede ordre\",\"ordersTooltip\":\"Antal afhentede ordre i butik.\",\"collectionRate\":\"Afhentningsprocent\",\"collectionRateTooltip\":\"Andelen af produkter afhentet.\",\"reach\":\"Rækkevidde\",\"reachTooltip\":\"Samlet antal genererede rækkevidde\",\"impressions\":\"Eksponeringer\",\"impressionsTooltip\":\"Samlet antal genererede eksponeringer\",\"consumptions\":\"Interaktioner\",\"consumptionsTooltip\":\"Samlet antal interaktioner\"}},\"supportDialog\":{\"header\":\"Support\",\"needHelp\":\"Har du brug for hjælp? Vi sidder klar!\",\"writeUs\":\"Skriv til os på {email}.\",\"callUs\":\"Ring til os på {phone}.\",\"chatWithUs\":\"Chat med os\"},\"locationsDropdown\":{\"allLocations\":\"Alle lokationer\"},\"termsDialog\":{\"header\":\"Regler og betingelser\"},\"termsText\":{\"sections\":[{\"header\":\"Overview\",\"paragraphs\":[\"This website is operated by POST OFFICE SOCIAL IVS. Throughout the site, the terms “we”, “us” and “our” refer to POST OFFICE SOCIAL. POST OFFICE SOCIAL offers this website, including all information, tools and services available from this site to you, the user, conditioned upon your acceptance of all terms, conditions, policies and notices stated here.\",\"By visiting our site and/ or purchasing something from us, you engage in our “Service” and agree to be bound by the following terms and conditions (“Terms of Service”, “Terms”). These Terms of Service apply to all users of the site, including without limitation users who are browsers, vendors, customers, merchants, and/ or contributors of content.\",\"By accessing or using any part of the site, you agree to be bound by these Terms of Service. If you do not agree to all the terms and conditions of this agreement, then you may not access the website or use any services.\",\"Any new features or tools which are added to the website shall also be subject to the Terms of Service. You can review the most current version of the Terms of Service at any time on this page. We reserve the right to update, change or replace any part of these Terms of Service by posting updates and/or changes to our website. It is your responsibility to check this page periodically for changes. Your continued use of or access to the website following the posting of any changes constitutes acceptance of those changes.\"]},{\"header\":\"General conditions\",\"paragraphs\":[\"You may not use our products for any illegal or unauthorized purpose nor may you, in the use of the Service, violate any laws in your jurisdiction (including but not limited to copyright laws).\",\"You must not transmit any worms or viruses or any code of a destructive nature. A breach or violation of any of the Terms will result in an immediate termination of your Services.\",\"We reserve the right to refuse service to anyone for any reason at any time. You understand that your content (not including credit card information), may be transferred unencrypted and involve (a) transmissions over various networks; and (b) changes to conform and adapt to technical requirements of connecting networks or devices. Credit card information is always encrypted during transfer over networks.\",\"You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the Service, use of the Service, or access to the Service or any contact on the website through which the service is provided, without express written permission by us.\",\"POST OFFICE SOCIAL, which is considered the data processor, only acts on instruction from you, which is considered as the data controller, in respect of the hosted data. We must take appropriate technical and organizational security measures to protect data against accidental or unlawful destruction, loss or alteration and against the unauthorized disclosure, misuse or other use in breach of the Act on processing of personal data. We must, at your request, provide you with sufficient information to enable you to ensure that such technical and organizational security measures are taken.\"]},{\"header\":\"License and intellectual property rights\",\"paragraphs\":[\"You merely acquire a non-exclusive, non-transferable license to use the provided services and deliveries.\",\"You are only entitled to use the license on behalf of entities, which are covered by the company registration number that appears on your Order Confirmation.\",\"POST OFFICE SOCIAL does not transfer any copyright or other rights in connection with its provision of services and supplies.\"]},{\"header\":\"Accuracy, completeness and timeliness of information\",\"paragraphs\":[\"We are not responsible if information made available on this site is not accurate, complete or current. The material on this site is provided for general information only and should not be relied upon or used as the sole basis for making decisions without consulting primary, more accurate, more complete or more timely sources of information. Any reliance on the material on this site is at your own risk.\"]},{\"header\":\"Modifications to the service and the prices\",\"paragraphs\":[\"Prices for our products are subject to change without notice.\",\"We reserve the right at any time to modify or discontinue the Service (or any part or content thereof) without notice at any time.\",\"We shall not be liable to you or to any third-party for any modification, price change, suspension or discontinuance of the Service.\",\"We do not warrant that the quality of any products, services, information, or other material purchased or obtained by you will meet your expectations, or that any errors in the Service will be corrected.\"]},{\"header\":\"Prohibited uses\",\"paragraphs\":[\"In addition to other prohibitions as set forth in the Terms of Service, you are prohibited from using the site or its content: (a) for any unlawful purpose; (b) to solicit others to perform or participate in any unlawful acts; (c) to violate any international, federal, provincial or state regulations, rules, laws, or local ordinances; (d) to infringe upon or violate our intellectual property rights or the intellectual property rights of others; (e) to harass, abuse, insult, harm, defame, slander, disparage, intimidate, or discriminate based on gender, sexual orientation, religion, ethnicity, race, age, national origin, or disability; (f) to submit false or misleading information; (g) to upload or transmit viruses or any other type of malicious code that will or may be used in any way that will affect the functionality or operation of the Service or of any related website, other websites, or the Internet; (h) to collect or track the personal information of others; (i) to spam, phish, pharm, pretext, spider, crawl, or scrape; (j) for any obscene or immoral purpose; or (k) to interfere with or circumvent the security features of the Service or any related website, other websites, or the Internet. We reserve the right to terminate your use of the Service or any related website for violating any of the prohibited uses.\"]},{\"header\":\"Disclaimer of warranties; Limitation of liability\",\"paragraphs\":[\"We do not guarantee, represent or warrant that your use of our service will be uninterrupted, timely, secure or error-free.\",\"We do not warrant that the results that may be obtained from the use of the service will be accurate or reliable.\",\"You agree that from time to time we may remove the service for indefinite periods of time or cancel the service at any time, without notice to you.\",\"You expressly agree that your use of, or inability to use, the service is at your sole risk. The service and all products and services delivered to you through the service are (except as expressly stated by us) provided ‘as is’ and ‘as available’ for your use, without any representation, warranties or conditions of any kind, either express or implied.\",\"In no case shall POST OFFICE SOCIAL, our directors, officers, employees, affiliates, agents, contractors, interns, suppliers, service providers or licensors be liable for any injury, loss, claim, or any direct, indirect, incidental, punitive, special, or consequential damages of any kind, including, without limitation lost profits, lost revenue, lost savings, loss of data, replacement costs, or any similar damages, whether based in contract, tort (including negligence), strict liability or otherwise, arising from your use of any of the service or any products procured using the service, or for any other claim related in any way to your use of the service or any product, including, but not limited to, any errors or omissions in any content, or any loss or damage of any kind incurred as a result of the use of the service or any content (or product) posted, transmitted, or otherwise made available via the service, even if advised of their possibility.\"]},{\"header\":\"Indemnification\",\"paragraphs\":[\"You agree to indemnify, defend and hold harmless POST OFFICE SOCIAL and our parent, subsidiaries, affiliates, partners, officers, directors, agents, contractors, licensors, service providers, subcontractors, suppliers, interns and employees, harmless from any claim or demand, including reasonable attorneys’ fees, made by any third-party due to or arising out of your breach of these Terms of Service or the documents they incorporate by reference, or your violation of any law or the rights of a third-party.\"]},{\"header\":\"Termination\",\"paragraphs\":[\"The obligations and liabilities of the parties incurred prior to the termination date shall survive the termination of this agreement for all purposes.\",\"These Terms of Service are effective unless and until terminated by either you or us. You may terminate these Terms of Service at any time by notifying us that you no longer wish to use our Services, or when you cease using our site.\",\"If in our sole judgment you fail, or we suspect that you have failed, to comply with any term or provision of these Terms of Service, we also may terminate this agreement at any time without notice and you will remain liable for all amounts due up to and including the date of termination; and/or accordingly may deny you access to our Services (or any part thereof).\"]},{\"header\":\"Entire agreement\",\"paragraphs\":[\"The failure of us to exercise or enforce any right or provision of these Terms of Service shall not constitute a waiver of such right or provision.\",\"These Terms of Service and any policies or operating rules posted by us on this site or in respect to The Service constitutes the entire agreement and understanding between you and us and govern your use of the Service, superseding any prior or contemporaneous agreements, communications and proposals, whether oral or written, between you and us (including, but not limited to, any prior versions of the Terms of Service).\",\"Any ambiguities in the interpretation of these Terms of Service shall not be construed against the drafting party.\"]},{\"header\":\"Governing law\",\"paragraphs\":[\"These Terms of Service and any separate agreements whereby we provide you Services shall be governed by, and exclusively construed in accordance with, the laws of The Kingdom of Denmark, not taking into account its provisions that may lead to the application of any other substantial law than Danish law. Any dispute, controversy or claim arising out of or in connection with this Agreement or the breach, termination or invalidity thereof shall be settled by the ordinary Danish courts.\"]},{\"header\":\"Changes ot terms of service\",\"paragraphs\":[\"You can review the most current version of the Terms of Service at any time at this page.\",\"We reserve the right, at our sole discretion, to update, change or replace any part of these Terms of Service by posting updates and changes to our website. It is your responsibility to check our website periodically for changes. Your continued use of or access to our website or the Service following the posting of any changes to these Terms of Service constitutes acceptance of those changes.\",\"Questions about the Terms of Service should be sent to us at hello@postofficesocial.com\"]}]},\"updateConnectionsDialog\":{\"open\":\"Forbindelser\",\"tooltip\":\"Forsøg at forstærke og / eller reparer alle eksisterende forbindelser til services med din Facebook bruger\",\"header\":\"Opdater forbindelser\",\"explanation\":\"Du kan opdatere {numberOfServices} eksisterende forbindelser hvoraf {numberOfBrokenServices} i øjeblikket ikke virker.\",\"success\":\"Du opdaterede {updatedConnections} forbindelser. Der er nu {numberOfBrokenServices} forbindelse(r) der i øjeblikket ikke virker.\",\"failed\":\"Der gik noget galt med opdateringen af forbindelser.\",\"update\":\"Opdater\"},\"updateDialog\":{\"header\":\"Ny opdatering\",\"text\":\"En ny og forbedret version ({newVersion}) af Post Office er installeret og klar til brug. Vi skal bare genindlæse siden.\",\"update\":\"Opdater nu\",\"dismiss\":\"Opdater senere\"},\"paidStateAccount\":{\"header\":\"Your plan\",\"upgradeNow\":\"Upgrade now\",\"subscribeState\":{\"manageBilling\":\"Manage billing\",\"subscriptionExpired\":\"Your subscription has expired\",\"subscriptionWillRenew\":\"Your subscription will renew on {date}\"},\"trialState\":{\"header\":\"Trial\",\"trialExpired\":\"Din trial er udløbet\",\"trialEnds\":\"Trial udløber om {days} dage\",\"free\":\"Gratis\"},\"trialExpiredDialog\":{\"header\":\"Din trial er udløbet\",\"text\":\"Vælg en af vores planer for at fortsætte med at bruge Post Office.\",\"pickPlan\":\"Vælg en plan\",\"contactTeam\":\"Kontakt salgsteamet\"},\"pricingPlansDialog\":{\"title\":\"Manage plan\",\"changePlan\":\"Change plan\",\"header\":\"Choose the plan that’s right for your business\"}},\"locationSettings\":{\"header\":\"Indstillinger\"},\"userSettings\":{\"header\":\"Min Profil\",\"notifications\":\"Email notifikationer\",\"deleteAccount\":\"Slet konto\"},\"editName\":{\"name\":\"Navn\",\"header\":\"Rediger navn\"},\"editEmail\":{\"successEmailUpdate\":\"Success! Din e-mail er blevet opdateret. Log ind med din nye e-mail.\"},\"editPassword\":{\"currentPassword\":\"Nuværende @:common.password\",\"newPassword\":\"Nyt @:common.password\",\"confirmPassword\":\"Bekræft @:common.password\",\"showPasswords\":\"Vis adgangskoder\",\"errorPasswordMatch\":\"Adgangskoden stemmer ikke overens\",\"successPasswordUpdate\":\"Success! Din adgangskode er blevet opdateret. Log ind med din nye adgangskode.\"},\"versionFooter\":{\"text\":\"Post Office - Version {version}\"},\"whatsNewDialog\":{\"header\":\"NYHED\",\"temporaryDismiss\":\"Vis mig beskeden senere\",\"dismiss\":\"Ok\",\"next\":\"Næste\"},\"welcome\":{\"text\":\"Opret og planlæg godt indhold\"}},\"views\":{\"login\":{\"siteTitle\":\"Log ind\"},\"signup\":{\"siteTitle\":\"Tilmeld dig\",\"userSelection\":{\"siteTitle\":\"Tilmeld dig - Bruger\",\"header\":\"Tilmeld dig\",\"firstName\":\"Fornavn\",\"lastName\":\"Efternavn\",\"submit\":\"Tilmeld dig og deltag\",\"features\":[\"14-dages gratis prøveperiode\",\"Ingen kreditkort påkrævet\",\"Afbryd når som helst\"],\"consentToMarketing\":\"Jeg accepterer at modtage markedsførings-e-mails fra Post Office\",\"consentToTermsOfUse\":{\"text\":\"Jeg accepterer Post Office's {terms} og {privacy}\",\"terms\":\"Vilkår\",\"privacy\":\"Privatpolitik\"},\"joinOrganization\":\"Deltag i en organisation, der allerede er på Post Office?\",\"joinHeader\":\"Deltag i organisation\",\"joinText\":\"For at deltage i en organisation, bed en administrator om at invitere dig eller om at få et invitations link.\"},\"createOrganization\":{\"siteTitle\":\"Tilmeld dig - Organisation\",\"heading\":{\"welcome\":\"Velkommen, {name}\",\"setupCompany\":\"Lad os oprette din virksomhed\"},\"overlayMessage\":\"Opsætning af din virksomhed\"},\"selectModules\":{\"siteTitle\":\"Tilmeld dig - Moduler\",\"heading\":\"Hvad ønsker du at bruge Post Office til?\",\"scheduleContent\":\"Schedule content\",\"commentSales\":\"Comment Sales\",\"liveShopping\":\"Live Shopping\"},\"connectPlatforms\":{\"siteTitle\":\"Tilmeld dig - Forbind\",\"heading\":\"Forbind de platforme, du ønsker at administrere.\",\"connectLater\":\"Forbind senere\",\"continue\":\"Fortsæt\"}},\"resetPassword\":{\"siteTitle\":\"Nulstil kodeord\",\"description\":\"Vælg venligst et nyt kodeord\",\"newPassword\":\"Nyt kodeord\",\"header\":\"Nulstil dit kodeord\",\"reset\":\"Nulstil kodeord\",\"passwordChanged\":\"Dit kodeord er blevet ændret\",\"toLogin\":\"Gå til Login\"},\"notFound\":{\"siteTitle\":\"Siden blev ikke fundet\",\"header\":\"Siden blev ikke fundet\",\"message\":\"Beklager, vi kan desværre ikke finde \\\"{path}\\\".\",\"selectionLocation\":\"Vælg lokation\",\"selectionOrganization\":\"Gå til admin\"},\"invitation\":{\"joinOrganization\":{\"siteTitle\":\"Tilmeld organisation\",\"header\":\"Tilmeld organisation\"},\"joinLocation\":{\"siteTitle\":\"Tilmeld lokation\",\"header\":\"Tilmeld lokation\"},\"createLocation\":{\"siteTitle\":\"Opret lokation\",\"header\":\"Opret lokation\",\"createLocationForm\":{\"create\":\"Næste\",\"name\":\"Lokationsnavn\",\"id\":\"Id\",\"timezone\":\"Tidszone\",\"required\":\"Påkrævet\",\"signUp\":\"@:components.authenticationForm.signUp\",\"heading\":\"Velkommen, lad os oprette din virksomhed.\",\"loadingText\":\"Opsætning af din virksomhed\"}},\"subscribeToOrganization\":{\"siteTitle\":\"Få indhold fra brand\",\"header\":\"Få adgang til indhold fra {name}\",\"noLocations\":\"Du har ikke adgang til en lokation fra din konto, klik herunder for at oprette en lokation.\",\"createLocation\":\"Opret lokation\",\"notAuthenticated\":\"For at få adgang til indholdet skal du være logget ind, har du ikke en konto kan du oprette en herunder.\",\"createAccount\":\"Opret konto\",\"subscribingText\":\"Opretter adgang til indhold\",\"selectLocations\":{\"text\":\"Vælg de lokationer, der skal modtage indhold fra {name}\",\"addLocation\":\"Hvis du ikke kan se den lokation du vil bruge, så kan du {0}.\",\"addLocationLink\":\"tilføje en ny\",\"noLocations\":\"Du har ingen lokationer! {0} for at få adgang.\",\"noLocationsLink\":\"Opret en lokation\"},\"selectUser\":{\"alreadyHaveUser\":\"Har du allerede en bruger\",\"showLogin\":\"Login\",\"workingText\":\"Opretter din konto\"},\"createSingleStore\":{\"heading\":{\"welcome\":\"Velkommen\",\"setupCompany\":\"Lad os oprette din virksomhed\"},\"workingText\":\"Opretter din virksomhed\"}},\"error\":{\"header\":\"Ups, der er sket en fejl\",\"front\":\"Gå til forside\",\"tickNotFound\":\"Invitationen blev ikke fundet eller har allerede været brugt\",\"general\":\"Ups, der skete en fejl da vi forsøgte at anvende din invitation\"}},\"privacy\":{\"siteTitle\":\"Privatpolitik\",\"header\":\"Privatpolitik\",\"goHome\":\"Tilbage\"},\"terms\":{\"siteTitle\":\"Vilkår\",\"header\":\"Vilkår\",\"goHome\":\"Tilbage\"},\"backoffice\":{\"navigation\":{\"backoffice\":\"Backoffice\",\"account\":\"Konto\",\"dashboard\":\"Dashboard\",\"logs\":\"Logge\",\"organizations\":\"Organizations\",\"users\":\"Brugere\",\"serviceConnections\":\"Forbindelser\",\"toUser\":\"Til lokation\",\"changeOrganization\":\"Til organisation\"},\"account\":{\"siteTitle\":\"Account\",\"header\":\"Account\"},\"dashboard\":{\"siteTitle\":\"Dashboard\",\"header\":\"Dashboard\",\"technical\":\"Teknisk\",\"hangfire\":\"Hangfire\"},\"logs\":{\"siteTitle\":\"Logge\",\"header\":\"Logge\",\"logs\":{\"posts\":\"Posts\",\"frontend\":\"Frontend\",\"services\":\"Services\"},\"posts\":{\"siteTitle\":\"Posts Log\",\"search\":\"Søg\",\"columns\":{\"failedOn\":\"Fejltidspunkt\",\"locationName\":\"Lokation\",\"organizationName\":\"Organisation\",\"type\":\"Fejlkilde\",\"errorCode\":\"Fejlkode\",\"subCode\":\"Underkode\",\"id\":\"Post id\",\"locationId\":\"Lokation id\",\"organizationId\":\"Organisation id\"}},\"frontend\":{\"siteTitle\":\"Frontend Log\",\"awsLogs\":\"AWS Logge\",\"errors\":\"Fejl\"},\"services\":{\"siteTitle\":\"Services Log\",\"search\":\"Søg\",\"debugTooltip\":\"Vis debug info\",\"columns\":{\"modifiedOn\":\"Opdateret\",\"serviceType\":\"Type\",\"locationName\":\"Lokation\",\"organizationName\":\"Organisation\",\"userName\":\"Bruger\",\"userEmailAddress\":\"Email\",\"locationId\":\"Lokations id\",\"organizationId\":\"Organisation id\",\"userId\":\"Bruger id\",\"actions\":\"Handlinger\"}}},\"organizations\":{\"siteTitle\":\"Organisationer\",\"header\":\"Organisationer\",\"includeInactive\":\"Vis inaktive\",\"allOrganizationTypes\":\"Alle\",\"organizationsIndicators\":{\"total\":\"Total\",\"deals\":\"Deals\",\"dealsLive\":\"Live\",\"review\":\"Review\",\"locations\":\"Lokationer\"},\"organizationsList\":{\"search\":\"Søg\",\"editTooltip\":\"Rediger denne organisation\",\"showLocationsTooltip\":\"Se lokationer fra denne organisation\",\"showUsersTooltip\":\"Se brugere fra denne organisation\",\"columns\":{\"name\":\"Navn\",\"type\":\"Type\",\"phone\":\"Telefon\",\"industry\":\"Industri\",\"paid\":\"Betalt\",\"id\":\"Id\",\"key\":\"Key\",\"isActive\":\"Aktiv\",\"isDealsEnabled\":\"Deals\",\"isLiveDealsEnabled\":\"Live\",\"isAlcoholEnabled\":\"Alkohol\",\"isCustomersAnonymized\":\"Anonymizer\",\"isReviewRequired\":\"Review\",\"locationsCount\":\"Lokationer\",\"locationsWithDealsEnabledCount\":\"Med Deals\",\"locationsWithConnections\":\"Med forbindelser\",\"locationsWithWorkingConnections\":\"Med fungerende forbindelser\"}},\"organizationPaidState\":{\"state\":{\"external\":\"Eksternt betalt\",\"trial\":\"Prøveperiode udløber {date}\",\"trialExpired\":\"Prøveperiode udløb {date}\",\"paid\":\"Betalt indtil {date}\",\"paidExpired\":\"Ikke betalt siden {date}\"}},\"organizationPaidStateDialog\":{\"header\":\"Betaling\",\"trial\":\"Prøveperiode\",\"paid\":\"Betalt\"},\"organizationEditor\":{\"header\":\"Organisation Editor\",\"name\":\"Navn\",\"key\":\"Key\",\"organizationType\":\"Type\",\"phone\":\"Telefon\",\"industry\":\"Industri\",\"selectIndustry\":\"Vælg industri\",\"deals\":\"Deals\",\"isDealsEnabledText\":\"Deals\",\"currency\":\"Valuta\",\"liveDealsText\":\"Live salg events\",\"isAlcoholEnabledText\":\"Alkohol deals\",\"isAnonymousBuyerEnabledText\":\"Anonym buyer\",\"isMessagingPrioritizedText\":\"Foretræk private beskeder\",\"miscellaneous\":\"Andre\",\"isReviewRequiredEnabledText\":\"Review krævet\",\"isNotificationsEnabledText\":\"Notifikationer\",\"completeNew\":\"Opret\",\"completeExisting\":\"Gem\"}},\"organizationLocations\":{\"siteTitle\":\"Lokationer\",\"header\":\"Lokationer i {name}\",\"organizationLocationsIndicators\":{\"total\":\"Total\",\"deals\":\"Deals\",\"dealsLive\":\"Live\",\"hasConnections\":\"Forbundet\",\"activeLastMonth\":\"Aktiv (måned)\"},\"locationList\":{\"search\":\"Søg\",\"noActivity\":\"Ingen aktivitet\",\"reply\":{\"asOrg\":\"Organisation\",\"message\":\"Besked\",\"comment\":\"Kommentar\"},\"columns\":{\"name\":\"Navn\",\"id\":\"Id\",\"userDefinedId\":\"Kunde id\",\"key\":\"Key\",\"platform\":\"Platform\",\"lastActivityOn\":\"Sidst aktiv\",\"userCount\":\"Brugere\",\"followers\":\"Følgere\",\"isDealsEnabled\":\"Deals\",\"isLiveDealsEnabled\":\"Live\",\"isPrioritizingMessaging\":\"Svar\",\"isLikeCommentOnOrderEnabled\":\"Like\",\"isSharingInsightsWithOrganization\":\"Deler insights\"}}},\"organizationUsers\":{\"siteTitle\":\"Brugere\",\"header\":\"Brugere i {name}\",\"organizationUsersIndicators\":{\"total\":\"Total\",\"isMember\":\"Brugere\",\"isObserver\":\"Analytikere\",\"isAdministrator\":\"Administratorer\",\"hasLocations\":\"Lokationsmedlem\",\"activeLastMonth\":\"Aktiv (måned)\"},\"userList\":{\"search\":\"Søg\",\"noActivity\":\"Ingen aktivitet\",\"columns\":{\"name\":\"Navn\",\"emailAddress\":\"Emailadresse\",\"role\":\"Rolle\",\"lastSeenOn\":\"Sidst set\",\"memberOfLocationsCount\":\"Lokationer\",\"id\":\"Id\"}}},\"users\":{\"siteTitle\":\"Brugere\",\"header\":\"Brugere\",\"activeAfter\":\"Aktiv siden\",\"copyEmails\":\"Kopier emails\",\"search\":\"Søg\",\"columns\":{\"name\":\"Navn\",\"email\":\"Email\",\"locationCount\":\"Lokationer\",\"created\":\"Oprettet\",\"lastSeen\":\"Sidst set\",\"id\":\"Bruger id\"},\"roles\":{\"members\":\"Brugere\",\"administrators\":\"Administratorer\"},\"noActivity\":\"Ingen aktivitet\"},\"serviceConnections\":{\"siteTitle\":\"Service forbindelse\",\"header\":\"Service forbindelse\",\"search\":\"Service forbindelse id\"}},\"admin\":{\"navigation\":{\"account\":\"Konto\",\"dashboard\":\"Overblik\",\"calendar\":\"Kalender\",\"deals\":\"Salg\",\"review\":\"Review\",\"templates\":\"Skabeloner\",\"content\":\"Monitor\",\"mediaLibrary\":\"Mediebibliotek\",\"editor\":\"Editor\",\"advertising\":\"Annoncering\",\"messages\":\"Beskeder\",\"insights\":\"Indblik\",\"locations\":\"Lokationer\",\"users\":\"Brugere\",\"groups\":\"Grupper\",\"toUser\":\"Til lokation\",\"backoffice\":\"Backoffice\",\"changeOrganization\":\"Skift organisation\",\"changeLocation\":\"Skift lokation\"},\"account\":{\"siteTitle\":\"Konto\",\"header\":\"Konto\",\"organizationSettings\":{\"changeOrganization\":\"Skift organisation\"}},\"cantManage\":{\"header\":\"Ingen adgang\",\"text\":\"Du har desværre ikke tilladelse til at administrere denne organisation\",\"manageLocation\":\"Vælg lokation\",\"manageOrganization\":\"Vælg en anden organisation\"},\"content\":{\"siteTitle\":\"Monitor\",\"header\":\"Monitor\",\"search\":\"Søg i posts\",\"download\":{\"menu\":\"Download\",\"current\":\"Nuværende visning\",\"lastWeek\":\"Sidste uge\",\"lastMonth\":\"Sidste måned\"},\"tabs\":{\"published\":\"Offentliggjort\",\"scheduled\":\"Planlagt\",\"drafted\":\"Kladder\",\"failed\":\"Fejlede\"},\"periods\":{\"all\":\"Alle\",\"past\":\"I dag samt seneste {days} dage\",\"future\":\"I dag samt næste {days} dage\"}},\"organizationSelection\":{\"siteTitle\":\"Vælg organisation\",\"noItems\":\"Ingen organisationer\",\"gotoLocations\":\"Vælg en lokation\",\"relogin\":\"Log ind med en anden bruger\"},\"calendar\":{\"siteTitle\":\"Kalender\",\"newPost\":\"Nyt opslag\",\"morePosts\":\"+{posts} mere...\",\"contextMenu\":{\"edit\":\"@:common.edit\",\"delete\":\"@:common.delete\",\"duplicate\":\"Dupliker skabelon\",\"revoke\":\"Tilbagekald\"},\"scheduledTemplateHeader\":{\"locked\":\"Udgivelsesdatoen er låst\",\"preapproved\":\"Skabelonen er forhåndsgodkendt\"}},\"scheduledTemplateEditor\":{\"siteTitle\":\"Editor\",\"editor\":{\"header\":\"Skabelon\",\"contentGroup\":\"Gruppe\",\"isMediaLocked\":\"Lås medie\",\"isMessageLocked\":\"Lås tekst\",\"isPublishDateLocked\":\"Lås dato\",\"isPreapproved\":\"Forhåndsgodkend\"},\"lockedPublishDate\":{\"from\":\"Fra\",\"to\":\"Til\"}},\"deals\":{\"siteTitle\":\"Salg\",\"header\":\"Salg\",\"textHeader\":\"Automatiske tekster\",\"repliesTitle\":\"Svartekster\",\"repliesSubtitle\":\"Tilpas beskeder som robotten bruger til at svare dine kunder.\",\"postsTitle\":\"Opslagstekster\",\"postsSubtitle\":\"Tilpas tekster som robotten tilføjer til dine opslag.\",\"settingsTitle\":\"Indstillinger\",\"replies\":{\"siteTitle\":\"Svartekster\",\"header\":\"Svartekster\",\"backButton\":\"Salg\"},\"posts\":{\"siteTitle\":\"Opslagstekster\",\"header\":\"Opslagstekster\",\"backButton\":\"Salg\"}},\"review\":{\"siteTitle\":\"Review\",\"header\":\"Review\",\"postEditor\":{\"siteTitle\":\"Editor\"},\"notEnabledHeader\":\"Review er ikke slået til\",\"notEnabledText\":\"Du kan slå Review til på \\\"Konto\\\" siden.\"},\"templates\":{\"siteTitle\":\"Skabeloner\",\"header\":\"Skabeloner\",\"search\":\"Søg skabeloner\",\"sort\":{\"open\":\"Arranger kategorier\",\"header\":\"Arranger kategorier\",\"subtitle\":\"Rækkefølge\"},\"templateCategoryEditor\":{\"header\":\"Skabeloner kategori\",\"completeExisting\":\"@:common.save\",\"completeNew\":\"Opret\",\"name\":\"Navn\",\"description\":\"Beskrivelse\",\"contentGroup\":\"Gruppe\",\"open\":\"Ny kategori\"},\"templateEditor\":{\"siteTitle\":\"Editor\",\"category\":\"Kategori\"},\"contextMenu\":{\"delete\":\"@:common.delete\"}},\"editor\":{\"siteTitle\":\"Editor\",\"header\":\"Editor\",\"types\":{\"1\":\"Legacy Quick\",\"2\":\"Quick filter\",\"3\":\"Kurve\",\"4\":\"Farve\",\"5\":\"Grafik\",\"6\":\"Skrifttype\"},\"contextMenu\":{\"delete\":\"@:common.delete\"},\"filterEditor\":{\"completeExisting\":\"@:common.save\",\"completeNew\":\"Opret\",\"settings\":\"Indstillinger\",\"name\":\"Navn\",\"type\":\"Type\",\"contentGroup\":\"Gruppe\",\"namePlaceholder\":\"Indtast navn\",\"quickInput\":{\"position\":\"Position\",\"source\":\"Source\"},\"colorInput\":{\"hexCode\":\"Hex kode\"},\"curveInput\":{\"addCurve\":\"Upload kurve\",\"replaceCurve\":\"Udskift .acv fil\"},\"fontInput\":{\"hasFile\":\"Udskift Skrifttype\",\"noFile\":\"Upload Skrifttype\"},\"menuEditorInputQuick\":{\"position\":\"Position\",\"imagePosition\":\"Billedposition\",\"tl\":\"Øverst til venstre\",\"tr\":\"Øverst til højre\",\"bl\":\"Nederst til venstre\",\"br\":\"Nederst til højre\"},\"menuEditorInputGraphic\":{\"size\":\"Størrelse\",\"width\":\"Bredde\",\"height\":\"Højde\"},\"menuEditorInputCurve\":{\"curve\":\"Kurve\",\"saturation\":\"Saturation\",\"customCurve\":\"Custom\"}}},\"insights\":{\"siteTitle\":\"Indblik\",\"header\":\"Indblik\",\"sale\":\"Salg\",\"locations\":\"Lokationer\",\"posts\":\"Opslag\",\"byPublishDate\":\"Vis efter opslagsdato\",\"byPublishDateHelp\":\"Turn this filter on to only show posts that was posted within the selected period.\\nTurn this filter off to show any post that reported statistics in the selected period.\\n\",\"topPosts\":\"Top 10\",\"allInsightsDialog\":{\"seeAll\":\"Se alle\",\"back\":\"Indblik\"},\"allLocationsDialog\":{\"header\":\"Lokationer\"},\"allPostsDialog\":{\"header\":\"Opslag\",\"byPublishDate\":\"Slået op i perioden\",\"notByPublishDate\":\"Alle post med sktivitet i perioden\"},\"dialogReporting\":{\"header\":\"Modtag rapport\",\"open\":\"Report\",\"reportPeriods\":{\"never\":\"Aldrig\",\"daily\":\"Daglig\",\"weekly\":\"Ugentlig\",\"monthly\":\"Månedligt\"},\"description\":\"Modtag en samlet rapport på jeres performance-statistik direkte i din indbakke.\",\"labelPeriods\":\"Hvor ofte?\"},\"reportList\":{\"header\":\"Tidligere rapporter\"}},\"locations\":{\"siteTitle\":\"Lokationer\",\"header\":\"Lokationer\",\"filter\":\"Filter\",\"noLocations\":\"Ingen lokationer\",\"loading\":\"Henter lokationer\",\"list\":{\"search\":\"Søg\",\"columns\":{\"name\":\"Navn\",\"userDefinedId\":\"Id\",\"platform\":\"Platform\",\"lastActive\":\"Sidst aktiv\",\"users\":\"Brugere\",\"followers\":\"Følgere\",\"deal\":\"Salg\",\"liveDeal\":\"Live salg\",\"actions\":\"Handlinger\"},\"noActivity\":\"Aldrig\",\"indicators\":{\"total\":\"I alt\",\"active\":\"Aktive\",\"deals\":\"Med salg\",\"liveDeals\":\"Med live\",\"facebook\":\"Med Facebook\",\"instagram\":\"Med Instagram\"}},\"contextMenu\":{\"manageUsers\":\"Administrer brugere\",\"manageConnections\":\"Administrer forbindelser\",\"delete\":\"Slet\",\"createLocation\":\"Opret lokation\",\"sendInvitation\":\"Send invitation\",\"reconnect\":\"Genetablér\",\"settings\":\"Indstillinger\",\"updateConnections\":\"Opdater forbindelser\"},\"locationEditor\":{\"header\":\"Lokation\",\"open\":\"Ny lokation\",\"completeExisting\":\"@:common.save\",\"completeNew\":\"Opret\",\"name\":\"Navn\",\"userDefinedId\":\"Id\",\"key\":\"Url nøgle\",\"timeZone\":\"Tidszone\",\"shareInsights\":\"Del statestik med organisationen\",\"deals\":\"Salg\",\"dealsText\":\"Tillad oprettelse af salgsopslag\",\"liveDeals\":\"Live salg events\",\"liveDealsText\":\"Tillad oprettelse af live salg events\",\"replies\":\"Salgsopslagsvar\",\"likeRepliesText\":\"Automatisk like kundernes bestillinger\"}},\"brandLocations\":{\"siteTitle\":\"Lokationer\",\"header\":\"Lokationer\",\"noLocations\":\"Ingen lokationer\",\"loading\":\"Henter lokationer\",\"invite\":\"Send invitation\",\"list\":{\"search\":\"Søg\",\"columns\":{\"name\":\"Navn\",\"platform\":\"Platform\",\"lastActive\":\"Sidst aktiv\",\"followers\":\"Følgere\",\"deal\":\"Salg\",\"liveDeal\":\"Live salg\",\"actions\":\"Handlinger\"},\"noActivity\":\"Aldrig\",\"indicators\":{\"total\":\"I alt\",\"active\":\"Aktive\",\"deals\":\"Med salg\",\"liveDeals\":\"Med live\",\"facebook\":\"Med Facebook\",\"instagram\":\"Med Instagram\"},\"delete\":{\"header\":\"Er du sikker?\",\"text\":\"{name} vil ikke længere modtage dit indhold\",\"confirm\":\"Fjern\"}}},\"users\":{\"siteTitle\":\"Brugere\",\"header\":\"Brugere\",\"search\":\"Søg\",\"loading\":\"Henter brugere\",\"columns\":{\"name\":\"Navn\",\"email\":\"Email\",\"lastSeen\":\"Senest online\",\"locations\":\"Lokationer\",\"role\":\"Rolle\"},\"contextMenu\":{\"remove\":\"@:common.remove fra @:common.taxonomy.organization\"},\"userEditor\":{\"header\":\"Bruger\",\"completeExisting\":\"@:common.save\",\"role\":\"Rolle\",\"roles\":{\"member\":\"Bruger\",\"observer\":\"Analytiker\",\"administrator\":\"Administrator\"}},\"removeUserDialog\":{\"header\":\"@:common.remove @:common.taxonomy.user fra @:common.taxonomy.organization\",\"text\":\"Er du sikker på at du vil fjerne {name} fra {organizationName}?\"}},\"groups\":{\"siteTitle\":\"Gruppe\",\"header\":\"Grupper\",\"search\":\"Søg\",\"loading\":\"Henter grupper\",\"archiveTooltip\":\"Arkiver gruppe\",\"deleteDialog\":{\"header\":\"Er du sikker?\",\"confirm\":\"Arkiver\",\"text\":\"Hvis du arkiverer gruppen \\\"{name}\\\", vil den blive skjult for dig og dine brugere. Indhold fra gruppen, som allerede er blevet brugt, vil fortsat være synligt. Du kan gendanne gruppen senere.\"},\"list\":{\"columns\":{\"name\":\"Navn\",\"count\":\"Lokationer\"}},\"groupEditor\":{\"header\":\"@:common.taxonomy.contentGroup\",\"open\":\"Ny @:common.taxonomy.contentGroup\",\"completeExisting\":\"@:common.save\",\"completeNew\":\"Opret\",\"name\":\"@:common.taxonomy.contentGroup navn\",\"namePlaceholder\":\"Min gruppe\"},\"contextMenu\":{\"archivedGroups\":\"Arkiveret grupper\"},\"undeleteDialog\":{\"header\":\"Arkiv\",\"unarchive\":\"Genaktiver\"}}},\"user\":{\"navigation\":{\"account\":\"Konto\",\"calendar\":\"Kalender\",\"content\":\"Skabeloner\",\"deals\":\"Salg\",\"templates\":\"Skabeloner\",\"messages\":\"Beskeder\",\"insights\":\"Indblik\",\"backoffice\":\"Backoffice\",\"changeLocation\":\"Til lokation\",\"toAdmin\":\"Til admin\"},\"account\":{\"siteTitle\":\"Konto\",\"header\":\"Konto\",\"locationProfile\":{\"changeLocation\":\"Skift lokation\"},\"navigation\":{\"header\":\"Navigation\",\"toAdmin\":\"Til admin\",\"changeLocation\":\"Skift lokation\"},\"contextMenu\":{\"delete\":\"@:common.delete\",\"reconnect\":\"Genetablér\",\"settings\":\"Indstillinger\"},\"replyTexts\":{\"siteTitle\":\"Svartekster\",\"header\":\"Svartekster\",\"backButton\":\"Konto\"},\"postTexts\":{\"siteTitle\":\"Opslagstekster\",\"header\":\"Opslagstekster\",\"backButton\":\"Konto\"}},\"calendar\":{\"siteTitle\":\"Kalender\",\"newPost\":\"Nyt opslag\",\"morePosts\":\"+{posts} mere...\",\"contextMenu\":{\"edit\":\"@:common.edit\",\"delete\":\"@:common.delete\",\"duplicate\":\"Dupliker opslag\",\"printProducts\":\"Print produktkort\",\"printOrders\":\"Print kundeordre\",\"printCustomerList\":\"Print kundeliste\",\"seeOrders\":\"Se ordrer\",\"openExternal\":{\"1\":\"Åben på Facebook\",\"2\":\"Åben på Instagram\"},\"endLive\":\"Afslut live\"},\"postActions\":{\"orders\":\"Afleveret\",\"sold\":\"Solgt\"}},\"deals\":{\"siteTitle\":\"Salg\",\"header\":\"Salg\",\"notEnabled\":\"Salg er ikke slået til for din lokation, kontakt din administrator for at kunne oprette salgsopslag.\",\"noDealsWithFilter\":\"Ingen salg opfylder det valgte filter.\",\"clearFilter\":\"Ryd filter\",\"search\":\"Søg i salgsopslag\",\"create\":\"Opret\",\"contextMenu\":{\"edit\":\"Rediger\",\"delete\":\"@:common.delete\",\"duplicate\":\"Dupliker salgsopslag\",\"printProducts\":\"Print produktkort\",\"printOrders\":\"Print kundeordre\",\"printCustomerList\":\"Print kundeliste\",\"openExternal\":{\"1\":\"Åben på Facebook\",\"2\":\"Åben på Instagram\"},\"endLive\":\"Afslut live\"},\"orders\":{\"siteTitle\":\"Ordre\",\"revenue\":\"Omsætning\",\"orders\":\"Afleveret\",\"sold\":\"Solgt\",\"price\":\"Pris\",\"search\":\"Søg i ordre\"}},\"postEditor\":{\"siteTitle\":\"Rediger\"},\"content\":{\"siteTitle\":\"Skabeloner\",\"header\":\"Skabeloner\",\"search\":\"Søg\"},\"insights\":{\"siteTitle\":\"Indblik\",\"header\":\"Indblik\",\"sale\":\"Salg\",\"topPosts\":\"Top 10\",\"dialogReporting\":{\"header\":\"Modtag rapport\",\"open\":\"Rapport\",\"reportTypes\":{\"never\":\"Aldrig\",\"weekly\":\"Ugentlig\"},\"comparePeriods\":{\"lastWeek\":\"Sidste uge\",\"lastYear\":\"Samme tid sidste år\"},\"serviceTypes\":{\"any\":\"Alle opslag\",\"postOffice\":\"Kun opslag via Post Office\"},\"description\":\"Vælg hvor ofte du ønsker at modtage en ny rapport i din indbakke.\"}},\"locationSelection\":{\"siteTitle\":\"Vælg lokation\",\"noItems\":\"Ingen lokationer\",\"gotoAdmin\":\"Gå til admin\",\"relogin\":\"Log ind med en anden bruger\"}},\"userAccount\":{\"siteTitle\":\"Bruger konto\",\"header\":\"Konto\"},\"userDelete\":{\"siteTitle\":\"Slet bruger\",\"header\":\"Slet bruger\",\"sectionHeader\":\"Vigtigt! Læs venligst\",\"deleteText\":\"Hvis du sletter din bruger, kan den ikke gendannes igen. Vær derfor sikker på, at du har kopieret al data, inden du gennemfører sletningen.\",\"deleteButton\":\"Slet min bruger\"}},\"patchNotes\":[{\"version\":\"2.28.0\",\"onlyDeals\":false,\"header\":\"Månedskalender\",\"media\":{\"src\":\"2_28_0_calendarView.webp\",\"width\":386},\"changes\":\"Du kan nu skifte til en månedsoversigt i kalenderen for at få et større overblik over dine opslag.\"},{\"version\":\"2.24.0\",\"onlyDeals\":false,\"header\":\"Opdateret design 🧢\",\"media\":{\"src\":\"2_24_0_newDesign.png\",\"width\":386},\"changes\":\"Vi har introduceret en ny farve og strømlinet designet for at gøre Post Office mere intuitivt at bruge. Derudover virker alt som det plejer! Vi ved, at det kan tage lidt tid at vænne sig til et nyt look - men vi håber, at du bliver glad for det 😊\"},{\"version\":\"2.23.0\",\"onlyDeals\":true,\"header\":\"Lokale svar til salgsopslag💬\",\"media\":{\"src\":\"2_23_0_localDealTexts.jpg\",\"width\":386},\"changes\":\"Det er nu muligt at skrive jeres egne versioner af de automatiske svar, kunderne modtager, når de handler via jeres salgsopslag. Skriv f.eks. specifikke anvisninger om hvor og hvornår produkter udleveres. Du finder denne mulighed under “Konto”.\"},{\"version\":\"2.22.0\",\"onlyDeals\":true,\"header\":\"\\\"Ja tak tilbud\\\" hedder nu \\\"Salgsopslag\\\"\",\"changes\":\"For at agere i overensstemmelse med markedsføringsloven har vi fjernet ordet \\\"tilbud\\\" fra vores system. Ja tak-funktionen har nu navnet \\\"Salg\\\" og \\\"Salgsopslag\\\" - ellers er alt helt som det plejer.\"},{\"version\":\"2.17.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_17_0_fileOrder.jpg\",\"width\":386},\"header\":\"Arrangere billeder\",\"changes\":\"Det er nu muligt at ændre på rækkefølgen af billeder og videoer i dine opslag. Tryk blot på knappen i højre hjørne og flyt op eller ned.\"},{\"version\":\"2.14.7\",\"onlyDeals\":false,\"media\":{\"src\":\"2_14_7_searchTemplates.png\",\"width\":386},\"header\":\"Søg i skabeloner\",\"changes\":\"Nu er det blevet nemmere at finde, hvad du søger i skabelon-biblioteket.\\nBrug blot tekst-feltet til at søge på de opslag, du gerne vil finde.\"},{\"version\":\"2.14.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_14_0_report.png\",\"width\":549},\"header\":\"Modtag ugentlig rapport\",\"changes\":\"Det er nu muligt at modtage en ugentlig rapport over, hvordan din Facebookside har klaret sig.\"},{\"version\":\"2.14.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_14_0_changePlatform.png\",\"width\":715},\"header\":\"Skift platform\",\"changes\":\"Det er nu muligt at lave et Facebook-opslag om til et Instagram-opslag og omvendt.\"},{\"version\":\"2.7.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_7_0_calendargrid.gif\",\"width\":431},\"header\":\"Kalender visning\",\"changes\":\"Du kan nu skifte fra den klassiske liste visning til en kalender oversigt.\\nDu skifter mellem visninger på ikonet oppe i højre hjørne.\"},{\"version\":\"2.7.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_7_0_instagram.png\",\"width\":578},\"header\":\"Instagram video\",\"changes\":\"Du kan nu tilføje videoer til Instagram opslag.\"}]}","module.exports = {\"siteTitle\":{\"postFix\":\"Post Office\",\"routingStatus\":{\"routing\":\"Routing\",\"checkingLogin\":\"Checking login\",\"checkingOrganization\":\"Checking @:common.taxonomy.organization\",\"checkingLocation\":\"Checking @:common.taxonomy.location\"}},\"common\":{\"save\":\"save\",\"accept\":\"accept\",\"send\":\"send\",\"close\":\"close\",\"dismiss\":\"dismiss\",\"yes\":\"yes\",\"no\":\"no\",\"ok\":\"ok\",\"okay\":\"okay\",\"cancel\":\"cancel\",\"continue\":\"continue\",\"required\":\"Required\",\"logIn\":\"login\",\"logOut\":\"log out\",\"email\":\"email\",\"password\":\"password\",\"create\":\"create\",\"delete\":\"delete\",\"remove\":\"remove\",\"edit\":\"edit\",\"duplicate\":\"duplicate\",\"postOffice\":\"Post Office\",\"search\":\"search\",\"notApplicable\":\"n/a\",\"supportEmail\":\"support@postofficesocial.com\",\"supportPhone\":\"+45 70 60 50 82\",\"pieces\":\"units\",\"minute\":\"minute\",\"minutes\":\"minutes\",\"hour\":\"hour\",\"hours\":\"hours\",\"anonymizedName\":\"Anonymized\",\"unknownName\":\"Unknown\",\"week\":\"week\",\"month\":\"month\",\"clickHere\":\"click here\",\"next\":\"next\",\"postFeed\":\"Post\",\"taxonomy\":{\"contentGroup\":\"group\",\"contentGroupAll\":\"All\",\"filter\":\"filter\",\"location\":\"location\",\"organization\":\"organization\",\"post\":\"post\",\"scheduledTemplate\":\"template\",\"serviceConnection\":\"service connection\",\"templateCategory\":\"template category\",\"template\":\"template\",\"user\":\"user\"},\"organizationType\":{\"1\":\"Multi store\",\"2\":\"Single store\",\"3\":\"Brand\"},\"serviceType\":{\"1\":\"Facebook\",\"2\":\"Instagram\"},\"industries\":{\"automotiveDealer\":\"Automotive dealer\",\"beautyAndCosmetics\":\"Beauty and cosmetics\",\"bicycleShop\":\"Bicycle shop\",\"bookstore\":\"Bookstore\",\"cafe\":\"Cafe\",\"clinic\":\"Clinic\",\"clothesAndFashion\":\"Clothes and fashion\",\"convenienceStore\":\"Convenience store\",\"craftsAndHobbies\":\"Crafts and hobbies\",\"dentalClinic\":\"Dental clinic\",\"departmentStore\":\"Department store\",\"electronics\":\"Electronics\",\"fitnessCenter\":\"Fitness center\",\"footwearStore\":\"Footwear store\",\"furniture\":\"Furniture\",\"gardenCenter\":\"Garden center\",\"groceryStore\":\"Grocery store\",\"hairSalon\":\"Hair salon\",\"healthAndWellness\":\"Health and wellness\",\"homeDecoration\":\"Home decoration\",\"homeImprovement\":\"Home improvement\",\"jewelryStore\":\"Jewelry store\",\"musicalStore\":\"Musical store\",\"opticalStore\":\"Optical store\",\"outdoorAndCamping\":\"Outdoor and camping\",\"petSupplies\":\"Pet supplies\",\"pharmacy\":\"Pharmacy\",\"realEstateAgency\":\"Real estate agency\",\"restaurant\":\"Restaurant\",\"sportingGoods\":\"Sporting goods\",\"toysAndHobby\":\"Toys and hobby\",\"wineAndLiquor\":\"Wine and liquor\",\"other\":\"Other\"},\"dealPlaceholders\":{\"checkoutlink\":\"Checkout link\",\"dealid\":\"Sales id\",\"dealname\":\"Product name\",\"firstname\":\"First name\",\"locationname\":\"Location name\",\"maxallowedquantity\":\"Max allowed quantity\",\"orderedquantity\":\"Ordered quantity\",\"orderid\":\"Order id\",\"orderlink\":\"Order link\",\"pickupend\":\"Pickup end\",\"pickupenddate\":\"Pickup end date\",\"pickupendtime\":\"Pickup end time\",\"pickupstartdate\":\"Pickup start date\",\"pickupstarttime\":\"Pickup start time\",\"productdescription\":\"Product description\",\"productname\":\"Variant name\",\"productprice\":\"Product price\",\"productretailprice\":\"Product retail price\",\"remainingstock\":\"Remaining stock\"}},\"components\":{\"acceptTermsDialog\":{\"header\":\"Accept new Terms of use\"},\"approvePastPostDialog\":{\"header\":\"Update post time?\",\"text\":\"The post is set to be published in the past. In order to approve it, it has to be changed to the current time.\",\"confirm\":\"Update time and approve\"},\"approvePostFromPastScheduledTemplateDialog\":{\"header\":\"Update template time?\",\"text\":\"The template is set to be published in the past. In order to approve it, it has to be changed to the current time.\",\"confirm\":\"Update time and approve\"},\"authenticationForm\":{\"title\":\"Sign in\",\"emailWasNotFound\":\"Email was not found\",\"notUser\":\"Not a user?\",\"signUp\":\"Sign up\",\"withFacebook\":\"Login with Facebook\",\"facebookFailed\":\"Unable to load Facebook, please check content-blocking in your browser.\",\"login\":\"Login\",\"emailNotValid\":\"Email not valid\",\"passwordLength\":\"Your password must be at least 8 characters long\",\"newPasswordLength\":\"Your new password must be at least 8 characters long\",\"required\":\"@:common.required\",\"errorMessages\":{\"invalidLogin\":\"Email or password is incorrect\",\"connection\":\"Connection to Post Office failed\",\"general\":\"Unknown error: {message}\"},\"facebookForm\":{\"withFacebook\":\"Continue with Facebook\",\"otherLoginMethods\":\"Other login methods\",\"failed\":\"Unable to load the Facebook SDK, please check content-blocking in your browser.\",\"unknownUser\":{\"header\":\"Please try again\",\"message\":\"Sorry, we failed to log you in. This could be because:\\n1) You're logged in with a Facebook user, that we don’t recognize.\\n2) You’ve already created a login, using email and password.\\n\\nIf you think this is a mistake, please contact support@postofficesocial.com.\"}},\"emailPasswordForm\":{\"signIn\":\"Sign in\",\"showReset\":\"Forgot password?\"},\"passwordResetForm\":{\"emailSent\":\"Instructions sent\",\"showLogin\":\"Back to sign in\",\"send\":\"@:common.send\",\"sent\":\"Please check your mail client for an email from Post Office with instructions\",\"passwordResetHeadline\":\"Forgot Password?\",\"paragraph-1\":\"Enter the email address you used when you joined and we’ll send you instructions to reset your password.\",\"paragraph-2\":\"For security reasons, we do NOT store your password. So rest assured that we will never send your password via email.\"},\"createUser\":{\"join\":\"Join\",\"on\":\"on\",\"firstName\":\"First Name\",\"lastName\":\"Last Name\",\"email\":\"Email\",\"password\":\"Password\",\"create\":\"Create\",\"consentToMarketing\":\"I would like to get notified about feature updates and special offers.\",\"consentToTermsOfUse\":{\"text\":\"I accept the {terms}, {privacy}, and our default notification settings.\",\"terms\":\"Terms of Service\",\"privacy\":\"Privacy Policy\"}},\"userSelection\":{\"alreadyHaveUser\":\"Already a user?\",\"joinAsLoggedIn\":\"Join as {name}\",\"logOut\":\"Join as another\",\"showLogin\":\"Login\"}},\"calendarBrandLogo\":{\"fromBrand\":\"Content from {brandName}\"},\"calendarListLoading\":{\"scrollToLoad\":\"Scroll to load more\"},\"calendarPost\":{\"less\":\"Less\",\"more\":\"More\",\"preapproved\":\"This @:common.taxonomy.post has been \\\"Pre-approved\\\"\",\"needsEditBoth\":\"Please update text and image before use\",\"needsEditDummyImage\":\"Please replace image before use\",\"needsEditPlaceholder\":\"Please update text before use\",\"headerDeal\":{\"header\":\"Sales\",\"liveHeader\":\"Live\"},\"statistics\":{\"postUsage\":\"{postsPosted} posted, {postsScheduled} scheduled ({unscheduled} unscheduled)\",\"impressions\":\"Impressions\",\"consumptions\":\"Consumptions\",\"engagedUsers\":\"Engaged users\"}},\"calendarTypeSelect\":{\"list\":\"List\",\"4days\":\"4 days\",\"week\":\"Week\",\"month\":\"Month\"},\"cantApprovePreapprovedScheduledTemplateDialog\":{\"header\":\"@:common.taxonomy.scheduledTemplate invalid for pre-approved post\",\"text\":\"This scheduled template can't be pre-approved because:\",\"hasMultipleVideos\":\"It contains multiple videos, only a single video is allowed.\",\"isMediaInvalidForPolicies\":\"It contains media or a mix of media that is not valid for the selected service.\",\"hasMultipleFileGif\":\"It contains a gif file along with other images, a gif file can not be posted with other images.\",\"hasDummyFiles\":\"It contains files marked as dummy.\",\"hasPlaceholders\":\"It contains keywords in it's message.\",\"isInPast\":\"It is set in the past.\",\"edit\":\"Edit @:common.taxonomy.scheduledTemplate\"},\"cantApproveScheduledTemplateDialog\":{\"header\":\"@:common.taxonomy.scheduledTemplate invalid\",\"text\":\"This scheduled template can't be approved because:\",\"publishDateBlocked\":\"The date and time of this template is locked in the past.\",\"mediaBlocked\":\"The template contains dummy files but media the media is locked\",\"messageBlocked\":\"The copy contains one or more [keywords] but is locked\",\"invalidFiles\":\"Some images are invalid for {service}.\",\"edit\":\"Edit @:common.taxonomy.scheduledTemplate\"},\"cantUseScheduledTemplateDialog\":{\"header\":\"@:common.taxonomy.scheduledTemplate unavailable\",\"text\":\"This scheduled template can't be used because:\",\"publishDateBlocked\":\"The date and time of this template is locked in the past. Ask your administrator to unlock it, or reschedule it.\",\"mediaBlocked\":\"The template contains dummy files but media the media is locked\",\"messageBlocked\":\"The message contains one or more [keywords] but is locked\"},\"changeUserMode\":{\"toOrganization\":\"Change to administrator\",\"toLocation\":\"Change to location\"},\"confirmApproveScheduledTemplateDialog\":{\"header\":\"Confirm approval\",\"text\":\"The message contains what appears to be one or more unclosed [keywords]. Do you still want to approve this template?\",\"edit\":\"Edit @:common.taxonomy.scheduledTemplate\",\"approve\":\"Approve @:common.taxonomy.scheduledTemplate\"},\"confirmPublishPostDialog\":{\"header\":\"Confirm approval\",\"text\":\"The message contains what appears to be one or more unclosed [keywords]. Do you still want to approve this post?\\\"\",\"edit\":\"Edit @:common.taxonomy.post\",\"approve\":\"Approve @:common.taxonomy.post\"},\"confirmPostedPostModifyDialog\":{\"header\":\"Update published message\",\"text\":\"This post is published and your changes will be applied immediately, continue?\"},\"cookieConsentDialog\":{\"header\":\"We use cookies\",\"text\":\"We use cookies to enhance your browsing experience and analyze our traffic. By clicking “Allow All\\\", you consent to our use of cookies.\",\"cookies\":[{\"name\":\"intercom-device-#\",\"description\":\"Used to provide in-app support and onboarding with Intercom. (necessary)\"},{\"name\":\"intercom-id-#\",\"description\":\"Used to provide in-app support and onboarding with Intercom. (necessary)\"},{\"name\":\"intercom-session-#\",\"description\":\"Used to provide in-app support and onboarding with Intercom. (necessary)\"},{\"name\":\"_ga\",\"description\":\"Used to send data to Google Analytics about the visitor's device and behavior. Tracks the visitor across devices and marketing channels.\"},{\"name\":\"_ga_#\",\"description\":\"Used to send data to Google Analytics about the visitor's device and behavior. Tracks the visitor across devices and marketing channels.\"}],\"learnMore\":\"Learn more\",\"allow\":\"Allow all\",\"deny\":\"Allow necessary\"},\"createSingleStoreForm\":{\"companyName\":\"Business name\",\"companyPlaceholder\":\"Where do you work\",\"phoneNumber\":\"Phone number\",\"industry\":\"Industry\",\"timeZone\":\"Time zone\",\"currency\":\"Currency\",\"selectOne\":\"Select one\"},\"emptyDeals\":{\"noDealsYet\":\"No sales post yet\",\"createDeals\":\"Create a new sales post and it will show up here.\",\"watchVideo\":\"watch video (5:32)\",\"createDealPost\":\"Create Sales Post\"},\"postsFromTemplateDialog\":{\"header\":\"Created posts\",\"includeUnscheduled\":\"Include unscheduled\",\"indicators\":{\"total\":\"Total posts\",\"published\":\"Published posts\",\"failed\":\"Failed posts\",\"scheduled\":\"Scheduled posts\",\"unscheduled\":\"Unscheduled posts\",\"use\":\"Local use\",\"adaption\":\"Local adaption\",\"revenue\":\"Revenue\",\"sold\":\"Sold products\",\"orders\":\"Submitted orders\",\"reach\":\"Post Reach\",\"engagedUsers\":\"Engaged users\",\"engagement\":\"Post engagement\",\"impressionsOrganic\":\"Impressions organic\",\"impressionsPaid\":\"Impressions paid\"}},\"createLoginDialog\":{\"header\":\"Update Profile\",\"text\":\"Facebook login is being phased out soon.\\nPlease add an email and a password to your profile to continue using Post Office.\",\"submit\":\"Submit\",\"later\":\"Do it later\",\"error\":\"Something went wrong, please try again.\",\"headerDone\":\"Thank you\",\"done\":\"Next time you login, please do so by using your email and password.\"},\"createPostButton\":{\"deals\":\"Sales Post\",\"live\":\"Live Sale Event\"},\"dateRangePickerDialog\":{\"custom\":\"Custom\",\"confirm\":\"@:common.save\"},\"dateTimePickerDialog\":{\"confirm\":\"@:common.save\"},\"dealPlaceholdersMenu\":{\"activator\":\"Add keyword\",\"required\":\"Required\",\"optional\":\"Optional\"},\"dealsReplySetting\":{\"label\":\"Replies\",\"value\":{\"message\":\"Private message\",\"comment\":\"Comment\",\"default\":\"Organization default ({default})\"}},\"dealsFilterDialog\":{\"header\":\"Filter\",\"reset\":\"Reset\",\"state\":\"State\",\"states\":{\"draft\":\"Draft\",\"approved\":\"Approved\",\"active\":\"Active\",\"expired\":\"Expired\"},\"apply\":\"Apply filter\"},\"dealsList\":{\"item\":{\"statistics\":{\"revenue\":\"Revenue\",\"price\":\"Price\",\"delivered\":\"Delivered\",\"sold\":\"Sold\"}}},\"dealsTexts\":{\"reply\":{\"generalHeader\":\"General reply texts\",\"liveHeader\":\"Reply texts at live sales events\",\"itemName\":\"reply\",\"general\":{\"confirmation\":\"Order confirmation\",\"confirmationWithLink\":\"Order confirmation (Variants posts)\",\"expired\":\"Expired sale\",\"outOfStock\":\"Out of stock\",\"exceedsMaxAllowedQuantity\":\"Exceeds max allowed quantity\",\"exceedsStock\":\"Exceeds stock\",\"pickupReminder\":\"Pickup reminder\",\"pickupReminderLastDay\":\"Pickup reminder on last day\"},\"live\":{\"robotConnected\":\"Connected\",\"liveDealDisconnectedHeader\":\"Disconnected\",\"pleaseTryAgain\":\"Please try again\",\"liveConfirmation\":\"Order confirmation\",\"liveConfirmationWithLink\":\"Order confirmation, created after live has ended\",\"orderCheckout\":\"Order link to customers after live has ended\",\"productSoldOut\":\"Product sold out\"}},\"posts\":{\"header\":\"Automatic sales texts\",\"itemName\":\"text\",\"texts\":{\"footer\":\"Footer\",\"variantFooter\":\"Footer (Variants posts)\",\"liveFooter\":\"Live footer\",\"alcoholFooter\":\"Alcohol footer\",\"outOfStockHeader\":\"Out of stock\",\"expiredHeader\":\"Expired\"}},\"messagesDialog\":{\"addItem\":\"Add {item}\",\"default\":\"Use defaults\",\"contextMenu\":{\"duplicate\":\"@:common.duplicate\",\"delete\":\"@:common.delete\"}}},\"dealsSettings\":{\"header\":\"Sales\",\"isEnabled\":\"Is it possible to create sales posts?\",\"isAlcoholEnabled\":\"Allow alcohol in sales posts\",\"isAlcoholEnabledTooltip\":\"If enabled, sales posts can be marked as containing alcohol,\\nwhich will automatically append an alcohol footer to the post\",\"isCustomersAnonymized\":\"Anonymize customer data immediately\",\"isCustomersAnonymizedTooltip\":\"If enabled, customer data for NEW orders will be anonymized immediately.\\nIf disabled customer data wil be anonymized 90 days after orders are made.\",\"howTo\":\"Contact {email} to enable interactive commerce posts and templates for Facebook in your organization.\"},\"deleteServiceConnectionDialog\":{\"header\":\"Delete connection\",\"confirm\":\"Delete\",\"text\":\"Are you sure you want to delete {userName}s {type} connection?\\nThis does not delete other {type} connections.\"},\"disconnectServiceDialog\":{\"header\":\"Disconnect {type}\",\"confirm\":\"Disconnect\",\"text\":\"Are you sure you wish to disconnect {name} ({type})?\\nThis will remove all connections and associations between it and your location.\",\"noName\":\"this service\"},\"liveDealOverlapDialog\":{\"header\":\"Live sales event overlap\",\"text\":\"This live post cannot be approved because its period overlaps with another already approved live sales event.\"},\"locationDealsSettings\":{\"header\":\"Sales\",\"isEnabled\":\"Is it possible to create sales posts?\",\"likeRepliesText\":\"Automatically like customers orders\",\"likeRepliesTooltip\":\"Post Office will automatically \\\"like\\\" comments from customers, who have placed an order, on behalf of your page.\",\"customizeReplies\":\"Customize reply texts\",\"customizePosts\":\"Customize posts texts\",\"howTo\":\"Contact an admin from your organization to enable interactive commerce posts and templates for Facebook.\"},\"deleteDialog\":{\"header\":\"Delete {type}?\",\"text\":\"Are you sure want to delete {name}?\"},\"missingServiceForContentDialog\":{\"header\":\"Add service connection?\",\"text\":\"You need to add a connection to {service} before you can use this content.\",\"add\":\"Add connection\"},\"editActivePostDialog\":{\"header\":\"Unapprove post to edit?\",\"text\":\"The post you're trying to edit is already approved. To edit it, it must first be unapproved.\",\"confirm\":\"Unapprove and edit\"},\"editActiveScheduledTemplateDialog\":{\"header\":\"Edit published scheduled template?\",\"text\":\"The scheduled template you're trying to edit is already published. Locations that have already accepted the scheduled template will not receive any changes.\",\"confirm\":\"Edit anyway\"},\"endLivePostDialog\":{\"header\":\"Have you ended your live sales event?\",\"confirm\":\"End live sales event\",\"text\":\"When you press \\\"End live sales event\\\" we will send out a confirmation link to those who ordered so they can finish their order.\"},\"approveInvalidPostDialog\":{\"header\":\"Post needs adjustments!\",\"confirm\":\"Edit post\",\"placeholderMessage\":\"One or more keywords in the message needs to be replaced.\",\"incompleteDeal\":\"Sales details needs to be filled out.\",\"dummyFiles\":\"Dummy files needs to be removed or replaced.\",\"invalidFiles\":\"Some images are invalid for {service}.\",\"multipleFileGif\":\"A gif file can not be posted with other images.\"},\"externalPostEmbed\":{\"cantEmbed\":\"{type} post couldn't be embedded\",\"wasDeleted\":\"This post was deleted on {type}\",\"open\":\"Open in new tab\"},\"externalPostEmbedDialog\":{\"header\":\"{type} post\"},\"failedToAddFileDialog\":{\"header\":\"Failed to add file\",\"imageFailed\":\"Oops, we failed to add the file {fileName}.\\nAre you sure it's an image?\",\"multipleGifs\":\"You can't add multiple gifs to the same post.\"},\"htmlTextarea\":{\"missingPlaceholders\":\"The following required keywords must be included: {placeholders}\"},\"imageSourceDialog\":{\"header\":\"Change image\",\"upload\":\"Upload image\",\"facebook\":\"Get from Facebook\"},\"invalidMediaButton\":{\"mediaType\":{\"image\":\"The image\",\"video\":\"The video\"},\"and\":\"and\",\"violations\":{\"dimension\":\"dimensions\",\"length\":\"length\"},\"invalidDimension\":\"{media} does not have valid {violations} for {service}\",\"invalidType\":\"This type of media is not valid for {service}\",\"clickToFix\":\", click to fix automatically\"},\"invitationEditor\":{\"email\":\"Email\",\"alreadyMember\":\"The specified email address is already used by a member\",\"admin\":{\"header\":\"Invite administrator\",\"open\":\"Invite administrator\",\"completeNew\":\"@:common.send\",\"completeExisting\":\"@:common.send\"},\"member\":{\"header\":\"Invite member\",\"open\":\"Invite member\",\"completeNew\":\"@:common.send\",\"completeExisting\":\"@:common.send\"}},\"languageChanger\":{\"label\":\"Language\"},\"locationNavigation\":{\"header\":\"Choose location\",\"noItems\":\"You have no locations\",\"noMatchedItems\":\"You have matched no locations\"},\"locationsSelector\":{\"header\":\"Locations\",\"search\":\"Search\",\"locationState\":[\"All\",\"Selected\",\"Unselected\"]},\"locationUsersDialog\":{\"header\":\"Users\",\"noUsers\":\"No members\",\"removeUser\":\"Remove user from location\"},\"usersLocationsDialog\":{\"header\":\"Locations\",\"noLocations\":\"No locations\",\"removeLocation\":\"Remove {user} from location\"},\"locationServicesDialog\":{\"header\":\"Services\"},\"locationServiceSummary\":{\"connections\":\"{active} / {total} connections are working\",\"noConnections\":\"There are no connections!\",\"broken\":\"No working connections!\",\"noService\":\"Not connected\",\"delete\":\"Delete all connections to {service}\",\"manage\":\"Manage {service} connections\"},\"connectionsDialog\":{\"disconnect\":\"Disconnect {serviceType}\",\"you\":\"You\",\"admin\":\"Admin\",\"noConnections\":\"No connections to {name}.\",\"noService\":\"Not connected\",\"connected\":\"Connected\",\"mustRenew\":\"Not working\",\"reconnect\":\"Reconnect\",\"addConnection\":\"Add connection\"},\"locationContentSubscriptionList\":{\"header\":\"Content\",\"dialogHeader\":\"Unsubscribe\",\"dialogMessage\":\"Unsubscribe\",\"confirmRemove\":\"Are you sure you want to remove the unsubscribe from this content?\"},\"locationSendInvite\":{\"header\":\"Send invitation\",\"completeNew\":\"@:common.send\",\"completeExisting\":\"@:common.send\",\"email\":\"@:common.email\",\"inviteLink\":\"Invite link\",\"copyToClipboardTooltip\":\"Copy to clipboard\",\"renewLinkTooltip\":\"Generate new invite link\",\"confirmRenewText\":\"Are you want to generate a new invitation link? The old link can no longer be used.\",\"confirm\":\"@:common.yes\",\"cancel\":\"@:common.no\",\"createLinkText\":\"Create a link to be shared with users for the creation of new locations.\",\"createLink\":\"Create link\"},\"locationUserList\":{\"header\":\"Team\",\"addUser\":\"Add user\",\"dialogHeader\":\"Remove user\",\"dialogMessage\":\"Remove\",\"confirmRemove\":\"Are you sure you want to remove the user?\",\"noUsers\":\"No members!?\"},\"logoChanger\":{\"confirmHeader\":\"Confirm new logo\",\"confirmText\":\"Are you sure you want to set this picture as the logo for the location?\"},\"logoSelector\":{\"header\":\"Logo\"},\"logOutDialog\":{\"header\":\"Log out\",\"logOut\":\"Log out\",\"message\":\"Are you sure you want to log out?\"},\"deleteAccountDialog\":{\"header\":\"Delete account\",\"delete\":\"Delete\",\"message\":\"Are you sure you want to delete your account?\\nThis is permanent and can not be undone.\",\"confirm\":\"I confirm the deletion\"},\"mustRenewServiceConnectionDialog\":{\"header\":\"Connection must be renewed\",\"text\":\"Renew your service connection to prevent service interruptions.\",\"renew\":\"Renew\"},\"needHelp\":{\"stillNeedHelp\":\"Still need help?\",\"contactSupport\":\"Contact Support\"},\"noServiceConnectionDialog\":{\"header\":\"Connect to Facebook or Instagram\",\"text\":\"Post Office needs permission to post content on your social media.\"},\"ordersList\":{\"item\":{\"deletedOn\":\"Deleted on {date}\",\"deleted\":\"Deleted\",\"notNotified\":\"Post Office was not able to notify the customer after ordering\"},\"activeDealProductsDetails\":{\"showProducts\":\"Show products\",\"hideProducts\":\"Hide products\"}},\"periodsTile\":{\"impressions\":\"Impressions\",\"impressionsPaid\":\"Impressions Paid\",\"impressionsOrganic\":\"Impressions Organic\",\"consumptions\":\"Consumptions\",\"engagedUsers\":\"Engaged\",\"postsPosted\":\"Posts\",\"dealRevenue\":\"Revenue\",\"dealPostCount\":\"@:components.periodsTile.postsPosted\",\"quantitySold\":\"Sold products\",\"orderCount\":\"Orders\",\"ordersCollected\":\"Collected\",\"postsHarvested\":\"@:components.periodsTile.postsPosted\",\"postsPostedCombined\":\"@:components.periodsTile.postsPosted\"},\"periodsGraph\":{\"activity\":\"Activity\"},\"post\":{\"alert\":{\"liveWaiting\":\"Post Office is ready. Start a live stream on your Facebook page to get started.\",\"liveDisconnected\":\"We lost connection to the live stream. Start a new live stream on Facebook to continue or end this live sales event now.\",\"tryAgain\":\"Try again\",\"goToPage\":\"Go to page\",\"restart\":\"Restart\"},\"deletedNotification\":{\"deletedByLocation\":\"This @:common.taxonomy.post has been deleted from {service} by a user\",\"deletedByService\":\"This @:common.taxonomy.post has been deleted on {service}\",\"revoked\":\"This @:common.taxonomy.post has been revoked from {service} by an organisation admin\"},\"postErrors\":{\"0\":\"Rejected for unknown reasons.\",\"1\":\"No valid service connections were available.\",\"2\":\"Facebook responded that your account was temporarily blocked for policies violations.\",\"3\":\"We don't have permission to publish videos on your page. This is either a setting on the page or a temporary issue on {service}.\",\"4\":\"Sales posts cannot be posted when \\\"messaging\\\" is disabled on the {service}.\",\"5\":\"The included link is prohibited by Facebook.\",\"6\":\"Your identity needs to be confirmed on Facebook.\",\"7\":\"Your post includes too many hashtags.\",\"8\":\"The used Instagram account is not a Business Account.\",\"9\":\"The organization was not on a paid plan.\"},\"state\":{\"label\":{\"unapproved\":\"Unapproved\",\"approved\":\"Approved\",\"sending\":\"Sending\",\"posted\":\"Posted\",\"failed\":\"Error\",\"deleted\":\"Deleted\",\"dealActive\":\"Active\",\"dealDone\":\"Expired\",\"liveWaiting\":\"Waiting for signal\",\"live\":\"Live\",\"liveDisconnected\":\"Connection lost\",\"liveMissed\":\"Missed live\"},\"tooltip\":{\"posted\":\"Posted on\",\"deletedByLocation\":\"@:components.post.deletedNotification.deletedByLocation\",\"deletedByService\":\"@:components.post.deletedNotification.deletedByService\",\"revoked\":\"@:components.post.deletedNotification.revoked\",\"liveMissed\":\"This live sales event was never activated\"}}},\"postEditor\":{\"header\":\"Post\",\"open\":null,\"completeNew\":\"Create\",\"completeExisting\":\"@:common.save\",\"message\":\"What’s on your mind\",\"messageLive\":\"A message is not required for live sales events. But you can add one to have it replace the description on Facebook.\",\"date\":\"Date\",\"dates\":\"Dates\",\"publishDate\":\"Publish date\",\"saleTo\":\"Expiration date\",\"pickUp\":\"Pick up\",\"pickUpFrom\":\"Pick up from\",\"pickUpTo\":\"Pick up until\",\"serviceType\":\"Platform\",\"post\":\"Post\",\"type\":\"Post type\",\"chooseFromList\":\"Choose from the list\",\"emojiHint\":\"Shortcut to emoji keyboard\",\"types\":{\"normal\":\"Post\",\"deal\":\"Sales post\",\"dealVariants\":\"Sales post - variants\",\"live\":\"Live sales event\"},\"media\":{\"link\":\"https://postofficesocial.com\",\"addImage\":\"Add image\",\"addVideo\":\"Add video\",\"addLink\":\"Add link\",\"editImage\":\"Edit\",\"dummy\":\"Dummy\",\"noMediaAndLocked\":\"Media can not be added to this post\",\"invalidLink\":\"This link is not valid for posts\",\"contextMenu\":{\"download\":\"Download\",\"delete\":{\"image\":\"Delete image\",\"video\":\"Delete Video\"},\"moveUp\":\"Move up\",\"moveDown\":\"Move down\"},\"imageEditor\":{\"done\":\"Done\",\"crop\":{\"header\":\"Crop\",\"reset\":\"Reset\"},\"filters\":{\"header\":\"Filters\"},\"graphics\":{\"header\":\"Graphics\"},\"text\":{\"header\":\"Text\",\"done\":\"Done\"}}},\"deal\":{\"productName\":\"Product\",\"liveTitle\":\"Title\",\"name\":\"Name of product\",\"namePlaceholder\":\"Type name\",\"liveNamePlaceholder\":\"Eg. Liveshopping, Christmas shopping...\",\"variants\":\"Variants\",\"addVariant\":\"Add variant\",\"addProduct\":\"Add product\",\"copy\":\"copy\",\"product\":{\"name\":\"Name of product\",\"namePlaceholder\":\"Type name\",\"variantName\":\"Name of variant\",\"variantNamePlaceholder\":\"Type name\",\"price\":\"Price per. unit ({currency})\",\"pricePlaceholder\":\"Type price\",\"retailPrice\":\"Retail price per. unit ({currency})\",\"retailPricePlaceholder\":\"Type retail price (optional)\",\"quantity\":\"Quantity\",\"quantityPlaceholder\":\"Type quantity\",\"maxQuantityPerOrder\":\"Max quantity per order\",\"maxQuantityPerOrderPlaceholder\":\"Type quantity\",\"triggerPhrases\":\"Trigger phrases\",\"triggerPhrasesPlaceholder\":\"Type and press Enter\",\"contextMenu\":{\"remove\":\"@:common.remove\",\"duplicate\":{\"variant\":\"Duplicate variant\",\"product\":\"Duplicate product\"}}},\"isAlcohol\":\"Alcohol post\"},\"location\":{\"matchDuration\":\"Live duration\"},\"errorMessage\":{\"title\":\"Invalid input\",\"triggerMessage\":\"One or more trigger phrases on products are invalid.\\nA trigger phrase must be at least 3 letters and numbers long and may not contain other characters.\"},\"inputError\":{\"type\":{\"normal\":\"post\",\"live\":\"live sales event\",\"deal\":\"sales post\",\"dealVariants\":\"@:components.postEditor.inputError.type.deal\"},\"title\":\"Could not save the {type}\",\"message\":{\"default\":\"One or more required fields were not filled out correctly. Please check your {type} details fix the input field(s) marked with red to save.\",\"deal\":\"One or more required fields were not filled out correctly.\\nPlease check your {type} details and your products and fix the input field(s) marked with red to save.\\nTrigger phrases must be at least 3 letters and numbers long and may not contain other characters or more than 3 words per phrase\",\"files\":{\"1\":\"Invalid files or combination of files. Facebook only support a single video, a single gif or one or more images.\",\"2\":\"Invalid files. Instagram only support images with an aspect ratio between 1,19:1 and 4:5 and videos between 16:9 abd 4:5 lasting 60 seconds or less. Gifs are not allowed.\"}}}},\"postIsApprovedDialog\":{\"header\":\"Post is already approved\",\"text\":\"The post has already been approved and can't edited.\\nDo you want to unapprove the post and save it? - Or do you want to cancel your changes?\\n\\nRemember to reapprove the post if you save your changes.\",\"modify\":\"Save changes\",\"cancel\":\"Cancel changes\"},\"postOfficeInformation\":{\"header\":\"Other\",\"support\":\"Support\",\"terms\":\"Terms of use\",\"privacy\":\"Privacy policy\",\"reload\":\"Reload Post Office\",\"showPatchNotes\":\"Show latest changes\"},\"postPolicyViolationPostDialog\":{\"header\":\"Can't approve @:common.taxonomy.post\",\"headerIsApproved\":\"Can't unapprove @:common.taxonomy.post\",\"text\":\"This @:common.taxonomy.post is not in a valid state for approval.\\nDo you want to edit it?\\n\",\"textIsApproved\":\"It's not possible to unpublish this @:(common.taxonomy.post).\\nIt may have been posted or deleted by another user.\\n\",\"confirm\":\"edit\"},\"postPolicyViolationTemplateDialog\":{\"header\":\"Can't approve @:common.taxonomy.scheduledTemplate\",\"headerIsPublished\":\"Can't unapprove @:common.taxonomy.scheduledTemplate\",\"text\":\"This @:common.taxonomy.scheduledTemplate is not in a valid state for approval.\\nDo you want to edit it?\\n\",\"textIsPublished\":\"It's not possible to unpublish this @:(common.taxonomy.scheduledTemplate).\\nIt may have been posted or deleted by another user.\\n\",\"confirm\":\"edit\"},\"postPublishedOverlay\":{\"header\":{\"congrats\":\"Congratulations!\",\"live\":\"Ready to go live!\"},\"text\":{\"approved\":\"Your post is approved and will be posted on {service} {date} at {time}.\",\"listing\":\"Your post is now published, and visible to all your locations.\",\"review\":\"Your post is awaiting review by an admin.\",\"dealApproved\":\"Your sales post is approved and will be posted on {service} {date} at {time}.\",\"dealReview\":\"Your sales post is awaiting review by an admin.\",\"live\":\"We are ready to send replies to your customers when they place an order.\"}},\"privacyDialog\":{\"header\":\"Privacy policy\"},\"privacyText\":{\"sections\":[{\"header\":\"Overview\",\"paragraphs\":[\"Thank you for using Post Office. We care strongly about your privacy. We provide this Privacy Policy to inform users of our policies and procedures regarding the collection, use and disclosure of information received from users of our site. The personal data we gather from you is solely used to provide a better service and make you a happy user of Post Office.\",\"By using our service you are consenting to our processing of your information as presented in this Privacy Policy now and as amended by us. “Processing” means using cookies on a computer or using or accessing such information in any way, including, but not limited to, collecting, storing, deleting, using, combining and disclosing information.\"]},{\"header\":\"Consent\",\"paragraphs\":[\"Our processing of your personal information is based on your consent. Your consent is voluntary and may be withdrawn by you at any time. If you choose to withdraw consent, it does not affect the legality of our processing of your personal information based on your prior consent until the date of withdrawal. If you withdraw your consent, therefore, it will not be effective until this date.\",\"Your consent is valid for the following domains: app.postofffice.dk app.postofficesocial.com\",\"You can read more about consent on the Danish Data Protection Authority’s website. By using our site you consent to our privacy policy.\"]},{\"header\":\"Lawful base\",\"paragraphs\":[\"We collect and use data under the lawful base of Consent in that you, our users, has given clear consent for us to process their personal data for a specific purpose.\"]},{\"header\":\"What information do we collect?\",\"paragraphs\":[\"Post Office Social collects information to ensure the proper functioning of the Services and provides better insight on your use of the Services. The Personal Information collected includes, but is not limited to, the following:\",\"Name from Facebook profile, e-mail address, profile picture from Facebook profile, IP-address.\"]},{\"header\":\"Who is collecting it?\",\"paragraphs\":[\"Post Office Social IvS, Nørrebrogade 45 C, 4MF, DK-2200 København N Web: www.postoffice.dk Phone: +45 70 60 50 82 Mail: hello@postofficesocial.com\"]},{\"header\":\"How is it collected?\",\"paragraphs\":[\"To notify you when new content is available for you in your feed. To operate the services and ensure proper functionality. To allow users to access and sign in. To improve our services and provide users a better experience. To search for bugs in our system and contact you for support purposes. To provide you with downloadable content, such as case studies. To provide you with periodic e-mails containing market and product news. Elaboration on collections and purpose hereof Post Office will monitor the use of the services and collect personal information on your use. Post Office may analyze the use of the services, user behavior and the collected personal information in order to improve its content and services. Post Office may, for the duration of the use of the services and hereafter, as permitted under applicable law, store the information collected on you and logs from the use of the Services. In addition to this, Post Office may use the personal information in an aggregate and anonymous manner, e.g. by compiling statistical and performance information related to the provision and operation of the services. By signing this Privacy Policy you understand that Post Office may use and publicly publish aggregated and anonymous information, provided that such information is not considered personal information. Post Office uses Google Analytics for collecting usage data. Google Analytics is a web analysis service provided by Alphabet Inc. Google utilizes the information collected to track and examine the use of the Services, to prepare reports on its activities and share them with other Google services. Google may use the data collected to contextualize and personalize the ads of its own advertising network. The Services may use a technology called javascript, that allows Post Office to collect information on your interaction with the Services, such as click-tracking, to determine popular functionalities and malfunctions of the Services.\"]},{\"header\":\"How will it be used?\",\"paragraphs\":[\"Post Office handles your personal information with confidence and ensures that only staff who need access to your information have access. We only use your personal information in accordance with the General Data Protection Regulation. We use your email to notify you when new content is available for you in your feed or with other information regarding our services or your performance.\",\"We use your name and profile picture in order for you to make sure, that you are logged in with the intended Facebook profile. We also use this information to recognize you from other users on our platform so that we can assist you, should you experience problems with our service.\",\"We use log files to search for and understand issues within our system. This could for instance be regarding a post that wasn’t sent out as planned. A log file may contain your IP-adress.\",\"We store personal information up to two months after you delete your profile before we anonymize your data. After two months none of your personal information will appear on our site.\"]},{\"header\":\"Third parties\",\"paragraphs\":[\"We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our website, conducting our business, or servicing you, so long as those parties remain compliant with the newest regulations regarding protection of personal data. Post Office will share your personal information with third parties (i.e., vendors who’s services Post Office uses to deliver, maintain, or operate our services or business, including to market our services to you. Some of these third parties (Amazon and MailChimp) might transfer data to countries outside the EU, but we have made sure that they are compliant with lawful transfer basis. If you wish to limit or restrict the use or sharing/disclosure of your personal information, you can email us at support@postofficesocial.com.\",\"Link to Amazon and GDPR compliance statement: https://aws.amazon.com/blogs/security/all-aws-services-gdpr-ready/\",\"Link to Mailchimp’s privacy policy: https://mailchimp.com/legal/privacy/? ga=2.43058285.91823652.1527148915-1157491675.1503919524\"]},{\"header\":\"Analytics\",\"paragraphs\":[\"Post Office Social make use of Google Analytics. Google Analytics is a web analysis service provided by Google Inc. (“Google”). Google utilizes the data collected to track and examine the use of this application, to prepare reports on its activities and share them with other Google services. Google may use the data collected to contextualize and personalize the ads of its own advertising network.\"]},{\"header\":\"Job applications\",\"paragraphs\":[\"If you choose to apply for a job at Post Office, and submit personal information, such as a resume and motivated application, through the Post Office webpage(s), Post Office will make use of a third party provider to store and process the application.\",\"We delete applications that are of no interest to us within a month. In case we find your resume interesting and want to keep it for future use we might ask for your permission to do so.\"]},{\"header\":\"Your rights\",\"paragraphs\":[\"In accordance with the ‘Danish Act on Processing of Personal Data’ and privacy policies of certain third party service providers, Post Office will give individuals information on the personal information processed about the individual, if the individual requests such information. If we process personal information about you, you have the following rights:\",\"Right to view information: You have the right to gain insight into the information that we are processing about you, as well as a number of additional information. Right to correction: You have the right to have incorrect information about yourself corrected. Right to delete: In special cases, you have a right to have information about you deleted before the time of our general general delete. Right to limitation of treatment: You have certain rights to limited treatment of your personal information. If you are entitled to limited treatment we may only process the information in the future – except for storage – with your consent or for the purpose of determining, enforcing or defending legal claims, or for protecting a person or important social interests. Right to objection: In some cases, you may object to our or legitimate processing of your personal information. You can also object to processing information for direct marketing. Right to transmit information (data portability): You may, in certain cases, have the right to receive your personal information in a structured, commonly used and machine-readable format, and to transfer such personal data from one data manager to another without hindrance. You can read more about your rights in the Danish Data Protection Agency guide on the rights of the data subjects, which can be found at www.datatilsynet.dk.\",\"If you have questions about our use of your personal data, want to get a copy, change the data or have your data deleted, please contact us at hello@postofficesocial.com and include the following information: 1. Your name, phone number and e-mail address 2. What your request concerns (insight, correction, deletion or blocking) 3. The type of data concerned and where it originates from Post Office will retain certain personal information for other lawful purposes, such as compliance with legal requirements, compliance with terms and conditions and defense against claims. You may therefore experience that Post Offie will not delete all Personal Information, until such information no longer can be retained in order to fulfil or safeguard Post Office’s legal interest and obligations.\",\"If you wish to complain about us processing your personal information, please contact the Danish Data Inspectorate on telephone +45 33 19 32 00 or by e-mail dt@datatilsynet.dk\"]},{\"header\":\"Private browser\",\"paragraphs\":[\"If you have opted out of storing all cookies in your browser please be advised that this may affect website functionality.\"]},{\"header\":\"Changes to our Privacy Policy\",\"paragraphs\":[\"We may change this Privacy Policy from time to time. If we make any changes, we will notify you by revising the “Last Updated” date at the top of this Privacy Policy. If we make any material changes, we will provide you with additional notice (such as by adding a notice on the Post Office homepage, modals at login screens, or by sending you an email notification). We encourage you to review our Privacy Policy whenever you use our services to stay informed about our information practices and the ways you can help protect your privacy. - If you disagree with any changes to this Privacy Policy, you will need to stop using Post Office Services and deactivate your account(s).\"]},{\"header\":\"Contacting us\",\"paragraphs\":[\"If you have any questions. Please contact us using the information below.\",\"Post Office Social Aps. Badstuestræde 3, 3 sal. DK-12090 København K\",\"www.postoffice.dk +45 70 60 50 82 hello@postofficesocial.com\"]}]},\"offlineBanner\":{\"text\":\"You are offline! Please connect to the Internet again.\"},\"organizationNavigation\":{\"header\":\"Choose organization\",\"noItems\":\"You have no organizations\",\"noMatchedItems\":\"You have no matched organizations\"},\"organizationsPaidState\":{\"paidExpired\":\"Payment expired {date}\",\"trialExpired\":\"Trial expired {date}\",\"inTrial\":\"Trial expires {date}\",\"upgradeNow\":\"Upgrade now\"},\"organizationRole\":{\"member\":\"Member\",\"observer\":\"Analyst\",\"administrator\":\"Administrator\",\"unknown\":\"Unknown\"},\"mediaFile\":{\"failedToLoad\":\"Failed to load media\",\"failedToDisplay\":\"The media can not be displayed in your browser\"},\"mediaStatus\":{\"status\":{\"1\":\"Uploading\",\"2\":\"Failed to upload\",\"3\":\"Waiting for transcoding\",\"4\":\"Transcoding\",\"6\":\"Transcoding failed\"}},\"missingPermissionsDialog\":{\"header\":\"Update Your Permissions\",\"text\":\"Facebook has made changes that require you to update your permissions for us. It only takes 1 minute.\\nThank you very much.\",\"successText\":\"Thanks! We can now provide you our full service.\",\"failText\":\"Something went wrong and we didn't get the permissions we needed.\",\"givePermissions\":\"Update Your Permissions\",\"tryAgain\":\"Try again\",\"notNow\":\"I’ll do it later\"},\"rankedPosts\":{\"noPosts\":\"No posts with the selected filter\"},\"replaceableImage\":{\"hasFile\":\"Replace image\",\"noFile\":\"Upload image\"},\"reviewSettings\":{\"header\":\"Review\",\"description\":\"With \\\"Review\\\" turned on, all postings from all locations must be approved by the administrator before they are posted.\",\"isRequired\":\"Turn on review\"},\"revokeScheduledTemplateDialog\":{\"header\":\"Revoke\",\"messageReady\":\"This post was approved by {approvedCount} locations of which {postedOn} has been posted to Facebook pages. Are you sure you want to revoke the post from your locations calendar and pages?\",\"messageRevoking\":\"We're revoking all posts, this may take a bit. Please wait.\",\"messageSuccess\":\"The post has been successfully revoked.\",\"messageFailed\":\"The post could not been revoked from {postCount} Facebook pages. See the posts here: \",\"revoke\":\"Revoke\"},\"serviceConnections\":{\"header\":\"Channels\",\"serviceConnection\":{\"add\":\"Add connection\",\"delete\":\"Delete connection\",\"repair\":\"Reestablish connection\",\"manage\":\"Manage Connections\"},\"addFacebookServiceConnectionDialog\":{\"header\":\"Select a Facebook page\",\"headerInstagram\":\"Select a Instagram connection\",\"headerExisting\":\"Connect to Facebook page\",\"headerExistingInstagram\":\"Connect to Instagram\",\"facebookFailed\":\"Facebook sdk has failed to load\",\"needPermissionsGeneral\":\"We need your permission to able to a Facebook page\",\"requestPermissions\":\"Give permission\",\"loginMessage\":\"To add a Facebook page you need to login to Facebook and give us permissions\",\"loginMessageInstagram\":\"To add a Instagram connection you need to login to Facebook and give us permissions\",\"login\":\"Login to Facebook\",\"facebookWindow\":\"Please give permissions in the new window\",\"missingPages\":\"Can't see your page? Click here to give us permission.\",\"add\":\"Add\",\"connect\":\"Connect\"},\"facebookPageLoader\":{\"failed\":\"Oops, we ran into a problem loading your pages from Facebook.\",\"tryAgain\":\"Try again\"},\"facebookPageSelector\":{\"tasksAreUnknown\":\"We were unable to determine your rights. You may experience issues publishing posts.\",\"missingTasks\":\"You lack rights: {tasks}\",\"tasks\":{\"ANALYZE\":\"Analyze\",\"CREATE_CONTENT\":\"Create content\",\"MODERATE\":\"Moderate\",\"MESSAGING\":\"Messaging\"},\"isInUse\":\"Used by another location\",\"noPages\":\"You have no pages or we dont have permission to access your pages.\\nClick below to give us permission. Be sure to edit settings and select the pages you wish to use with Post Office.\"},\"facebookPageConfirmer\":{\"canAdd\":\"Ready to add connection to your Facebook Page\",\"needsPermission\":\"If you have access to this page, you need to give us access to it before you can add the connection. Click here to start.\",\"tasksAreUnknown\":\"@:components.serviceConnections.facebookPageSelector.tasksAreUnknown\",\"missingTasks\":\"@:components.serviceConnections.facebookPageSelector.missingTasks\",\"tasks\":{\"ANALYZE\":\"@:components.serviceConnections.facebookPageSelector.tasks.ANALYZE\",\"CREATE_CONTENT\":\"@:components.serviceConnections.facebookPageSelector.tasks.CREATE_CONTENT\",\"MODERATE\":\"@:components.serviceConnections.facebookPageSelector.tasks.MODERATE\",\"MESSAGING\":\"@:components.serviceConnections.facebookPageSelector.tasks.MESSAGING\"},\"unavailablePage\":\"The required page is unavailable. You likely do not have the necessary access or you have not given us access to it.\",\"updatePermission\":\"Click here to update our access\"}},\"simplePage\":{\"gotoLocation\":\"Manage a location\",\"gotoOrganization\":\"Go to admin\",\"gotoAccount\":\"Account\",\"logOut\":\"@:common.logOut\",\"gotoLogin\":\"Login\",\"gotoTerms\":\"Terms of service\",\"gotoPrivacy\":\"Privacy policy\"},\"simplePost\":{\"openExternal\":\"Open on {type}\"},\"simplePostDialog\":{\"header\":\"{type} post\"},\"statisticsFilter\":{\"serviceTypes\":{\"any\":\"All posts\",\"postoffice\":\"Post Office posts\",\"deal\":\"Post Office sales posts\",\"native\":\"Native Facebook / Instagram\"},\"period\":\"Last {count} days\"},\"statisticsLocationList\":{\"columns\":{\"name\":\"Name\",\"posted\":\"Posts\",\"impressions\":\"Impressions\",\"engagement\":\"Engagement\",\"followers\":\"Followers\"}},\"statisticsPostList\":{\"columns\":{\"posted\":\"Posted\",\"post\":\"Post\",\"impressions\":\"Impressions\",\"consumptions\":\"Consumptions\",\"engagements\":\"Engagements\"}},\"statisticsPostListItem\":{\"unapproved\":\"Not approved\"},\"statisticsPostTable\":{\"unapproved\":\"Not approved\",\"failure\":\"Failed\",\"noData\":\"No posts created\",\"columns\":{\"posted\":\"Posted\",\"post\":\"Post\",\"adapted\":\"Adapted\",\"impressions\":\"Impressions\",\"consumptions\":\"Consumptions\",\"engagements\":\"Engagements\"}},\"postsListTable\":{\"noData\":\"No posts created\",\"showPost\":\"Show Post\",\"typeDeal\":\"Sales post - 1 product\",\"typeDealPlural\":\"Sales post - {products} products\",\"columns\":{\"post\":\"Post\",\"type\":\"Type\",\"typeTooltip\":\"Shows if the post is a regular post, comment selling or live shopping.\",\"date\":\"Date\",\"dateTooltip\":\"The time of publishing.\",\"adapted\":\"Adapted\",\"adaptedTooltip\":\"Was the post edited by the location.\",\"state\":\"State\",\"stateTooltip\":\"Shows if the post scheduled, active or expired.\",\"media\":\"Media\",\"mediaTooltip\":\"What kind of creative was used in the post.\",\"revenue\":\"Revenue\",\"revenueTooltip\":\"Potential generated revenue from post.\",\"products\":\"Number of sold products\",\"productsTooltip\":\"Number of products sold from post.\",\"orders\":\"Number of collected orders\",\"ordersTooltip\":\"Number of orders collected.\",\"collectionRate\":\"Collection rate\",\"collectionRateTooltip\":\"What is the rate of collection.\",\"reach\":\"Reach\",\"reachTooltip\":\"Number of reach generated\",\"impressions\":\"Impressions\",\"impressionsTooltip\":\"Number of impressions generated\",\"consumptions\":\"Consumptions\",\"consumptionsTooltip\":\"Number of consumptions generated\"}},\"supportDialog\":{\"header\":\"Support\",\"needHelp\":\"Need help with something, we're ready!\",\"writeUs\":\"Write us at {email}.\",\"callUs\":\"Call us at {phone}.\",\"chatWithUs\":\"Chat with us\"},\"locationsDropdown\":{\"allLocations\":\"All locations\"},\"termsDialog\":{\"header\":\"Terms of use\"},\"termsText\":{\"sections\":[{\"header\":\"Overview\",\"paragraphs\":[\"This website is operated by POST OFFICE SOCIAL IVS. Throughout the site, the terms “we”, “us” and “our” refer to POST OFFICE SOCIAL. POST OFFICE SOCIAL offers this website, including all information, tools and services available from this site to you, the user, conditioned upon your acceptance of all terms, conditions, policies and notices stated here.\",\"By visiting our site and/ or purchasing something from us, you engage in our “Service” and agree to be bound by the following terms and conditions (“Terms of Service”, “Terms”). These Terms of Service apply to all users of the site, including without limitation users who are browsers, vendors, customers, merchants, and/ or contributors of content.\",\"By accessing or using any part of the site, you agree to be bound by these Terms of Service. If you do not agree to all the terms and conditions of this agreement, then you may not access the website or use any services.\",\"Any new features or tools which are added to the website shall also be subject to the Terms of Service. You can review the most current version of the Terms of Service at any time on this page. We reserve the right to update, change or replace any part of these Terms of Service by posting updates and/or changes to our website. It is your responsibility to check this page periodically for changes. Your continued use of or access to the website following the posting of any changes constitutes acceptance of those changes.\"]},{\"header\":\"General conditions\",\"paragraphs\":[\"You may not use our products for any illegal or unauthorized purpose nor may you, in the use of the Service, violate any laws in your jurisdiction (including but not limited to copyright laws).\",\"You must not transmit any worms or viruses or any code of a destructive nature. A breach or violation of any of the Terms will result in an immediate termination of your Services.\",\"We reserve the right to refuse service to anyone for any reason at any time. You understand that your content (not including credit card information), may be transferred unencrypted and involve (a) transmissions over various networks; and (b) changes to conform and adapt to technical requirements of connecting networks or devices. Credit card information is always encrypted during transfer over networks.\",\"You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the Service, use of the Service, or access to the Service or any contact on the website through which the service is provided, without express written permission by us.\",\"POST OFFICE SOCIAL, which is considered the data processor, only acts on instruction from you, which is considered as the data controller, in respect of the hosted data. We must take appropriate technical and organizational security measures to protect data against accidental or unlawful destruction, loss or alteration and against the unauthorized disclosure, misuse or other use in breach of the Act on processing of personal data. We must, at your request, provide you with sufficient information to enable you to ensure that such technical and organizational security measures are taken.\"]},{\"header\":\"License and intellectual property rights\",\"paragraphs\":[\"You merely acquire a non-exclusive, non-transferable license to use the provided services and deliveries.\",\"You are only entitled to use the license on behalf of entities, which are covered by the company registration number that appears on your Order Confirmation.\",\"POST OFFICE SOCIAL does not transfer any copyright or other rights in connection with its provision of services and supplies.\"]},{\"header\":\"Accuracy, completeness and timeliness of information\",\"paragraphs\":[\"We are not responsible if information made available on this site is not accurate, complete or current. The material on this site is provided for general information only and should not be relied upon or used as the sole basis for making decisions without consulting primary, more accurate, more complete or more timely sources of information. Any reliance on the material on this site is at your own risk.\"]},{\"header\":\"Modifications to the service and the prices\",\"paragraphs\":[\"Prices for our products are subject to change without notice.\",\"We reserve the right at any time to modify or discontinue the Service (or any part or content thereof) without notice at any time.\",\"We shall not be liable to you or to any third-party for any modification, price change, suspension or discontinuance of the Service.\",\"We do not warrant that the quality of any products, services, information, or other material purchased or obtained by you will meet your expectations, or that any errors in the Service will be corrected.\"]},{\"header\":\"Prohibited uses\",\"paragraphs\":[\"In addition to other prohibitions as set forth in the Terms of Service, you are prohibited from using the site or its content: (a) for any unlawful purpose; (b) to solicit others to perform or participate in any unlawful acts; (c) to violate any international, federal, provincial or state regulations, rules, laws, or local ordinances; (d) to infringe upon or violate our intellectual property rights or the intellectual property rights of others; (e) to harass, abuse, insult, harm, defame, slander, disparage, intimidate, or discriminate based on gender, sexual orientation, religion, ethnicity, race, age, national origin, or disability; (f) to submit false or misleading information; (g) to upload or transmit viruses or any other type of malicious code that will or may be used in any way that will affect the functionality or operation of the Service or of any related website, other websites, or the Internet; (h) to collect or track the personal information of others; (i) to spam, phish, pharm, pretext, spider, crawl, or scrape; (j) for any obscene or immoral purpose; or (k) to interfere with or circumvent the security features of the Service or any related website, other websites, or the Internet. We reserve the right to terminate your use of the Service or any related website for violating any of the prohibited uses.\"]},{\"header\":\"Disclaimer of warranties; Limitation of liability\",\"paragraphs\":[\"We do not guarantee, represent or warrant that your use of our service will be uninterrupted, timely, secure or error-free.\",\"We do not warrant that the results that may be obtained from the use of the service will be accurate or reliable.\",\"You agree that from time to time we may remove the service for indefinite periods of time or cancel the service at any time, without notice to you.\",\"You expressly agree that your use of, or inability to use, the service is at your sole risk. The service and all products and services delivered to you through the service are (except as expressly stated by us) provided ‘as is’ and ‘as available’ for your use, without any representation, warranties or conditions of any kind, either express or implied.\",\"In no case shall POST OFFICE SOCIAL, our directors, officers, employees, affiliates, agents, contractors, interns, suppliers, service providers or licensors be liable for any injury, loss, claim, or any direct, indirect, incidental, punitive, special, or consequential damages of any kind, including, without limitation lost profits, lost revenue, lost savings, loss of data, replacement costs, or any similar damages, whether based in contract, tort (including negligence), strict liability or otherwise, arising from your use of any of the service or any products procured using the service, or for any other claim related in any way to your use of the service or any product, including, but not limited to, any errors or omissions in any content, or any loss or damage of any kind incurred as a result of the use of the service or any content (or product) posted, transmitted, or otherwise made available via the service, even if advised of their possibility.\"]},{\"header\":\"Indemnification\",\"paragraphs\":[\"You agree to indemnify, defend and hold harmless POST OFFICE SOCIAL and our parent, subsidiaries, affiliates, partners, officers, directors, agents, contractors, licensors, service providers, subcontractors, suppliers, interns and employees, harmless from any claim or demand, including reasonable attorneys’ fees, made by any third-party due to or arising out of your breach of these Terms of Service or the documents they incorporate by reference, or your violation of any law or the rights of a third-party.\"]},{\"header\":\"Termination\",\"paragraphs\":[\"The obligations and liabilities of the parties incurred prior to the termination date shall survive the termination of this agreement for all purposes.\",\"These Terms of Service are effective unless and until terminated by either you or us. You may terminate these Terms of Service at any time by notifying us that you no longer wish to use our Services, or when you cease using our site.\",\"If in our sole judgment you fail, or we suspect that you have failed, to comply with any term or provision of these Terms of Service, we also may terminate this agreement at any time without notice and you will remain liable for all amounts due up to and including the date of termination; and/or accordingly may deny you access to our Services (or any part thereof).\"]},{\"header\":\"Entire agreement\",\"paragraphs\":[\"The failure of us to exercise or enforce any right or provision of these Terms of Service shall not constitute a waiver of such right or provision.\",\"These Terms of Service and any policies or operating rules posted by us on this site or in respect to The Service constitutes the entire agreement and understanding between you and us and govern your use of the Service, superseding any prior or contemporaneous agreements, communications and proposals, whether oral or written, between you and us (including, but not limited to, any prior versions of the Terms of Service).\",\"Any ambiguities in the interpretation of these Terms of Service shall not be construed against the drafting party.\"]},{\"header\":\"Governing law\",\"paragraphs\":[\"These Terms of Service and any separate agreements whereby we provide you Services shall be governed by, and exclusively construed in accordance with, the laws of The Kingdom of Denmark, not taking into account its provisions that may lead to the application of any other substantial law than Danish law. Any dispute, controversy or claim arising out of or in connection with this Agreement or the breach, termination or invalidity thereof shall be settled by the ordinary Danish courts.\"]},{\"header\":\"Changes ot terms of service\",\"paragraphs\":[\"You can review the most current version of the Terms of Service at any time at this page.\",\"We reserve the right, at our sole discretion, to update, change or replace any part of these Terms of Service by posting updates and changes to our website. It is your responsibility to check our website periodically for changes. Your continued use of or access to our website or the Service following the posting of any changes to these Terms of Service constitutes acceptance of those changes.\",\"Questions about the Terms of Service should be sent to us at hello@postofficesocial.com\"]}]},\"updateConnectionsDialog\":{\"open\":\"Connections\",\"tooltip\":\"Attempt to strengthen and / or repair all existing connections to services with your Facebook user\",\"header\":\"Update connections\",\"explanation\":\"You can update {numberOfServices} existing connection of which {numberOfBrokenServices} currently are broken.\",\"success\":\"You updated {updatedConnections} connections. There are now {numberOfBrokenServices} broken connection(s).\",\"failed\":\"Something went wrong when updating the connections.\",\"update\":\"Update\"},\"updateDialog\":{\"header\":\"Update Available\",\"text\":\"An update ({newVersion}) is installed and ready. We just need to do a quick refresh.\",\"update\":\"Refresh now\",\"dismiss\":\"Refresh later\"},\"paidStateAccount\":{\"header\":\"Your plan\",\"upgradeNow\":\"Upgrade now\",\"subscribeState\":{\"manageBilling\":\"Manage billing\",\"subscriptionExpired\":\"Your subscription has expired\",\"subscriptionWillRenew\":\"Your subscription will renew on {date}\"},\"trialState\":{\"header\":\"Trial\",\"trialExpired\":\"Your trial has expired\",\"trialEnds\":\"Trial ends in {days} days\",\"free\":\"Free\"},\"trialExpiredDialog\":{\"header\":\"Your trial has expired\",\"text\":\"Choose one of our plans to continue using Post Office.\",\"pickPlan\":\"Pick a plan\",\"contactTeam\":\"Contact sales team\"},\"pricingPlansDialog\":{\"title\":\"Manage plan\",\"changePlan\":\"Change plan\",\"header\":\"Choose the plan that’s right for your business\"}},\"locationSettings\":{\"header\":\"Settings\"},\"userSettings\":{\"header\":\"My Profile\",\"notifications\":\"Email notifications\",\"deleteAccount\":\"Delete account\"},\"editName\":{\"name\":\"Name\",\"header\":\"Edit name\"},\"editEmail\":{\"successEmailUpdate\":\"Success! Your email has been updated. Log in using your new email.\"},\"editPassword\":{\"currentPassword\":\"Cuerrent @:common.password\",\"newPassword\":\"New @:common.password\",\"confirmPassword\":\"Confirm @:common.password\",\"showPasswords\":\"Show passwords\",\"errorPasswordMatch\":\"The password does not match\",\"successPasswordUpdate\":\"Success! Your password has been updated. Log in using your new password.\"},\"versionFooter\":{\"text\":\"Post Office - Version {version}\"},\"whatsNewDialog\":{\"header\":\"NEW FEATURES\",\"temporaryDismiss\":\"Show me later\",\"dismiss\":\"Ok\",\"next\":\"Next\"},\"welcome\":{\"text\":\"Create and plan great content\"}},\"views\":{\"login\":{\"siteTitle\":\"Login\"},\"signup\":{\"siteTitle\":\"Sign up\",\"userSelection\":{\"siteTitle\":\"Sign up - User\",\"header\":\"Sign up\",\"firstName\":\"First name\",\"lastName\":\"Last name\",\"submit\":\"Sign up and join\",\"features\":[\"14-day free trial\",\"No credit card required\",\"Cancel anytime\"],\"consentToMarketing\":\"I agree to receive marketing emails from Post Office\",\"consentToTermsOfUse\":{\"text\":\"I agree to Post Office {terms} and {privacy}\",\"terms\":\"Terms of Service\",\"privacy\":\"Privacy policy\"},\"joinOrganization\":\"Join an organization that's already on Post Office?\",\"joinHeader\":\"Join organization\",\"joinText\":\"To join an organization ask an admin in your organization to invite you or provide a join link.\"},\"createOrganization\":{\"siteTitle\":\"Sign up - Organization\",\"heading\":{\"welcome\":\"Welcome, {name}\",\"setupCompany\":\"Let's setup your company\"},\"overlayMessage\":\"Setting up your company\"},\"selectModules\":{\"siteTitle\":\"Sign up - Modules\",\"heading\":\"What do you want to use Post Office for?\",\"scheduleContent\":\"Schedule content\",\"commentSales\":\"Comment Sales\",\"liveShopping\":\"Live Shopping\"},\"connectPlatforms\":{\"siteTitle\":\"Sign up - Connect\",\"heading\":\"Connect the platforms you want to manage.\",\"connectLater\":\"Connect later\",\"continue\":\"Continue\"}},\"resetPassword\":{\"siteTitle\":\"Reset Password\",\"description\":\"Please enter a new password\",\"newPassword\":\"New password\",\"header\":\"Reset your password\",\"reset\":\"Reset password\",\"passwordChanged\":\"Your password has been changed\",\"toLogin\":\"Go to sign in\"},\"notFound\":{\"siteTitle\":\"Not Found\",\"header\":\"Not Found\",\"message\":\"Sorry, we couldn't find \\\"{path}\\\".\",\"selectionLocation\":\"Manage a location\",\"selectionOrganization\":\"Manage an organization\"},\"invitation\":{\"joinOrganization\":{\"siteTitle\":\"Join Organization\",\"header\":\"Join Organization\"},\"joinLocation\":{\"siteTitle\":\"Join Location\",\"header\":\"Join Location\"},\"createLocation\":{\"siteTitle\":\"Create location\",\"header\":\"Create location\",\"createLocationForm\":{\"create\":\"next\",\"name\":\"Location name\",\"id\":\"Id\",\"timezone\":\"Time zone\",\"required\":\"Required\",\"signUp\":\"@:components.authenticationForm.signUp\",\"heading\":\"Welcome, let's setup your business.\",\"loadingText\":\"Setting up your business\"}},\"subscribeToOrganization\":{\"siteTitle\":\"Get content from brand\",\"header\":\"Get access to content from {name}\",\"noLocations\":\"You do not have access to any locations from your account, click below to create a location.\",\"createLocation\":\"Create location\",\"notAuthenticated\":\"To get access to the content you must be logged in, log in below or create an account if you do not have one.\",\"createAccount\":\"Create account\",\"subscribingText\":\"Subscribing to content\",\"selectLocations\":{\"text\":\"Select locations that should receive content from {name}\",\"addLocation\":\"If you don't see the location you want to use, you can {0}.\",\"addLocationLink\":\"add another one\",\"noLocations\":\"You have no locations! {0} to join.\",\"noLocationsLink\":\"Create a location\"},\"selectUser\":{\"alreadyHaveUser\":\"Already have a user\",\"showLogin\":\"Login\",\"workingText\":\"Setting up your account\"},\"createSingleStore\":{\"heading\":{\"welcome\":\"Welcome\",\"setupCompany\":\"Let's setup your business\"},\"workingText\":\"Setting up your company\"}},\"error\":{\"header\":\"Oops, an error occurred\",\"front\":\"Go to home\",\"tickNotFound\":\"The invitation was not found or has already been used\",\"general\":\"An error occurred when trying to use the invitation\"}},\"privacy\":{\"siteTitle\":\"Privacy Policy\",\"header\":\"Privacy Policy\",\"goHome\":\"Go Home\"},\"terms\":{\"siteTitle\":\"Terms of service\",\"header\":\"Terms of service\",\"goHome\":\"Go Home\"},\"backoffice\":{\"navigation\":{\"backoffice\":\"Backoffice\",\"account\":\"Account\",\"dashboard\":\"Dashboard\",\"logs\":\"Logs\",\"organizations\":\"Organizations\",\"users\":\"Users\",\"serviceConnections\":\"Connections\",\"toUser\":\"Switch to location\",\"changeOrganization\":\"Manage an organization\"},\"account\":{\"siteTitle\":\"Account\",\"header\":\"Account\"},\"dashboard\":{\"siteTitle\":\"Dashboard\",\"header\":\"Dashboard\",\"technical\":\"Technical\",\"hangfire\":\"Hangfire\"},\"logs\":{\"siteTitle\":\"Logs\",\"header\":\"Logs\",\"logs\":{\"posts\":\"Posts\",\"frontend\":\"Frontend\",\"services\":\"Services\"},\"posts\":{\"siteTitle\":\"Posts log\",\"search\":\"Search\",\"columns\":{\"failedOn\":\"Failed on\",\"locationName\":\"Location\",\"organizationName\":\"Organization\",\"type\":\"Error source\",\"errorCode\":\"Error code\",\"subCode\":\"Sub code\",\"id\":\"Post id\",\"locationId\":\"Location id\",\"organizationId\":\"Organization id\"}},\"frontend\":{\"siteTitle\":\"Frontend log\",\"awsLogs\":\"AWS Logs\",\"errors\":\"Errors\"},\"services\":{\"siteTitle\":\"Services log\",\"search\":\"Search\",\"debugTooltip\":\"Show debug info\",\"columns\":{\"modifiedOn\":\"Modified\",\"serviceType\":\"Type\",\"locationName\":\"Location\",\"organizationName\":\"Organization\",\"userName\":\"User\",\"userEmailAddress\":\"Email\",\"locationId\":\"Location id\",\"organizationId\":\"Organization id\",\"userId\":\"User id\",\"actions\":\"Actions\"}}},\"organizations\":{\"siteTitle\":\"Organizations\",\"header\":\"Organizations\",\"includeInactive\":\"Show inactive\",\"allOrganizationTypes\":\"All\",\"organizationsIndicators\":{\"total\":\"Total\",\"deals\":\"Sales\",\"dealsLive\":\"Live\",\"review\":\"Review\",\"locations\":\"Locations\"},\"organizationsList\":{\"search\":\"Search\",\"editTooltip\":\"Edit this organization\",\"showLocationsTooltip\":\"See location from this organization\",\"showUsersTooltip\":\"See users from this organization\",\"columns\":{\"name\":\"Name\",\"type\":\"Type\",\"phone\":\"Phone\",\"industry\":\"Industry\",\"paid\":\"Paid\",\"id\":\"Id\",\"key\":\"Key\",\"isActive\":\"Active\",\"isDealsEnabled\":\"Sales\",\"isLiveDealsEnabled\":\"Live\",\"isAlcoholEnabled\":\"Alcohol\",\"isCustomersAnonymized\":\"Anonymized\",\"isReviewRequired\":\"Review\",\"locationsCount\":\"Locations\",\"locationsWithDealsEnabledCount\":\"With sales\",\"locationsWithConnections\":\"With connections\",\"locationsWithWorkingConnections\":\"With working connections\"}},\"organizationPaidState\":{\"state\":{\"external\":\"Externally paid\",\"trial\":\"Trial expires {date}\",\"trialExpired\":\"Trial expired {date}\",\"paid\":\"Paid until {date}\",\"paidExpired\":\"Not paid since {date}\"}},\"organizationPaidStateDialog\":{\"header\":\"Payment\",\"trial\":\"Trial\",\"paid\":\"Paid\"},\"organizationEditor\":{\"header\":\"Organization Editor\",\"name\":\"Name\",\"key\":\"Key\",\"organizationType\":\"Type\",\"phone\":\"Phone\",\"industry\":\"Industry\",\"selectIndustry\":\"Select industry\",\"deals\":\"Sales\",\"isDealsEnabledText\":\"Sales\",\"currency\":\"Currency\",\"liveDealsText\":\"Live sales events\",\"isAlcoholEnabledText\":\"Alcohol sales\",\"isAnonymousBuyerEnabledText\":\"Anonymous buyer\",\"isMessagingPrioritizedText\":\"Prefer private messages\",\"miscellaneous\":\"Miscellaneous\",\"isReviewRequiredEnabledText\":\"Review required\",\"isNotificationsEnabledText\":\"Notifications\",\"completeNew\":\"Create\",\"completeExisting\":\"Save\"}},\"organizationLocations\":{\"siteTitle\":\"Locations\",\"header\":\"Locations in {name}\",\"organizationLocationsIndicators\":{\"total\":\"Total\",\"deals\":\"Sales\",\"dealsLive\":\"Live\",\"hasConnections\":\"Connected\",\"activeLastMonth\":\"Active (month)\"},\"locationList\":{\"search\":\"Search\",\"noActivity\":\"No activity\",\"reply\":{\"asOrg\":\"Organization\",\"message\":\"Message\",\"comment\":\"Comment\"},\"columns\":{\"name\":\"Name\",\"id\":\"Id\",\"userDefinedId\":\"Client id\",\"key\":\"Key\",\"platform\":\"Platform\",\"lastActivityOn\":\"Last active\",\"userCount\":\"Users\",\"followers\":\"Followers\",\"isDealsEnabled\":\"Sales\",\"isLiveDealsEnabled\":\"Live\",\"isPrioritizingMessaging\":\"Reply\",\"isLikeCommentOnOrderEnabled\":\"Like\",\"isSharingInsightsWithOrganization\":\"Sharing insights\"}}},\"organizationUsers\":{\"siteTitle\":\"Users\",\"header\":\"Users in {name}\",\"organizationUsersIndicators\":{\"total\":\"Total\",\"isMember\":\"Members\",\"isObserver\":\"Analysts\",\"isAdministrator\":\"Administrators\",\"hasLocations\":\"Location member\",\"activeLastMonth\":\"Active (month)\"},\"userList\":{\"search\":\"Search\",\"noActivity\":\"No activity\",\"columns\":{\"name\":\"Name\",\"emailAddress\":\"Email address\",\"role\":\"Role\",\"lastSeenOn\":\"Last seen\",\"memberOfLocationsCount\":\"Locations\",\"id\":\"Id\"}}},\"users\":{\"siteTitle\":\"Users\",\"header\":\"Users\",\"activeAfter\":\"Active since\",\"copyEmails\":\"Copy emails\",\"search\":\"Search\",\"columns\":{\"name\":\"Name\",\"email\":\"Email\",\"locationCount\":\"Locations\",\"created\":\"Joined\",\"lastSeen\":\"Last seen\",\"id\":\"User id\"},\"roles\":{\"members\":\"Members\",\"administrators\":\"Administrators\"},\"noActivity\":\"No activity\"},\"serviceConnections\":{\"siteTitle\":\"Service Connection\",\"header\":\"Service Connection\",\"search\":\"Service connection id\"}},\"admin\":{\"navigation\":{\"account\":\"Account\",\"dashboard\":\"Dashboard\",\"calendar\":\"Calendar\",\"deals\":\"Sales\",\"review\":\"Review\",\"templates\":\"Templates\",\"content\":\"Monitor\",\"mediaLibrary\":\"Media Library\",\"editor\":\"Editor\",\"advertising\":\"Advertising\",\"messages\":\"Messages\",\"insights\":\"Insights\",\"locations\":\"Locations\",\"users\":\"Users\",\"groups\":\"Groups\",\"toUser\":\"Switch to location\",\"backoffice\":\"Backoffice\",\"changeOrganization\":\"Change Organization\",\"changeLocation\":\"Change Location\"},\"account\":{\"siteTitle\":\"Account\",\"header\":\"Account\",\"organizationSettings\":{\"changeOrganization\":\"Change organization\"}},\"cantManage\":{\"header\":\"No access\",\"text\":\"Sorry, you don't have permission to manage this organization.\",\"manageLocation\":\"Manage a location\",\"manageOrganization\":\"Manage an organization\"},\"content\":{\"siteTitle\":\"Monitor\",\"header\":\"Monitor\",\"search\":\"Search posts\",\"download\":{\"menu\":\"Download\",\"current\":\"Current view\",\"lastWeek\":\"Last week\",\"lastMonth\":\"Last month\"},\"tabs\":{\"published\":\"Published\",\"scheduled\":\"Scheduled\",\"drafted\":\"Drafts\",\"failed\":\"Failed\"},\"periods\":{\"all\":\"All\",\"past\":\"Today and last {days} days\",\"future\":\"Today and next {days} days\"}},\"organizationSelection\":{\"siteTitle\":\"Organization selection\",\"noItems\":\"No Organizations\",\"gotoLocations\":\"Go to a location\",\"relogin\":\"Login with another user\"},\"calendar\":{\"siteTitle\":\"Calendar\",\"newPost\":\"New post\",\"morePosts\":\"+{posts} more...\",\"contextMenu\":{\"edit\":\"@:common.edit\",\"delete\":\"@:common.delete\",\"duplicate\":\"Duplicate template\",\"revoke\":\"Revoke\"},\"scheduledTemplateHeader\":{\"locked\":\"Publish date is locked\",\"preapproved\":\"Template is pre-approved\"}},\"scheduledTemplateEditor\":{\"siteTitle\":\"Editor\",\"editor\":{\"header\":\"Scheduled Template\",\"contentGroup\":\"Content Group\",\"isMediaLocked\":\"Lock media\",\"isMessageLocked\":\"Lock copy\",\"isPublishDateLocked\":\"Lock Date\",\"isPreapproved\":\"Pre-approve\"},\"lockedPublishDate\":{\"from\":\"From\",\"to\":\"To\"}},\"deals\":{\"siteTitle\":\"Sales\",\"header\":\"Sales\",\"textHeader\":\"Automatic texts\",\"repliesTitle\":\"Reply texts\",\"repliesSubtitle\":\"Customize messages that the bot uses to respond to your customers.\",\"postsTitle\":\"Posts texts\",\"postsSubtitle\":\"Customize texts that the bot adds to your posts.\",\"settingsTitle\":\"Settings\",\"replies\":{\"siteTitle\":\"Reply texts\",\"header\":\"Reply texts\",\"backButton\":\"Sales\"},\"posts\":{\"siteTitle\":\"Posts texts\",\"header\":\"Posts texts\",\"backButton\":\"Sales\"}},\"review\":{\"siteTitle\":\"Review\",\"header\":\"Review\",\"postEditor\":{\"siteTitle\":\"Editor\"},\"notEnabledHeader\":\"Review is not enabled\",\"notEnabledText\":\"You can enable post review for this organization under \\\"Account\\\".\"},\"templates\":{\"siteTitle\":\"Templates\",\"header\":\"Templates\",\"search\":\"Search templates\",\"sort\":{\"open\":\"Arrange categories\",\"header\":\"Arrange categories\",\"subtitle\":\"Order\"},\"templateCategoryEditor\":{\"header\":\"Template Category\",\"completeExisting\":\"@:common.save\",\"completeNew\":\"Create\",\"name\":\"Name\",\"description\":\"Description\",\"contentGroup\":\"Content Group\",\"open\":\"New category\"},\"templateEditor\":{\"siteTitle\":\"Editor\",\"category\":\"Category\"},\"contextMenu\":{\"delete\":\"@:common.delete\"}},\"editor\":{\"siteTitle\":\"Editor\",\"header\":\"Editor\",\"types\":{\"1\":\"Legacy Quick\",\"2\":\"Quick\",\"3\":\"Curve\",\"4\":\"Color\",\"5\":\"Graphic\",\"6\":\"Font\"},\"contextMenu\":{\"delete\":\"@:common.delete\"},\"filterEditor\":{\"completeExisting\":\"@:common.save\",\"completeNew\":\"Create\",\"settings\":\"Settings\",\"name\":\"Name\",\"type\":\"Type\",\"contentGroup\":\"Content Group\",\"namePlaceholder\":\"Type name\",\"quickInput\":{\"position\":\"Position\",\"source\":\"Source\"},\"colorInput\":{\"hexCode\":\"Hex code\"},\"curveInput\":{\"addCurve\":\"Upload curve\",\"replaceCurve\":\"Replace .acv file\"},\"fontInput\":{\"hasFile\":\"Replace font file\",\"noFile\":\"Upload font\"},\"menuEditorInputQuick\":{\"position\":\"Position\",\"imagePosition\":\"Image position\",\"tl\":\"Top left\",\"tr\":\"Top right\",\"bl\":\"Bottom left\",\"br\":\"Bottom right\"},\"menuEditorInputGraphic\":{\"size\":\"Size\",\"width\":\"Width\",\"height\":\"Height\"},\"menuEditorInputCurve\":{\"curve\":\"Curve\",\"saturation\":\"Saturation\",\"customCurve\":\"Custom\"}}},\"insights\":{\"siteTitle\":\"Insights\",\"header\":\"Insights\",\"sale\":\"Sales\",\"locations\":\"Locations\",\"posts\":\"Posts\",\"byPublishDate\":\"Only posted in period\",\"byPublishDateHelp\":\"Turn this filter on to only show posts that was posted within the selected period.\\nTurn this filter off to show any post that reported statistics in the selected period.\\n\",\"topPosts\":\"Top 10 posts\",\"allInsightsDialog\":{\"seeAll\":\"See all\",\"back\":\"Insights\"},\"allLocationsDialog\":{\"header\":\"Locations\"},\"allPostsDialog\":{\"header\":\"Posts\",\"byPublishDate\":\"Posted in period\",\"notByPublishDate\":\"Any active post in period\"},\"dialogReporting\":{\"header\":\"Receive report\",\"open\":\"Report\",\"reportPeriods\":{\"never\":\"Never\",\"daily\":\"Daily\",\"weekly\":\"Weekly\",\"monthly\":\"Monthly\"},\"description\":\"Subscribe to a report of your performance statistics direct in your inbox.\",\"labelPeriods\":\"How often?\"},\"reportList\":{\"header\":\"Previous reports\"}},\"locations\":{\"siteTitle\":\"Locations\",\"header\":\"Locations\",\"filter\":\"Filter\",\"noLocations\":\"No locations\",\"loading\":\"Loading locations\",\"list\":{\"search\":\"Search\",\"columns\":{\"name\":\"Name\",\"userDefinedId\":\"Id\",\"platform\":\"Platform\",\"lastActive\":\"Last active\",\"users\":\"Users\",\"followers\":\"Followers\",\"deal\":\"Sales\",\"liveDeal\":\"Live sales\",\"actions\":\"Actions\"},\"noActivity\":\"Never\",\"indicators\":{\"total\":\"Total\",\"active\":\"Active\",\"deals\":\"With sales\",\"liveDeals\":\"With live sales\",\"facebook\":\"With Facebook\",\"instagram\":\"With Instagram\"}},\"contextMenu\":{\"manageUsers\":\"Manage users\",\"manageConnections\":\"Manage connections\",\"delete\":\"Delete\",\"createLocation\":\"Create location\",\"sendInvitation\":\"Send invitation\",\"reconnect\":\"Reconnect\",\"settings\":\"Settings\",\"updateConnections\":\"Update connections\"},\"locationEditor\":{\"header\":\"Location\",\"open\":\"New location\",\"completeExisting\":\"@:common.save\",\"completeNew\":\"Create\",\"name\":\"Name\",\"userDefinedId\":\"Id\",\"key\":\"Url Key\",\"timeZone\":\"Time zone\",\"shareInsights\":\"Share insights with organization\",\"deals\":\"Sales\",\"dealsText\":\"Enable the creation of sales posts\",\"liveDeals\":\"Live sales events\",\"liveDealsText\":\"Enable the creation of live sales events\",\"replies\":\"Sales replies\",\"likeRepliesText\":\"Automatically like customers orders\"}},\"brandLocations\":{\"siteTitle\":\"Locations\",\"header\":\"Locations\",\"noLocations\":\"No locations\",\"loading\":\"Loading locations\",\"invite\":\"Send invitation\",\"list\":{\"search\":\"Search\",\"columns\":{\"name\":\"Name\",\"platform\":\"Platform\",\"lastActive\":\"Last active\",\"followers\":\"Followers\",\"deal\":\"Sales\",\"liveDeal\":\"Live sales\",\"actions\":\"Actions\"},\"noActivity\":\"Never\",\"indicators\":{\"total\":\"Total\",\"active\":\"Active\",\"deals\":\"With sales\",\"liveDeals\":\"With live sales\",\"facebook\":\"With Facebook\",\"instagram\":\"With Instagram\"},\"delete\":{\"header\":\"Are you sure?\",\"text\":\"{name} will no longer receive your content.\",\"confirm\":\"Remove\"}}},\"users\":{\"siteTitle\":\"Users\",\"header\":\"Users\",\"search\":\"Search\",\"loading\":\"Loading users\",\"columns\":{\"name\":\"Name\",\"email\":\"Email\",\"lastSeen\":\"Last online\",\"locations\":\"Locations\",\"role\":\"Role\"},\"contextMenu\":{\"remove\":\"@:common.remove from @:common.taxonomy.organization\"},\"userEditor\":{\"header\":\"User\",\"completeExisting\":\"@:common.save\",\"role\":\"Role\",\"roles\":{\"member\":\"Member\",\"observer\":\"Analyst\",\"administrator\":\"Administrator\"}},\"removeUserDialog\":{\"header\":\"@:common.remove @:common.taxonomy.user from @:common.taxonomy.organization\",\"text\":\"Are you sure you want to @:common.remove {name} from {organizationName}?\"}},\"groups\":{\"siteTitle\":\"Groups\",\"header\":\"Groups\",\"search\":\"Search\",\"loading\":\"Loading groups\",\"archiveTooltip\":\"Archive group\",\"deleteDialog\":{\"header\":\"Are you sure?\",\"confirm\":\"Archive\",\"text\":\"If you archive the group \\\"{name}\\\", it will be hidden from you and your users. Content from the group that has already been used will remain visible. You can restore the group later.\"},\"list\":{\"columns\":{\"name\":\"Name\",\"count\":\"Locations\"}},\"groupEditor\":{\"header\":\"@:common.taxonomy.contentGroup\",\"open\":\"New @:common.taxonomy.contentGroup\",\"completeExisting\":\"@:common.save\",\"completeNew\":\"Create\",\"name\":\"@:common.taxonomy.contentGroup name\",\"namePlaceholder\":\"My group\"},\"contextMenu\":{\"archivedGroups\":\"Archived groups\"},\"undeleteDialog\":{\"header\":\"Archive\",\"unarchive\":\"Unachive\"}}},\"user\":{\"navigation\":{\"account\":\"Account\",\"calendar\":\"Calendar\",\"content\":\"Content\",\"deals\":\"Sales\",\"templates\":\"Templates\",\"messages\":\"Messages\",\"insights\":\"Insights\",\"backoffice\":\"Backoffice\",\"changeLocation\":\"Change Location\",\"toAdmin\":\"To admin\"},\"account\":{\"siteTitle\":\"Account\",\"header\":\"Account\",\"locationProfile\":{\"changeLocation\":\"Change Location\"},\"navigation\":{\"header\":\"Navigation\",\"toAdmin\":\"To admin\",\"changeLocation\":\"Change location\"},\"contextMenu\":{\"delete\":\"@:common.delete\",\"reconnect\":\"Reconnect\",\"settings\":\"Settings\"},\"replyTexts\":{\"siteTitle\":\"Reply texts\",\"header\":\"Reply texts\",\"backButton\":\"Account\"},\"postTexts\":{\"siteTitle\":\"Post texts\",\"header\":\"Post texts\",\"backButton\":\"Account\"}},\"calendar\":{\"siteTitle\":\"Calendar\",\"newPost\":\"New post\",\"morePosts\":\"+{posts} more...\",\"contextMenu\":{\"edit\":\"@:common.edit\",\"delete\":\"@:common.delete\",\"duplicate\":\"Duplicate post\",\"printProducts\":\"Print product cards\",\"printOrders\":\"Print customer orders\",\"printCustomerList\":\"Print customer list\",\"seeOrders\":\"See orders\",\"openExternal\":{\"1\":\"Open on Facebook\",\"2\":\"Open on Instagram\"},\"endLive\":\"End live\"},\"postActions\":{\"orders\":\"Delivered\",\"sold\":\"Sold\"}},\"deals\":{\"siteTitle\":\"Sales\",\"header\":\"Sales\",\"notEnabled\":\"Sales have not been enabled for your location, please talk to an admin to have it enabled.\",\"noDealsWithFilter\":\"No sales match the selected filter.\",\"clearFilter\":\"Clear filter\",\"search\":\"Search in sales\",\"create\":\"Create\",\"contextMenu\":{\"edit\":\"Edit\",\"delete\":\"@:common.delete\",\"duplicate\":\"Duplicate sales post\",\"printProducts\":\"Print product cards\",\"printOrders\":\"Print customer orders\",\"printCustomerList\":\"Print customer list\",\"openExternal\":{\"1\":\"Open on Facebook\",\"2\":\"Open on Instagram\"},\"endLive\":\"End live\"},\"orders\":{\"siteTitle\":\"Orders\",\"revenue\":\"Revenue\",\"orders\":\"Delivered\",\"sold\":\"Sold\",\"price\":\"Price\",\"search\":\"Search in orders\"}},\"postEditor\":{\"siteTitle\":\"Editor\"},\"content\":{\"siteTitle\":\"Templates\",\"header\":\"Templates\",\"search\":\"Search\"},\"insights\":{\"siteTitle\":\"Insights\",\"header\":\"Insights\",\"sale\":\"Sales\",\"topPosts\":\"Top 10\",\"dialogReporting\":{\"header\":\"Receive report\",\"open\":\"Report\",\"reportTypes\":{\"never\":\"Never\",\"weekly\":\"Weekly\"},\"comparePeriods\":{\"lastWeek\":\"Last week\",\"lastYear\":\"Same time last year\"},\"serviceTypes\":{\"any\":\"All posts\",\"postOffice\":\"Only posts via Post Office\"},\"description\":\"Choose how often you would like to receive a fresh report in your inbox.\"}},\"locationSelection\":{\"siteTitle\":\"Location selection\",\"noItems\":\"No locations\",\"gotoAdmin\":\"Go to admin\",\"relogin\":\"Login with another user\"}},\"userAccount\":{\"siteTitle\":\"User account\",\"header\":\"Account\"},\"userDelete\":{\"siteTitle\":\"Delete user account\",\"header\":\"Delete user account\",\"sectionHeader\":\"Important! Read carefully\",\"deleteText\":\"If you delete your user account, it can not be restored. Make sure all your user data is backed up before continuing.\",\"deleteButton\":\"Delete my user account\"}},\"patchNotes\":[{\"version\":\"2.28.0\",\"onlyDeals\":false,\"header\":\"Calendar month view\",\"media\":{\"src\":\"2_28_0_calendarView.webp\",\"width\":386},\"changes\":\"You can now switch to a month view of the calendar to see a broader overview of your schedule.\"},{\"version\":\"2.24.0\",\"onlyDeals\":false,\"header\":\"Updated design 🧢\",\"media\":{\"src\":\"2_24_0_newDesign.png\",\"width\":386},\"changes\":\"We have introduced a new color and streamlined the design to make Post Office more intuitive to use. Everything else works as usual! We know it may take some time to get used to a new look, but we hope you will like it 😊\"},{\"version\":\"2.23.0\",\"onlyDeals\":true,\"header\":\"Local answers to sales posts💬\",\"media\":{\"src\":\"2_23_0_localDealTexts.jpg\",\"width\":386},\"changes\":\"It is now possible to write your own versions of the automatic replies customers receive when they shop via your sales posts. You could use this to write more specific instructions on how and when products are picked up. You'll find this option under “Account”.\"},{\"version\":\"2.22.0\",\"onlyDeals\":true,\"header\":\"\\\"Deals\\\" are now called \\\"Sales posts\\\"\",\"changes\":\"The Deals tab is now called \\\"Sales\\\" and Deals posts are called \\\"Sales posts\\\". Apart from this minor change, everything works exactly the same way it used to.\"},{\"version\":\"2.17.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_17_0_fileOrder.jpg\",\"width\":386},\"header\":\"Order images\",\"changes\":\"It's now possible to change the order of images and videos in your posts. Just press the button in right corner to move media up or down.\"},{\"version\":\"2.14.7\",\"onlyDeals\":false,\"media\":{\"src\":\"2_14_7_searchTemplates.png\",\"width\":386},\"header\":\"Search for templates\",\"changes\":\"It just became easier to find what you're looking for in the template library.\\nSimply search for the desired post using the text bar.\"},{\"version\":\"2.14.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_14_0_report.png\",\"width\":549},\"header\":\"Receive weekly report\",\"changes\":\"It's now possible to receive a weekly report with insights into how you Facebook page has performed.\"},{\"version\":\"2.14.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_14_0_changePlatform.png\",\"width\":715},\"header\":\"Change platform\",\"changes\":\"It's now possible to change a Facebook post to an Instagram post and vice versa.\"},{\"version\":\"2.7.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_7_0_calendargrid.gif\",\"width\":431},\"header\":\"Calendar view\",\"changes\":\"You can now change from the classic list view to a calendar overview.\\nYou switch between the views via the icon in the upper right corner.\"},{\"version\":\"2.7.0\",\"onlyDeals\":false,\"media\":{\"src\":\"2_7_0_instagram.png\",\"width\":578},\"header\":\"Instagram video\",\"changes\":\"You can now add videos to Instagram posts.\"}]}","module.exports = {\"en\":{\"count\":{\"maximumFractionDigits\":0},\"percent\":{\"style\":\"percent\",\"signDisplay\":\"never\",\"maximumFractionDigits\":0},\"currency\":{\"style\":\"currency\",\"minimumFractionDigits\":2,\"maximumFractionDigits\":2},\"currencyNoSymbol\":{\"style\":\"decimal\",\"minimumFractionDigits\":2,\"maximumFractionDigits\":2}},\"da\":{\"count\":{\"maximumFractionDigits\":0},\"percent\":{\"style\":\"percent\",\"signDisplay\":\"never\",\"maximumFractionDigits\":0},\"currency\":{\"style\":\"currency\",\"minimumFractionDigits\":2,\"maximumFractionDigits\":2},\"currencyNoSymbol\":{\"style\":\"decimal\",\"minimumFractionDigits\":2,\"maximumFractionDigits\":2}}}","var map = {\n\t\"./animated/loader.svg\": 35019,\n\t\"./arrow-bottom-right.svg\": 46456,\n\t\"./arrow-down-2.svg\": 77393,\n\t\"./arrow-down.svg\": 82956,\n\t\"./arrow-left.svg\": 38843,\n\t\"./arrow-right.svg\": 81182,\n\t\"./arrow-up-2.svg\": 51557,\n\t\"./arrow-up-right.svg\": 6942,\n\t\"./arrow-up.svg\": 85831,\n\t\"./at-sign.svg\": 16343,\n\t\"./bell.svg\": 63543,\n\t\"./btn_play.svg\": 7261,\n\t\"./calendar-4days.svg\": 27116,\n\t\"./calendar-list.svg\": 67443,\n\t\"./calendar-month.svg\": 67399,\n\t\"./calendar-oval-2.svg\": 38834,\n\t\"./calendar-oval.svg\": 39,\n\t\"./calendar-today.svg\": 17538,\n\t\"./calendar-week.svg\": 98943,\n\t\"./calendar.svg\": 19966,\n\t\"./check-circle-large.svg\": 52255,\n\t\"./check-circle.svg\": 94097,\n\t\"./check-filled.svg\": 34905,\n\t\"./check-small.svg\": 43462,\n\t\"./check-square.svg\": 40660,\n\t\"./check.svg\": 95044,\n\t\"./checkbox-selected.svg\": 47619,\n\t\"./checkbox.svg\": 96455,\n\t\"./chevron-down-small.svg\": 2776,\n\t\"./chevron-down.svg\": 11474,\n\t\"./chevron-left-small.svg\": 64299,\n\t\"./chevron-left.svg\": 48057,\n\t\"./chevron-right-small.svg\": 57145,\n\t\"./chevron-right.svg\": 83364,\n\t\"./chevron-up-small.svg\": 21171,\n\t\"./chevron-up.svg\": 74721,\n\t\"./clock.svg\": 13990,\n\t\"./close-square.svg\": 18160,\n\t\"./close.svg\": 99888,\n\t\"./copy.svg\": 97003,\n\t\"./corner-up-right.svg\": 37922,\n\t\"./credit-card.svg\": 19438,\n\t\"./deals.svg\": 7081,\n\t\"./document-text.svg\": 85877,\n\t\"./download.svg\": 34804,\n\t\"./drag.svg\": 80282,\n\t\"./duotone/bot.svg\": 89466,\n\t\"./duotone/chat.svg\": 70249,\n\t\"./edit.svg\": 43288,\n\t\"./editor.svg\": 39551,\n\t\"./external-link.svg\": 4086,\n\t\"./eye-off.svg\": 61547,\n\t\"./eye.svg\": 97219,\n\t\"./facebook-disconnected.svg\": 36996,\n\t\"./facebook-f.svg\": 65153,\n\t\"./facebook-flat.svg\": 50016,\n\t\"./facebook-outlined.svg\": 42223,\n\t\"./file-plus.svg\": 38495,\n\t\"./file-text.svg\": 38890,\n\t\"./folder-plus.svg\": 49873,\n\t\"./globe.svg\": 87179,\n\t\"./grid-plus.svg\": 40005,\n\t\"./grid.svg\": 70492,\n\t\"./header-filter.svg\": 52026,\n\t\"./heart.svg\": 41456,\n\t\"./home-2.svg\": 2288,\n\t\"./home.svg\": 32409,\n\t\"./icon_add_small.svg\": 93655,\n\t\"./image.svg\": 64131,\n\t\"./info-small.svg\": 62194,\n\t\"./insights.svg\": 58179,\n\t\"./instagram-disconnected.svg\": 69756,\n\t\"./instagram-flat.svg\": 52648,\n\t\"./instagram.svg\": 95032,\n\t\"./key-cmd.svg\": 96822,\n\t\"./key-win.svg\": 12724,\n\t\"./life-buoy.svg\": 18008,\n\t\"./link.svg\": 25660,\n\t\"./live-video.svg\": 34448,\n\t\"./lock-square.svg\": 98099,\n\t\"./lock.svg\": 73953,\n\t\"./mail.svg\": 8017,\n\t\"./map-pin-plus.svg\": 18389,\n\t\"./map-pin.svg\": 36236,\n\t\"./maximize.svg\": 65562,\n\t\"./menu-2.svg\": 55624,\n\t\"./menu.svg\": 59425,\n\t\"./message-circle.svg\": 24070,\n\t\"./message-dots.svg\": 89338,\n\t\"./message-text.svg\": 98771,\n\t\"./minus.svg\": 18292,\n\t\"./more-horizontal.svg\": 18712,\n\t\"./mouse-arrow.svg\": 60217,\n\t\"./new-bag-outline.svg\": 24126,\n\t\"./new-bag-solid.svg\": 64265,\n\t\"./new-bars-outline.svg\": 40908,\n\t\"./new-bars-solid.svg\": 96495,\n\t\"./new-book-solid.svg\": 23414,\n\t\"./new-box-outline.svg\": 63887,\n\t\"./new-box-solid.svg\": 66588,\n\t\"./new-calendar-outline.svg\": 77368,\n\t\"./new-calendar-solid.svg\": 44467,\n\t\"./new-content-outline.svg\": 10943,\n\t\"./new-content-solid.svg\": 19756,\n\t\"./new-drop-outline.svg\": 17589,\n\t\"./new-drop-solid.svg\": 1610,\n\t\"./new-edit-outline.svg\": 48350,\n\t\"./new-film-solid.svg\": 67148,\n\t\"./new-groups-outline.svg\": 47378,\n\t\"./new-groups-solid.svg\": 52613,\n\t\"./new-help-outline.svg\": 70343,\n\t\"./new-help-solid.svg\": 60484,\n\t\"./new-layout-outline.svg\": 60792,\n\t\"./new-link-outlined.svg\": 35174,\n\t\"./new-pin-outline.svg\": 90477,\n\t\"./new-pin-solid.svg\": 45682,\n\t\"./new-repeat-outline.svg\": 17783,\n\t\"./new-shuffle-outline.svg\": 38963,\n\t\"./new-users-outline.svg\": 23684,\n\t\"./new-users-solid.svg\": 46135,\n\t\"./new-video-solid.svg\": 57066,\n\t\"./order-list.svg\": 6257,\n\t\"./pen-edit.svg\": 5262,\n\t\"./play-circle.svg\": 83103,\n\t\"./play.svg\": 33490,\n\t\"./plus-circle.svg\": 70889,\n\t\"./plus-square.svg\": 11052,\n\t\"./plus.svg\": 17724,\n\t\"./po-logo.svg\": 16217,\n\t\"./pointer-click.svg\": 88992,\n\t\"./power.svg\": 8079,\n\t\"./question-circle.svg\": 80413,\n\t\"./radio.svg\": 28709,\n\t\"./refresh.svg\": 67269,\n\t\"./repeat.svg\": 67809,\n\t\"./report-active.svg\": 80649,\n\t\"./report.svg\": 97146,\n\t\"./rotate-cw.svg\": 23052,\n\t\"./sales-empty.svg\": 89744,\n\t\"./save.svg\": 48899,\n\t\"./search.svg\": 63568,\n\t\"./server-horizontal.svg\": 56278,\n\t\"./server-vertical.svg\": 59948,\n\t\"./settings.svg\": 28523,\n\t\"./shield.svg\": 38647,\n\t\"./shopping-bag.svg\": 91917,\n\t\"./shopping-cart.svg\": 80755,\n\t\"./sliders-2.svg\": 92683,\n\t\"./sliders-3.svg\": 98810,\n\t\"./smiley.svg\": 62137,\n\t\"./snack-error.svg\": 47383,\n\t\"./snack-facebook.svg\": 1503,\n\t\"./snack-info.svg\": 79227,\n\t\"./snack-information.svg\": 41843,\n\t\"./snack-internet.svg\": 4944,\n\t\"./snack-share.svg\": 89212,\n\t\"./snack-success.svg\": 21772,\n\t\"./snack-warning.svg\": 7913,\n\t\"./social/facebook.svg\": 64052,\n\t\"./social/instagram.svg\": 47268,\n\t\"./social/linkedin.svg\": 87918,\n\t\"./social/pinterest.svg\": 28614,\n\t\"./social/twitter.svg\": 35013,\n\t\"./social/youtube.svg\": 28987,\n\t\"./svg/arrow-bottom-right.svg\": 57197,\n\t\"./svg/arrow-down-2.svg\": 7620,\n\t\"./svg/arrow-down.svg\": 16021,\n\t\"./svg/arrow-left.svg\": 9742,\n\t\"./svg/arrow-right.svg\": 57261,\n\t\"./svg/arrow-up-2.svg\": 26395,\n\t\"./svg/arrow-up-right.svg\": 36107,\n\t\"./svg/arrow-up.svg\": 53306,\n\t\"./svg/at-sign.svg\": 66252,\n\t\"./svg/bell.svg\": 79194,\n\t\"./svg/btn_play.svg\": 60520,\n\t\"./svg/calendar-4days.svg\": 29365,\n\t\"./svg/calendar-list.svg\": 52528,\n\t\"./svg/calendar-month.svg\": 78114,\n\t\"./svg/calendar-oval-2.svg\": 61633,\n\t\"./svg/calendar-oval.svg\": 32796,\n\t\"./svg/calendar-today.svg\": 25107,\n\t\"./svg/calendar-week.svg\": 30372,\n\t\"./svg/calendar.svg\": 51407,\n\t\"./svg/check-circle-large.svg\": 99278,\n\t\"./svg/check-circle.svg\": 13280,\n\t\"./svg/check-filled.svg\": 91900,\n\t\"./svg/check-small.svg\": 75761,\n\t\"./svg/check-square.svg\": 25481,\n\t\"./svg/check.svg\": 19011,\n\t\"./svg/checkbox-selected.svg\": 31808,\n\t\"./svg/checkbox.svg\": 32098,\n\t\"./svg/chevron-down-small.svg\": 93229,\n\t\"./svg/chevron-down.svg\": 99663,\n\t\"./svg/chevron-left-small.svg\": 43122,\n\t\"./svg/chevron-left.svg\": 90480,\n\t\"./svg/chevron-right-small.svg\": 90141,\n\t\"./svg/chevron-right.svg\": 66047,\n\t\"./svg/chevron-up-small.svg\": 2498,\n\t\"./svg/chevron-up.svg\": 6464,\n\t\"./svg/clock.svg\": 68481,\n\t\"./svg/close-square.svg\": 89021,\n\t\"./svg/close.svg\": 51319,\n\t\"./svg/copy.svg\": 32722,\n\t\"./svg/corner-up-right.svg\": 90597,\n\t\"./svg/credit-card.svg\": 78209,\n\t\"./svg/deals.svg\": 35962,\n\t\"./svg/document-text.svg\": 13730,\n\t\"./svg/download.svg\": 49457,\n\t\"./svg/drag.svg\": 63183,\n\t\"./svg/edit.svg\": 92041,\n\t\"./svg/editor.svg\": 43414,\n\t\"./svg/external-link.svg\": 9333,\n\t\"./svg/eye-off.svg\": 99068,\n\t\"./svg/eye.svg\": 62904,\n\t\"./svg/facebook-disconnected.svg\": 78695,\n\t\"./svg/facebook-f.svg\": 7828,\n\t\"./svg/facebook-flat.svg\": 22311,\n\t\"./svg/facebook-outlined.svg\": 23744,\n\t\"./svg/file-plus.svg\": 46764,\n\t\"./svg/file-text.svg\": 38233,\n\t\"./svg/folder-plus.svg\": 93626,\n\t\"./svg/globe.svg\": 95428,\n\t\"./svg/grid-plus.svg\": 20738,\n\t\"./svg/grid.svg\": 78025,\n\t\"./svg/header-filter.svg\": 49161,\n\t\"./svg/heart.svg\": 71991,\n\t\"./svg/home-2.svg\": 19793,\n\t\"./svg/home.svg\": 35756,\n\t\"./svg/icon_add_small.svg\": 37310,\n\t\"./svg/image.svg\": 85788,\n\t\"./svg/info-small.svg\": 79923,\n\t\"./svg/insights.svg\": 45030,\n\t\"./svg/instagram-disconnected.svg\": 64325,\n\t\"./svg/instagram-flat.svg\": 31393,\n\t\"./svg/instagram.svg\": 63923,\n\t\"./svg/key-cmd.svg\": 71493,\n\t\"./svg/key-win.svg\": 54559,\n\t\"./svg/life-buoy.svg\": 70043,\n\t\"./svg/link.svg\": 90969,\n\t\"./svg/live-video.svg\": 71777,\n\t\"./svg/lock-square.svg\": 96432,\n\t\"./svg/lock.svg\": 79728,\n\t\"./svg/mail.svg\": 91616,\n\t\"./svg/map-pin-plus.svg\": 79608,\n\t\"./svg/map-pin.svg\": 44207,\n\t\"./svg/maximize.svg\": 2687,\n\t\"./svg/menu-2.svg\": 41813,\n\t\"./svg/menu.svg\": 83160,\n\t\"./svg/message-circle.svg\": 32431,\n\t\"./svg/message-dots.svg\": 30711,\n\t\"./svg/message-text.svg\": 69918,\n\t\"./svg/minus.svg\": 97943,\n\t\"./svg/more-horizontal.svg\": 36987,\n\t\"./svg/mouse-arrow.svg\": 30186,\n\t\"./svg/new-bag-outline.svg\": 69881,\n\t\"./svg/new-bag-solid.svg\": 68374,\n\t\"./svg/new-bars-outline.svg\": 75621,\n\t\"./svg/new-bars-solid.svg\": 60250,\n\t\"./svg/new-book-solid.svg\": 94807,\n\t\"./svg/new-box-outline.svg\": 76988,\n\t\"./svg/new-box-solid.svg\": 98495,\n\t\"./svg/new-calendar-outline.svg\": 2545,\n\t\"./svg/new-calendar-solid.svg\": 75774,\n\t\"./svg/new-content-outline.svg\": 94744,\n\t\"./svg/new-content-solid.svg\": 67827,\n\t\"./svg/new-drop-outline.svg\": 26036,\n\t\"./svg/new-drop-solid.svg\": 32391,\n\t\"./svg/new-edit-outline.svg\": 23615,\n\t\"./svg/new-film-solid.svg\": 56638,\n\t\"./svg/new-groups-outline.svg\": 56091,\n\t\"./svg/new-groups-solid.svg\": 41312,\n\t\"./svg/new-help-outline.svg\": 12718,\n\t\"./svg/new-help-solid.svg\": 38425,\n\t\"./svg/new-layout-outline.svg\": 53737,\n\t\"./svg/new-link-outlined.svg\": 17309,\n\t\"./svg/new-pin-outline.svg\": 5450,\n\t\"./svg/new-pin-solid.svg\": 72173,\n\t\"./svg/new-repeat-outline.svg\": 1038,\n\t\"./svg/new-shuffle-outline.svg\": 32016,\n\t\"./svg/new-users-outline.svg\": 49787,\n\t\"./svg/new-users-solid.svg\": 50784,\n\t\"./svg/new-video-solid.svg\": 99029,\n\t\"./svg/order-list.svg\": 98948,\n\t\"./svg/pen-edit.svg\": 73275,\n\t\"./svg/play-circle.svg\": 24460,\n\t\"./svg/play.svg\": 71791,\n\t\"./svg/plus-circle.svg\": 86742,\n\t\"./svg/plus-square.svg\": 62635,\n\t\"./svg/plus.svg\": 6681,\n\t\"./svg/po-logo.svg\": 11258,\n\t\"./svg/pointer-click.svg\": 12007,\n\t\"./svg/power.svg\": 57464,\n\t\"./svg/question-circle.svg\": 89070,\n\t\"./svg/radio.svg\": 53982,\n\t\"./svg/refresh.svg\": 83846,\n\t\"./svg/repeat.svg\": 77920,\n\t\"./svg/report-active.svg\": 33226,\n\t\"./svg/report.svg\": 25299,\n\t\"./svg/rotate-cw.svg\": 41431,\n\t\"./svg/sales-empty.svg\": 36827,\n\t\"./svg/save.svg\": 93198,\n\t\"./svg/search.svg\": 28533,\n\t\"./svg/server-horizontal.svg\": 62825,\n\t\"./svg/server-vertical.svg\": 87295,\n\t\"./svg/settings.svg\": 81462,\n\t\"./svg/shield.svg\": 75602,\n\t\"./svg/shopping-bag.svg\": 51216,\n\t\"./svg/shopping-cart.svg\": 50724,\n\t\"./svg/sliders-2.svg\": 68180,\n\t\"./svg/sliders-3.svg\": 13109,\n\t\"./svg/smiley.svg\": 90608,\n\t\"./svg/snack-error.svg\": 42740,\n\t\"./svg/snack-facebook.svg\": 18546,\n\t\"./svg/snack-info.svg\": 1062,\n\t\"./svg/snack-information.svg\": 5636,\n\t\"./svg/snack-internet.svg\": 62513,\n\t\"./svg/snack-share.svg\": 79267,\n\t\"./svg/snack-success.svg\": 14831,\n\t\"./svg/snack-warning.svg\": 86074,\n\t\"./svg/tag-double.svg\": 60551,\n\t\"./svg/tag.svg\": 6087,\n\t\"./svg/thumbs-up.svg\": 74688,\n\t\"./svg/trash.svg\": 85105,\n\t\"./svg/type.svg\": 41901,\n\t\"./svg/upload.svg\": 4646,\n\t\"./svg/user-minus.svg\": 28155,\n\t\"./svg/user-plus.svg\": 63373,\n\t\"./svg/user.svg\": 58548,\n\t\"./svg/video-dot.svg\": 18992,\n\t\"./svg/video-error.svg\": 88475,\n\t\"./svg/video-play.svg\": 79313,\n\t\"./svg/video.svg\": 99414,\n\t\"./svg/warning-circle.svg\": 88600,\n\t\"./svg/wine.svg\": 88794,\n\t\"./tag-double.svg\": 82,\n\t\"./tag.svg\": 2532,\n\t\"./thumbs-up.svg\": 53031,\n\t\"./trash.svg\": 13058,\n\t\"./type.svg\": 64612,\n\t\"./upload.svg\": 36839,\n\t\"./user-minus.svg\": 47966,\n\t\"./user-plus.svg\": 14198,\n\t\"./user.svg\": 89085,\n\t\"./video-broke.svg\": 64353,\n\t\"./video-dot.svg\": 49103,\n\t\"./video-error.svg\": 57272,\n\t\"./video-play.svg\": 93600,\n\t\"./video.svg\": 42949,\n\t\"./warning-circle.svg\": 23341,\n\t\"./wine.svg\": 80319\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 = 7816;","var map = {\n\t\"./da.yaml\": 88442,\n\t\"./en.yaml\": 78658\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 = 4771;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"76\":\"common\",\"134\":\"backoffice\",\"786\":\"invitation\",\"806\":\"user\",\"884\":\"admin\",\"966\":\"login\"}[chunkId] || chunkId) + \".\" + {\"76\":\"2adbfebe\",\"117\":\"f9104884\",\"134\":\"f54023c9\",\"311\":\"91e1c7c8\",\"354\":\"5b2a7622\",\"427\":\"afd9bb95\",\"529\":\"cd580f6e\",\"618\":\"132a62bb\",\"786\":\"e5bff2e9\",\"806\":\"e44a033b\",\"838\":\"33792ea8\",\"841\":\"47700d0d\",\"884\":\"414050a3\",\"907\":\"b3631e4d\",\"949\":\"f60066dd\",\"962\":\"17cbf903\",\"963\":\"9401dddc\",\"966\":\"8ed844cf\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + ({\"76\":\"common\",\"134\":\"backoffice\",\"786\":\"invitation\",\"806\":\"user\",\"884\":\"admin\",\"966\":\"login\"}[chunkId] || chunkId) + \".\" + {\"76\":\"b23f787a\",\"134\":\"46350dcf\",\"311\":\"5686e0f8\",\"529\":\"3e888139\",\"618\":\"15bea098\",\"786\":\"bbcf5270\",\"806\":\"d29338e3\",\"884\":\"aa5e3f02\",\"966\":\"7a0f0f57\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"post-office:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"76\":1,\"134\":1,\"311\":1,\"529\":1,\"618\":1,\"786\":1,\"806\":1,\"884\":1,\"966\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpost_office\"] = self[\"webpackChunkpost_office\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(72572); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["attrs","_vm","scrollable","scopedSlots","key","fn","props","value","isOpenValue","expression","$attrs","staticClass","class","wideMargins","toolbar","noDivider","close","_t","$slots","actionsDivider","staticRenderFns","BasicDialog","Mixins","BaseDialog","constructor","args","_defineProperty","isOpen","innerIsOpen","$emit","__decorate","Prop","default","required","type","Boolean","Component","components","DialogToolbar","component","render","this","_c","_self","_setupProxy","$vuetify","breakpoint","mdAndUp","header","persistent","on","$event","_u","isWorking","cancelClicked","_v","_s","_f","cancel","$t","canConfirm","confirmClicked","confirm","_e","proxy","ConfirmDialog","Vue","item","undefined","innerIsOpenValue","BigButton","fullscreen","divider","closable","closeRight","hasHeader","_setup","loading","secondary","color","submit","TextButton","size","Loading","SelectOption","text","icon","toString","createSimple","isRaw","path","width","height","fill","noOffset","shadow","style","theme","themes","light","fillSize","strokeWidth","_b","href","useAttrs","PoIcon","x","y","id","require","match","registerHooks","valueFormats","DateFormat","install","vue","options","prototype","$df","format","updateFormatters","isValid","Notifications","warning","setZone","keepLocalTime","toJSDate","formatters","hasOwnProperty","toISOString","I18n","locale","lastLocale","timeFormatter","Intl","DateTimeFormat","hour","digit","minute","hour12","shortMonthDay","Configuration","localization","fallback","month","short","day","numeric","numericMonthDay","numericMonthDayYear","year","shortDate","longDate","long","monthDay","monthYear","dayOfMonth","weekday","shortWeekday","veryShortDate","longNoYear","mediumNoYear","shortNoYear","time","dateTime","date","mediumDateTime","numericDateTime","numericDateYearTime","use","Navigation","$navigateTo","location","replace","$router","push","catch","reason","Router","redirected","Vuetify","colors","primary","accent","error","info","information","success","white","black","red","green","greenvibrant","greenapple","darkgrey","grey","graymedium","graydarken","lightgrey","checkboxbase","background","graylighter","grayevenlighter","whiteghost","silver","bluelight","bluedark","dodgerblue","yellow","yellowlight","redtinted","midnight","bluebright","athensgray","melrose","shark","seashell","azureblue","graylightdarker","jordyblue","iconfont","dark","filter","charAt","toUpperCase","slice","register","ready","registration","Tracking","event","debug","registered","cached","updatefound","Install","updateIsAvailable","updated","updateIsReady","offline","isOffline","message","preload","directives","name","isRouting","isVisible","Notifications_1","current","isAvailable","NotificationsManager","list","index","NotificationType","length","isClosed","isVisibleType","typeName","title","created","$watch","showNext","nextTick","$tk","update","newVersion","UpdateDialog","I18nComponentMixin","innerIsVisible","hasRequestedUpdateDialog","i18nKey","isImportantUpdateReady","isReady","immediate","callback","OfflineBanner","isDismissed","isFullyVisible","LoadingOverlay","LoadingManager","isLoading","setTimeout","show","_l","cookies","cookie","allow","CookieConsentDialog","hasUpdatedCanTrack","Authentication","isLoggingIn","isAuthenticated","updateCanTrackUnauthenticated","deny","App","isRouteValid","$route","matched","some","r","meta","requiresAuthenticated","version","fullI18nPath","hierarchy","i18n","join","getRoutingStatus","routingStatus","getTitle","document","mounted","$te","noneFatalErrors","noneFatalMessage","noneFatalErrorDetails","reportError","warningCheck","Page","isUnloaded","e","toLocaleLowerCase","m","includes","detail","getErrorLocation","toLowerCase","config","errorHandler","vm","window","addEventListener","isError","Error","preventDefault","Settings","defaultLocale","handleOldStorage","productionTip","keyCodes","period","semicolon","router","vuetify","store","h","$mount","oldKeys","language","localStorage","getItem","availableLocales","indexOf","forEach","removeItem","FacebookPortal","VuexModule","AuthenticationMethodState","Uninitialized","currentState","LoggingIn","canLogin","CanLogin","setState","Mutation","Module","dynamic","namespaced","getModule","Facebook","State","watch","FacebookAuthentication","isLoggedIn","CannotLogin","login","authResponse","Portal","call","sessions","facebookLogin","accessToken","response","isUserNotKnownError","logOut","hasServiceErrorCode","PostOfficeErrorCode","facebookUserNotFound","SavedLogin","data","getData","secureCookieLogin","password","setData","SecureCookie","Id","Password","clear","save","secureCookiePost","then","clearData","idKey","passwordKey","setItem","UsernamePassword","setIsAuthenticated","setIsCheckingLogin","isCheckingLogin","listenForAuthentication","attemptLogin","finally","handleSessionExpired","getAuthenticationType","client","authenticationType","updateSession","watchIsAuthenticated","checkLogin","when","hasCheckedLogin","takeOverSession","sessionId","DateCreated","Date","now","DateModified","setAuthenticated","sessionExpiredHandler","sessionExpiredHandling","clearSession","authenticated","whenIsAuthenticatedChange","List","state","hasAny","hasMoreThanOne","itemName","dependent","reset","updateListWithDependent","updateList","Promise","resolve","apiLoad","setList","ItemList","getById","getMap","toItemMap","getMapWhenReady","getIndex","findIndex","ListEditable","delete","apiDelete","remove","createItem","createTask","add","ListModifiable","modifyItem","modify","FacebookAccount","FacebookPage","hasRequiredTasks","missingTasks","areTasksUnknown","tasks","requiredTasks","t","city","street","instagramAccount","super","fromSdk","access_token","instagram_business_account","InstagramBusinessAccount","subName","i","hasSubName","sortName","imageUrl","Pages","getImage","hasInstagram","url","getUrlFromId","instagramUrlMask","getUrlFromUsername","username","Location","userDefinedId","organizationId","timeZone","logoUrl","lastActivityOn","userCount","followers","isSharingInsightsWithOrganization","isDealsEnabled","isPrioritizingMessaging","isLiveDealsEnabled","isLikeCommentOnOrderEnabled","isPickupReminderEnabled","dealConfiguration","users","fromApi","UserDefinedId","OrganizationId","Key","Name","TimeZone","LogoUrl","Language","Statistics","LastActivityOn","UserCount","Followers","IsShareInsightsWithOrganizationEnabled","Deals","Regular","IsEnabled","Common","IsMessagingPrioritized","Live","IsLikeCommentOnOrderEnabled","IsPickupReminderEnabled","DealConfiguration","toApi","Texts","ExpiredHeader","getDealTextsByKey","OutOfStockHeader","AlcoholFooter","PleaseTryAgain","PickupReminder","PickupReminderLastDay","Footer","VariantFooter","Confirmation","ConfirmationWithLink","ExceedsMaxAllowedQuantity","ExceedsStock","Expired","OutOfStock","LiveFooter","RobotDisconnectedHeader","OrderCheckout","RobotConnected","ProductSoldOut","toOrganizationApi","isAnonymousBuyerEnabled","isMessagingPrioritized","isAlcoholEnabled","IsAnonymousBuyerEnabled","IsAlcoholEnabled","requiredLanguage","texts","DealTexts","eachLanguageFromApi","set","empty","clone","Map","Array","from","values","map","has","flatten","getDealTexts","Text","alcoholFooter","getValues","outOfStockHeader","expiredHeader","pleaseTryAgain","pickupReminder","pickupReminderLastDay","footer","variantFooter","confirmation","confirmationWithLink","expired","outOfStock","exceedsMaxAllowedQuantity","exceedsStock","liveFooter","robotDisconnectedHeader","orderCheckout","liveConfirmation","liveConfirmationWithLink","robotConnected","productSoldOut","Object","entries","excludedProperties","cloneAndReplace","other","otherValue","rawValues","languages","getLanguages","Set","isDefault","textArray","keys","OrganizationPermission","canView","canModify","canDelete","canViewUsers","canModifyUsers","canRemoveUsers","canViewPostsForReview","canModifyPostsForReview","canViewContentGroups","canModifyContentGroups","canModifyFilters","canViewStatistics","CanView","CanModify","CanDelete","CanViewUsers","CanModifyUsers","CanRemoveUsers","CanViewPostsForReview","CanModifyPostsForReview","CanViewContentGroups","CanModifyContentGroups","CanModifyFilters","CanViewStatistics","Organization","canManage","permission","hasUpdatedPermission","isOnTrial","trialExpirationDate","paidUntilDate","paidSort","trial","toMillis","paid","DateTimeUtility","maxDate","isSingleStore","OrganizationType","singleStore","isBrand","brand","phone","industry","currency","locationSignupToken","contentSubscriptionToken","isActive","isReviewRequired","isNotificationsEnabled","isCustomersAnonymized","locationsCount","locationsWithDealsEnabledCount","locationsWithConnections","locationsWithWorkingConnections","Type","ContactPhoneNumber","Industry","Currency","LocationSignupToken","ContentSubscriptionToken","TrialExpirationDate","DateTime","fromISO","PaidUntilDate","IsActive","Review","Locations","LocationsWithDeals","LocationsWithConnections","LocationsWithWorkingConnections","CalendarType","Service","isFacebook","ServiceConnectionType","facebook","isInstagram","instagram","externalId","externalName","compare","localeCompare","ServiceConnection","typeId","serviceId","mustRenew","createdOn","modifiedOn","TypeId","ServiceId","MustRenew","CreatedOn","ModifiedOn","PublicUser","User","emailAddress","profilePictureUrl","lastSeenOn","memberOfLocationsCount","Email","ProfilePictureUrl","LastSeenOn","MemberOfLocationsCount","initials","split","part","toLocaleUpperCase","updaterFromUser","Accounts","lastUpdateFailed","splice","account","setUpdater","updater","setLastUpdateFailed","isUpdating","canLoad","Permissions","hasAllPagePermissions","hasAllInstagramPermissions","updatePages","hasCheckedPermissions","getAndMergePages","pages","sort","a1","a2","isAccount","firstOrNull","all","getAllPages","instagramMap","p","get","includeInstagram","reject","result","handleResponse","responsePromise","paging","summary","total_count","callGetPages","cursors","after","parameters","fields","hasModuleFailed","Loader","getLoginStatus","authResponseChanged","status","handleInitialUnknown","Event","subscribe","setHasModuleFailed","setHasCheckedLogin","clearLogOutCookie","requestPermissions","permissions","setIsLoggingIn","every","grantedPermissions","scope","return_scopes","sessionStorage","logOutStorage","logout","setHasHandledInitialUnknown","updatePermissions","hasHandledInitialUnknown","clearCookieOnAllDomainsAndPaths","connections","facebookAppId","clearCookie","domain","command","ScriptState","loader","timeout","initial","fbAsyncInit","shouldResolve","clearTimeout","FB","init","appId","xfbml","script","createElement","src","async","facebookSdkTimeout","head","appendChild","api","canGet","getPage","getPageByType","getPageByInstagram","a","allPermissions","pagePermissions","concat","instagramPermissions","hasPermissionsChanged","requestPagePermissions","requestInstagramPermissions","requestAllPermissions","ContentSubscription","setFromApi","ContentSubscriptions","s","observable","main","subscribeMain","ticket","locationId","locations","contentSubscriptionsPost","organizations","contentSubscribersDelete","contentSubscriptionsGet","d","hasMain","hasUpdatedCount","count","hasMultiple","mainOrError","updateCount","addGlobalEventListener","globalEvents","userChanged","user","updateUser","rawLocations","getLocations","modifyLogo","file","modifyMainAfterCall","logosPost","Url","modifyTimeZone","modifyIsLikeCommentOnOrderEnabled","modifyIsDealPrioritizingMessaging","modifyDealConfiguration","modifyPatch","updateUsers","usersGet","removeUser","userId","usersDelete","u","query","getLocationFromId","setMainFromKey","getByKey","clearMain","change","changes","l1","l2","updatedUser","put","IsDealsEnabled","IsLiveDealsEnabled","patch","PublicServiceConnection","Services","addConnection","serviceIndex","connection","removeConnection","connectionIndex","DetailedService","hasActiveConnections","c","ExternalId","LocationId","Connections","hasAnyWorking","addFacebook","addInstagram","addToLocation","newConnection","serviceConnectionsPost","userID","service","find","sendGlobalEvent","locationServiceChanged","deleteFromLocation","serviceConnectionsDelete","deleteConnection","serviceConnections","existingConnection","loadFromLocation","servicesGet","Organizations","setMainId","mainId","setWasMainSetByLocation","wasMainSetFromLocation","organization","ListMain","getByKeyWhenReady","canManageMain","hasAnyNoneSingleStore","o","updatePermission","organizationAdded","organizationChanged","setMainFromLocation","createSingleStore","deal","post","ShareInsightsWithOrganization","fileInfo","modifyIsCurrency","modifyIsReviewRequired","isRequired","modifyDealTexts","modifyDealEnabled","modifyIsAlcoholEnabled","modifyIsCustomerAnonymized","refreshLocationSignupToken","refreshContentSubscriptionToken","force","permissionsGet","o1","o2","getBytIdOrFail","dealConfig","_client","PortalClient","portalPath","handleError","Code","sessionNotAuthenticated","Message","eventBus","handler","$on","removeGlobalEventListener","$off","while","task","goto","to","Localization","setLanguage","decimalPoint","languageNames","names","documentElement","setAttribute","querySelector","exists","te","translate","getNumber","n","getCurrency","useSymbol","removeFraction","currencyDisplay","maximumSignificantDigits","Math","trunc","abs","toFixed","getCurrencyFormat","currencyFormat","getNumberFormat","NumberFormat","GlobalSiteTag","initialize","canTrack","canTrackUnauthenticated","updateConsent","user_id","logEvent","gtag","isInitialized","globalSiteTagId","insertBefore","firstChild","dataLayer","send_page_view","arguments","setDefault","granted","createConsentOptions","Level","AwsLog","category","action","label","log","Category","Action","Label","fatal","Stack","getErrorStack","level","details","URL","errorLogPath","request","method","mode","cache","credentials","redirect","headers","body","JSON","stringify","Properties","Environment","errorLogEnvironment","UserAgent","navigator","userAgent","UserId","Version","system","fetch","console","Log","AWSLog","description","informationNotification","signUp","CookieBotConsentCategory","getCookie","pop","getCanTrackFromStorage","getCrossConsent","statistics","getCookieBotConsent","CAN_TRACK_KEY","nonInteraction","trackValue","parse","cookieValue","CROSS_CONSENT_KEY","decodeURIComponent","parsedCookieConsent","COOKIEBOT_KEY","InstallImport","Routing","isUserBusy","currentRoute","preferredLocationKey","preferredLocationKeyKey","openNewTab","newWindow","open","focus","reload","isUpdateReady","replaceQuery","cloneQuery","Notification","notification","addNotification","callIfNotUnloaded","combinedMessage","getErrorMessage","errorNoneTracking","warn","isUnloadPrevented","preventUnloadSet","lifecycle","newState","unloadHandler","handleUnload","isUnloadedCheckDelay","preventUnloadWhileUploading","isUploading","preventUnload","allowUnload","removeEventListener","returnValue","SignUpModules","modules","getModules","setModules","filterModules","selectedModulesKey","isUsingCommerce","dealsModule","liveModule","raw","validModules","scheduledModule","module","Support","updateAction","ThrottledAction","Intercom","hide_default_launcher","app_id","configuration","intercomAppId","delay","isBooted","shutdown","argument","email","userLocationsCount","currentPlatformType","isPWA","currentFrontendVersion","currentFrontendIsUpdatable","signUpModules","currentOrganizationId","currentOrganizationName","currentOrganizationIsSingleStore","currentOrganizationIsBrand","currentOrganizationIsAdmin","currentLocationId","currentLocationName","currentLocationHasDeals","currentLocationHasLiveDeals","currentLocationHasSubscriptions","currentLocationMembersCount","currentLocationFollowersCount","currentLocationFacebookAccount","currentLocationFacebookIsWorking","currentLocationInstagramAccount","currentLocationInstagramIsWorking","boot","isTouchDevice","maxTouchPoints","matchMedia","matches","isFireFox","isChrome","isSafari","test","platform","getPlatform","isWindows","isMacOS","isLinux","intlSupport","intlNumberSupport","intlNumberFormatRangeSupport","formatRange","userAgentData","minuteMs","hourMs","minimumDate","process","updateThreshold","patchNotesDismissDuration","nowUpdateInterval","general","queryDelay","currencies","defaultCurrency","documents","termsVersion","navigation","navigationListMaxItems","files","statusUpdateInterval","redirectKey","deals","orders","anonymizedName","updateInterval","pageSize","blackListedPlaceholders","live","goLiveUrl","content","calendar","loadChunkWeeks","loadInitialWeek","loadMinimumInterval","limitPastWeeks","limitFutureWeeks","errorDelay","publishSuccessCloseDelay","expireInterval","defaultPublishTime","dateMinuteInterval","pastDateBuffer","postingSoonLimit","invalidLinks","defaultSaleToDurationDays","defaultMatchEndDuration","matchEndDurationOptions","imageEditor","maxNumberOfColorsAndFonts","insights","standardPeriods","maxPeriod","FallbackStorage","storage","isStorageAvailable","InstallState","setCurrent","setNewVersion","setIsOffline","setHasRequestedUpdateDialog","versionNoReleaseInfo","isUpdateAvailable","updateAvailable","currentVersion","parseVersion","canRequestUpdateDialog","onLine","serviceWorker","isRefreshing","readyUpdate","waiting","postMessage","versionParser","exec","parseInt","Preferences","calendarType","dealsFilter","storageKey","parsedData","ServiceConnections","setIsAutomaticallyRenewing","isAutomaticallyRenewing","setHasAutomaticallyRenewed","hasAutomaticallyRenewed","setIsRemoving","isRemoving","setConnectionRenewed","PrivateServiceConnection","errorMessage","ErrorMessage","canAutomaticallyRenewFacebook","canAutomaticallyRenew","canAutomaticallyRenewInstagram","mustRenewAny","mustRenewList","FacebookAccounts","attemptAutomaticRenewal","automaticallyRenewingPromise","accounts","automaticDone","renew","removeMustRenewConnections","removePromise","getFromLocation","calls","renewConnection","modifyCurrent","PrivateUser","termsOfUseConsent","marketingConsent","notificationConsent","uiVersion","hasPassword","hasBackofficeAccess","NotificationConsent","AllowAll","EmailAddress","Username","TermsOfUseConsent","MarketingConsent","UiVersion","HasPassword","CanModifyOrganization","hasAcceptedTermsOfUse","acceptTermsOfUse","setName","setNotificationConsent","consent","setUiVersion","setUsernamePassword","newPassword","currentPassword","mePasswordsPut","modifyUsername","mePatch","deleteUser","me","innerI18nKey","innerI18nKeyValue","$tp","check","$tke","I18nView","i18nViewKey","instances","isLeaving","$options","beforeRouteLeave","next","I18nComponent","I18nViewComponent","nearestViewI18nKey","parent","$parent","$root","viewKey","innerKey","MainLocation","locationUrl","urlEncode","getLocationUrl","subPage","setInQuery","goToLocationUrl","MainOrganization","organizationUrl","getOrganizationUrl","goToOrganizationUrl","ClosableEditor","parentPage","getCloseUrl","cols","grid4Day","queryString","URLSearchParams","CurrencyComponent","$c","$cr","startValue","endValue","TrackingComponent","$trackEvent","I18nMixin","I18nViewMixin","I18nViewComponentMixin","MainLocationMixin","MainOrganizationMixin","TrackingMixin","I18nComponentMainOrganizationCurrencyMixin","I18nViewMainLocationMixin","I18nViewMainOrganizationMixin","I18nViewMainLocationOrganizationMixin","I18nComponentMainLocationMixin","I18nComponentMainOrganizationMixin","I18nComponentMainLocationOrganizationMixin","I18nViewComponentMainLocationMixin","I18nViewComponentMainOrganizationMixin","I18nViewComponentMainLocationOrganizationMixin","I18nViewMainLocationClosableEditorMixin","I18nViewMainLocationCurrencyClosableEditorMixin","I18nViewComponentTrackingMixin","I18nViewMainLocationOrganizationTrackingMixin","contextId","messages","localeMessages","loadLocaleMessages","createDirective","source","bind","el","binding","vNode","oldNode","updatePath","unbind","node","context","localeContext","getBrowserLanguageCode","userLanguage","VueI18n","tDirective","directive","browserLanguage","fallbackLocale","numberFormats","enableHotReload","checkRouteAuthentication","route","record","requiresGuest","fullPath","beforeEach","setRoutingStatus","afterEach","routeComplete","beforeResolve","organizationKey","params","locationKey","Login","ResetPassword","NotFoundView","TermsView","PrivacyView","UserAccountView","UserDelete","JoinOrganization","SubscribeToOrganization","JoinLocation","CreateLocation","SignUp","SignUpUserSelection","SignUpCreateOrganization","SignUpSelectModules","SignUpConnectPlatforms","UserLocationSelection","UserAccount","UserAccountDealsReplyTexts","UserAccountDealsPostTexts","UserCalendar","UserCalendarGrid","UserCalendarMonth","UserPostEditor","UserContent","UserDeals","UserDealsOrders","UserInsights","Admin","AdminOrganizationSelection","AdminAccount","AdminCalendar","AdminCalendarGrid","AdminCalendarMonth","AdminScheduledTemplateEditor","AdminContent","AdminDeals","AdminDealsReplyTexts","AdminDealsPostsTexts","AdminEditor","AdminInsights","AdminLocations","AdminBrandLocations","AdminUsers","AdminGroups","AdminTemplates","AdminTemplatesPostEditor","AdminReview","AdminReviewPostEditor","Backoffice","BackofficeAccount","BackofficeDashboard","BackofficeLogs","BackofficeLogsPostErrors","BackofficeLogsFrontendErrors","BackofficeLogsServiceErrors","BackofficeOrganizations","BackofficeOrganizationLocations","BackofficeOrganizationUsers","BackofficeUsers","BackofficeServiceConnections","base","scrollBehavior","savedPosition","scrollPosition","routes","beforeEnter","ticketId","children","manageType","gridMonth","alias","serviceType","postType","publishDate","defaultDeal","categoryId","routerGuardStatus","routerGuardAuthentication","routerGuardOrganization","routerGuardLocation","setHasCheckedPermissions","setHasPermissionsChanged","setIsCookieBlocked","isCookieBlocked","setAuthResponse","setGrantedPermissions","auth","commit","grantedScopes","dispatch","Vuex","strict","condition","unwatch","getter","cb","isWaiting","timeOut","delayDuration","systemTimeZone","cachedSystemTimeZone","SystemZone","timeZones","asAny","supportedValuesOf","fallbackZones","localTimeZone","prettyTimeZones","cachedPrettyTimeZones","replaceAll","currentTimeZoneGuess","LuxDateTime","local","zoneName","simpleTimeZoneNames","cachedSimpleTimeZoneNames","tz","toSimpleTimeZoneName","getSimpleTimeZoneNameIfNeeded","offset","fromLocalTimeZone","fromJSDate","zone","toLocalTimeZone","asUTC","getWeekNumber","weekNumber","toFormat","fromFormat","toIsoString","includeZ","toIsoDateString","toJSON","toShortDateString","shortDateFormat","fromShortDateString","toServerString","dateString","fromServerString","cloneWithOutTime","getFullYear","getMonth","getDate","cloneAsWeekStart","getDay","cloneAsDayStart","cloneAsDayEnd","cloneAndAdd","days","months","getHours","getMinutes","getSeconds","getMilliseconds","isInWeek","weekStart","getTime","weekStartTime","weekEnd","setDate","resetTime","setHours","isWeekend","isSameDay","date1","date2","isSameDayUTC","getUTCFullYear","getUTCMonth","getUTCDate","getNumberOfDays","round","getNextRoundDateTime","minuteInterval","roundToMinuteInterval","ceil","second","millisecond","getNextRound","min","setMinutes","fromNow","setLocale","toRelative","padding","fromNowDateTime","nowAdd","seconds","setSeconds","fromDate","isInRange","valueTime","dates","Number","MAX_VALUE","dateValue","max","MIN_VALUE","parseStringOrNull","frames","ErrorStackParser","functionName","fileName","lineNumber","cleanCharactersMask","noEmptyEqualsMask","urlSplit","toUrlCleanString","encodeURIComponent","array","reduce","acc","val","removeNullItems","exports","webpackContext","req","webpackContextResolve","__webpack_require__","code","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","ns","create","def","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","promises","miniCssF","g","globalThis","Function","prop","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","target","Symbol","toStringTag","createStylesheet","fullhref","oldTag","linkTag","rel","onLinkComplete","errorType","realHref","err","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}