{"version":3,"sources":["webpack:///./src/views/Template/Templates.vue?a404","webpack:///./src/components/FixedFooter.vue","webpack:///./src/components/FixedFooter.vue?bb3e","webpack:///./src/components/FixedFooter.vue?c41f","webpack:///./src/mixins/ActionSheetBuilder.ts","webpack:///./src/views/Template/Templates.vue","webpack:///./src/views/Template/Templates.vue?2710","webpack:///./src/views/Template/Templates.vue?d2d2","webpack:///./src/mixins/FooterButtonsBuilder.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./src/components/FixedFooter.vue?54b2","webpack:///./src/mixins/LoadingMixin.ts"],"names":["class","buttons","button","index","key","handler","icon","iconPos","is-ltr-forward","text","name","props","type","Array","components","DirectionIndicator","render","__scopeId","ActionSheetBuilder","header","actionSheetOptions","mode","cssClass","language","getters","this","push","edit","role","duplicate","lock","unlock","encrypted","downloadEncrypted","downloadUnencrypted","publishRepublish","unpublish","delete","editDefaultJourneySet","create","fullscreen","templates","template","lines","id","tryEdit","locked","lockClosed","complete","incomplete","layoutLabel","formatDate","lastModified","presentOptions","ellipsisVertical","is-open","isDuplicateModalOpen","backdropDismiss","css-class","setOpen","duplicateTemplate","slot","closeOutline","position","newTemplateName","autocomplete","placeholder","duplicateTemplateName","footerButtons","IonHeader","IonContent","IonTitle","IonPage","IonLabel","IonItem","IonInput","IonIcon","IonModal","IonButton","IonButtons","IonToolbar","FixedFooter","ionViewWillEnter","store","dispatch","journeySetTemplates","errors","loadingTemplates","setup","state","value","templateToDuplicate","enableCustomContent","customContentLabel","basicContentLabel","goToTemplate","router","params","openDuplicateModal","Object","assign","presentLockedAlert","lockedTemplate","message","lockedTemplateExplanation","cancel","dismiss","duplicatingTemplate","validation","enterName","delTemplate","deleteTemplateQuestion","verifyDeleteTemplateQuestion","deletingTemplate","actionSheetBuilder","addEdit","addDuplicate","addLockUnlock","addDelete","actionSheet","present","FooterButtonsBuilder","addClearButton","addNewTemplate","back","hasIcon","addPrimaryButton","next","_defineProperties","target","i","length","descriptor","enumerable","configurable","writable","defineProperty","_createClass","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","execute","run","defaultMessage","spinner","error","ok","toUpperCase","executeWithoutSpinner","saveProgress","savingProgress","loading"],"mappings":"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","file":"js/chunk-74f2e38a.9171238c.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Templates.vue?vue&type=style&index=0&id=8380efde&scoped=true&lang=css\"","\n \n\n\n\n\n","\n\nimport { FooterButton } from \"@/models/FooterButtonsModel\";\nimport {PropType} from 'vue'\nimport DirectionIndicator from \"@/components/DirectionIndicator.vue\";\n\nexport default {\n name: 'FixedFooter',\n props: {\n buttons: { \n type: Array as PropType>\n }\n },\n components: {\n DirectionIndicator\n }\n}\n","import { render } from \"./FixedFooter.vue?vue&type=template&id=aa50f4d0&scoped=true\"\nimport script from \"./FixedFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./FixedFooter.vue?vue&type=script&lang=ts\"\n\nimport \"./FixedFooter.vue?vue&type=style&index=0&id=aa50f4d0&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-aa50f4d0\"\n\nexport default script","import {\n lockClosedOutline,\n lockOpenOutline,\n cloudDownloadOutline,\n createOutline,\n duplicateOutline,\n pushOutline,\n trashOutline,\n cloudOfflineOutline,\n cubeOutline,\n} from 'ionicons/icons';\nimport {ActionSheetOptions, ActionSheetButton} from \"@ionic/core\";\nimport {actionSheetController} from \"@ionic/vue\";\nimport {store} from \"@/store/Store\";\n\nexport class ActionSheetBuilder {\n actionSheetOptions = { mode: \"md\", cssClass: \"custom-action-sheet\" } as ActionSheetOptions;\n private language = store.getters['app/language'];\n \n constructor(header: string) {\n this.actionSheetOptions.header = header;\n this.actionSheetOptions.buttons = [] as ActionSheetButton[];\n }\n \n addEdit(handler: Function) {\n this.actionSheetOptions.buttons.push({\n text: this.language.edit,\n role: 'destructive',\n icon: createOutline,\n handler: () => handler()\n });\n return this;\n }\n \n addDuplicate(handler: Function) {\n this.actionSheetOptions.buttons.push({\n text: this.language.duplicate,\n role: 'destructive',\n icon: duplicateOutline,\n handler: () => handler()\n });\n return this;\n }\n\n addLockUnlock(lock: boolean, handler: Function) {\n this.actionSheetOptions.buttons.push({\n text: lock ? this.language.lock : this.language.unlock,\n role: 'destructive',\n icon: lock ? lockClosedOutline : lockOpenOutline,\n handler: () => handler()\n });\n return this;\n }\n\n addDownload(encrypted: boolean, handler: Function) {\n this.actionSheetOptions.buttons.push({\n text: encrypted ? this.language.downloadEncrypted: this.language.downloadUnencrypted,\n role: 'destructive',\n icon: cloudDownloadOutline,\n handler: () => handler()\n });\n return this;\n }\n\n addPublish(handler: Function) {\n this.actionSheetOptions.buttons.push({\n text: this.language.publishRepublish,\n role: 'destructive',\n icon: pushOutline,\n handler: () => handler()\n });\n return this;\n }\n\n addUnpublish(handler: Function) {\n this.actionSheetOptions.buttons.push({\n text: this.language.unpublish,\n role: 'destructive',\n icon: cloudOfflineOutline,\n handler: () => handler()\n });\n return this;\n }\n \n addDelete(handler: Function) {\n this.actionSheetOptions.buttons.push({\n text: this.language.delete,\n role: 'destructive',\n icon: trashOutline,\n handler: () => handler()\n });\n return this;\n }\n \n addDefault(handler: Function) {\n this.actionSheetOptions.buttons.push({\n text: this.language.editDefaultJourneySet,\n role: 'destructive',\n icon: cubeOutline,\n handler: () => handler()\n });\n return this;\n }\n \n async create() {\n return await actionSheetController.create(this.actionSheetOptions);\n }\n}","\n \n \n \n \n \n {{ template.name }} \n \n - {{ language.incomplete }}\n \n {{ layoutLabel(template) }}\n Modified: {{ formatDate(template.lastModified, language) }}\n \n \n \n \n \n \n \n \n {{ language.duplicateTemplate }}\n \n \n \n \n \n \n \n {{ language.newTemplateName }}\n \n \n {{ language.duplicateTemplate }}\n \n \n \n \n \n \n\n\n\n\n","\nimport {computed, ref} from \"vue\";\nimport { execute } from \"@/mixins/LoadingMixin\";\nimport {\n IonHeader,\n IonContent,\n IonTitle,\n IonPage,\n IonLabel,\n IonItem,\n IonInput,\n IonIcon, \n IonModal,\n IonButton,\n IonButtons,\n IonToolbar,\n alertController\n} from \"@ionic/vue\";\nimport {ellipsisVertical, closeOutline, lockClosed} from \"ionicons/icons\";\nimport FixedFooter from '@/components/FixedFooter.vue'\nimport router from \"@/router\";\nimport {presentNativeAlert, presentValidationAlert} from \"@/services/Notify\";\nimport {JourneyTemplate} from \"@/models/JourneyTemplateModel\";\nimport { formatDate } from '@/utils/DatesUtil';\nimport {deleteTemplate, getTemplates, duplicateTemplate as duplicate, updateTemplate} from \"@/services/TemplateService\";\nimport {useStore} from \"vuex\";\nimport {defineComponent} from \"@vue/runtime-core\";\nimport {ActionSheetBuilder} from \"@/mixins/ActionSheetBuilder\";\nimport {FooterButtonsBuilder} from \"@/mixins/FooterButtonsBuilder\";\n\nexport default defineComponent({\n name: \"Templates\",\n components: {\n IonHeader,\n IonContent,\n IonTitle,\n IonPage,\n IonLabel,\n IonItem,\n IonInput,\n IonIcon,\n IonModal,\n IonButton,\n IonButtons,\n IonToolbar,\n FixedFooter\n },\n async ionViewWillEnter() {\n await this.store.dispatch('app/setPageTitle', this.language.journeySetTemplates);\n await execute(async () => {\n this.templates = await getTemplates(this.store.getters['app/selectedAppInstanceId']);\n }, this.language.errors.loadingTemplates);\n },\n setup() {\n const store = useStore();\n const language = computed(() => store.getters['app/language']);\n const isDuplicateModalOpen = ref(false);\n const setOpen = (state: boolean) => isDuplicateModalOpen.value = state;\n const templates = ref([] as JourneyTemplate[]);\n const duplicateTemplateName = ref('');\n const templateToDuplicate = ref({} as JourneyTemplate);\n\n const layoutLabel = (template: JourneyTemplate) => {\n return template.enableCustomContent ? language.value.customContentLabel : language.value.basicContentLabel;\n }\n\n const goToTemplate = (id: string) => {\n router.push({name: 'templateName', params: {id: id}});\n }\n\n const openDuplicateModal = (template: JourneyTemplate) => {\n templateToDuplicate.value = Object.assign(templateToDuplicate.value, template);\n setOpen(true);\n }\n \n const presentLockedAlert = (template: JourneyTemplate) => {\n presentNativeAlert({\n cssClass: 'custom-alert',\n header: language.value.lockedTemplate,\n message: language.value.lockedTemplateExplanation,\n buttons: [\n {\n text: language.value.cancel,\n role: 'cancel',\n handler: () => {\n alertController.dismiss();\n },\n },\n {\n text: language.value.edit,\n cssClass: 'alert-button-role-cancel',\n handler: async () => {\n template.locked = !template.locked;\n await updateTemplate(template);\n goToTemplate(template.id);\n },\n },\n {\n text: language.value.duplicate,\n handler: async () => {\n openDuplicateModal(template);\n },\n }\n ]\n });\n }\n \n const tryEdit = (template: JourneyTemplate) => {\n if (template.locked) {\n presentLockedAlert(template);\n } else {\n goToTemplate(template.id);\n }\n }\n \n const duplicateTemplate = async () => {\n if (duplicateTemplateName.value !== '') {\n templateToDuplicate.value.name = duplicateTemplateName.value;\n await execute(async () => {\n await duplicate(templateToDuplicate.value);\n templates.value = await getTemplates(store.getters['app/selectedAppInstanceId']);\n setOpen(false);\n }, language.value.errors.duplicatingTemplate);\n } else {\n presentValidationAlert(language.value.validation.enterName);\n }\n }\n \n const delTemplate = (id: string) => {\n presentNativeAlert({\n cssClass: 'custom-alert',\n header: language.value.deleteTemplateQuestion,\n message: language.value.verifyDeleteTemplateQuestion,\n buttons: [\n {\n text: language.value.cancel,\n role: 'cancel',\n handler: () => {\n alertController.dismiss();\n },\n },\n {\n text: language.value.delete,\n handler: async () => {\n await alertController.dismiss();\n await execute(async () => {\n await deleteTemplate(id);\n templates.value = await getTemplates(store.getters['app/selectedAppInstanceId']);\n }, language.value.errors.deletingTemplate);\n },\n },\n ]\n });\n }\n\n const presentOptions = async (template: JourneyTemplate) => {\n const actionSheetBuilder = new ActionSheetBuilder(template.name)\n .addEdit(() => {\n tryEdit(template);\n })\n .addDuplicate(() => {\n openDuplicateModal(template);\n })\n .addLockUnlock(!template.locked, () => {\n template.locked = !template.locked;\n updateTemplate(template);\n })\n .addDelete(() => delTemplate(template.id));\n const actionSheet = await actionSheetBuilder.create();\n await actionSheet.present();\n }\n\n return {\n store,\n language,\n templates,\n ellipsisVertical,\n footerButtons: computed(() => \n new FooterButtonsBuilder()\n .addClearButton(false, () => router.push({ name: 'templateInstructions'}), language.value.addNewTemplate)\n .create()\n ),\n presentOptions,\n isDuplicateModalOpen,\n setOpen,\n closeOutline,\n tryEdit,\n duplicateTemplateName,\n duplicateTemplate,\n lockClosed,\n formatDate,\n layoutLabel\n }\n }\n});\n","import { render } from \"./Templates.vue?vue&type=template&id=8380efde&scoped=true\"\nimport script from \"./Templates.vue?vue&type=script&lang=ts\"\nexport * from \"./Templates.vue?vue&type=script&lang=ts\"\n\nimport \"./Templates.vue?vue&type=style&index=0&id=8380efde&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-8380efde\"\n\nexport default script","import router from \"@/router\";\nimport {FooterButton} from \"@/models/FooterButtonsModel\";\nimport {store} from \"@/store/Store\";\n\nexport class FooterButtonsBuilder {\n footerButtons = [] as FooterButton[];\n class = 'custom-button';\n language = store.getters['app/language'];\n\n addClearBackButton(handler?: Function) {\n if(!handler){\n return this.addClearButton(true, () => router.back(), this.language.back);\n }\n return this.addClearButton(true, () => handler() , this.language.back);\n }\n\n addClearButton(hasIcon: boolean, handler: Function, text: string) {\n this.footerButtons.push({\n class: this.class + ' button-clear',\n icon: hasIcon,\n iconPos: 'start',\n handler: () => handler(),\n text: text\n })\n return this;\n }\n \n addPrimaryNextButton(handler: Function) {\n return this.addPrimaryButton(true, handler, this.language.next);\n }\n\n addPrimaryButton(hasIcon: boolean, handler: Function, text: string) {\n this.footerButtons.push({\n class: this.class + ' button-primary',\n icon: hasIcon,\n iconPos: 'end',\n handler: () => handler(),\n text: text\n })\n return this;\n }\n\n create() {\n return this.footerButtons;\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FixedFooter.vue?vue&type=style&index=0&id=aa50f4d0&scoped=true&lang=css\"","import { presentNativeAlert } from '@/services/Notify';\nimport { loadingController } from \"@ionic/vue\";\nimport {store} from \"@/store/Store\";\n\nconst language = store.getters['app/language'];\n\nexport async function execute(run: () => Promise, defaultMessage = '') {\n const spinner = await loadingController.create({});\n try {\n await spinner.present();\n await run();\n } catch (e) {\n if (e && defaultMessage) {\n presentNativeAlert({\n cssClass: 'custom-alert',\n header: language.error,\n message: defaultMessage,\n buttons: [language.ok.toUpperCase()],\n });\n }\n } finally {\n await spinner.dismiss();\n }\n}\n\nexport async function executeWithoutSpinner(run: () => Promise, defaultMessage = '') {\n try {\n await run();\n } catch (e) {\n if (e && defaultMessage) {\n presentNativeAlert({\n cssClass: 'custom-alert',\n header: language.error,\n message: defaultMessage,\n buttons: [language.ok.toUpperCase()],\n });\n }\n }\n}\n\nexport async function saveProgress(run: Function) {\n const loading = await loadingController.create({\n message: language.savingProgress,\n });\n \n try {\n await loading.present();\n await run();\n }\n finally {\n await loading.dismiss();\n }\n}"],"sourceRoot":""}
{{ layoutLabel(template) }}
Modified: {{ formatDate(template.lastModified, language) }}