{"version":3,"sources":["webpack:///./src/views/Journeys/FinalContent.vue","webpack:///./src/views/Journeys/FinalContent.vue?47f8","webpack:///./src/views/Journeys/FinalContent.vue?60da","webpack:///./src/views/Journeys/FinalContent.vue?63c6"],"names":["ref","fullscreen","class","lines","mode","position","style","language","customContent","contentLoaded","journey","finalTabTopText","placeholder","abideByCopyrightLawsPlaceholder","data","finalTabTopAudio","name","finalTabTopAudioFilename","label","contentAudioFile","journeyVideo1Url","videoUrl","finalTabVideoUrl","videoLabel","finalTabVideoLabel","previewText","templateTab","text1","id","handleRemoveScriptureRef","handleAddScriptureRef","appInstanceId","journeySet","journeyId","tab","scriptureReferences","tabSpecificScriptureReferences","finalTabScriptureAudio","finalTabScriptureAudioFilename","scriptureAudioFile","finalTabBottomText","finalTabBottomAudio","finalTabBottomAudioFilename","text2","heading","finalTabResourceListHeading","journey-id","tab-num","template","tabs","currentTab","activeTabIndexes","activeTabs","buttons","footerButtons","components","ResourcePicker","VisualTabs","IonPage","FixedFooter","IonContent","IonItem","IonLabel","MarkdownWYSIWYG","AudioPicker","VideoPicker","ScripturePicker","TemplateItemPlaceholder","props","journeySetId","type","String","required","ionViewWillLeave","saveProgress","ionViewWillEnter","selectedScriptureReferences","scriptureSelections","templateId","tabsCount","store","dispatch","journeyTab4","journeyTab1","journeyTab2","journeyTab3","undefined","enableCustomContent","errors","loadingJourney","finalContent","$el","scrollToTop","setup","getters","hasFurtherEditing","value","filter","reference","tabNum","hasVideo","result","push","save","savingJourney","create","message","savingProgress","loading","present","dismiss","saveAndNext","router","params","audioChanged","event","filename","scriptureAudioFilename","scriptureAudio","newRef","index","findIndex","splice","closeOutline","chevronDownOutline","chevronUpOutline","checkmarkOutline","FooterButtonsBuilder","addClearBackButton","addPrimaryButton","finishAndSave","render","__scopeId"],"mappings":"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","file":"js/chunk-7b455484.d75175ea.js","sourcesContent":["\n \n \n\n \n \n {{ language.customContent }}\n \n \n \n\n \n \n\n \n \n \n \n \n\n \n \n {{ language.customContent }}\n \n \n \n\n \n \n\n \n\n \n \n \n \n\n\n\n\n","\nimport {\n IonContent,\n IonItem,\n IonLabel,\n IonPage,\n loadingController\n} from '@ionic/vue';\nimport {computed, defineComponent, nextTick, ref} from 'vue';\nimport FixedFooter from \"@/components/FixedFooter.vue\";\nimport {FooterButtonsBuilder} from \"@/mixins/FooterButtonsBuilder\";\nimport {execute, executeWithoutSpinner} from \"@/mixins/LoadingMixin\";\nimport {getJourneySet} from \"@/services/JourneySetService\";\nimport {getTemplate} from \"@/services/TemplateService\";\nimport VisualTabs from \"@/components/VisualTabs.vue\";\nimport {JourneyTemplate} from \"@/models/JourneyTemplateModel\";\nimport {JourneySet} from '@/models/JourneySetModel';\nimport {Journey, validateJourney} from \"@/models/JourneyModel\";\nimport {getJourney, updateJourney} from \"@/services/JourneyService\";\nimport router from \"@/router\";\nimport { closeOutline, chevronDownOutline, chevronUpOutline, checkmarkOutline } from 'ionicons/icons';\nimport {ScriptureSelection} from \"@/models/ScriptureSelectionModel\";\nimport {useStore} from \"vuex\";\nimport {audioFileChanged} from \"@/utils/AudioUtil\";\nimport MarkdownWYSIWYG from \"@/components/MarkdownWYSIWYG.vue\";\nimport VideoPicker from '@/components/Video/VideoPicker.vue';\nimport ScripturePicker from '@/components/ScripturePicker.vue';\nimport AudioPicker from '@/components/AudioPicker.vue';\nimport TemplateItemPlaceholder from '@/components/TemplateItemPlaceholder.vue';\nimport { JourneyTab } from '@/models/JourneyTabModel';\nimport ResourcePicker from \"@/components/ResourcePicker.vue\";\n\nexport default defineComponent({\n name: 'FinalContent',\n components: {\n ResourcePicker,\n VisualTabs,\n IonPage,\n FixedFooter,\n IonContent,\n IonItem,\n IonLabel,\n MarkdownWYSIWYG,\n AudioPicker,\n VideoPicker,\n ScripturePicker,\n TemplateItemPlaceholder\n },\n props: {\n journeySetId: {\n type: String,\n required: true\n },\n journeyId: {\n type: String,\n required: true\n }\n },\n async ionViewWillLeave() {\n await this.saveProgress();\n },\n async ionViewWillEnter() {\n this.contentLoaded = false;\n await execute(async () => {\n this.journeySet = await getJourneySet(this.journeySetId);\n this.journey = await getJourney(this.journeyId);\n this.journey = validateJourney(this.journey);\n this.selectedScriptureReferences = this.journey.scriptureSelections;\n this.template = await getTemplate(this.journeySet.templateId);\n if (this.template.tabsCount == 4){\n await this.store.dispatch('app/setPageTitle', this.language.journeyTab4);\n this.templateTab = this.template.tabs[3];\n }else{\n // Properly set the template tab based on the number of tabs in the template\n switch(this.template.tabsCount){\n case 1:\n await this.store.dispatch('app/setPageTitle', this.language.journeyTab1);\n this.templateTab = this.template.tabs[0];\n break;\n case 2:\n await this.store.dispatch('app/setPageTitle', this.language.journeyTab2);\n this.templateTab = this.template.tabs[1];\n break;\n case 3:\n await this.store.dispatch('app/setPageTitle', this.language.journeyTab3);\n this.templateTab = this.template.tabs[2];\n break;\n }\n }\n if (this.template.enableCustomContent == undefined) this.template.enableCustomContent = false;\n this.contentLoaded = true;\n }, this.language.errors.loadingJourney);\n this.finalContent.$el.scrollToTop(300);\n },\n setup(props) {\n const store = useStore();\n const language = computed(() => store.getters['app/language']);\n const contentLoaded = ref(false);\n const template = ref({} as JourneyTemplate);\n const journeySet = ref({} as JourneySet);\n const journey = ref({} as Journey);\n const templateTab = ref({} as JourneyTab);\n const hasFurtherEditing = computed(() => template.value.tabsCount === 4);\n const selectedScriptureReferences = ref([] as ScriptureSelection[]);\n const tabSpecificScriptureReferences = computed(() => selectedScriptureReferences.value.filter((reference) => reference.tabNum == 4))\n const hasVideo = computed(() => journey.value.finalTabVideoLabel || journey.value.finalTabVideoUrl);\n const finalContent = ref();\n\n const activeTabs = computed(() => {\n const result: number[] = [];\n // if (hasFurtherEditing.value) result.push(2);\n // if (template.value.enableCustomContent) {\n // result.push(0);\n // result.push(hasFurtherEditing.value ? 3 : 2);\n // }\n switch (template.value.tabsCount) {\n case 1:\n result.push(3);\n break;\n case 2:\n result.push(0);\n result.push(3);\n break;\n case 3:\n if(template.value.enableCustomContent){\n result.push(0);\n result.push(1);\n result.push(3);\n }else{\n result.push(1);\n }\n break;\n case 4:\n if(template.value.enableCustomContent){\n result.push(0);\n result.push(1);\n result.push(2);\n result.push(3);\n }else{\n result.push(1);\n result.push(2);\n }\n break;\n }\n return result\n })\n\n const save = async () => {\n await executeWithoutSpinner(async() => {\n journey.value.scriptureSelections = selectedScriptureReferences.value;\n await updateJourney(journey.value);\n }, language.value.errors.savingJourney);\n }\n\n const saveProgress = async () => {\n const loading = await loadingController.create({\n message: language.value.savingProgress,\n });\n await loading.present();\n await save();\n await loading.dismiss();\n }\n \n const saveAndNext = async () => {\n await saveProgress();\n await router.push({\n name: 'journeySetJourneys',\n params: {journeySetId: props.journeySetId}\n });\n }\n\n const audioChanged = async (event: any) => {\n const loading = await loadingController.create({\n message: language.value.savingProgress,\n });\n await loading.present();\n await nextTick();\n const { filename, data } = await audioFileChanged(event);\n journey.value.scriptureAudioFilename = filename;\n journey.value.scriptureAudio = data;\n await loading.dismiss();\n };\n\n const handleAddScriptureRef = (newRef: ScriptureSelection) => {\n selectedScriptureReferences.value.push(newRef);\n }\n\n const handleRemoveScriptureRef = (id: string) => {\n const index = selectedScriptureReferences.value.findIndex((reference) => reference.id == id);\n selectedScriptureReferences.value.splice(index, 1);\n }\n\n return {\n store,\n language,\n saveProgress,\n save,\n template,\n journeySet,\n journey,\n finalContent,\n audioChanged,\n closeOutline,\n chevronDownOutline,\n chevronUpOutline,\n checkmarkOutline,\n selectedScriptureReferences,\n tabSpecificScriptureReferences,\n contentLoaded,\n hasVideo,\n activeTabs,\n hasFurtherEditing,\n handleAddScriptureRef,\n handleRemoveScriptureRef,\n footerButtons: computed(() => new FooterButtonsBuilder()\n .addClearBackButton()\n .addPrimaryButton( hasFurtherEditing.value, async () => await saveAndNext(), language.value.finishAndSave).create()),\n templateTab\n }\n }\n});\n\n","import { render } from \"./FinalContent.vue?vue&type=template&id=de4aae3a&scoped=true\"\nimport script from \"./FinalContent.vue?vue&type=script&lang=ts\"\nexport * from \"./FinalContent.vue?vue&type=script&lang=ts\"\n\nimport \"./FinalContent.vue?vue&type=style&index=0&id=de4aae3a&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-de4aae3a\"\n\nexport default script","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!./FinalContent.vue?vue&type=style&index=0&id=de4aae3a&scoped=true&lang=css\""],"sourceRoot":""}