{"version":3,"sources":["webpack:///./src/components/FixedFooter.vue","webpack:///./src/components/FixedFooter.vue?bb3e","webpack:///./src/components/FixedFooter.vue?c41f","webpack:///./node_modules/@capacitor/core/dist/esm/util.js","webpack:///./src/mixins/FooterButtonsBuilder.ts","webpack:///./src/services/JourneyService.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","webpack:///./src/views/Journeys/JourneyTitle.vue","webpack:///./src/views/Journeys/JourneyTitle.vue?1b3f","webpack:///./src/views/Journeys/JourneyTitle.vue?2b12"],"names":["class","buttons","button","index","key","handler","icon","iconPos","is-ltr-forward","text","name","props","type","Array","components","DirectionIndicator","render","__scopeId","uuid4","replace","c","r","Math","random","v","toString","FooterButtonsBuilder","footerButtons","language","getters","this","addClearButton","back","hasIcon","push","addPrimaryButton","next","updateJourneys","journeys","updateJourney","journey","id","deleteJourney","journeyId","createJourney","data","getJourney","getJourneyTabResources","tabNum","addJourneyTabResource","resource","removeJourneyTabResource","resourceUUID","_defineProperties","target","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","_createClass","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","execute","run","defaultMessage","create","spinner","present","cssClass","header","error","message","ok","toUpperCase","dismiss","executeWithoutSpinner","saveProgress","savingProgress","loading","fullscreen","lines","mode","position","journeyTitle","autocomplete","placeholder","title","IonContent","IonPage","IonItem","IonLabel","IonInput","FixedFooter","journeySetId","String","required","ionViewWillEnter","store","dispatch","journeyCreationTitle","errors","loadingJourney","setup","addClearBackButton","addPrimaryNextButton","value","editingExisting","router","params","savingJourney","validation","enterTitle"],"mappings":"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","file":"js/chunk-610f7d3d.55cb3e34.js","sourcesContent":["\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","export var extend = function (target) {\n var objs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objs[_i - 1] = arguments[_i];\n }\n objs.forEach(function (o) {\n if (o && typeof (o) === 'object') {\n for (var k in o) {\n if (o.hasOwnProperty(k)) {\n target[k] = o[k];\n }\n }\n }\n });\n return target;\n};\nexport var uuid4 = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n};\n//# sourceMappingURL=util.js.map","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}","import {DELETE, GET, POST, PUT} from './HTTP';\nimport { Journey } from \"@/models/JourneyModel\";\nimport {Resource} from \"@/models/ResourceModel\";\n\nexport function updateJourneys(journeys: Journey[]): Promise {\n return PUT('/journeys', journeys);\n}\n\nexport function updateJourney(journey: Journey): Promise {\n return PUT(`/journeys/${journey.id}`, journey);\n}\n\nexport function deleteJourney(journeyId: string): Promise {\n return DELETE(`/journeys/${journeyId}`);\n}\n\nexport function createJourney(data: any): Promise {\n return POST(`/journeys`, data);\n}\n\nexport async function getJourney(journeyId: string): Promise {\n return GET(`/journeys/${journeyId}`);\n}\n\nexport async function getJourneyTabResources(journeyId: string, tabNum: number): Promise> {\n return GET(`/journeys/${journeyId}/tabs/${tabNum}/resources`);\n}\n\nexport async function addJourneyTabResource(journeyId: string, tabNum: number, resource: Resource): Promise {\n return PUT(`/journeys/${journeyId}/tabs/${tabNum}`, resource);\n}\n\nexport async function removeJourneyTabResource(journeyId: string, tabNum: number, resourceUUID: string): Promise {\n return DELETE(`/journeys/${journeyId}/tabs/${tabNum}/resources/${resourceUUID}`);\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}","\n\n\n\n","\n\nimport {IonContent, IonInput, IonItem, IonLabel, IonPage} from '@ionic/vue';\nimport {computed, defineComponent, ref} from \"vue\";\nimport FixedFooter from \"@/components/FixedFooter.vue\";\nimport router from \"@/router\";\nimport {execute} from \"@/mixins/LoadingMixin\";\nimport {createJourney, getJourney, updateJourney} from \"@/services/JourneyService\";\nimport {uuid4} from \"@capacitor/core/dist/esm/util\";\nimport {Journey} from \"@/models/JourneyModel\";\nimport {presentValidationAlert} from \"@/services/Notify\";\nimport {FooterButtonsBuilder} from \"@/mixins/FooterButtonsBuilder\";\nimport {useStore} from \"vuex\";\n\nexport default defineComponent({\n name: 'SelectJourneySetCategory',\n components: {\n IonContent,\n IonPage,\n IonItem,\n IonLabel,\n IonInput,\n FixedFooter\n },\n props: {\n journeySetId: {\n type: String,\n required: true\n },\n journeyId: {\n type: String,\n required: false\n }\n },\n async ionViewWillEnter() {\n await this.store.dispatch('app/setPageTitle', this.language.journeyCreationTitle);\n if (this.journeyId) {\n await execute(async () => {\n this.journey = await getJourney(this.journeyId as string);\n }, this.language.errors.loadingJourney);\n } else {\n this.journey.title = '';\n }\n },\n setup(props) {\n const store = useStore();\n const language = computed(() => store.getters['app/language']);\n const journey = ref({} as Journey);\n \n return {\n store,\n language,\n journey,\n footerButtons: computed(() => {\n return new FooterButtonsBuilder()\n .addClearBackButton()\n .addPrimaryNextButton(async () => {\n if (journey.value.title) {\n await execute(async () => {\n const editingExisting = props.journeyId;\n let journeyId = props.journeyId || '';\n if (editingExisting) {\n await updateJourney(journey.value);\n } else {\n journeyId = uuid4();\n await createJourney({\n id: journeyId,\n title: journey.value.title,\n journeySetId: props.journeySetId\n });\n }\n router.push({\n name: 'journeyCopyrightWarning',\n params: {journeySetId: props.journeySetId as string, journeyId: journeyId}\n });\n }, language.value.errors.savingJourney);\n } else {\n presentValidationAlert(language.value.validation.enterTitle);\n }\n }).create();\n })\n }\n }\n});\n","import { render } from \"./JourneyTitle.vue?vue&type=template&id=3b1c43ae&scoped=true\"\nimport script from \"./JourneyTitle.vue?vue&type=script&lang=ts\"\nexport * from \"./JourneyTitle.vue?vue&type=script&lang=ts\"\nscript.render = render\nscript.__scopeId = \"data-v-3b1c43ae\"\n\nexport default script"],"sourceRoot":""}