diff --git a/vue3-refactor/css/chunk-common.69cd9511.css b/vue3-refactor/css/chunk-common.7dc0e83d.css similarity index 96% rename from vue3-refactor/css/chunk-common.69cd9511.css rename to vue3-refactor/css/chunk-common.7dc0e83d.css index 749587a0..9675c2d0 100644 --- a/vue3-refactor/css/chunk-common.69cd9511.css +++ b/vue3-refactor/css/chunk-common.7dc0e83d.css @@ -1,4 +1,4 @@ -.ovwContainer .layerTile{max-width:none}body{font-size:16px}#app{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;--sr-accent-colour:#00d2d3;--sr-content-background:#f9fafb;--sr-border-colour:#e5e7eb}#app .scroll-arrow{animation:bounce-light 1s 4.5}#app .scroll-arrow:hover{animation-iteration-count:infinite}@keyframes bounce-light{0%,to{transform:translateY(-10%);animationtimingfunction:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animationtimingfunction:cubic-bezier(0,0,.2,1)}}.home-btn-container{height:60vh;width:40vh}.chart-item[data-v-c922f560]{width:46%}.chart-item .handle[data-v-c922f560]{cursor:move;cursor:grab;cursor:-webkit-grab}.confirm-button[data-v-4ed11748]{background-color:#000!important;color:#fff!important}.cancel-button[data-v-4ed11748]{background-color:#fff!important;border:1px solid #000!important}.name-label{text-align:left!important}.chart-btn{border:none!important}.highed-chart-frame-body{pointer-events:none}.highed-toolbar-right .highed-icon{min-width:0!important;min-height:0!important;padding-left:0!important}.panel.top.highed-scrollbar{margin-bottom:0!important}.highed-res-preview{padding:4px 0}.highed-res-number:disabled{border-color:hsla(0,0%,46.3%,.3)}.highed-res-number{line-height:normal;background-color:field;border-width:2px;border-style:inset}.image-item[data-v-5bdf84fc]{width:30%;cursor:move;cursor:grab;cursor:-webkit-grab}.image-item .image-file[data-v-5bdf84fc]{aspect-ratio:auto;max-height:300px}.image-item .image-container[data-v-5bdf84fc]{display:flex;align-items:center;justify-content:center;height:300px}.image-item button[data-v-5bdf84fc]{padding:0!important}.upload-image input[type=file][data-v-56f26618]:not(:focus-visible){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.drag-label[data-v-56f26618]{width:auto!important}.text-label[data-v-56f26618]{width:25%!important;margin-right:.5rem!important;margin-bottom:0!important}.dragging[data-v-56f26618]{background-color:#fffaf0;border-color:#fff}label[data-v-b0fb221e]{text-align:left!important}label[data-v-681c9c6b],label[data-v-6923af36]{text-align:left!important;width:-moz-fit-content!important;width:fit-content!important}select[data-v-681c9c6b]{border:1px solid #000;background:#fff;padding:.25rem .5rem}.map-item[data-v-681c9c6b]{width:300px;background:#eee;text-align:center;padding:25px;cursor:pointer}.map-item button[data-v-681c9c6b]{padding:0!important}.edit-map[data-v-681c9c6b]{content:url(../img/edit-icon.2e67cc99.svg);margin:0 auto;margin-bottom:20px}.add-map[data-v-681c9c6b]{content:url(../img/add.daae1e59.svg);margin:0 auto;margin-bottom:20px}input[type=number][data-v-681c9c6b]{width:76px}.table-header th{background-color:#ddd}.table-contents td,.table-header th{text-align:center;padding:5px}.table-contents:hover{background-color:#eee;cursor:pointer}.table-add-row th{vertical-align:top;text-align:center;border-top:1px solid #ddd;padding:5px}.table-add-row button,.table-add-row input[type=text],.table-add-row select{width:150px!important;text-align:center;font-weight:400;border:1px solid #000;padding:2px!important;margin-top:0!important}label[data-v-ecc4f964]{text-align:left!important;margin-left:.5rem}input[type=checkbox][data-v-ecc4f964]:checked{accent-color:#000;color:#fff}select[data-v-ecc4f964]{border:1px solid #000;background:#fff;padding:.25rem .5rem}.table-of-contents-slide button[data-v-ecc4f964]{padding:0;border:none}.toc-slide button[data-v-50ad0d19]{border:none!important;background:none!important;padding:0!important;margin:0!important}.toc-slide button[data-v-50ad0d19]:hover{background:none!important}.copy-select[data-v-50ad0d19]{width:450px}.editor-container[data-v-7d7fb887]{margin:0 auto}.editor-container label[data-v-7d7fb887]{width:10vw;text-align:right;margin-right:15px;display:inline-block}.editor-container h3[data-v-7d7fb887]{font-size:larger}.editor-container input[data-v-7d7fb887]{padding:5px 10px;margin-top:5px;border:1px solid #000;display:inline}.editor-container .input-error[data-v-7d7fb887]{border:1px solid red}.editor-container button[data-v-7d7fb887]{padding:5px 12px;margin:0 10px;font-weight:600;transition-duration:.2s}.editor-container button[data-v-7d7fb887]:hover:enabled{background-color:#dbdbdb;color:#000}.editor-container button[data-v-7d7fb887]:disabled{border:1px solid grey;color:grey;cursor:not-allowed}.editor-toc button[data-v-7d7fb887]{background-color:#f3f4f6;color:#000;border:none;transition-duration:.2s;padding:.25 .25em!important}.editor-header[data-v-7d7fb887]{top:-1px;padding-top:9px}.fade-enter-active[data-v-7d7fb887],.fade-leave-active[data-v-7d7fb887]{transition:opacity .2s}.fade-enter[data-v-7d7fb887],.fade-leave-to[data-v-7d7fb887]{opacity:0}.storyramp-app h1,.storyramp-app h2,.storyramp-app h3,.storyramp-app h4,.storyramp-app h5,.storyramp-app h6,.vfm h1,.vfm h2,.vfm h3,.vfm h4,.vfm h5,.vfm h6{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;border-bottom:0}.storyramp-app .editor-container,.vfm .editor-container{margin:0 auto}.storyramp-app .vfm__content,.vfm .vfm__content{max-width:80%}.storyramp-app .editor-container label,.storyramp-app .vfm__content label,.vfm .editor-container label,.vfm .vfm__content label{width:10vw;text-align:right;margin-right:15px;display:inline-block}.storyramp-app .editor-container h3,.vfm .editor-container h3{font-size:larger}.storyramp-app .editor-container input,.storyramp-app .vfm__content input,.vfm .editor-container input,.vfm .vfm__content input{padding:5px 10px;margin-top:5px;border:1px solid #000;display:inline}.storyramp-app .editor-container .input-error,.vfm .editor-container .input-error{border:1px solid red}.storyramp-app .editor-container button,.storyramp-app .vfm__content button,.vfm .editor-container button,.vfm .vfm__content button{padding:5px 12px;margin:0 10px;font-weight:600;transition-duration:.2s}.storyramp-app .editor-container button:hover:enabled,.storyramp-app .vfm__content button:hover:enabled,.vfm .editor-container button:hover:enabled,.vfm .vfm__content button:hover:enabled{background-color:#dbdbdb;color:#000}.storyramp-app .editor-container button:disabled,.storyramp-app .vfm__content button:disabled,.vfm .editor-container button:disabled,.vfm .vfm__content button:disabled{border:1px solid grey;color:grey;cursor:not-allowed}.storyramp-app .image-preview,.vfm .image-preview{max-width:150px;max-height:150px;display:inline}.storyramp-app .h1,.storyramp-app .h2,.storyramp-app .h3,.storyramp-app .h4,.storyramp-app .h5,.storyramp-app .h6,.storyramp-app h1,.storyramp-app h2,.storyramp-app h3,.storyramp-app h4,.storyramp-app h5,.storyramp-app h6{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;border-bottom:0}.storyramp-app .storyramp-modified{max-width:1536px;margin:0 auto;padding-left:15px;padding-top:1em;padding-bottom:1em}.storyramp-app .prose a{font-weight:700}.storyramp-app .prose a:not([panel]):after{content:url(../img/popout.fa21edcc.svg)}.storyramp-app .w-mobile-full{width:80%}@media screen and (max-width:640px){.w-mobile-full{width:100%!important}} +.ovwContainer .layerTile{max-width:none}body{font-size:16px}#app{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;--sr-accent-colour:#00d2d3;--sr-content-background:#f9fafb;--sr-border-colour:#e5e7eb}#app .scroll-arrow{animation:bounce-light 1s 4.5}#app .scroll-arrow:hover{animation-iteration-count:infinite}@keyframes bounce-light{0%,to{transform:translateY(-10%);animationtimingfunction:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animationtimingfunction:cubic-bezier(0,0,.2,1)}}.home-btn-container{height:60vh;width:40vh}.chart-item[data-v-c922f560]{width:46%}.chart-item .handle[data-v-c922f560]{cursor:move;cursor:grab;cursor:-webkit-grab}.confirm-button[data-v-4ed11748]{background-color:#000!important;color:#fff!important}.cancel-button[data-v-4ed11748]{background-color:#fff!important;border:1px solid #000!important}.name-label{text-align:left!important}.chart-btn{border:none!important}.highed-chart-frame-body{pointer-events:none}.highed-toolbar-right .highed-icon{min-width:0!important;min-height:0!important;padding-left:0!important}.panel.top.highed-scrollbar{margin-bottom:0!important}.highed-res-preview{padding:4px 0}.highed-res-number:disabled{border-color:hsla(0,0%,46.3%,.3)}.highed-res-number{line-height:normal;background-color:field;border-width:2px;border-style:inset}.image-item[data-v-5bdf84fc]{width:30%;cursor:move;cursor:grab;cursor:-webkit-grab}.image-item .image-file[data-v-5bdf84fc]{aspect-ratio:auto;max-height:300px}.image-item .image-container[data-v-5bdf84fc]{display:flex;align-items:center;justify-content:center;height:300px}.image-item button[data-v-5bdf84fc]{padding:0!important}.upload-image input[type=file][data-v-56f26618]:not(:focus-visible){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.drag-label[data-v-56f26618]{width:auto!important}.text-label[data-v-56f26618]{width:25%!important;margin-right:.5rem!important;margin-bottom:0!important}.dragging[data-v-56f26618]{background-color:#fffaf0;border-color:#fff}label[data-v-b0fb221e]{text-align:left!important}label[data-v-681c9c6b],label[data-v-6923af36]{text-align:left!important;width:-moz-fit-content!important;width:fit-content!important}select[data-v-681c9c6b]{border:1px solid #000;background:#fff;padding:.25rem .5rem}.map-item[data-v-681c9c6b]{width:300px;background:#eee;text-align:center;padding:25px;cursor:pointer}.map-item button[data-v-681c9c6b]{padding:0!important}.edit-map[data-v-681c9c6b]{content:url(../img/edit-icon.2e67cc99.svg);margin:0 auto;margin-bottom:20px}.add-map[data-v-681c9c6b]{content:url(../img/add.daae1e59.svg);margin:0 auto;margin-bottom:20px}input[type=number][data-v-681c9c6b]{width:76px}.table-header th{background-color:#ddd}.table-contents td,.table-header th{text-align:center;padding:5px}.table-contents:hover{background-color:#eee;cursor:pointer}.table-add-row th{vertical-align:top;text-align:center;border-top:1px solid #ddd;padding:5px}.table-add-row button,.table-add-row input[type=text],.table-add-row select{width:150px!important;text-align:center;font-weight:400;border:1px solid #000;padding:2px!important;margin-top:0!important}label[data-v-ecc4f964]{text-align:left!important;margin-left:.5rem}input[type=checkbox][data-v-ecc4f964]:checked{accent-color:#000;color:#fff}select[data-v-ecc4f964]{border:1px solid #000;background:#fff;padding:.25rem .5rem}.table-of-contents-slide button[data-v-ecc4f964]{padding:0;border:none}.toc-slide button[data-v-50ad0d19]{border:none!important;background:none!important;padding:0!important;margin:0!important}.toc-slide button[data-v-50ad0d19]:hover{background:none!important}.copy-select[data-v-50ad0d19]{width:450px}.editor-container[data-v-5e860565]{margin:0 auto}.editor-container label[data-v-5e860565]{width:10vw;text-align:right;margin-right:15px;display:inline-block}.editor-container h3[data-v-5e860565]{font-size:larger}.editor-container input[data-v-5e860565]{padding:5px 10px;margin-top:5px;border:1px solid #000;display:inline}.editor-container .input-error[data-v-5e860565]{border:1px solid red}.editor-container button[data-v-5e860565]{padding:5px 12px;margin:0 10px;font-weight:600;transition-duration:.2s}.editor-container button[data-v-5e860565]:hover:enabled{background-color:#dbdbdb;color:#000}.editor-container button[data-v-5e860565]:disabled{border:1px solid grey;color:grey;cursor:not-allowed}.editor-toc button[data-v-5e860565]{background-color:#f3f4f6;color:#000;border:none;transition-duration:.2s;padding:.25 .25em!important}.editor-header[data-v-5e860565]{top:-1px;padding-top:9px}.fade-enter-active[data-v-5e860565],.fade-leave-active[data-v-5e860565]{transition:opacity .2s}.fade-enter[data-v-5e860565],.fade-leave-to[data-v-5e860565]{opacity:0}.storyramp-app h1,.storyramp-app h2,.storyramp-app h3,.storyramp-app h4,.storyramp-app h5,.storyramp-app h6,.vfm h1,.vfm h2,.vfm h3,.vfm h4,.vfm h5,.vfm h6{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;border-bottom:0}.storyramp-app .editor-container,.vfm .editor-container{margin:0 auto}.storyramp-app .vfm__content,.vfm .vfm__content{max-width:80%}.storyramp-app .editor-container label,.storyramp-app .vfm__content label,.vfm .editor-container label,.vfm .vfm__content label{width:10vw;text-align:right;margin-right:15px;display:inline-block}.storyramp-app .editor-container h3,.vfm .editor-container h3{font-size:larger}.storyramp-app .editor-container input,.storyramp-app .vfm__content input,.vfm .editor-container input,.vfm .vfm__content input{padding:5px 10px;margin-top:5px;border:1px solid #000;display:inline}.storyramp-app .editor-container .input-error,.vfm .editor-container .input-error{border:1px solid red}.storyramp-app .editor-container button,.storyramp-app .vfm__content button,.vfm .editor-container button,.vfm .vfm__content button{padding:5px 12px;margin:0 10px;font-weight:600;transition-duration:.2s}.storyramp-app .editor-container button:hover:enabled,.storyramp-app .vfm__content button:hover:enabled,.vfm .editor-container button:hover:enabled,.vfm .vfm__content button:hover:enabled{background-color:#dbdbdb;color:#000}.storyramp-app .editor-container button:disabled,.storyramp-app .vfm__content button:disabled,.vfm .editor-container button:disabled,.vfm .vfm__content button:disabled{border:1px solid grey;color:grey;cursor:not-allowed}.storyramp-app .image-preview,.vfm .image-preview{max-width:150px;max-height:150px;display:inline}.storyramp-app .h1,.storyramp-app .h2,.storyramp-app .h3,.storyramp-app .h4,.storyramp-app .h5,.storyramp-app .h6,.storyramp-app h1,.storyramp-app h2,.storyramp-app h3,.storyramp-app h4,.storyramp-app h5,.storyramp-app h6{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;border-bottom:0}.storyramp-app .storyramp-modified{max-width:1536px;margin:0 auto;padding-left:15px;padding-top:1em;padding-bottom:1em}.storyramp-app .prose a{font-weight:700}.storyramp-app .prose a:not([panel]):after{content:url(../img/popout.fa21edcc.svg)}.storyramp-app .w-mobile-full{width:80%}@media screen and (max-width:640px){.w-mobile-full{width:100%!important}} /* ! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com */ diff --git a/vue3-refactor/index-ca-en.html b/vue3-refactor/index-ca-en.html index aa220228..4d598077 100644 --- a/vue3-refactor/index-ca-en.html +++ b/vue3-refactor/index-ca-en.html @@ -1,4 +1,4 @@ -RAMP Storylines
d<%= require('html-loader!../src/assets/static/cdts/top-en.html') %>
d<%= require('html-loader!../src/assets/static/cdts/top-en.html') %>
\ No newline at end of file + } \ No newline at end of file diff --git a/vue3-refactor/index-ca-fr.html b/vue3-refactor/index-ca-fr.html index 31244695..cc4bca70 100644 --- a/vue3-refactor/index-ca-fr.html +++ b/vue3-refactor/index-ca-fr.html @@ -1,4 +1,4 @@ -Scénarios de PCAR
d<%= require('html-loader!../src/assets/static/cdts/top-fr.html') %>
d<%= require('html-loader!../src/assets/static/cdts/top-fr.html') %>
\ No newline at end of file + } \ No newline at end of file diff --git a/vue3-refactor/index.html b/vue3-refactor/index.html index c6780516..ab379c4b 100644 --- a/vue3-refactor/index.html +++ b/vue3-refactor/index.html @@ -1 +1 @@ -<%= htmlWebpackPlugin.options.title %>
\ No newline at end of file +<%= htmlWebpackPlugin.options.title %>
\ No newline at end of file diff --git a/vue3-refactor/js/chunk-common.e3af61b6.js b/vue3-refactor/js/chunk-common.e3af61b6.js new file mode 100644 index 00000000..fefe97c6 --- /dev/null +++ b/vue3-refactor/js/chunk-common.e3af61b6.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-common"],{0:function(e,t,a){e.exports=a("cd49")},"03b2":function(e,t,a){"use strict";a("2c0d")},"0bb1":function(e,t,a){"use strict";a("4f41")},"0c56":function(e,t,a){},"185b":function(e,t,a){"use strict";a("a183")},"1c29":function(e,t,a){"use strict";a("ed05")},"2c0d":function(e,t,a){},"38c8":function(e,t,a){},"3d6d":function(e,t){var a=[{key:"chapters.title",enValue:"Chapters",enValid:"1",frValue:"Chapitres",frValid:"1"},{key:"chapters.return",enValue:"Return to top",enValid:"1",frValue:"Retournez en haut",frValid:"1"},{key:"chapters.menu",enValue:"Toggle menu",enValid:"1",frValue:"Menu à bascule",frValid:"1"},{key:"scrollguard.desc",enValue:"Use ctrl + scroll to zoom the map",enValid:"1",frValue:"Utilisez les touches Ctrl et + pour faire un zoom de la carte",frValid:"1"},{key:"story.window.title",enValue:"RAMP Storylines",enValid:"1",frValue:"RAMP Storylines",frValid:"0"},{key:"story.date",enValue:"Date modified:",enValid:"1",frValue:"Date de modification:",frValid:"1"},{key:"story.error",enValue:"An error occurred while loading this Storylines product. See developer console for more information.",enValid:"1",frValue:"Une erreur est survenue pendant le chargement ce synopsis produit. Voir la console du promoteur pour obtenir de plus amples renseignements.",frValid:"1"},{key:"image.fullscreen",enValue:"Full Screen",enValid:"1",frValue:"Plein Écran",frValid:"1"},{key:"dynamic.back",enValue:"Back",enValid:"1",frValue:"Retour",frValid:"0"},{key:"dynamic.textSection",enValue:"Text Section",enValid:"1",frValue:"Section de texte",frValid:"1"},{key:"dynamic.panel.collection",enValue:"Panel Collection",enValid:"1",frValue:"Collection de panneaux",frValid:"1"},{key:"dynamic.panel.id",enValue:"Panel ID",enValid:"1",frValue:"No d’identification du panneau",frValid:"1"},{key:"dynamic.panel.type",enValue:"Panel Type",enValid:"1",frValue:"Type de panneaux",frValid:"1"},{key:"dynamic.panel.actions",enValue:"Panel Actions",enValid:"1",frValue:"Actions du panneau",frValid:"1"},{key:"dynamic.panel.idTaken",enValue:"Panel ID is already",enValid:"1",frValue:"Le nom du panneau est déjà utilisé",frValid:"1"},{key:"dynamic.panel.editor",enValue:"Panel Editor:",enValid:"1",frValue:"Éditeur de panneaux:",frValid:"1"},{key:"timeslider.expand",enValue:"Expand",enValid:"1",frValue:"Développer",frValid:"1"},{key:"timeslider.minimize",enValue:"Minimize",enValid:"1",frValue:"Réduire",frValid:"1"},{key:"timeslider.play",enValue:"Play",enValid:"1",frValue:"Lecture",frValid:"1"},{key:"timeslider.pause",enValue:"Pause",enValid:"1",frValue:"Pause",frValid:"1"},{key:"fullscreen.activate",enValue:"Enter Fullscreen",enValid:"1",frValue:"Afficher le mode plein écran",frValid:"1"},{key:"fullscreen.deactivate",enValue:"Exit Fullscreen",enValid:"1",frValue:"Quitter le mode plein écran",frValid:"1"},{key:"editor.window.title",enValue:"RAMP Storylines Editor",enValid:"1",frValue:"Éditeur de scénarios de la PCAR",frValid:"1"},{key:"editor.createProduct",enValue:"Create New Storylines Product",enValid:"1",frValue:"Créer un nouveau produit de scénarios",frValid:"1"},{key:"editor.editProduct",enValue:"Edit Existing Storylines Product",enValid:"1",frValue:"Modifier un produit de scénarios",frValid:"1"},{key:"editor.editMetadata",enValue:"Edit Project Metadata",enValid:"1",frValue:"Modifier les métadonnées d’un projet",frValid:"1"},{key:"editor.productDetails",enValue:"Storylines product details",enValid:"1",frValue:"Détails du produit de scénarios",frValid:"1"},{key:"editor.metadata.instructions",enValue:'Fill in metadata details about your new Storylines product. Use the "Preview" button to see what your slides will look like.',enValid:"1",frValue:"Inscrivez les métadonnées de votre nouveau produit de scénario. Utilisez la fonction « Afficher l’aperçu » pour voir à quoi ressemblent vos diapositives.",frValid:"1"},{key:"editor.uuid",enValue:"UUID",enValid:"1",frValue:"UUID",frValid:"0"},{key:"editor.uuid.exists",enValue:"UUID already exists. Saving this will overwrite existing product.",enValid:"1",frValue:"L’IDUU existe déjà. Enregistrer ce produit écrasera le produit existant.",frValid:"1"},{key:"editor.title",enValue:"Title",enValid:"1",frValue:"Titre",frValid:"1"},{key:"editor.logo",enValue:"Logo",enValid:"1",frValue:"Logo",frValid:"1"},{key:"editor.logoPreview",enValue:"Logo Preview",enValid:"1",frValue:"Aperçu du logo",frValid:"1"},{key:"editor.logoAltText",enValue:"Logo Alt Text",enValid:"1",frValue:"Lien contextuel",frValid:"1"},{key:"editor.logoAltText.desc",enValue:"For accessibility purposes, provide description text for the logo.",enValid:"1",frValue:"Pour des raisons d'accessibilité, fournissez un texte descriptif pour le logo.",frValid:"0"},{key:"editor.contextLink",enValue:"Context Link",enValid:"1",frValue:"Lien contextuel",frValid:"1"},{key:"editor.contextLink.info",enValue:"Context link shows up at the bottom of the page to provide additional resources for interested users.",enValid:"1",frValue:"Le lien contextuel apparaît au bas de la page et fournit des ressources supplémentaires aux utilisateurs intéressés.",frValid:"1"},{key:"editor.contextLabel",enValue:"Context Label",enValid:"1",frValue:"Étiquette de contexte",frValid:"1"},{key:"editor.contextLabel.info",enValue:"Context label shows up before the context link to explain what the link is for",enValid:"1",frValue:"L’étiquette de contexte apparaît avant le lien contextuel et explique à quoi sert le lien.",frValid:"1"},{key:"editor.dateModified",enValue:"Date Modified",enValid:"1",frValue:"Date de modification",frValid:"1"},{key:"editor.load",enValue:"Load",enValid:"1",frValue:"Charger",frValid:"1"},{key:"editor.browse",enValue:"Browse",enValid:"1",frValue:"Parcourir",frValid:"1"},{key:"editor.remove",enValue:"Remove",enValid:"1",frValue:"Supprimer",frValid:"1"},{key:"editor.back",enValue:"Back",enValid:"1",frValue:"Retour",frValid:"1"},{key:"editor.next",enValue:"Next",enValid:"1",frValue:"Suivant",frValid:"1"},{key:"editor.preview",enValue:"Preview",enValid:"1",frValue:"Afficher l’aperçu",frValid:"1"},{key:"editor.confirm",enValue:"Confirm",enValid:"1",frValue:"Confirmer",frValid:"1"},{key:"editor.cancel",enValue:"Cancel",enValid:"1",frValue:"Annuler",frValid:"1"},{key:"editor.unsavedChanges",enValue:"Unsaved changes",enValid:"1",frValue:"Modifications non enregistrées",frValid:"1"},{key:"editor.saveChanges",enValue:"Save Changes",enValid:"1",frValue:"Enregistrer les modifications",frValid:"1"},{key:"editor.savingChanges",enValue:"Saving...",enValid:"1",frValue:"Enregistrement...",frValid:"1"},{key:"editor.resetChanges",enValue:"Reset Changes",enValid:"1",frValue:"Annuler les modifications",frValid:"1"},{key:"editor.refreshChanges.modal",enValue:"Are you sure you want to reload the product? All unsaved changes will be lost.",enValid:"1",frValue:"Voulez-vous vraiment recharger ce produit? Toute modification non enregistrée sera perdue.",frValid:"1"},{key:"editor.changeLang.modal",enValue:"Are you sure you want to switch languages? Unsaved changes may be lost.",enValid:"1",frValue:"Voulez-vous vraiment changer de langue? Toute modification non enregistrée sera perdue.",frValid:"1"},{key:"editor.frenchConfig",enValue:"View French Config",enValid:"1",frValue:"Afficher la configuration en français",frValid:"1"},{key:"editor.englishConfig",enValue:"View English Config",enValid:"1",frValue:"Afficher la configuration en anglais",frValid:"1"},{key:"editor.returnToLanding",enValue:"Return to Landing",enValid:"1",frValue:"Retour à la page d’accueil",frValid:"1"},{key:"editor.image.delete",enValue:"Delete Image",enValid:"1",frValue:"Supprimer l'image",frValid:"1"},{key:"editor.image.label.drag",enValue:"Drag your images here",enValid:"1",frValue:"Faites glisser vos images ici",frValid:"1"},{key:"editor.image.label.or",enValue:"or",enValid:"1",frValue:"ou",frValid:"1"},{key:"editor.image.label.browse",enValue:"browse",enValid:"1",frValue:"parcourir",frValid:"1"},{key:"editor.image.label.upload",enValue:"to upload",enValid:"1",frValue:"téléverser",frValid:"1"},{key:"editor.image.label.caption",enValue:"Caption",enValid:"1",frValue:"Légende",frValid:"1"},{key:"editor.image.reorder",enValue:"Click and drag to reorder images",enValid:"1",frValue:"Cliquez sur les images et faites-les glisser pour changer l’ordre.",frValid:"1"},{key:"editor.image.altTag",enValue:"Alt tag",enValid:"1",frValue:"Texte de remplacement",frValid:"1"},{key:"editor.image.slideshowCaption",enValue:"Slideshow Caption",enValid:"1",frValue:"Légende du diaporama",frValid:"1"},{key:"editor.image.loadingError",enValue:"An error occurred when trying to load image",enValid:"1",frValue:"Une erreur est survenue lors du chargement de l’image.",frValid:"1"},{key:"editor.chart.delete",enValue:"Delete Chart",enValid:"1",frValue:"Supprimer le graphique",frValid:"1"},{key:"editor.chart.label.name",enValue:"Name",enValid:"1",frValue:"Nom",frValid:"1"},{key:"editor.chart.label.edit",enValue:"Edit",enValid:"1",frValue:"Éditer",frValid:"1"},{key:"editor.chart.label.empty",enValue:"Empty",enValid:"1",frValue:"Vide",frValid:"1"},{key:"editor.chart.label.create",enValue:"Add new chart",enValid:"1",frValue:"Ajouter un nouveau graphique",frValid:"1"},{key:"editor.chart.label.info",enValue:"Interactive charts ({num})",enValid:"1",frValue:"Graphiques interactifs ({num})",frValid:"1"},{key:"editor.chart.delete.confirm",enValue:"Are you sure you want to delete the chart {name}?",enValid:"1",frValue:"Voulez-vous vraiment supprimer le graphique {nom}?",frValid:"1"},{key:"editor.map.title",enValue:"Map title",enValid:"1",frValue:"Titre de la carte",frValid:"1"},{key:"editor.map.edit.cancel",enValue:"Cancel editing",enValid:"1",frValue:"Annuler les modifications",frValid:"1"},{key:"editor.map.edit",enValue:"Map editor",enValid:"1",frValue:"Éditeur de carte",frValid:"1"},{key:"editor.map.label.name",enValue:"Map config name",enValid:"1",frValue:"Nom de la configuration de la carte",frValid:"1"},{key:"editor.map.label.create",enValue:"Create New Configuration File",enValid:"1",frValue:"Créer un nouveau fichier de configuration",frValid:"1"},{key:"editor.map.label.edit",enValue:"Edit Map Configuration",enValid:"1",frValue:"Modifier la configuration de la carte",frValid:"1"},{key:"editor.map.scrollguard.enable",enValue:"Enable scrollguard",enValid:"1",frValue:"Activer le contrôle du défilement",frValid:"1"},{key:"editor.map.timeslider.enable",enValue:"Enable Time Slider:",enValid:"1",frValue:"Activer le curseur temporel:",frValid:"1"},{key:"editor.map.timeslider.edit",enValue:"Edit Time Slider Config",enValid:"1",frValue:"Modifier la configuration du curseur temporel",frValid:"1"},{key:"editor.map.timeslider.range",enValue:"Range:",enValid:"1",frValue:"Tranche:",frValid:"1"},{key:"editor.map.timeslider.start",enValue:"Start:",enValid:"1",frValue:"Début:",frValid:"1"},{key:"editor.map.timeslider.attribute",enValue:"Attribute:",enValid:"1",frValue:"Caractéristique:",frValid:"1"},{key:"editor.map.timeslider.layers",enValue:"(OPTIONAL) Comma separated Layer IDs:",enValid:"1",frValue:"(OPTIONAL) Comma separated Layer IDs:",frValid:"0"},{key:"editor.map.timeslider.to",enValue:"to",enValid:"1",frValue:"to",frValid:"0"},{key:"editor.map.timeslider.warning",enValue:"⚠️Warning! Please ensure that:",enValid:"1",frValue:"⚠️Avertissement! Veuillez vous assurer de ce qui suit:",frValid:"1"},{key:"editor.map.timeslider.warning.bullet1",enValue:"All range and start values are positive integers.",enValid:"1",frValue:"Toutes les valeurs de la tranche et du début sont des nombres entiers positifs.",frValid:"1"},{key:"editor.map.timeslider.warning.bullet2",enValue:'The "to" value is greater than or equal to the "from" value.',enValid:"1",frValue:"La valeur « À » est supérieure ou égale à la valeur « De ».",frValid:"1"},{key:"editor.map.timeslider.warning.end",enValue:"Otherwise, your time slider config cannot be saved.",enValid:"1",frValue:"Autrement",frValid:" la configuration du curseur temporel ne pourra pas être enregistrée."},{key:"editor.slides.title",enValue:"SLIDES",enValid:"1",frValue:"DIAPOSITIVES",frValid:"1"},{key:"editor.slides.addSlide",enValue:"New Slide",enValid:"1",frValue:"Nouvelle diapositive",frValid:"1"},{key:"editor.slides.copyFromLang",enValue:"Copy slides from the other language",enValid:"1",frValue:"Copier les diapositives de l’autre langue",frValid:"1"},{key:"editor.slides.deleteSlide.confirm",enValue:"Are you sure you want to delete the slide {title}?",enValid:"1",frValue:"Voulez-vous vraiment supprimer la diapositive {titre}?",frValid:"1"},{key:"editor.slides.changeSlide.confirm",enValue:"Are you sure you want to change the slide {title}? All unsaved progress will be lost.",enValid:"1",frValue:"Voulez-vous vraiment modifier la diapositive {titre}? Toute modification non enregistrée sera perdue.",frValid:"1"},{key:"editor.slides.makeFull",enValue:"Make the right panel the full slide",enValid:"1",frValue:"Mettre la diapositive complète dans le panneau de droite",frValid:"1"},{key:"editor.slides.copyAll",enValue:"Copy all",enValid:"1",frValue:"Copier tout",frValid:"1"},{key:"editor.slides.copy",enValue:"Copy",enValid:"1",frValue:"Copier",frValid:"1"},{key:"editor.slides.slide",enValue:"Slide",enValid:"1",frValue:"Diapositive",frValid:"1"},{key:"editor.slides.previousSlide",enValue:"Previous slide",enValid:"1",frValue:"Diapositive précédente",frValid:"1"},{key:"editor.slides.nextSlide",enValue:"Next slide",enValid:"1",frValue:"Diapositive suivante",frValid:"1"},{key:"editor.slides.leftPanel",enValue:"Left panel",enValid:"1",frValue:"Panneau de gauche",frValid:"1"},{key:"editor.slides.rightPanel",enValue:"Right panel",enValid:"1",frValue:"Panneau de droite",frValid:"1"},{key:"editor.slides.fullscreenPanel",enValue:"Fullscreen panel",enValid:"1",frValue:"Panneau plein écran",frValid:"1"},{key:"editor.slides.contentType",enValue:"Content type",enValid:"1",frValue:"Type de contenu",frValid:"1"},{key:"editor.slides.content",enValue:"Content",enValid:"1",frValue:"Contenu",frValid:"1"},{key:"editor.slides.select",enValue:"Please select a slide to edit",enValid:"1",frValue:"Veuillez sélectionner une diapositive à modifier",frValid:"1"},{key:"editor.slides.panel.body",enValue:"Panel body",enValid:"1",frValue:"Corps du panneau",frValid:"1"},{key:"editor.slides.panel.title",enValue:"Panel title",enValid:"1",frValue:"Titre du panneau",frValid:"1"},{key:"editor.slides.intro",enValue:"Intro subtitle",enValid:"1",frValue:"Sous-titre de l’introduction",frValid:"1"},{key:"editor.slides.title",enValue:"Intro title",enValid:"1",frValue:"Titre de l’introduction",frValid:"1"}];a.columns=["key","enValue","enValid","frValue","frValid"],e.exports=a},"4f41":function(e,t,a){},"5cf1":function(e,t,a){},"5cf4":function(e,t,a){"use strict";a("689c")},"67dc":function(e,t,a){"use strict";a("0c56")},"689c":function(e,t,a){},6965:function(e,t,a){"use strict";a("d866")},"6a63":function(e,t,a){"use strict";a("9303")},"77cb":function(e,t,a){},7847:function(e){e.exports=JSON.parse('{"comment":"","version":"3.3.2","language":"en","ui":{"title":"Interactive map","fullscreen":true,"navBar":{"zoom":"buttons","extra":["fullscreen","geoLocator","home","help"]},"appBar":{"basemap":true},"help":{"folderName":"default"},"sideMenu":{"items":[["fullscreen","export","touch","help","about"]],"logo":false},"legend":{"allowImport":false,"isOpen":{"large":true,"medium":false,"small":false}}},"services":{"proxyUrl":"https://maps.canada.ca/wmsproxy/ws/wmsproxy/executeFromProxy","exportMapUrl":"https://maps-cartes.ec.gc.ca/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task","export":{"title":{"value":""},"map":{},"mapElements":{},"legend":{},"footnote":{"value":""}},"search":{"settings":{"categories":["CITY","HAM","IR","LTM","MUN1","MUN2","PROV","STM","TERR","TOWN","UTM","VILG","UNP"],"sortOrder":["CITY","HAM","IR","LTM","MUN1","MUN2","PROV","STM","TERR","TOWN","UTM","VILG","UNP"],"maxResults":1000,"officialOnly":true},"serviceUrls":{"geoNames":"https://geogratis.gc.ca/services/geoname/en/geonames.json","geoLocation":"https://geogratis.gc.ca/services/geolocation/en/locate?q=","geoSuggest":"https://geogratis.gc.ca/services/geolocation/en/suggest?q=","provinces":"https://geogratis.gc.ca/services/geoname/en/codes/province.json","types":"https://geogratis.gc.ca/services/geoname/en/codes/concise.json"}}},"map":{"initialBasemapId":"baseNrCan","components":{"geoSearch":{"enabled":true,"showGraphic":true,"showInfo":true},"mouseInfo":{"enabled":true,"spatialReference":{"wkid":4326}},"northArrow":{"enabled":false},"basemap":{"enabled":true},"overviewMap":{"enabled":true,"layerType":"imagery"},"scaleBar":{"enabled":true}},"extentSets":[{"id":"EXT_NRCAN_Lambert_3978","default":{"xmax":3049492,"xmin":-5281457,"ymax":4482193,"ymin":-983440},"spatialReference":{"wkid":3978}},{"id":"EXT_ESRI_World_AuxMerc_3857","default":{"xmax":-5007771.626060756,"xmin":-16632697.354854,"ymax":10015875.184845109,"ymin":5022907.964742964},"spatialReference":{"wkid":102100,"latestWkid":3857}}],"lodSets":[{"id":"LOD_NRCAN_Lambert_3978","lods":[{"level":0,"resolution":38364.660062653464,"scale":145000000},{"level":1,"resolution":22489.62831258996,"scale":85000000},{"level":2,"resolution":13229.193125052918,"scale":50000000},{"level":3,"resolution":7937.5158750317505,"scale":30000000},{"level":4,"resolution":4630.2175937685215,"scale":17500000},{"level":5,"resolution":2645.8386250105837,"scale":10000000},{"level":6,"resolution":1587.5031750063501,"scale":6000000},{"level":7,"resolution":926.0435187537042,"scale":3500000},{"level":8,"resolution":529.1677250021168,"scale":2000000},{"level":9,"resolution":317.50063500127004,"scale":1200000},{"level":10,"resolution":185.20870375074085,"scale":700000},{"level":11,"resolution":111.12522225044451,"scale":420000},{"level":12,"resolution":66.1459656252646,"scale":250000},{"level":13,"resolution":38.36466006265346,"scale":145000},{"level":14,"resolution":22.48962831258996,"scale":85000},{"level":15,"resolution":13.229193125052918,"scale":50000},{"level":16,"resolution":7.9375158750317505,"scale":30000},{"level":17,"resolution":4.6302175937685215,"scale":17500}]},{"id":"LOD_ESRI_World_AuxMerc_3857","lods":[{"level":0,"resolution":19567.87924099992,"scale":73957190.948944},{"level":1,"resolution":9783.93962049996,"scale":36978595.474472},{"level":2,"resolution":4891.96981024998,"scale":18489297.737236},{"level":3,"resolution":2445.98490512499,"scale":9244648.868618},{"level":4,"resolution":1222.992452562495,"scale":4622324.434309},{"level":5,"resolution":611.4962262813797,"scale":2311162.217155},{"level":6,"resolution":305.74811314055756,"scale":1155581.108577},{"level":7,"resolution":152.87405657041106,"scale":577790.554289},{"level":8,"resolution":76.43702828507324,"scale":288895.277144},{"level":9,"resolution":38.21851414253662,"scale":144447.638572},{"level":10,"resolution":19.10925707126831,"scale":72223.819286},{"level":11,"resolution":9.554628535634155,"scale":36111.909643},{"level":12,"resolution":4.77731426794937,"scale":18055.954822},{"level":13,"resolution":2.388657133974685,"scale":9027.977411},{"level":14,"resolution":1.1943285668550503,"scale":4513.988705},{"level":15,"resolution":0.5971642835598172,"scale":2256.994353},{"level":16,"resolution":0.29858214164761665,"scale":1128.497176},{"level":17,"resolution":0.14929107082380833,"scale":564.248588},{"level":18,"resolution":0.07464553541190416,"scale":282.124294},{"level":19,"resolution":0.03732276770595208,"scale":141.062147},{"level":20,"resolution":0.01866138385297604,"scale":70.5310735}]}],"legend":{"type":"autopopulate"},"layers":[],"tileSchemas":[{"id":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978","name":"Lambert Maps","extentSetId":"EXT_NRCAN_Lambert_3978","lodSetId":"LOD_NRCAN_Lambert_3978","hasNorthPole":true},{"id":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857","name":"Web Mercator Maps","extentSetId":"EXT_ESRI_World_AuxMerc_3857","lodSetId":"LOD_ESRI_World_AuxMerc_3857"}],"baseMaps":[{"id":"baseNrCan","name":"Canada Base Map - Transportation (CBMT)","description":"The Canada Base Map - Transportation (CBMT) web mapping services of the Earth Sciences Sector at Natural Resources Canada, are intended primarily for online mapping application users and developers.","altText":"The Canada Base Map - Transportation (CBMT)","layers":[{"id":"CBMT","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseSimple","name":"Canada Base Map - Simple","description":"Canada Base Map - Simple","altText":"Canada base map - Simple","layers":[{"id":"SMR","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/Simple/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseCBME_CBCE_HS_RO_3978","name":"Canada Base Map - Elevation (CBME)","description":"The Canada Base Map - Elevation (CBME) web mapping services of the Earth Sciences Sector at Natural Resources Canada, is intended primarily for online mapping application users and developers.","altText":"Canada Base Map - Elevation (CBME)","layers":[{"id":"CBME_CBCE_HS_RO_3978","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBME_CBCE_HS_RO_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseCBMT_CBCT_GEOM_3978","name":"Canada Base Map - Transportation (CBMT)","description":" The Canada Base Map - Transportation (CBMT) web mapping services of the Earth Sciences Sector at Natural Resources Canada, are intended primarily for online mapping application users and developers.","altText":"Canada Base Map - Transportation (CBMT)","layers":[{"id":"CBMT_CBCT_GEOM_3978","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT_CBCT_GEOM_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseEsriWorld","name":"World Imagery","description":"World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide.","altText":"World Imagery","layers":[{"id":"World_Imagery","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriPhysical","name":"World Physical Map","description":"This map presents the Natural Earth physical map at 1.24km per pixel for the world and 500m for the coterminous United States.","altText":"World Physical Map","layers":[{"id":"World_Physical_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Physical_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriRelief","name":"World Shaded Relief","description":"This map portrays surface elevation as shaded relief. This map is used as a basemap layer to add shaded relief to other GIS maps, such as the ArcGIS Online World Street Map.","altText":"World Shaded Relief","layers":[{"id":"World_Shaded_Relief","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Shaded_Relief/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriStreet","name":"World Street Map","description":"This worldwide street map presents highway-level data for the world.","altText":"ESWorld Street Map","layers":[{"id":"World_Street_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriTerrain","name":"World Terrain Base","description":"This map is designed to be used as a base map by GIS professionals to overlay other thematic layers such as demographics or land cover.","altText":"World Terrain Base","layers":[{"id":"World_Terrain_Base","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriTopo","name":"World Topographic Map","description":"This map is designed to be used as a basemap by GIS professionals and as a reference map by anyone.","altText":"World Topographic Map","layers":[{"id":"World_Topo_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"}]}}')},"7d65":function(e,t,a){},9303:function(e,t,a){},9866:function(e,t,a){},9972:function(e,t,a){"use strict";a("5cf1")},"9a2c":function(e,t,a){"use strict";a("dd0c")},a183:function(e,t,a){},a26f:function(e,t,a){"use strict";a("f850")},b176:function(e,t,a){"use strict";a("7d65")},c3a4:function(e,t,a){},cad2:function(e,t,a){"use strict";a("77cb")},cd49:function(e,t,a){"use strict";a.r(t);var i=a("7a23");const l={id:"app",class:"storyramp-app bg-white"};function o(e,t,a,o,r,n){const s=Object(i["resolveComponent"])("router-view");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",l,[(Object(i["openBlock"])(),Object(i["createBlock"])(s,{key:e.$route.path}))])}var r=a("9ab4"),n=a("1b40");class s extends n["c"]{onRouteUpdate(e){var t;this.$i18n.locale=null!==(t=e.params.lang)&&void 0!==t?t:"en",e.params.lang&&(document.title=this.$t(e.meta.title))}}Object(r["a"])([Object(n["d"])("$route",{immediate:!0})],s.prototype,"onRouteUpdate",null);a("9a2c");var c=a("6b0d"),d=a.n(c);const u=d()(s,[["render",o]]);var m=u,p=a("ce1f");p["b"].registerHooks(["beforeRouterEnter","beforeRouteLeave","beforeRouteUpdate"]);const g={class:"flex justify-center"},h={class:"home-btn-container border-4 border-gray-400 border-solid m-24"},b={class:"text-2xl font-bold"},f={class:"home-btn-container border-4 border-gray-400 border-solid m-24"},v={class:"text-2xl font-bold"};function O(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("router-link");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",g,[Object(i["createElementVNode"])("div",h,[Object(i["createVNode"])(n,{to:{name:"metadataNew"},class:"flex justify-center h-full w-full",target:""},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("button",b,"+ "+Object(i["toDisplayString"])(e.$t("editor.createProduct")),1)]),_:1})]),Object(i["createElementVNode"])("div",f,[Object(i["createVNode"])(n,{to:{name:"metadataExisting"},class:"flex justify-center h-full w-full",target:""},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("button",v,Object(i["toDisplayString"])(e.$t("editor.editProduct")),1)]),_:1})])])}class j extends n["c"]{}a("9972");const V=d()(j,[["render",O]]);var y=V;const S={class:"editor-container"},C={class:"px-20 py-5"},x={class:"flex"},E={class:"flex text-2xl font-bold mb-5"},w={class:"border py-5 w-5/6"},k={key:0,class:"text-red-500"},N={key:0,class:"text-yellow-500 rounded p-1 ml-2"},_=Object(i["createElementVNode"])("span",{class:"align-middle inline-block mr-1 pb-1 fill-current"},[Object(i["createElementVNode"])("svg",{"clip-rule":"evenodd","fill-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2",viewBox:"0 0 24 24",width:"18",height:"18",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"m2.095 19.886 9.248-16.5c.133-.237.384-.384.657-.384.272 0 .524.147.656.384l9.248 16.5c.064.115.096.241.096.367 0 .385-.309.749-.752.749h-18.496c-.44 0-.752-.36-.752-.749 0-.126.031-.252.095-.367zm9.907-6.881c-.414 0-.75.336-.75.75v3.5c0 .414.336.75.75.75s.75-.336.75-.75v-3.5c0-.414-.336-.75-.75-.75zm-.002-3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z","fill-rule":"nonzero"})])],-1),T={class:"align-center inline-block select-none"},M={key:2,class:"inline-flex align-middle mb-1"},L=Object(i["createElementVNode"])("br",null,null,-1),$={class:"mb-4"},I={class:"flex mt-8"},B={class:"ml-auto"},D=["onClick"],F={slot:"header",class:"text-lg font-bold"},R={class:"w-full flex justify-end"};function A(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("spinner"),s=Object(i["resolveComponent"])("metadata-content"),c=Object(i["resolveComponent"])("router-link"),d=Object(i["resolveComponent"])("confirmation-modal"),u=Object(i["resolveComponent"])("vue-final-modal"),m=Object(i["resolveComponent"])("editor");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",S,[e.loadEditor?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])(i["Fragment"],{key:0},[Object(i["createElementVNode"])("div",C,[Object(i["createElementVNode"])("div",x,[Object(i["createElementVNode"])("div",E,Object(i["toDisplayString"])(e.editExisting?e.$t("editor.editProduct"):e.$t("editor.createProduct")),1),Object(i["createElementVNode"])("button",{onClick:t[0]||(t[0]=t=>e.swapLang())},Object(i["toDisplayString"])("en"===e.configLang?e.$t("editor.frenchConfig"):e.$t("editor.englishConfig")),1)]),Object(i["createElementVNode"])("div",w,[Object(i["createElementVNode"])("label",null,["uuid"in e.reqFields?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",k,"*")):Object(i["createCommentVNode"])("",!0),Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.$t("editor.uuid"))+":",1)]),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text",onInput:t[1]||(t[1]=t=>{e.error=!1,e.reqFields.uuid=!0,e.checkUuid()}),"onUpdate:modelValue":t[2]||(t[2]=t=>e.uuid=t),class:Object(i["normalizeClass"])(["w-1/3",e.error||!e.reqFields.uuid?"input-error":""])},null,34),[[i["vModelText"],e.uuid]]),e.warning?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",N,[_,Object(i["createElementVNode"])("span",T,Object(i["toDisplayString"])(e.$t("editor.uuid.exists")),1)])):Object(i["createCommentVNode"])("",!0),e.editExisting?(Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:1,onClick:t[3]||(t[3]=(...t)=>e.generateRemoteConfig&&e.generateRemoteConfig(...t)),class:Object(i["normalizeClass"])(["bg-black text-white hover:bg-gray-800",e.error?"input-error":""])},Object(i["toDisplayString"])(e.$t("editor.load")),3)):Object(i["createCommentVNode"])("",!0),"loading"===e.loadStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",M,[Object(i["createVNode"])(n,{size:"24px",color:"#009cd1",class:"mx-2 my-auto"})])):Object(i["createCommentVNode"])("",!0)]),L,Object(i["createElementVNode"])("div",$,[Object(i["createElementVNode"])("h3",null,Object(i["toDisplayString"])(e.$t("editor.productDetails")),1),Object(i["createElementVNode"])("p",null,Object(i["toDisplayString"])(e.$t("editor.metadata.instructions")),1)]),Object(i["createVNode"])(s,{metadata:e.metadata,onMetadataChanged:e.updateMetadata,onLogoChanged:e.onFileChange,onLogoSourceChanged:e.onLogoSourceInput},null,8,["metadata","onMetadataChanged","onLogoChanged","onLogoSourceChanged"])]),Object(i["createElementVNode"])("div",I,[e.editExisting?(Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:0,onClick:t[4]||(t[4]=t=>e.saveMetadata(!0)),class:"pl-8"},Object(i["toDisplayString"])(e.$t("editor.saveChanges")),1)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("div",B,[Object(i["createVNode"])(c,{to:{name:"home"},target:""},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("button",null,Object(i["toDisplayString"])(e.$t("editor.back")),1)]),_:1}),Object(i["createElementVNode"])("button",{onClick:t[5]||(t[5]=t=>e.warning?e.$vfm.open("confirm-uuid-overwrite"):e.continueToEditor()),class:"bg-black text-white px-8"},Object(i["toDisplayString"])(e.$t("editor.next")),1),Object(i["createVNode"])(d,{name:"confirm-uuid-overwrite",message:e.$t(`Are you sure you want to overwrite product '${e.uuid}'?`),onOk:t[6]||(t[6]=t=>e.continueToEditor())},null,8,["message"])])])],64)),e.loadEditor&&"loaded"===e.loadStatus?(Object(i["openBlock"])(),Object(i["createBlock"])(m,{key:1,configs:e.configs,configFileStructure:e.configFileStructure,sourceCounts:e.sourceCounts,metadata:e.metadata,slides:e.slides,configLang:e.configLang,saving:e.saving,unsavedChanges:e.unsavedChanges,onSaveChanges:e.generateConfig,onSaveStatus:e.updateSaveStatus,onRefreshConfig:e.refreshConfig,ref:"mainEditor"},{langModal:Object(i["withCtx"])(a=>[Object(i["createElementVNode"])("button",{onClick:Object(i["withModifiers"])(t=>a.unsavedChanges?e.$vfm.open("change-lang"):e.swapLang(),["stop"])},Object(i["toDisplayString"])("en"===e.configLang?e.$t("editor.frenchConfig"):e.$t("editor.englishConfig")),9,D),Object(i["createVNode"])(d,{name:"change-lang",message:e.$t("editor.changeLang.modal"),onOk:t[7]||(t[7]=t=>e.swapLang())},null,8,["message"])]),metadataModal:Object(i["withCtx"])(()=>[Object(i["createVNode"])(u,{modalId:"metadata-edit-modal","content-class":"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2",class:"flex justify-center items-center"},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("h2",F,Object(i["toDisplayString"])(e.$t("editor.editMetadata")),1),Object(i["createVNode"])(s,{metadata:e.metadata,onMetadataChanged:e.updateMetadata,onLogoChanged:e.onFileChange,onLogoSourceChanged:e.onLogoSourceInput},null,8,["metadata","onMetadataChanged","onLogoChanged","onLogoSourceChanged"]),Object(i["createElementVNode"])("div",R,[Object(i["createElementVNode"])("button",{class:"bg-black text-white hover:bg-gray-800",onClick:t[8]||(t[8]=t=>e.saveMetadata(!1))}," Done ")])]),_:1})]),_:1},8,["configs","configFileStructure","sourceCounts","metadata","slides","configLang","saving","unsavedChanges","onSaveChanges","onSaveStatus","onRefreshConfig"])):Object(i["createCommentVNode"])("",!0)])}a("88a7"),a("271a"),a("5494"),a("14d9");var P=a("0a4f"),U=a("7b97"),z=a("327a");const W=e=>(Object(i["pushScopeId"])("data-v-ecc4f964"),e=e(),Object(i["popScopeId"])(),e),q={class:"sticky top-20 h-auto self-start flex-grow m-5"},X={key:0},H={class:"flex"},G={class:"flex flex-col"},J=W(()=>Object(i["createElementVNode"])("label",null,"Slide title:",-1)),Z={class:"flex"},Q=W(()=>Object(i["createElementVNode"])("span",{class:"ml-auto"},null,-1)),Y=["disabled"],K=["disabled"],ee={class:"flex mt-3"},te={class:"mx-2 font-bold"},ae=["disabled"],ie=W(()=>Object(i["createElementVNode"])("br",null,null,-1)),le={key:0,class:"flex border-b border-black"},oe=Object(i["createStaticVNode"])('',2),re={class:"align-middle inline-block pl-1"},ne=Object(i["createStaticVNode"])('',2),se={class:"align-middle inline-block pl-1"},ce={key:1,class:"border-b border-black"},de=Object(i["createStaticVNode"])('',2),ue={class:"align-middle inline-block pl-1"},me={class:"flex mt-4"},pe={class:"font-bold text-xl"},ge=W(()=>Object(i["createElementVNode"])("span",{class:"ml-auto flex-grow"},null,-1)),he={key:0,class:"flex flex-col mr-8"},be={class:"text-left text-lg"},fe=["value"],ve=["value"],Oe={key:1,class:"flex h-full mt-4 justify-center text-gray-600 text-xl"};function je(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("confirmation-modal");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",q,[e.currentSlide?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",X,[Object(i["createElementVNode"])("div",H,[Object(i["createElementVNode"])("div",G,[J,Object(i["createElementVNode"])("div",Z,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=t=>e.currentSlide.title=t),placeholder:"Add a title",class:"w-2/3"},null,512),[[i["vModelText"],e.currentSlide.title]]),Q,Object(i["createElementVNode"])("button",{onClick:t[1]||(t[1]=Object(i["withModifiers"])(t=>e.selectSlide(e.slideIndex-1),["stop"])),disabled:0===e.slideIndex,class:"border border-black"},Object(i["toDisplayString"])(e.$t("editor.slides.previousSlide")),9,Y),Object(i["createElementVNode"])("button",{onClick:t[2]||(t[2]=Object(i["withModifiers"])(t=>e.selectSlide(e.slideIndex+1),["stop"])),disabled:e.isLast,class:"border border-black"},Object(i["toDisplayString"])(e.$t("editor.slides.nextSlide")),9,K)]),Object(i["createElementVNode"])("div",ee,[Object(i["createElementVNode"])("span",te,Object(i["toDisplayString"])(e.$t("editor.slides.makeFull")),1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"checkbox",class:"rounded-none cursor-pointer w-4 h-4","onUpdate:modelValue":t[3]||(t[3]=t=>e.rightOnly=t),disabled:e.rightOnly&&"dynamic"===e.currentSlide.panel[e.panelIndex].type,onChange:t[4]||(t[4]=Object(i["withModifiers"])(t=>e.$vfm.open("right-only-"+e.slideIndex),["stop"]))},null,40,ae),[[i["vModelCheckbox"],e.rightOnly]])])])]),ie,2===e.currentSlide.panel.length?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",le,[Object(i["createElementVNode"])("button",{onClick:t[5]||(t[5]=()=>{e.panelIndex=0,e.saveChanges()}),class:Object(i["normalizeClass"])(["border-t border-l border-r",0==e.panelIndex?"border-black":"border-white"])},[oe,Object(i["createElementVNode"])("span",re,Object(i["toDisplayString"])(e.$t("editor.slides.leftPanel")),1)],2),Object(i["createElementVNode"])("button",{onClick:t[6]||(t[6]=()=>{e.panelIndex=1,e.saveChanges()}),class:Object(i["normalizeClass"])(["border-t border-l border-r",1==e.panelIndex?"border-black":"border-white"])},[ne,Object(i["createElementVNode"])("span",se,Object(i["toDisplayString"])(e.$t("editor.slides.rightPanel")),1)],2)])):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",ce,[Object(i["createElementVNode"])("button",{onClick:t[7]||(t[7]=()=>{e.saveChanges()}),class:"border-t border-l border-r border-black"},[de,Object(i["createElementVNode"])("span",ue,Object(i["toDisplayString"])(e.$t("editor.slides.fullscreenPanel")),1)])])),Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("div",me,[Object(i["createElementVNode"])("span",pe,Object(i["toDisplayString"])(e.$t("editor.slides.content"))+":",1),ge,1===e.panelIndex||e.rightOnly?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",he,[Object(i["createElementVNode"])("label",be,Object(i["toDisplayString"])(e.$t("editor.slides.contentType"))+":",1),Object(i["createElementVNode"])("select",{ref:"typeSelector",onInput:t[8]||(t[8]=t=>{e.$vfm.open("change-slide-"+e.slideIndex),e.newType=t.target.value}),value:e.currentSlide.panel[e.panelIndex].type},[(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(Object.keys(e.editors).filter(e=>"slideshow"!==e&&"loading"!==e),e=>(Object(i["openBlock"])(),Object(i["createElementBlock"])("option",{key:e,value:"image"===e?"slideshow":e},Object(i["toDisplayString"])(e),9,ve))),128))],40,fe)])):Object(i["createCommentVNode"])("",!0)]),(Object(i["openBlock"])(),Object(i["createBlock"])(Object(i["resolveDynamicComponent"])(e.editors[e.currentSlide.panel[e.panelIndex].type]),{ref:"editor",key:e.panelIndex+e.currentSlide.panel[e.panelIndex].type,panel:e.currentSlide.panel[e.panelIndex],configFileStructure:e.configFileStructure,lang:e.lang,uid:e.uid,sourceCounts:e.sourceCounts},null,8,["panel","configFileStructure","lang","uid","sourceCounts"]))])])):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Oe,[Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.$t("editor.slides.select")),1)])),Object(i["createVNode"])(n,{name:"change-slide-"+e.slideIndex,message:e.$t("editor.slides.changeSlide.confirm",{title:e.currentSlide.title}),onOk:t[9]||(t[9]=t=>e.changePanelType(e.currentSlide.panel[e.panelIndex].type,e.newType)),onCancel:e.cancelTypeChange},null,8,["name","message","onCancel"]),Object(i["createVNode"])(n,{name:"right-only-"+e.slideIndex,message:e.$t("editor.slides.changeSlide.confirm",{title:e.currentSlide.title}),onOk:t[10]||(t[10]=t=>e.toggleRightOnly()),onCancel:t[11]||(t[11]=t=>e.rightOnly=!e.rightOnly)},null,8,["name","message"])])}var Ve;(function(e){e["Text"]="text",e["Image"]="image",e["Map"]="map",e["Chart"]="chart",e["Video"]="video",e["Audio"]="audio",e["Slideshow"]="slideshow",e["Dynamic"]="dynamic",e["Loading"]="loading"})(Ve||(Ve={}));const ye={class:"block"},Se={class:"flex items-center"},Ce={class:"font-bold px-4"},xe={class:"flex items-center"},Ee=Object(i["createElementVNode"])("svg",{height:"18px",width:"18px",viewBox:"0 0 23 21",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})],-1),we={class:"px-2"},ke=Object(i["createElementVNode"])("hr",{class:"border-solid border-t-2 border-gray-300 my-2"},null,-1),Ne={key:0,class:"m-4"},_e={class:"italic text-gray-400"},Te={class:"flex flex-wrap list-none"};function Me(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("ChartPreview"),s=Object(i["resolveComponent"])("draggable"),c=Object(i["resolveComponent"])("confirmation-modal");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",ye,[Object(i["createElementVNode"])("div",Se,[Object(i["createElementVNode"])("span",Ce,Object(i["toDisplayString"])(e.$t("editor.chart.label.info",{num:e.chartConfigs.length})),1),Object(i["createElementVNode"])("button",{class:"chart-btn bg-gray-100 cursor-pointer hover:bg-gray-200",id:"modal-btn",onClick:t[0]||(t[0]=t=>e.clearEditor())},[Object(i["createElementVNode"])("div",xe,[Ee,Object(i["createElementVNode"])("span",we,Object(i["toDisplayString"])(e.$t("editor.chart.label.create")),1)])])]),ke,0===e.chartConfigs.length?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ne,[Object(i["createElementVNode"])("span",_e,Object(i["toDisplayString"])(e.$t("editor.chart.label.empty")),1)])):Object(i["createCommentVNode"])("",!0),Object(i["withDirectives"])(Object(i["createElementVNode"])("ul",Te,[Object(i["createVNode"])(s,{modelValue:e.chartConfigs,"onUpdate:modelValue":t[1]||(t[1]=t=>e.chartConfigs=t),handle:".handle",onUpdate:e.onChartsEdited,class:"flex flex-wrap list-none","item-key":"name"},{item:Object(i["withCtx"])(({element:t,index:a})=>[(Object(i["openBlock"])(),Object(i["createBlock"])(n,{key:`${t.name}-${a}`,chart:t,configFileStructure:e.configFileStructure,onEdit:e.editChart,onDelete:i=>e.$vfm.open(`${t.name}-${a}`)},null,8,["chart","configFileStructure","onEdit","onDelete"]))]),_:1},8,["modelValue","onUpdate"])],512),[[i["vShow"],e.chartConfigs.length]]),(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.chartConfigs,(t,a)=>(Object(i["openBlock"])(),Object(i["createBlock"])(c,{key:`${t.name}-${a}`,name:`${t.name}-${a}`,message:e.$t("editor.chart.delete.confirm",{name:t.name}),onOk:a=>e.deleteChart(t)},null,8,["name","message","onOk"]))),128))])}const Le=e=>(Object(i["pushScopeId"])("data-v-c922f560"),e=e(),Object(i["popScopeId"])(),e),$e={class:"chart-item items-center mt-8 mx-5 overflow-hidden"},Ie={class:"relative border-solid border-2 items-center justify-center text-center w-full"},Be=["content"],De=Le(()=>Object(i["createElementVNode"])("svg",{class:"absolute transform -translate-x-1/2 -translate-y-1/2",height:"22px",width:"22px",viewBox:"0 0 352 512",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"})],-1)),Fe=[De],Re=Le(()=>Object(i["createElementVNode"])("button",{class:"bg-white absolute h-6 w-6 leading-5 rounded-full bottom-2 -right-1 p-0 z-10 handle"},[Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"#000000",width:"22px",height:"22px",viewBox:"0 0 24 24"},[Object(i["createElementVNode"])("path",{"fill-rule":"evenodd",d:"M8,18 C9.1045695,18 10,18.8954305 10,20 C10,21.1045695 9.1045695,22 8,22 C6.8954305,22 6,21.1045695 6,20 C6,18.8954305 6.8954305,18 8,18 Z M16,18 C17.1045695,18 18,18.8954305 18,20 C18,21.1045695 17.1045695,22 16,22 C14.8954305,22 14,21.1045695 14,20 C14,18.8954305 14.8954305,18 16,18 Z M8,10 C9.1045695,10 10,10.8954305 10,12 C10,13.1045695 9.1045695,14 8,14 C6.8954305,14 6,13.1045695 6,12 C6,10.8954305 6.8954305,10 8,10 Z M16,10 C17.1045695,10 18,10.8954305 18,12 C18,13.1045695 17.1045695,14 16,14 C14.8954305,14 14,13.1045695 14,12 C14,10.8954305 14.8954305,10 16,10 Z M8,2 C9.1045695,2 10,2.8954305 10,4 C10,5.1045695 9.1045695,6 8,6 C6.8954305,6 6,5.1045695 6,4 C6,2.8954305 6.8954305,2 8,2 Z M16,2 C17.1045695,2 18,2.8954305 18,4 C18,5.1045695 17.1045695,6 16,6 C14.8954305,6 14,5.1045695 14,4 C14,2.8954305 14.8954305,2 16,2 Z"})])],-1)),Ae={class:"flex mt-4 items-center"},Pe={class:"name-label font-bold flex-2"},Ue={class:"font-normal"},ze=["id"],We={class:"flex items-center"},qe=Le(()=>Object(i["createElementVNode"])("svg",{height:"18px",width:"18px",viewBox:"0 0 23 21",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"M 18 2 L 15.585938 4.4140625 L 19.585938 8.4140625 L 22 6 L 18 2 z M 14.076172 5.9238281 L 3 17 L 3 21 L 7 21 L 18.076172 9.9238281 L 14.076172 5.9238281 z"})],-1)),Xe={class:"px-2"};function He(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("storylines-chart"),s=Object(i["resolveDirective"])("tippy");return Object(i["openBlock"])(),Object(i["createElementBlock"])("li",$e,[Object(i["createElementVNode"])("div",Ie,[Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{class:"bg-white absolute h-6 w-6 leading-5 rounded-full top-2 left-0 p-0 z-10 cursor-pointer",onClick:t[0]||(t[0]=()=>e.$emit("delete",e.chart)),content:e.$t("editor.chart.delete")},Fe,8,Be)),[[s,{placement:"top",hideOnClick:!1,animateFill:!0}]]),Re,e.loading?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createBlock"])(n,{class:"w-full h-full",config:e.chartConfig,key:e.chartIdx,configFileStructure:e.configFileStructure,onLoaded:e.loadChart},null,8,["config","configFileStructure","onLoaded"]))]),Object(i["createElementVNode"])("div",Ae,[Object(i["createElementVNode"])("label",Pe,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.$t("editor.chart.label.name"))+": ",1),Object(i["createElementVNode"])("span",Ue,Object(i["toDisplayString"])(e.chartName),1)]),Object(i["createElementVNode"])("button",{class:"chart-btn bg-gray-100 cursor-pointer hover:bg-gray-200",id:`edit-${e.chart.name}-btn`},[Object(i["createElementVNode"])("div",We,[qe,Object(i["createElementVNode"])("span",Xe,Object(i["toDisplayString"])(e.$t("editor.chart.label.edit")),1)])],8,ze)])])}a("3c65");class Ge extends n["c"]{constructor(){super(...arguments),this.loading=!0,this.chartIdx=0,this.chartConfig={},this.chartName="",this.modalEditor=void 0}mounted(){this.chartConfig=this.chart,this.chartName=this.chart.name||"",this.loading=!1}loadChart(e){var t;if(!this.modalEditor){if(this.modalEditor=highed.ModalEditor(`edit-${this.chartName}-btn`,{allowDone:!0,features:"import templates customize done",importer:{options:"plugins csv json"},defaultChartOptions:e},e=>{const t=JSON.parse(e),a={name:t.title.text,config:t,src:""};this.$emit("edit",{oldChart:this.chart,newChart:a}),this.chartConfig=a,this.chartName=a.name,this.chartIdx+=1}),void 0!==(null===(t=e.data)||void 0===t?void 0:t.csv)){const t=e.data.csv;this.modalEditor.editor.dataTable.loadCSV({csv:t})}else this.convertSeriesToCSV(e);this.modalEditor.editor.chart.options.setAll(e)}}convertSeriesToCSV(e){var t;if("pie"===(null===(t=e.chart)||void 0===t?void 0:t.type)){const t=null===e||void 0===e?void 0:e.series.data;if(t){var a;const i=[`${null===e||void 0===e?void 0:e.series.name};${null===e||void 0===e||null===(a=e.yAxis)||void 0===a?void 0:a.title.text}`,...t.map(e=>`${e.name};${e.y}`)];this.modalEditor.editor.dataTable.loadCSV({csv:i.join("\n")})}}else if(null!==e&&void 0!==e&&e.series&&null!==e&&void 0!==e&&e.series.length){let t=null===e||void 0===e?void 0:e.series.map(e=>[e.name,...e.data]);if(void 0!==e.xAxis){var i,l;const a=[null===(i=e.xAxis)||void 0===i||null===(i=i.title)||void 0===i?void 0:i.text].concat(null===(l=e.xAxis)||void 0===l?void 0:l.categories);t.unshift(a)}let a=t[0].map((e,a)=>t.map(e=>e[a]).join(";"));this.modalEditor.editor.dataTable.loadCSV({csv:a.join("\n")})}}}Object(r["a"])([Object(n["b"])()],Ge.prototype,"chart",void 0),Object(r["a"])([Object(n["b"])()],Ge.prototype,"configFileStructure",void 0);a("cad2");const Je=d()(Ge,[["render",He],["__scopeId","data-v-c922f560"]]);var Ze=Je;const Qe={slot:"header",class:"text-lg font-bold"},Ye={class:"w-full flex justify-end"};function Ke(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("vue-final-modal");return Object(i["openBlock"])(),Object(i["createBlock"])(n,{modalId:e.name,class:"flex justify-center items-center","content-class":"flex flex-col max-w-xl mx-4 p-4 bg-white dark:bg-gray-900 border dark:border-gray-700 rounded-lg space-y-2"},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("h2",Qe,Object(i["toDisplayString"])(e.message),1),Object(i["createElementVNode"])("div",Ye,[Object(i["createElementVNode"])("button",{class:"confirm-button hover:bg-gray-800",onClick:t[0]||(t[0]=Object(i["withModifiers"])((...t)=>e.onOk&&e.onOk(...t),["stop"]))},Object(i["toDisplayString"])(e.$t("editor.confirm")),1),Object(i["createElementVNode"])("button",{class:"cancel-button hover:bg-gray-100",onClick:t[1]||(t[1]=Object(i["withModifiers"])((...t)=>e.onCancel&&e.onCancel(...t),["stop"]))},Object(i["toDisplayString"])(e.$t("editor.cancel")),1)])]),_:1},8,["modalId"])}let et=class extends n["c"]{onOk(){this.$emit("ok"),this.$vfm.close(this.name)}onCancel(){this.$emit("Cancel"),this.$vfm.close(this.name)}};Object(r["a"])([Object(n["b"])()],et.prototype,"message",void 0),Object(r["a"])([Object(n["b"])()],et.prototype,"name",void 0),et=Object(r["a"])([Object(n["a"])({components:{"vue-final-modal":U["a"]}})],et);var tt=et;a("1c29");const at=d()(tt,[["render",Ke],["__scopeId","data-v-4ed11748"]]);var it=at,lt=a("b76a"),ot=a.n(lt);let rt=class extends n["c"]{constructor(){super(...arguments),this.edited=!1,this.chartConfigs=[],this.modalEditor={}}mounted(){highed.ready(()=>{this.modalEditor=highed.ModalEditor("modal-btn",{allowDone:!0,features:"import templates customize done",importer:{options:"plugins csv json"}},e=>{this.createNewChart(e.toString())})}),void 0!==this.panel.charts&&this.panel.charts.length&&(this.chartConfigs=this.panel.charts.map(e=>{let t="";if(e.options&&e.options.title)t=e.options.title;else{const a=e.src.match(/.*\/(.*)$/);t=a?a[1].replace(/\.[^/.]+$/,"").replace(/\./g," "):e.src}return{name:t,...e}}))}clearEditor(){this.modalEditor.editor.chart.options.setAll({title:{text:"Chart "+(this.chartConfigs.length+1)},subtitle:{text:""},credits:{enabled:!1}});const e='"Column 1";"Column 2"\n" "";" "';this.modalEditor.editor.dataTable.loadCSV({csv:e})}createNewChart(e){const t=JSON.parse(e);if(this.chartConfigs.some(e=>e.name===t.title.text))alert("Existing chart already has the same chart name.");else{const e=`${this.configFileStructure.uuid}/charts/${this.lang}/${t.title.text}.json`,a={name:t.title.text,src:e};this.sourceCounts[e]?this.sourceCounts[e]+=1:this.sourceCounts[e]=1,this.configFileStructure.charts[this.lang].file(t.title.text+".json",JSON.stringify(t,null,4)),this.chartConfigs.push(a)}this.onChartsEdited()}editChart(e){const t=this.chartConfigs.findIndex(t=>t.name===e.oldChart.name);if(-1!==t){const a=`${this.configFileStructure.uuid}/charts/${this.lang}/${e.oldChart.name}.json`;this.sourceCounts[a]-=1,0===this.sourceCounts[a]&&this.configFileStructure.charts[this.lang].remove(e.oldChart.name+".json");const i=`${this.configFileStructure.uuid}/charts/${this.lang}/${e.newChart.name}.json`;this.sourceCounts[i]?this.sourceCounts[i]+=1:this.sourceCounts[i]=1,this.configFileStructure.charts[this.lang].file(e.newChart.name+".json",JSON.stringify(e.newChart.config,null,4)),e.newChart.src=`${this.configFileStructure.uuid}/charts/${this.lang}/${e.newChart.name}.json`,this.chartConfigs[t]={name:e.newChart.name,src:e.newChart.src}}this.onChartsEdited()}deleteChart(e){const t=this.chartConfigs.findIndex(t=>t.name===e.name);-1!==t&&(this.sourceCounts[`${this.configFileStructure.uuid}/charts/${this.lang}/${e.name}.json`]-=1,0===this.sourceCounts[`${this.configFileStructure.uuid}/charts/${this.lang}/${e.name}.json`]&&this.configFileStructure.charts[this.lang].remove(e.name+".json"),this.chartConfigs.splice(t,1)),this.onChartsEdited()}saveChanges(){this.edited&&(this.panel.charts=this.chartConfigs),this.edited=!1}onChartsEdited(){this.edited=!0,this.$emit("slide-edit")}};Object(r["a"])([Object(n["b"])()],rt.prototype,"panel",void 0),Object(r["a"])([Object(n["b"])()],rt.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],rt.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],rt.prototype,"sourceCounts",void 0),rt=Object(r["a"])([Object(n["a"])({components:{ChartPreview:Ze,"confirmation-modal":it,draggable:ot.a}})],rt);var nt=rt;a("6965");const st=d()(nt,[["render",Me]]);var ct=st;const dt=e=>(Object(i["pushScopeId"])("data-v-56f26618"),e=e(),Object(i["popScopeId"])(),e),ut={class:"block"},mt={class:"flex drag-label cursor-pointer"},pt=dt(()=>Object(i["createElementVNode"])("span",{class:"align-middle inline-block pr-4"},[Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"48",height:"48",viewBox:"0 0 24 24"},[Object(i["createElementVNode"])("path",{d:"M14 9l-2.519 4-2.481-1.96-5 6.96h16l-6-9zm8-5v16h-20v-16h20zm2-2h-24v20h24v-20zm-20 6c0-1.104.896-2 2-2s2 .896 2 2c0 1.105-.896 2-2 2s-2-.895-2-2z"})])],-1)),gt={class:"align-middle inline-block"},ht={class:"text-blue-400 font-bold"},bt={class:"flex justify-center"},ft={class:"flex mt-4 items-center w-full text-left"},vt={class:"text-label"},Ot=["onUpdate:modelValue"],jt={class:"flex mt-4 items-center w-full text-left"},Vt={class:"text-label"},yt=["onUpdate:modelValue"],St={class:"flex items-center w-full text-left"},Ct={class:"text-label"};function xt(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("ImagePreview"),s=Object(i["resolveComponent"])("draggable");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",ut,[Object(i["createElementVNode"])("div",{class:Object(i["normalizeClass"])(["upload-image text-center m-5 p-12 bg-blue-100 border-4 border-dashed border-blue-300",{dragging:e.isDragging}]),onDragover:t[1]||(t[1]=Object(i["withModifiers"])(()=>e.dragging=!0,["prevent"])),onDragleave:t[2]||(t[2]=Object(i["withModifiers"])(()=>e.dragging=!1,["prevent"])),onDrop:t[3]||(t[3]=Object(i["withModifiers"])(t=>e.dropImages(t),["prevent"]))},[Object(i["createElementVNode"])("label",mt,[pt,Object(i["createElementVNode"])("span",gt,[Object(i["createElementVNode"])("span",null,[Object(i["createElementVNode"])("div",null,Object(i["toDisplayString"])(e.$t("editor.image.label.drag")),1),Object(i["createElementVNode"])("div",null,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.$t("editor.image.label.or"))+" ",1),Object(i["createElementVNode"])("span",ht,Object(i["toDisplayString"])(e.$t("editor.image.label.browse")),1),Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.$t("editor.image.label.upload")),1)])]),Object(i["createElementVNode"])("input",{type:"file",class:"cursor-pointer",onChange:t[0]||(t[0]=(...t)=>e.onFileChange&&e.onFileChange(...t)),multiple:"multiple"},null,32)])])],34),Object(i["withDirectives"])(Object(i["createElementVNode"])("span",bt,[Object(i["createElementVNode"])("i",null,Object(i["toDisplayString"])(e.$t("editor.image.reorder")),1)],512),[[i["vShow"],!e.imagePreviewsLoading&&e.imagePreviews.length]]),Object(i["withDirectives"])(Object(i["createVNode"])(s,{modelValue:e.imagePreviews,"onUpdate:modelValue":t[6]||(t[6]=t=>e.imagePreviews=t),class:"flex flex-wrap list-none border my-4",onUpdate:e.onImagesEdited,"item-key":"id"},{item:Object(i["withCtx"])(({element:a,index:l})=>[(Object(i["openBlock"])(),Object(i["createBlock"])(n,{key:`${a.id}-${l}`,imageFile:a,onDelete:e.deleteImage},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("div",ft,[Object(i["createElementVNode"])("label",vt,Object(i["toDisplayString"])(e.$t("editor.image.altTag"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{class:"w-4/5",type:"text","onUpdate:modelValue":e=>a.altText=e,onChange:t[4]||(t[4]=(...t)=>e.onImagesEdited&&e.onImagesEdited(...t))},null,40,Ot),[[i["vModelText"],a.altText]])]),Object(i["createElementVNode"])("div",jt,[Object(i["createElementVNode"])("label",Vt,Object(i["toDisplayString"])(e.$t("editor.image.label.caption"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{class:"w-4/5",type:"text","onUpdate:modelValue":e=>a.caption=e,onChange:t[5]||(t[5]=(...t)=>e.onImagesEdited&&e.onImagesEdited(...t))},null,40,yt),[[i["vModelText"],a.caption]])])]),_:2},1032,["imageFile","onDelete"]))]),_:1},8,["modelValue","onUpdate"]),[[i["vShow"],!e.imagePreviewsLoading&&e.imagePreviews.length]]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",St,[Object(i["createElementVNode"])("label",Ct,Object(i["toDisplayString"])(e.$t("editor.image.slideshowCaption"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{class:"w-3/5",type:"text","onUpdate:modelValue":t[7]||(t[7]=t=>e.slideshowCaption=t),onChange:t[8]||(t[8]=(...t)=>e.onImagesEdited&&e.onImagesEdited(...t))},null,544),[[i["vModelText"],e.slideshowCaption]])],512),[[i["vShow"],e.imagePreviews.length>1]])])}const Et=e=>(Object(i["pushScopeId"])("data-v-5bdf84fc"),e=e(),Object(i["popScopeId"])(),e),wt={class:"image-item items-center my-8 mx-4 overflow-hidden"},kt={class:"relative items-center justify-center text-center w-full grabbable"},Nt=["content"],_t=Et(()=>Object(i["createElementVNode"])("svg",{height:"24px",width:"24px",viewBox:"0 0 352 512",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"})],-1)),Tt=[_t],Mt={class:"flex-grow image-container"},Lt=["title","src","alt"];function $t(e,t,a,l,o,r){const n=Object(i["resolveDirective"])("tippy");return Object(i["openBlock"])(),Object(i["createElementBlock"])("li",wt,[Object(i["createElementVNode"])("div",kt,[Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{class:"bg-white absolute h-6 w-6 leading-5 rounded-full top-0 right-0 p-0 cursor-pointer",onClick:t[0]||(t[0]=()=>e.$emit("delete",e.imageFile)),content:e.$t("editor.image.delete")},Tt,8,Nt)),[[n,{placement:"top",hideOnClick:!1,animateFill:!0}]]),Object(i["createElementVNode"])("div",Mt,[Object(i["createElementVNode"])("img",{class:"image-file object-cover",title:e.imageFile.id,src:e.imageFile.src,alt:e.imageFile.altText},null,8,Lt)])]),Object(i["renderSlot"])(e.$slots,"default",{},void 0,!0)])}class It extends n["c"]{}Object(r["a"])([Object(n["b"])()],It.prototype,"imageFile",void 0);a("5cf4");const Bt=d()(It,[["render",$t],["__scopeId","data-v-5bdf84fc"]]);var Dt=Bt;let Ft=class extends n["c"]{constructor(){super(...arguments),this.dragging=!1,this.edited=!1,this.imagePreviewsLoading=!1,this.imagePreviewPromises=[],this.imagePreviews=[],this.slideshowCaption=""}get isDragging(){return this.dragging}mounted(){void 0!==this.panel.images&&this.panel.images.length&&(this.imagePreviewsLoading=!0,this.panel.images.map(e=>{const t=""+e.src.substring(e.src.indexOf("/")+1),a=e.src.replace(/^.*[\\/]/,""),i=this.configFileStructure.zip.file(t);i&&this.imagePreviewPromises.push(i.async("blob").then(t=>({...e,id:a||e.src,src:URL.createObjectURL(t)})))}),Promise.all(this.imagePreviewPromises).then(e=>{this.imagePreviews=e,this.imagePreviewsLoading=!1}),this.slideshowCaption=this.panel.caption)}onFileChange(e){const t=Array.from(e.target.files);this.imagePreviews.push(...t.map(e=>{const t=`${this.configFileStructure.uuid}/assets/${this.lang}/${e.name}`;this.configFileStructure.assets[this.lang].file(e.name,e),this.sourceCounts[t]?this.sourceCounts[t]+=1:this.sourceCounts[t]=1;let a=URL.createObjectURL(e);return{id:e.name,altText:"",caption:"",src:a}})),this.onImagesEdited()}dropImages(e){if(null!==e.dataTransfer){const t=[...e.dataTransfer.files];this.imagePreviews.push(...t.map(e=>{const t=`${this.configFileStructure.uuid}/assets/${this.lang}/${e.name}`;this.configFileStructure.assets[this.lang].file(e.name,e),this.sourceCounts[t]?this.sourceCounts[t]+=1:this.sourceCounts[t]=1;let a=URL.createObjectURL(e);return{id:e.name,altText:"",caption:"",src:a}})),this.dragging=!1}this.onImagesEdited()}deleteImage(e){const t=this.imagePreviews.findIndex(t=>t.id===e.id);if(-1!==t){const e=`${this.configFileStructure.uuid}/assets/${this.lang}/${this.imagePreviews[t].id}`;this.sourceCounts[e]-=1,0===this.sourceCounts[e]&&(this.configFileStructure.assets[this.lang].remove(this.imagePreviews[t].id),URL.revokeObjectURL(this.imagePreviews[t].src)),this.imagePreviews.splice(t,1)}this.onImagesEdited()}saveChanges(){var e;this.edited&&(this.panel.images=this.imagePreviews.map(e=>({...e,src:`${this.configFileStructure.uuid}/assets/${this.lang}/${e.id}`,type:Ve.Image})),this.panel.caption=null!==(e=this.slideshowCaption)&&void 0!==e?e:void 0);this.edited=!1}onImagesEdited(){this.edited=!0,this.$emit("slide-edit")}};Object(r["a"])([Object(n["b"])()],Ft.prototype,"panel",void 0),Object(r["a"])([Object(n["b"])()],Ft.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],Ft.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],Ft.prototype,"sourceCounts",void 0),Ft=Object(r["a"])([Object(n["a"])({components:{ImagePreview:Dt,draggable:ot.a}})],Ft);var Rt=Ft;a("67dc");const At=d()(Rt,[["render",xt],["__scopeId","data-v-56f26618"]]);var Pt=At;const Ut={class:"flex flex-col mt-4"},zt={class:"text-left"},Wt={class:"text-left mt-2"};function qt(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("v-md-editor");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ut,[Object(i["createElementVNode"])("label",zt,Object(i["toDisplayString"])(e.$t("editor.slides.panel.title"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=t=>e.panel.title=t)},null,512),[[i["vModelText"],e.panel.title]]),Object(i["createElementVNode"])("label",Wt,Object(i["toDisplayString"])(e.$t("editor.slides.panel.body"))+":",1),Object(i["createVNode"])(n,{modelValue:e.panel.content,"onUpdate:modelValue":t[1]||(t[1]=t=>e.panel.content=t),height:"400px","left-toolbar":"undo redo clear | h bold italic strikethrough quote subsuper | ul ol table hr | addLink image code | save",toolbar:e.toolbar},null,8,["modelValue","toolbar"])])}class Xt extends n["c"]{constructor(){super(...arguments),this.toolbar={subsuper:{title:"Superscript/Subscript",text:"T",menus:[{name:"Superscript",text:"Superscript",action(e){e.insert(e=>{const t=e||"";return{text:`${t}`,selected:e}})}},{name:"Subscript",text:"Subscript",action(e){e.insert(e=>{const t=e||"";return{text:`${t}`,selected:e}})}}]},addLink:{title:"Insert Link",icon:"v-md-icon-link",menus:[{name:"Add External Link (New Tab)",text:"Add External Link (New Tab)",action(e){e.insert(e=>{const t=e||"";return{text:`[${t}](http://)`,selected:e}})}},{name:"Add External Link (Same Tab)",text:"Add External Link (Same Tab)",action(e){e.insert(e=>{const t=e||"";return{text:`${t}`,selected:e}})}},{name:"Add Dynamic Link",text:"Add Dynamic Link",action(e){e.insert(e=>{const t=e||"";return{text:`${t}`,selected:e}})}}]}}}}Object(r["a"])([Object(n["b"])()],Xt.prototype,"panel",void 0);a("0bb1");const Ht=d()(Xt,[["render",qt],["__scopeId","data-v-b0fb221e"]]);var Gt=Ht;const Jt=e=>(Object(i["pushScopeId"])("data-v-681c9c6b"),e=e(),Object(i["popScopeId"])(),e),Zt={class:"flex flex-col"},Qt={class:"text-left"},Yt={key:0},Kt={class:"mt-6"},ea=Jt(()=>Object(i["createElementVNode"])("span",{class:"ml-6"},null,-1)),ta={class:"mt-6"},aa=Jt(()=>Object(i["createElementVNode"])("span",{class:"mx-4"},null,-1)),ia=Jt(()=>Object(i["createElementVNode"])("br",null,null,-1)),la={key:1,class:"mb-4"},oa={class:"flex justify-between mb-4"},ra={class:"mt-2"},na=Jt(()=>Object(i["createElementVNode"])("iframe",{src:"scripts/ramp-editor/samples/fgpv-author.html",style:{width:"70vw",height:"100vh"},id:"RAMPeditorframe"},null,-1)),sa={key:1},ca={class:"text-left mt-2"},da={class:"flex flex-row items-center"},ua={key:0,class:"flex flex-wrap list-none justify-center"},ma=Jt(()=>Object(i["createElementVNode"])("div",{class:"add-map"},null,-1)),pa={key:2},ga={class:"text-left mt-2"},ha={class:"flex flex-wrap list-none justify-center"},ba=Jt(()=>Object(i["createElementVNode"])("div",{class:"edit-map"},null,-1)),fa={slot:"header",class:"text-lg font-bold"},va={class:"w-full flex justify-end"},Oa=["disabled"];function ja(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("time-slider-editor"),s=Object(i["resolveComponent"])("vue-final-modal");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Zt,[Object(i["createElementVNode"])("label",Qt,Object(i["toDisplayString"])(e.$t("editor.map.title"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=t=>e.panel.title=t)},null,512),[[i["vModelText"],e.panel.title]]),"editing"===e.status?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Yt,[Object(i["createElementVNode"])("label",Kt,Object(i["toDisplayString"])(e.$t("editor.map.scrollguard.enable"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"checkbox",onChange:t[1]||(t[1]=(...t)=>e.saveScrollguard&&e.saveScrollguard(...t)),"onUpdate:modelValue":t[2]||(t[2]=t=>e.panel.scrollguard=t)},null,544),[[i["vModelCheckbox"],e.panel.scrollguard]]),ea,Object(i["createElementVNode"])("label",ta,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.enable")),1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"checkbox",onChange:t[3]||(t[3]=(...t)=>e.saveTimeSlider&&e.saveTimeSlider(...t)),"onUpdate:modelValue":t[4]||(t[4]=t=>e.usingTimeSlider=t)},null,544),[[i["vModelCheckbox"],e.usingTimeSlider]]),aa,e.usingTimeSlider?(Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:0,onClick:t[5]||(t[5]=t=>e.$vfm.open("time-slider-edit-modal")),class:"bg-black text-white hover:bg-gray-800 mt-3"},Object(i["toDisplayString"])(e.$t("editor.map.timeslider.edit")),1)):Object(i["createCommentVNode"])("",!0),ia,e.usingTimeSlider?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",la)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("div",oa,[Object(i["createElementVNode"])("label",ra,Object(i["toDisplayString"])(e.$t("editor.map.edit"))+":",1),Object(i["createElementVNode"])("button",{class:"border border-black hover:bg-gray-100",onClick:t[6]||(t[6]=()=>{e.status="default"})},Object(i["toDisplayString"])(e.$t("editor.map.edit.cancel")),1)]),na])):Object(i["createCommentVNode"])("",!0),"creating"===e.status?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",sa,[Object(i["createElementVNode"])("label",ca,Object(i["toDisplayString"])(e.$t("editor.map.label.name"))+"*:",1),Object(i["createElementVNode"])("div",da,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[7]||(t[7]=t=>e.newFileName=t)},null,512),[[i["vModelText"],e.newFileName]]),Object(i["createTextVNode"])(".json")]),""!=e.newFileName?(Object(i["openBlock"])(),Object(i["createElementBlock"])("ul",ua,[Object(i["createElementVNode"])("li",{class:"map-item items-center my-8 mx-5 overflow-hidden",onClick:t[8]||(t[8]=(...t)=>e.createNewConfig&&e.createNewConfig(...t))},[ma,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.$t("editor.map.label.create")),1)])])):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0),"default"===e.status?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",pa,[Object(i["createElementVNode"])("label",ga,Object(i["toDisplayString"])(e.$t("editor.map.edit"))+":",1),Object(i["createElementVNode"])("ul",ha,[Object(i["createElementVNode"])("li",{class:"map-item items-center my-8 mx-5 overflow-hidden",onClick:t[9]||(t[9]=(...t)=>e.openEditor&&e.openEditor(...t))},[ba,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.$t("editor.map.label.edit")),1)])])])):Object(i["createCommentVNode"])("",!0),Object(i["createVNode"])(s,{modalId:"time-slider-edit-modal","content-class":"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2",class:"flex justify-center items-center"},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("h2",fa,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.edit")),1),Object(i["createVNode"])(n,{config:e.timeSliderConf,error:e.timeSliderError,onTimeSliderChanged:e.onTimeSliderInput},null,8,["config","error","onTimeSliderChanged"]),Object(i["createElementVNode"])("div",va,[Object(i["createElementVNode"])("button",{class:Object(i["normalizeClass"])(e.timeSliderError?"":"bg-black text-white hover:bg-gray-800"),disabled:e.timeSliderError,onClick:t[10]||(t[10]=(...t)=>e.saveTimeSlider&&e.saveTimeSlider(...t))}," Done ",10,Oa)])]),_:1})])}var Va=a("7847"),ya=a("ea6b");const Sa=e=>(Object(i["pushScopeId"])("data-v-6923af36"),e=e(),Object(i["popScopeId"])(),e),Ca={class:"px-5"},xa={class:"flex items-center"},Ea=["value"],wa={class:"mx-3"},ka=["value"],Na=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),_a={class:"flex items-center"},Ta=["value"],Ma={class:"mx-3"},La=["value"],$a=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),Ia={key:0,class:"border-black border-2 p-3 w-2/3"},Ba={class:"w-full"},Da=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),Fa={class:"list-disc my-2 ml-8"},Ra={key:1},Aa=["value"],Pa=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),Ua=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),za=["value"],Wa=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),qa=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1));function Xa(e,t,a,l,o,r){return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ca,[Object(i["createElementVNode"])("div",xa,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.range")),1),Object(i["createElementVNode"])("input",{type:"number",value:e.config.range[0],onInput:t[0]||(t[0]=t=>e.$emit("time-slider-changed","range",0,t.target.value))},null,40,Ea),Object(i["createElementVNode"])("span",wa,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.to")),1),Object(i["createElementVNode"])("input",{type:"number",value:e.config.range[1],onInput:t[1]||(t[1]=t=>e.$emit("time-slider-changed","range",1,t.target.value))},null,40,ka)]),Na,Object(i["createElementVNode"])("div",_a,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.start")),1),Object(i["createElementVNode"])("input",{class:"ml-3",type:"number",value:e.config.start[0],onInput:t[2]||(t[2]=t=>e.$emit("time-slider-changed","start",0,t.target.value))},null,40,Ta),Object(i["createElementVNode"])("span",Ma,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.to")),1),Object(i["createElementVNode"])("input",{type:"number",value:e.config.start[1],onInput:t[3]||(t[3]=t=>e.$emit("time-slider-changed","start",1,t.target.value))},null,40,La)]),$a,e.error?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ia,[Object(i["createElementVNode"])("label",Ba,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.warning")),1),Da,Object(i["createElementVNode"])("ul",Fa,[Object(i["createElementVNode"])("li",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.warning.bullet1")),1),Object(i["createElementVNode"])("li",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.warning.bullet2")),1)]),Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.warning.end")),1)])):Object(i["createCommentVNode"])("",!0),e.error?(Object(i["openBlock"])(),Object(i["createElementBlock"])("br",Ra)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.attribute")),1),Object(i["createElementVNode"])("input",{value:e.config.attribute,onInput:t[4]||(t[4]=t=>e.$emit("time-slider-changed","attribute",void 0,t.target.value))},null,40,Aa)]),Pa,Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.layers")),1),Ua,Object(i["createElementVNode"])("input",{class:"w-full",value:e.config.layers||"",onInput:t[5]||(t[5]=t=>e.$emit("time-slider-changed","layers",void 0,t.target.value))},null,40,za)]),Wa,qa])}class Ha extends n["c"]{}Object(r["a"])([Object(n["b"])()],Ha.prototype,"config",void 0),Object(r["a"])([Object(n["b"])()],Ha.prototype,"error",void 0);a("d618");const Ga=d()(Ha,[["render",Xa],["__scopeId","data-v-6923af36"]]);var Ja=Ga;let Za=class extends n["c"]{constructor(){super(...arguments),this.newFileName="",this.usingTimeSlider=!!this.panel.timeSlider,this.timeSliderError=!1,this.timeSliderConf={range:[],start:[],attribute:""},this.status=""!==this.panel.config?"default":"creating",this.strippedFileName=""!==this.panel.config?this.panel.config.split("/")[3].split(".")[0]:""}mounted(){var e,t,a,i,l,o;window.addEventListener("message",this.saveEditor),this.timeSliderConf=JSON.parse(JSON.stringify({range:null!==(e=null===(t=this.panel.timeSlider)||void 0===t?void 0:t.range)&&void 0!==e?e:[1e3,(new Date).getFullYear()],start:null!==(a=null===(i=this.panel.timeSlider)||void 0===i?void 0:i.start)&&void 0!==a?a:[1e3,(new Date).getFullYear()],attribute:null!==(l=null===(o=this.panel.timeSlider)||void 0===o?void 0:o.attribute)&&void 0!==l?l:""})),this.validateTimeSlider()}beforeDestroy(){window.removeEventListener("message",this.saveEditor)}createNewConfig(){this.panel.config=`${this.configFileStructure.uuid}/ramp-config/${this.lang}/${this.newFileName}.json`,this.strippedFileName=this.panel.config.split("/")[3].split(".")[0],this.sourceCounts[this.panel.config]?this.sourceCounts[this.panel.config]+=1:this.sourceCounts[this.panel.config]=1,this.configFileStructure.rampConfig[this.lang].file(this.strippedFileName+".json",JSON.stringify("en"===this.lang?Va:ya,null,4)),this.status="default"}openEditor(){if(""!==this.panel.config&&(this.status="editing",this.panel.config)){const e=""+this.panel.config.substring(this.panel.config.indexOf("/")+1),t=this.configFileStructure.zip.file(e);t?t.async("string").then(e=>{window.config=e;const t=document.getElementById("RAMPeditorframe");t.contentWindow&&(t.contentWindow.config=e,t.contentWindow.configname=this.strippedFileName)}):fetch(this.panel.config).then(e=>{e.json().then(e=>{let t=JSON.stringify(e);window.config=t;const a=document.getElementById("RAMPeditorframe");a.contentWindow&&(a.contentWindow.config=t,a.contentWindow.configname=this.strippedFileName)})})}}saveScrollguard(e){this.panel.scrollguard=e.target.checked}saveTimeSlider(){this.timeSliderError&&this.usingTimeSlider||(this.panel.timeSlider=this.usingTimeSlider?this.timeSliderConf:void 0),this.$emit("slide-edit"),this.$vfm.close("time-slider-edit-modal")}saveEditor(e){"mapSaved"===e.data&&(this.status="default",this.configFileStructure.rampConfig[this.lang].file(this.strippedFileName+".json",JSON.stringify(JSON.parse(localStorage.RAMPconfig),null,4)),this.$emit("slide-edit"))}onTimeSliderInput(e,t,a){"layers"===e?a&&""!==a?this.timeSliderConf["layers"]=a.split(",").map(e=>e.trim()):delete this.timeSliderConf["layers"]:"attribute"===e?this.timeSliderConf[e]=a:this.timeSliderConf[e][t]=Number(a),this.validateTimeSlider()}validateTimeSlider(){this.timeSliderError=this.timeSliderConf.range.some(e=>e<0||!Number.isInteger(e))||this.timeSliderConf.start.some(e=>e<0||!Number.isInteger(e))||this.timeSliderConf.range[1]e.changePanel("text")),class:Object(i["normalizeClass"])(["border hover:bg-gray-100","text"===e.editingStatus?"border-black":"border-gray-300"])},Object(i["toDisplayString"])(e.$t("dynamic.textSection")),3),Object(i["createElementVNode"])("button",{onClick:t[1]||(t[1]=()=>e.changePanel("panels")),class:Object(i["normalizeClass"])(["border hover:bg-gray-100","text"!==e.editingStatus?"border-black":"border-gray-300"])},Object(i["toDisplayString"])(e.$t("dynamic.panel.collection")),3)]),"text"===e.editingStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",si,[(Object(i["openBlock"])(),Object(i["createBlock"])(Object(i["resolveDynamicComponent"])("text-editor"),{key:"text",panel:e.panel,configFileStructure:e.configFileStructure,lang:e.lang},null,8,["panel","configFileStructure","lang"]))])):Object(i["createCommentVNode"])("",!0),"panels"===e.editingStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",ci,[Object(i["createElementVNode"])("table",di,[Object(i["createElementVNode"])("tr",ui,[Object(i["createElementVNode"])("th",null,Object(i["toDisplayString"])(e.$t("dynamic.panel.id")),1),Object(i["createElementVNode"])("th",null,Object(i["toDisplayString"])(e.$t("dynamic.panel.type")),1),Object(i["createElementVNode"])("th",null,Object(i["toDisplayString"])(e.$t("dynamic.panel.actions")),1)]),(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.panel.children,(t,a)=>(Object(i["openBlock"])(),Object(i["createElementBlock"])("tr",{class:"table-contents",key:a},[Object(i["createElementVNode"])("td",null,Object(i["toDisplayString"])(t.id),1),Object(i["createElementVNode"])("td",null,Object(i["toDisplayString"])(t.panel.type),1),Object(i["createElementVNode"])("td",null,[Object(i["createElementVNode"])("span",{onClick:()=>e.switchSlide(a)},Object(i["toDisplayString"])(e.$t("editor.chart.label.edit")),9,mi),Object(i["createTextVNode"])(" | "),Object(i["createElementVNode"])("span",{onClick:()=>e.removeSlide(a)},Object(i["toDisplayString"])(e.$t("editor.remove")),9,pi)])]))),128)),Object(i["createElementVNode"])("tr",gi,[Object(i["createElementVNode"])("th",hi,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text",placeholder:"Enter Panel ID","onUpdate:modelValue":t[2]||(t[2]=t=>e.newSlideName=t)},null,512),[[i["vModelText"],e.newSlideName]]),e.idUsed?(Object(i["openBlock"])(),Object(i["createElementBlock"])("p",bi,Object(i["toDisplayString"])(e.$t("dynamic.panel.idTaken")),1)):Object(i["createCommentVNode"])("",!0)]),Object(i["createElementVNode"])("th",null,[Object(i["withDirectives"])(Object(i["createElementVNode"])("select",{"onUpdate:modelValue":t[3]||(t[3]=t=>e.newSlideType=t)},[(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(Object.keys(e.editors).filter(e=>"image"!==e),e=>(Object(i["openBlock"])(),Object(i["createElementBlock"])("option",{key:e},Object(i["toDisplayString"])(e),1))),128))],512),[[i["vModelSelect"],e.newSlideType]])]),Object(i["createElementVNode"])("th",null,[Object(i["createElementVNode"])("button",{onClick:t[4]||(t[4]=(...t)=>e.createNewSlide&&e.createNewSlide(...t)),disabled:e.idUsed},"Add New",8,fi)])])]),-1!==e.editingSlide?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",vi,[Oi,ji,Vi,Object(i["createElementVNode"])("span",yi,Object(i["toDisplayString"])(e.$t("dynamic.panel.editor")),1),Si,(Object(i["openBlock"])(),Object(i["createBlock"])(Object(i["resolveDynamicComponent"])(e.editors["image"===e.panel.children[e.editingSlide].panel.type?"slideshow":e.panel.children[e.editingSlide].panel.type]),{ref:"slide",key:e.editingSlide+e.panel.children[e.editingSlide].panel.type,panel:e.panel.children[e.editingSlide].panel,configFileStructure:e.configFileStructure,lang:e.lang,sourceCounts:e.sourceCounts},null,8,["panel","configFileStructure","lang","sourceCounts"]))])):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0)])}var xi;let Ei=xi=class extends n["c"]{constructor(){super(...arguments),this.editors={text:"text-editor",image:"image-editor",slideshow:"image-editor",chart:"chart-editor",map:"map-editor"},this.startingConfig={text:{type:Ve.Text,title:"",content:""},dynamic:{type:Ve.Dynamic,title:"",titleTag:"",content:"",children:[]},slideshow:{type:Ve.Slideshow,images:[]},chart:{type:Ve.Chart,charts:[]},map:{type:Ve.Map,config:"",title:"",scrollguard:!1}},this.editingStatus="text",this.editingSlide=-1,this.newSlideName="",this.newSlideType="text"}get idUsed(){return this.panel.children.some(e=>e.id===this.newSlideName)}changePanel(e){this.saveChanges(),this.editingStatus=e}switchSlide(e){this.saveChanges(),this.editingSlide=e,"image"===this.panel.children[this.editingSlide].panel.type&&(this.panel.children[this.editingSlide].panel={type:Ve.Slideshow,images:[this.panel.children[this.editingSlide].panel]})}removeSlide(e){var t;const a=null===(t=this.panel.children.find((t,a)=>a===e))||void 0===t?void 0:t.panel;switch(null===a||void 0===a?void 0:a.type){case"map":{const e=a;this.sourceCounts[e.config]-=1,0===this.sourceCounts[e.config]&&this.configFileStructure.zip.remove(""+e.config.substring(e.config.indexOf("/")+1));break}case"chart":{const e=a;e.charts.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"slideshow":{const e=a;e.images.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}}this.panel.children=this.panel.children.filter((t,a)=>a!==e),this.editingSlide===e&&(this.editingSlide=-1)}createNewSlide(){if(!this.newSlideName)return;const e={id:this.newSlideName,panel:JSON.parse(JSON.stringify(this.startingConfig[this.newSlideType]))};this.newSlideName="",this.panel.children.push(e)}saveChanges(){this.$nextTick(()=>{void 0!==this.$refs.slide&&"function"===typeof this.$refs.slide.saveChanges&&this.$refs.slide.saveChanges()})}};Object(r["a"])([Object(n["b"])()],Ei.prototype,"panel",void 0),Object(r["a"])([Object(n["b"])()],Ei.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],Ei.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],Ei.prototype,"sourceCounts",void 0),Ei=xi=Object(r["a"])([Object(n["a"])({components:{"chart-editor":ct,"image-editor":Pt,"text-editor":Gt,"dynamic-editor":xi,"map-editor":Ka}})],Ei);var wi=Ei;a("6a63");const ki=d()(wi,[["render",Ci]]);var Ni=ki;let _i=class extends n["c"]{constructor(){super(...arguments),this.config=void 0,this.panelIndex=0,this.newType="",this.rightOnly=!1,this.editors={text:"text-editor",image:"image-editor",slideshow:"image-editor",chart:"chart-editor",map:"map-editor",loading:"loading-page",dynamic:"dynamic-editor"}}onSlideChange(){this.currentSlide&&(this.rightOnly=1===this.currentSlide.panel.length)}changePanelType(e,t){const a={text:{type:Ve.Text,title:"",content:""},dynamic:{type:Ve.Dynamic,title:this.currentSlide.panel[0]&&"text"===e?this.currentSlide.panel[0].title:"",titleTag:"",content:this.currentSlide.panel[0]&&"text"===e?this.currentSlide.panel[0].content:"",children:[]},slideshow:{type:Ve.Slideshow,images:[]},chart:{type:Ve.Chart,charts:[]},map:{type:Ve.Map,config:"",title:"",scrollguard:!1}};this.currentSlide.panel.forEach(e=>this.removeSourceCounts(e)),"dynamic"===t?(this.panelIndex=0,this.currentSlide["panel"]=[a[t]]):this.currentSlide.panel[this.panelIndex]=a[t]}removeSourceCounts(e){switch(e.type){case"map":{const t=e;this.sourceCounts[t.config]-=1,0===this.sourceCounts[t.config]&&this.configFileStructure.zip.remove(""+t.config.substring(t.config.indexOf("/")+1));break}case"chart":{const t=e;t.charts.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"slideshow":{const t=e;t.images.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"dynamic":{const t=e;t.children.forEach(e=>{this.removeSourceCounts(e.panel)});break}}}saveChanges(){this.$nextTick(()=>{void 0!==this.$refs.editor&&"function"===typeof this.$refs.editor.saveChanges&&this.$refs.editor.saveChanges()})}selectSlide(e){this.$emit("slide-change",e)}cancelTypeChange(){this.$refs.typeSelector.value=this.currentSlide.panel[this.panelIndex].type}toggleRightOnly(){this.saveChanges(),this.rightOnly?(this.panelIndex=0,this.currentSlide["panel"]=[this.currentSlide.panel[1]]):this.currentSlide["panel"]=[Object.assign({},{type:Ve.Text,title:"",content:""}),Object.assign({},this.currentSlide.panel[0])]}};Object(r["a"])([Object(n["b"])()],_i.prototype,"currentSlide",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"uid",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"slideIndex",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"isLast",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"sourceCounts",void 0),Object(r["a"])([Object(n["d"])("currentSlide",{deep:!0})],_i.prototype,"onSlideChange",null),_i=Object(r["a"])([Object(n["a"])({components:{"chart-editor":ct,"image-editor":Pt,"text-editor":Gt,"map-editor":Ka,"loading-page":oi,"dynamic-editor":Ni,"confirmation-modal":it}})],_i);var Ti=_i;a("ff0d");const Mi=d()(Ti,[["render",je],["__scopeId","data-v-ecc4f964"]]);var Li=Mi;const $i=e=>(Object(i["pushScopeId"])("data-v-50ad0d19"),e=e(),Object(i["popScopeId"])(),e),Ii={class:"flex toc-header p-2 mt-10"},Bi={class:"flex items-center justify-center font-bold"},Di=$i(()=>Object(i["createElementVNode"])("span",{class:"flex-1"},null,-1)),Fi=$i(()=>Object(i["createElementVNode"])("span",{class:"ml-auto"},null,-1)),Ri=$i(()=>Object(i["createElementVNode"])("span",{class:"align-middle inline-block px-1"},[Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[Object(i["createElementVNode"])("path",{d:"M24 10h-10v-10h-4v10h-10v4h10v10h4v-10h10z"})])],-1)),Ai={class:"align-middle inline-block"},Pi=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24",width:"24"},[Object(i["createElementVNode"])("path",{d:"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z"})],-1)),Ui=[Pi],zi={slot:"header",class:"text-xl font-bold"},Wi={class:"flex flex-col"},qi={class:"text-lg font-bold my-6"},Xi={class:"flex"},Hi=["value"],Gi=["onClick"],Ji={class:"self-center overflow-ellipsis whitespace-nowrap overflow-hidden flex-grow ml-2"},Zi={class:"font-bold overflow-hidden"},Qi={class:"flex"},Yi={class:"flex flex-col"},Ki=["onClick"],el=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24"},[Object(i["createElementVNode"])("path",{d:"M3 6l3 18h12l3-18h-18zm19-4v2h-20v-2h5.711c.9 0 1.631-1.099 1.631-2h5.316c0 .901.73 2 1.631 2h5.711z"})],-1)),tl=[el],al=["onClick"],il=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24",width:"24"},[Object(i["createElementVNode"])("path",{d:"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z"})],-1)),ll=[il],ol={class:"flex flex-col mr-2 ml-1 my-1"},rl=["onClick","disabled"],nl=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",class:"fill-current",height:"20",width:"20"},[Object(i["createElementVNode"])("path",{d:"m2 16 8-12 8 12Z"})],-1)),sl=[nl],cl=["onClick","disabled"],dl=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",class:"fill-current",height:"20",width:"20"},[Object(i["createElementVNode"])("path",{d:"m2 16 8-12 8 12Z"})],-1)),ul=[dl];function ml(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("vue-final-modal"),s=Object(i["resolveComponent"])("confirmation-modal"),c=Object(i["resolveComponent"])("draggable"),d=Object(i["resolveDirective"])("tippy");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",null,[Object(i["createElementVNode"])("div",Ii,[Object(i["createElementVNode"])("span",Bi,Object(i["toDisplayString"])(e.$t("editor.slides.title")),1),Di,Fi,Object(i["createElementVNode"])("button",{onClick:t[0]||(t[0]=(...t)=>e.addNewSlide&&e.addNewSlide(...t))},[Ri,Object(i["createElementVNode"])("span",Ai,Object(i["toDisplayString"])(e.$t("editor.slides.addSlide")),1)]),Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{onClick:t[1]||(t[1]=Object(i["withModifiers"])(t=>e.$vfm.open("copy-from-other-lang"),["stop"]))},Ui)),[[d,{delay:"200",placement:"right",content:e.$t("editor.slides.copyFromLang"),animateFill:!0}]]),Object(i["createVNode"])(n,{modalId:"copy-from-other-lang","content-class":"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2",class:"flex justify-center items-center"},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("h2",zi,Object(i["toDisplayString"])(e.$t("editor.slides.copyFromLang")),1),Object(i["createElementVNode"])("div",Wi,[Object(i["createElementVNode"])("button",{class:"w-32 h-12 ml-0",onClick:t[2]||(t[2]=t=>e.copyAllFromOtherLang(e.configFileStructure.configs["en"===e.lang?"fr":"en"].slides))},Object(i["toDisplayString"])(e.$t("editor.slides.copyAll")),1),Object(i["createElementVNode"])("span",qi,Object(i["toDisplayString"])(e.$t("editor.image.label.or")),1),Object(i["createElementVNode"])("div",Xi,[Object(i["withDirectives"])(Object(i["createElementVNode"])("select",{"onUpdate:modelValue":t[3]||(t[3]=t=>e.selectedForCopying=t),class:"overflow-ellipsis copy-select"},[(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.configFileStructure.configs["en"===e.lang?"fr":"en"].slides,(t,a)=>(Object(i["openBlock"])(),Object(i["createElementBlock"])("option",{value:a,key:t.title+a},Object(i["toDisplayString"])(e.$t("editor.slides.slide"))+" "+Object(i["toDisplayString"])(a+": "+t.title),9,Hi))),128))],512),[[i["vModelSelect"],e.selectedForCopying]]),Object(i["createElementVNode"])("button",{onClick:t[4]||(t[4]=t=>e.copyFromOtherLang(e.configFileStructure.configs["en"===e.lang?"fr":"en"].slides[e.selectedForCopying]))},Object(i["toDisplayString"])(e.$t("editor.slides.copy")),1)])])]),_:1})]),Object(i["createElementVNode"])("ul",null,[Object(i["createVNode"])(c,{modelValue:e.slides,"onUpdate:modelValue":t[5]||(t[5]=t=>e.slides=t),onUpdate:t[6]||(t[6]=t=>e.$emit("slides-updated",e.slides)),"item-key":"title"},{item:Object(i["withCtx"])(({element:t,index:a})=>[Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("li",{class:Object(i["normalizeClass"])(["toc-slide border-t flex px-2 cursor-pointer hover:bg-gray-100",e.currentSlide===t?"bg-gray-100":""]),onClick:t=>e.selectSlide(a),key:t.title+a},[Object(i["createElementVNode"])("div",Ji,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.$t("editor.slides.slide"))+" "+Object(i["toDisplayString"])(a+1)+": ",1),Object(i["createElementVNode"])("span",Zi,Object(i["toDisplayString"])(t.title||"Add a title"),1)]),Object(i["createElementVNode"])("div",Qi,[Object(i["createElementVNode"])("div",Yi,[Object(i["createElementVNode"])("button",{onClick:Object(i["withModifiers"])(t=>e.$vfm.open("delete-slide-"+a),["stop"])},tl,8,Ki),Object(i["createElementVNode"])("button",{onClick:Object(i["withModifiers"])(t=>e.copySlide(a),["stop"])},ll,8,al)]),Object(i["createElementVNode"])("div",ol,[Object(i["createElementVNode"])("button",{class:Object(i["normalizeClass"])(0==a?"text-gray-500 cursor-not-allowed":""),onClick:Object(i["withModifiers"])(t=>e.moveUp(a),["stop"]),disabled:0==a},sl,10,rl),Object(i["createElementVNode"])("button",{class:Object(i["normalizeClass"])(["rotate-180 transform",a==e.slides.length-1?"text-gray-500 cursor-not-allowed":""]),onClick:Object(i["withModifiers"])(t=>e.moveDown(a),["stop"]),disabled:a==e.slides.length-1},ul,10,cl)])]),Object(i["createVNode"])(s,{name:"delete-slide-"+a,message:e.$t("editor.slides.deleteSlide.confirm",{title:t.title}),onOk:t=>e.removeSlide(a)},null,8,["name","message","onOk"])],10,Gi)),[[d,{delay:"200",placement:"right",content:t.title,animateFill:!0}]])]),_:1},8,["modelValue"])])])}var pl=a("9675"),gl=a.n(pl);let hl=class extends n["c"]{constructor(){super(...arguments),this.selectedForCopying=0}selectSlide(e){this.$emit("slide-change",e)}addNewSlide(){this.slides.push({title:"",panel:[{type:"text",title:"",content:""},{type:"text",title:"",content:""}]}),this.selectSlide(this.slides.length-1),this.$emit("slides-updated",this.slides)}copyFromOtherLang(e){e&&(this.slides.splice(this.slides.length,0,gl()(e)),this.$emit("slides-updated",this.slides))}copyAllFromOtherLang(e){e&&(this.slides.splice(this.slides.length,0,...e.map(e=>gl()(e))),this.$emit("slides-updated",this.slides))}copySlide(e){this.slides.splice(e+1,0,gl()(this.slides[e])),this.$emit("slides-updated",this.slides)}removeSlide(e){e===this.slideIndex&&this.$emit("slide-change",-1),this.removeSourceCounts(e),this.slides.splice(e,1),this.$emit("slides-updated",this.slides)}removeSourceCounts(e){var t;const a=null===(t=this.slides.find((t,a)=>a===e))||void 0===t?void 0:t.panel;null===a||void 0===a||a.forEach(e=>this.removeSourceHelper(e))}removeSourceHelper(e){switch(e.type){case"map":{const t=e;this.sourceCounts[t.config]-=1,0===this.sourceCounts[t.config]&&this.configFileStructure.zip.remove(""+t.config.substring(t.config.indexOf("/")+1));break}case"chart":{const t=e;t.charts.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"slideshow":{const t=e;t.images.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"dynamic":{const t=e;t.children.forEach(e=>{this.removeSourceHelper(e.panel)});break}}}moveUp(e){this.moveDown(e-1)}moveDown(e){this.slides.splice(e+1,0,this.slides.splice(e,1)[0]),this.$emit("slides-updated",this.slides)}};Object(r["a"])([Object(n["b"])()],hl.prototype,"slides",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"currentSlide",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"slideIndex",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"sourceCounts",void 0),hl=Object(r["a"])([Object(n["a"])({components:{"slide-editor":Li,"confirmation-modal":it,"vue-final-modal":U["a"],draggable:ot.a}})],hl);var bl=hl;a("f1a5");const fl=d()(bl,[["render",ml],["__scopeId","data-v-50ad0d19"]]);var vl=fl;const Ol={class:"mb-5"},jl=["value"],Vl=Object(i["createElementVNode"])("br",null,null,-1),yl={class:"mb-5"},Sl=["value"],Cl={class:"mb-5"},xl=["value"],El=Object(i["createElementVNode"])("br",null,null,-1),wl={key:0},kl=["src"],Nl={key:1,class:"image-preview"},_l={class:"mb-5"},Tl=["value"],Ml=Object(i["createElementVNode"])("br",null,null,-1),Ll=["value"],$l=Object(i["createElementVNode"])("br",null,null,-1),Il=Object(i["createElementVNode"])("label",{class:"mb-5"},null,-1),Bl={class:"inline-block"},Dl=Object(i["createElementVNode"])("br",null,null,-1),Fl=["value"],Rl=Object(i["createElementVNode"])("br",null,null,-1),Al=Object(i["createElementVNode"])("label",{class:"mb-5"},null,-1),Pl={class:"inline-block"},Ul=Object(i["createElementVNode"])("br",null,null,-1),zl=["value"],Wl=Object(i["createElementVNode"])("br",null,null,-1),ql=Object(i["createElementVNode"])("label",{class:"mb-5"},null,-1),Xl={class:"inline-block"},Hl=Object(i["createElementVNode"])("br",null,null,-1),Gl={class:"mb-5"},Jl=["value"],Zl=Object(i["createElementVNode"])("br",null,null,-1),Ql=Object(i["createElementVNode"])("br",null,null,-1);function Yl(e,t,a,l,o,r){return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",null,[Object(i["createElementVNode"])("label",Ol,Object(i["toDisplayString"])(e.$t("editor.title"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"title",value:e.metadata.title,onChange:t[0]||(t[0]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-1/3"},null,40,jl),Vl,Object(i["createElementVNode"])("label",yl,Object(i["toDisplayString"])(e.$t("editor.slides.title"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"introTitle",value:e.metadata.introTitle,onChange:t[1]||(t[1]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-1/4"},null,40,Sl),Object(i["createElementVNode"])("label",Cl,Object(i["toDisplayString"])(e.$t("editor.slides.intro"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"introSubtitle",value:e.metadata.introSubtitle,onChange:t[2]||(t[2]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-1/4"},null,40,xl),El,e.metadata.logoPreview?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",wl,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.logoPreview"))+":",1),e.metadata.logoPreview&&"error"!=e.metadata.logoPreview?(Object(i["openBlock"])(),Object(i["createElementBlock"])("img",{key:0,src:e.metadata.logoPreview,class:"image-preview"},null,8,kl)):Object(i["createCommentVNode"])("",!0),"error"==e.metadata.logoPreview?(Object(i["openBlock"])(),Object(i["createElementBlock"])("p",Nl,Object(i["toDisplayString"])(e.$t("editor.image.loadingError")),1)):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("label",_l,Object(i["toDisplayString"])(e.$t("editor.logo"))+":",1),Object(i["createElementVNode"])("input",{type:"text",onChange:t[3]||(t[3]=t=>e.$emit("logo-source-changed",t)),value:e.metadata.logoName,class:"w-1/4"},null,40,Tl),Object(i["createElementVNode"])("button",{onClick:t[4]||(t[4]=Object(i["withModifiers"])((...t)=>e.openFileSelector&&e.openFileSelector(...t),["stop"])),class:"bg-black text-white hover:bg-gray-800"},Object(i["toDisplayString"])(e.$t("editor.browse")),1),e.metadata.logoName||e.metadata.logoPreview?(Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:1,onClick:t[5]||(t[5]=Object(i["withModifiers"])((...t)=>e.removeLogo&&e.removeLogo(...t),["stop"])),class:"border border-black"},Object(i["toDisplayString"])(e.$t("editor.remove")),1)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("input",{type:"file",id:"logoUpload",onChange:t[6]||(t[6]=t=>e.$emit("logo-changed",t)),class:"w-1/4",style:{display:"none"}},null,32),Ml,Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.logoAltText"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"logoAltText",value:e.metadata.logoAltText,onChange:t[7]||(t[7]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-2/3"},null,40,Ll),$l,Il,Object(i["createElementVNode"])("p",Bl,[Object(i["createElementVNode"])("i",null,Object(i["toDisplayString"])(e.$t("editor.logoAltText.desc")),1)]),Dl,Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.contextLink"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"contextLink",value:e.metadata.contextLink,onChange:t[8]||(t[8]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-2/3"},null,40,Fl),Rl,Al,Object(i["createElementVNode"])("p",Pl,[Object(i["createElementVNode"])("i",null,Object(i["toDisplayString"])(e.$t("editor.contextLink.info")),1)]),Ul,Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.contextLabel"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"contextLabel",value:e.metadata.contextLabel,onChange:t[9]||(t[9]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-2/3"},null,40,zl),Wl,ql,Object(i["createElementVNode"])("p",Xl,[Object(i["createElementVNode"])("i",null,Object(i["toDisplayString"])(e.$t("editor.contextLabel.info")),1)]),Hl,Object(i["createElementVNode"])("label",Gl,Object(i["toDisplayString"])(e.$t("editor.dateModified"))+":",1),Object(i["createElementVNode"])("input",{type:"date",name:"dateModified",value:e.metadata.dateModified,onChange:t[10]||(t[10]=(...t)=>e.metadataChanged&&e.metadataChanged(...t))},null,40,Jl),Zl,Ql])}class Kl extends n["c"]{openFileSelector(){var e;null===(e=document.getElementById("logoUpload"))||void 0===e||e.click()}metadataChanged(e){this.$emit("metadata-changed",e.target.name,e.target.value)}removeLogo(){this.metadata.logoName="",this.metadata.logoPreview=""}}Object(r["a"])([Object(n["b"])()],Kl.prototype,"metadata",void 0);const eo=d()(Kl,[["render",Yl]]);var to=eo;const ao=e=>(Object(i["pushScopeId"])("data-v-5e860565"),e=e(),Object(i["popScopeId"])(),e),io={class:"editor-container"},lo={class:"editor-header sticky flex items-center border-b border-black bg-gray-200 py-2 px-2 z-10"},oo={class:"mx-1"},ro=ao(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18.001",viewBox:"0 0 18 18.001"},[Object(i["createElementVNode"])("path",{id:"logout-Icon-SVG-098767893",d:"M5.808,13.782v1.406A2.816,2.816,0,0,0,8.621,18h7.067A2.816,2.816,0,0,0,18.5,15.188V2.813A2.816,2.816,0,0,0,15.687,0H8.621A2.816,2.816,0,0,0,5.808,2.813V4.219a.7.7,0,0,0,1.406,0V2.813A1.408,1.408,0,0,1,8.621,1.406h7.067a1.408,1.408,0,0,1,1.406,1.406V15.188a1.408,1.408,0,0,1-1.406,1.406H8.621a1.408,1.408,0,0,1-1.406-1.406V13.782a.7.7,0,0,0-1.406,0ZM1.014,7.793,2.589,6.218a.7.7,0,0,1,.994.994l-1.12,1.12h8.443a.7.7,0,1,1,0,1.406H2.463l1.12,1.12a.7.7,0,1,1-.994.994L1.014,10.279A1.76,1.76,0,0,1,1.014,7.793Zm0,0",transform:"translate(-0.5)"})],-1)),no={class:"ml-3 flex flex-col"},so={class:"font-semibold text-lg"},co=ao(()=>Object(i["createElementVNode"])("span",{class:"ml-auto"},null,-1)),uo=ao(()=>Object(i["createElementVNode"])("svg",{class:"inline",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"18px",height:"18px"},[Object(i["createElementVNode"])("path",{d:"M 2 2 L 4.9394531 4.9394531 C 3.1262684 6.7482143 2 9.2427079 2 12 C 2 17.514 6.486 22 12 22 C 17.514 22 22 17.514 22 12 C 22 6.486 17.514 2 12 2 L 12 4 C 16.411 4 20 7.589 20 12 C 20 16.411 16.411 20 12 20 C 7.589 20 4 16.411 4 12 C 4 9.7940092 4.9004767 7.7972757 6.3496094 6.3496094 L 9 9 L 9 2 L 2 2 z"})],-1)),mo={class:"font-normal ml-1"},po={key:0,class:"border-2 border-red-700 text-red-700 rounded p-1 mr-2"},go=ao(()=>Object(i["createElementVNode"])("span",{class:"align-middle inline-block mr-1 pb-1 fill-current"},[Object(i["createElementVNode"])("svg",{"clip-rule":"evenodd","fill-rule":"evenodd",class:"fill-red-600",width:"18",height:"18","stroke-linejoin":"round","stroke-miterlimit":"2",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"m12.002 21.534c5.518 0 9.998-4.48 9.998-9.998s-4.48-9.997-9.998-9.997c-5.517 0-9.997 4.479-9.997 9.997s4.48 9.998 9.997 9.998zm0-1.5c-4.69 0-8.497-3.808-8.497-8.498s3.807-8.497 8.497-8.497 8.498 3.807 8.498 8.497-3.808 8.498-8.498 8.498zm0-6.5c-.414 0-.75-.336-.75-.75v-5.5c0-.414.336-.75.75-.75s.75.336.75.75v5.5c0 .414-.336.75-.75.75zm-.002 3c.552 0 1-.448 1-1s-.448-1-1-1-1 .448-1 1 .448 1 1 1z","fill-rule":"nonzero"})])],-1)),ho={class:"align-center inline-block select-none"},bo=["disabled"],fo={class:"inline-block"},vo={key:0,class:"align-middle inline-block px-1"},Oo={class:"flex"},jo={class:"w-80 flex-shrink-0 border-r border-black editor-toc"},Vo={class:"flex items-center justify-center border-b p-2"},yo=ao(()=>Object(i["createElementVNode"])("span",{class:"align-middle inline-block px-1"},[Object(i["createElementVNode"])("svg",{"clip-rule":"evenodd","fill-rule":"evenodd",width:"16",height:"16","stroke-linejoin":"round","stroke-miterlimit":"2",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"m4.481 15.659c-1.334 3.916-1.48 4.232-1.48 4.587 0 .528.46.749.749.749.352 0 .668-.137 4.574-1.492zm1.06-1.061 3.846 3.846 11.321-11.311c.195-.195.293-.45.293-.707 0-.255-.098-.51-.293-.706-.692-.691-1.742-1.74-2.435-2.432-.195-.195-.451-.293-.707-.293-.254 0-.51.098-.706.293z","fill-rule":"nonzero"})])],-1)),So={class:"align-middle inline-block"};function Co(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("router-link"),s=Object(i["resolveComponent"])("spinner"),c=Object(i["resolveComponent"])("slide-toc"),d=Object(i["resolveComponent"])("slide-editor"),u=Object(i["resolveComponent"])("confirmation-modal"),m=Object(i["resolveDirective"])("tippy");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",io,[Object(i["createElementVNode"])("div",lo,[Object(i["createElementVNode"])("span",oo,[Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createBlock"])(n,{to:{name:"home"},class:"mt-1 flex justify-center h-full w-full",target:""},{default:Object(i["withCtx"])(()=>[ro]),_:1})),[[m,{delay:"200",placement:"right",content:e.$t("editor.returnToLanding"),animateFill:!0}]])]),Object(i["createElementVNode"])("div",no,[Object(i["createElementVNode"])("span",so,Object(i["toDisplayString"])(e.metadata.title),1),Object(i["createElementVNode"])("span",{class:Object(i["normalizeClass"])(e.metadata.title?"text-xs":"")},"UUID: "+Object(i["toDisplayString"])(e.uuid),3)]),co,e.unsavedChanges?Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:0,onClick:t[0]||(t[0]=t=>e.$vfm.open("reload-config")),class:"border-2 border-red-700 text-red-700 rounded p-1 mr-2"},[uo,Object(i["createElementVNode"])("span",mo,Object(i["toDisplayString"])(e.$t("editor.resetChanges")),1)])),[[m,{delay:"200",placement:"bottom",content:e.$t("editor.resetChanges"),animateFill:!0}]]):Object(i["createCommentVNode"])("",!0),Object(i["createVNode"])(i["Transition"],{name:"fade"},{default:Object(i["withCtx"])(()=>[e.unsavedChanges?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",po,[go,Object(i["createElementVNode"])("span",ho,Object(i["toDisplayString"])(e.$t("editor.unsavedChanges")),1)])):Object(i["createCommentVNode"])("",!0)]),_:1}),Object(i["renderSlot"])(e.$slots,"langModal",Object(i["normalizeProps"])(Object(i["guardReactiveProps"])({unsavedChanges:e.unsavedChanges})),void 0,!0),Object(i["createElementVNode"])("button",{onClick:t[1]||(t[1]=(...t)=>e.preview&&e.preview(...t)),class:"bg-white border border-black hover:bg-gray-100"},Object(i["toDisplayString"])(e.$t("editor.preview")),1),Object(i["createElementVNode"])("button",{onClick:t[2]||(t[2]=(...t)=>e.saveChanges&&e.saveChanges(...t)),class:"bg-black text-white hover:bg-gray-900",disabled:e.saving},[Object(i["createElementVNode"])("span",fo,Object(i["toDisplayString"])(e.saving?e.$t("editor.savingChanges"):e.$t("editor.saveChanges")),1),e.saving?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",vo,[Object(i["createVNode"])(s,{size:"16px",color:"#009cd1",class:"ml-1 mb-1"})])):Object(i["createCommentVNode"])("",!0)],8,bo)]),Object(i["createElementVNode"])("div",Oo,[Object(i["createElementVNode"])("div",jo,[Object(i["createElementVNode"])("div",Vo,[Object(i["createElementVNode"])("button",{onClick:t[3]||(t[3]=Object(i["withModifiers"])(t=>e.$vfm.open("metadata-edit-modal"),["stop"]))},[yo,Object(i["createElementVNode"])("span",So,Object(i["toDisplayString"])(e.$t("editor.editMetadata")),1)])]),Object(i["createVNode"])(c,{slides:e.slides,currentSlide:e.currentSlide,slideIndex:e.slideIndex,onSlideChange:e.selectSlide,onSlidesUpdated:e.updateSlides,configFileStructure:e.configFileStructure,lang:e.configLang,sourceCounts:e.sourceCounts},null,8,["slides","currentSlide","slideIndex","onSlideChange","onSlidesUpdated","configFileStructure","lang","sourceCounts"])]),Object(i["createVNode"])(d,{ref:"slide",configFileStructure:e.configFileStructure,currentSlide:e.currentSlide,lang:e.configLang,slideIndex:e.slideIndex,isLast:e.slideIndex===e.slides.length-1,uid:e.uuid,onSlideChange:e.selectSlide,onSlideEdit:e.onSlidesEdited,sourceCounts:e.sourceCounts},null,8,["configFileStructure","currentSlide","lang","slideIndex","isLast","uid","onSlideChange","onSlideEdit","sourceCounts"])]),Object(i["renderSlot"])(e.$slots,"metadataModal",{},void 0,!0),Object(i["createVNode"])(u,{name:"reload-config",message:e.$t("editor.refreshChanges.modal"),onOk:t[4]||(t[4]=t=>e.$emit("refresh-config"))},null,8,["message"])])}let xo=class extends n["c"]{constructor(){super(...arguments),this.uuid="",this.logoImage=void 0,this.loadSlides=void 0,this.currentSlide="",this.slideIndex=-1}onSlidesEdited(){this.$emit("save-status",!0)}onMetadataEdited(){this.$emit("save-status",!0)}created(){this.loadSlides=this.slides,this.uuid=this.$route.params.uid,window.addEventListener("beforeunload",this.beforeWindowUnload)}mounted(){const e=new IntersectionObserver(([e])=>e.target.classList.toggle("z-40",e.intersectionRatio<1),{threshold:[1]});e.observe(document.querySelector(".editor-header"))}beforeDestroy(){window.removeEventListener("beforeunload",this.beforeWindowUnload)}selectSlide(e){void 0!==this.$refs.slide&&this.$nextTick(()=>{this.$refs.slide.saveChanges()}),this.currentSlide={title:"",panel:[{type:"loading-page"},{type:"loading-page"}]},setTimeout(()=>{this.currentSlide=-1===e?"":this.loadSlides[e],this.slideIndex=e,this.$refs.slide.panelIndex=0,window.scrollTo(0,0)},5)}updateSlides(e){this.loadSlides=e,this.slideIndex=this.loadSlides.indexOf(this.currentSlide)}preview(){void 0!==this.$refs.slide&&this.$nextTick(()=>{this.$refs.slide.saveChanges()}),setTimeout(()=>{const e=this.$router.resolve({name:"preview"}),t=window.open(e.href,"_blank");t.props={config:JSON.parse(JSON.stringify(this.configs[this.configLang])),configFileStructure:this.configFileStructure}},5)}saveChanges(){void 0!==this.$refs.slide&&this.$nextTick(()=>{this.$refs.slide.saveChanges()}),this.$emit("save-changes")}beforeWindowUnload(e){this.unsavedChanges&&!window.confirm()&&(e.preventDefault(),e.returnValue="")}};Object(r["a"])([Object(n["b"])()],xo.prototype,"configs",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"sourceCounts",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"metadata",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"slides",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"configLang",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"saving",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"unsavedChanges",void 0),Object(r["a"])([Object(n["d"])("slides",{deep:!0})],xo.prototype,"onSlidesEdited",null),Object(r["a"])([Object(n["d"])("metadata",{deep:!0})],xo.prototype,"onMetadataEdited",null),xo=Object(r["a"])([Object(n["a"])({components:{"metadata-content":to,"confirmation-modal":it,spinner:P["a"],"slide-editor":Li,"slide-toc":vl}})],xo);var Eo=xo;a("b176");const wo=d()(Eo,[["render",Co],["__scopeId","data-v-5e860565"]]);var ko=wo;const No=a("c4e3"),_o=a("bc3a").default,{v4:To}=a("e144");let Mo=class extends n["c"]{constructor(){super(...arguments),this.configs={en:void 0,fr:void 0},this.configFileStructure=void 0,this.loadExisting=!1,this.reloadExisting=!1,this.loadStatus="waiting",this.loadEditor=!1,this.error=!1,this.warning=!1,this.configLang="en",this.saving=!1,this.unsavedChanges=!1,this.uuid="",this.logoImage=void 0,this.metadata={title:"",introTitle:"",introSubtitle:"",logoPreview:"",logoName:"",logoAltText:"",contextLink:"",contextLabel:"",dateModified:""},this.reqFields={uuid:!0},this.slides=[],this.sourceCounts={}}created(){var e;if(this.loadExisting=this.editExisting,this.uuid=null!==(e=this.$route.params.uid)&&void 0!==e?e:this.loadExisting?void 0:To(),this.configLang=this.$route.params.configLang?this.$route.params.configLang:"en",this.configs={en:void 0,fr:void 0},this.configFileStructure=void 0,!this.loadExisting){const e=new Date,t=e.getFullYear(),a=(e.getMonth()+1).toString().padStart(2,"0"),i=e.getDate().toString().padStart(2,"0");this.metadata.dateModified=`${t}-${a}-${i}`}if("editor"===this.$route.name){this.loadEditor=!0;const e=this.$route.meta.data;if(e&&e.configs&&e.configFileStructure){var t;this.configs=e.configs,this.configFileStructure=e.configFileStructure,this.metadata=e.metadata,this.slides=e.slides,this.sourceCounts=e.sourceCounts,this.loadExisting=e.existing;const i=null===(t=this.configs[this.configLang])||void 0===t||null===(t=t.introSlide.logo)||void 0===t?void 0:t.src,l=`assets/${this.configLang}/${this.metadata.logoName}`;if(i){var a;const e=null===(a=this.configFileStructure)||void 0===a?void 0:a.zip.file(l);e?e.async("blob").then(e=>{this.logoImage=new File([e],this.metadata.logoName),this.metadata.logoPreview=URL.createObjectURL(e),this.loadStatus="loaded"}):(this.metadata.logoName=i,fetch(i).then(e=>{404!==e.status&&e.blob().then(e=>{this.logoImage=new File([e],this.metadata.logoName),this.metadata.logoPreview=i,this.loadStatus="loaded"})}))}else this.loadStatus="loaded";return}}this.$route.params.uid&&this.generateRemoteConfig()}generateNewConfig(){const e=new No;this.configs[this.configLang]=this.configHelper();const t=this.configs[this.configLang];if(this.metadata.logoName)if(this.metadata.logoName.includes("http"))t.introSlide.logo.src=this.metadata.logoName;else{var a;t.introSlide.logo.src=`${this.uuid}/assets/${this.configLang}/${null===(a=this.logoImage)||void 0===a?void 0:a.name}`}else t.introSlide.logo.src="";t.slides=[];const i="en"===this.configLang?"fr":"en";this.configs[i]=gl()(t),this.configs[i].lang=i;const l=JSON.stringify(this.configs[i],null,4),o=`${this.uuid}_${this.configLang}.json`,r=JSON.stringify(t,null,4);e.file(o,r),e.file(`${this.uuid}_${i}.json`,l),this.configFileStructureHelper(e,this.logoImage)}configHelper(){return{title:this.metadata.title,lang:this.configLang,introSlide:{logo:{src:""},title:this.metadata.introTitle,subtitle:this.metadata.introSubtitle},slides:[],contextLabel:this.metadata.contextLabel,contextLink:this.metadata.contextLink,dateModified:this.metadata.dateModified}}generateRemoteConfig(){this.loadStatus="loading",fetch("http://localhost:6040/retrieve/"+this.uuid).then(e=>{if(404===e.status){var t;z["a"].error(`The requested UUID '${null!==(t=this.uuid)&&void 0!==t?t:""}' does not exist.`),this.error=!0,this.loadStatus="waiting",this.clearConfig()}else{const t=new No;e.blob().then(e=>{t.loadAsync(e).then(()=>{this.configFileStructureHelper(t)})})}}).catch(()=>{z["a"].error("Failed to load product, no response from server"),this.loadStatus="loaded"})}findSources(e){["en","fr"].forEach(t=>{var a,i;null!==(a=e[t])&&void 0!==a&&null!==(a=a.introSlide.logo)&&void 0!==a&&a.src&&this.incrementSourceCount(e[t].introSlide.logo.src),null===(i=e[t])||void 0===i||i.slides.forEach(e=>{e.panel.forEach(e=>{this.panelSourceHelper(e)})})})}panelSourceHelper(e){switch(e.type){case"dynamic":e.children.forEach(e=>{this.panelSourceHelper(e.panel)});break;case"slideshow":e.images.forEach(e=>{this.incrementSourceCount(e.src)});break;case"chart":e.charts.forEach(e=>{this.incrementSourceCount(e.src)});break;case"image":case"video":case"audio":this.incrementSourceCount(e.src);break;case"map":this.incrementSourceCount(e.config);break;default:break}}incrementSourceCount(e){this.sourceCounts[e]?this.sourceCounts[e]+=1:this.sourceCounts[e]=1}configFileStructureHelper(e,t){const a=e.folder("assets"),i=e.folder("charts"),l=e.folder("ramp-config");this.configFileStructure={uuid:this.uuid,zip:e,configs:this.configs,assets:{en:a.folder("en"),fr:a.folder("fr")},charts:{en:i.folder("en"),fr:i.folder("fr")},rampConfig:{en:l.folder("en"),fr:l.folder("fr")}},void 0!==t&&this.configFileStructure.assets[this.configLang].file(null===t||void 0===t?void 0:t.name,t),this.loadConfig()}async loadConfig(e){if(e)this.useConfig(e);else{try{var t,a;const e=null===(t=this.configFileStructure)||void 0===t?void 0:t.zip.file(this.uuid+"_en.json"),i=null===(a=this.configFileStructure)||void 0===a?void 0:a.zip.file(this.uuid+"_fr.json");await(null===e||void 0===e?void 0:e.async("string").then(e=>{this.configs["en"]=JSON.parse(e)})),await(null===i||void 0===i?void 0:i.async("string").then(e=>{this.configs["fr"]=JSON.parse(e)}))}catch{var i;return z["a"].error(`The requested product '${null!==(i=this.uuid)&&void 0!==i?i:""}' is malformed.`),this.loadStatus="waiting",void this.clearConfig()}this.loadExisting?(this.loadStatus="waiting",z["a"].success("Successfully loaded storyline!")):this.loadStatus="loaded",this.configs[this.configLang]&&(this.useConfig(this.configs[this.configLang]),this.findSources(this.configs),this.reloadExisting?(this.loadEditor=!0,this.generateConfig(),this.updateEditorPath()):this.loadExisting||(this.loadEditor=!0,this.updateEditorPath()))}}useConfig(e){var t;this.metadata.title=e.title,this.metadata.introTitle=e.introSlide.title,this.metadata.introSubtitle=e.introSlide.subtitle,this.metadata.contextLink=e.contextLink,this.metadata.contextLabel=e.contextLabel,this.metadata.dateModified=e.dateModified,this.slides=e.slides,this.slides.forEach(e=>{if(2===e.panel.length&&"image"===e.panel[1].type){const t={type:"slideshow",images:[e.panel[1]]};e.panel[1]=t}});const a=null===(t=e.introSlide.logo)||void 0===t?void 0:t.src;if(a){var i,l;this.metadata.logoAltText=null!==(i=e.introSlide.logo)&&void 0!==i&&i.altText?e.introSlide.logo.altText:"";const t=""+a.substring(a.indexOf("/")+1),o=""+a.split("/")[a.split("/").length-1],r=null===(l=this.configFileStructure)||void 0===l?void 0:l.zip.file(t);r?r.async("blob").then(e=>{this.logoImage=new File([e],o),this.metadata.logoPreview=URL.createObjectURL(e),this.metadata.logoName=o,this.loadStatus="loaded"}):(this.metadata.logoName=a,fetch(a).then(e=>{404!==e.status&&e.blob().then(e=>{this.logoImage=new File([e],o),this.metadata.logoPreview=a,this.loadStatus="loaded"})}))}}generateConfig(){var e,t;this.saving=!0;const a=`${this.uuid}_${this.configLang}.json`,i=JSON.stringify(this.configs[this.configLang],null,4);return null===(e=this.configFileStructure)||void 0===e||e.zip.file(a,i),null===(t=this.configFileStructure)||void 0===t||t.zip.generateAsync({type:"blob"}).then(e=>{const t=new FormData;t.append("data",e,this.uuid+".zip");const a={"Content-Type":"multipart/form-data"};_o.post("http://localhost:6040/upload",t,{headers:a}).then(e=>{e.data.files,e.status,this.unsavedChanges=!1,this.loadExisting=!0,z["a"].success("Successfully saved changes!")}).catch(()=>{z["a"].error("Failed to save changes.")}).finally(()=>{setTimeout(()=>{this.saving=!1},500)})}),this.configFileStructure}updateMetadata(e,t){this.metadata[e]=t,this.unsavedChanges=!0}saveMetadata(e=!1){const t=this.configs[this.configLang];if(void 0!==t){if(t.title=this.metadata.title,t.introSlide.title=this.metadata.introTitle,t.introSlide.subtitle=this.metadata.introSubtitle,t.contextLink=this.metadata.contextLink,t.contextLabel=this.metadata.contextLabel,t.dateModified=this.metadata.dateModified,void 0===t.introSlide.logo&&(t.introSlide.logo={src:"",altText:""}),t.introSlide.logo.altText=this.metadata.logoAltText,this.metadata.logoName)if(this.metadata.logoName.includes("http"))t.introSlide.logo.src=this.metadata.logoName;else{var a,i,l;t.introSlide.logo.src=`${this.uuid}/assets/${this.configLang}/${null===(a=this.logoImage)||void 0===a?void 0:a.name}`,null===(i=this.configFileStructure)||void 0===i||i.assets[this.configLang].file(null===(l=this.logoImage)||void 0===l?void 0:l.name,this.logoImage)}else t.introSlide.logo.src="";e&&this.generateConfig()}this.$vfm.close("metadata-edit-modal")}clearConfig(){this.metadata={title:"",introTitle:"",introSubtitle:"",contextLink:"",contextLabel:"",dateModified:"",logoPreview:"",logoName:"",logoAltText:""},this.configs={en:void 0,fr:void 0},this.slides=[]}swapLang(){this.configLang="en"===this.configLang?"fr":"en",this.configs[this.configLang]&&(this.loadConfig(this.configs[this.configLang]),this.loadEditor&&(this.$refs.mainEditor.updateSlides(this.slides),this.$nextTick(()=>{this.$refs.mainEditor.selectSlide(-1)})))}checkUuid(){this.loadExisting||fetch("http://localhost:6040/retrieve/"+this.uuid).then(e=>{404!==e.status&&(this.warning=!0)}),this.warning=!1}beforeRouteUpdate(e,t,a){this.uuid=e.params.uid,this.$i18n.locale=e.params.lang,a()}onLogoSourceInput(e){const t=e=>{const t=new Image;return t.src=e,new Promise(e=>{t.onerror=()=>e(!1),t.onload=()=>e(!0)})};this.metadata.logoName=e.target.value,t(this.metadata.logoName).then(e=>{e?(this.metadata.logoPreview=this.metadata.logoName,z["a"].success("Successfully loaded logo image.")):(this.metadata.logoPreview="error",z["a"].error("Failed to load logo image."))})}onFileChange(e){const t=e.target.files[0];this.logoImage=t,this.metadata.logoPreview=URL.createObjectURL(t),this.metadata.logoName=t.name}updateEditorPath(){"editor"!==this.$route.name&&(this.$router.beforeEach(e=>{"editor"===e.name&&(e.meta.data={configLang:this.configLang,configs:this.configs,configFileStructure:this.configFileStructure,sourceCounts:this.sourceCounts,metadata:this.metadata,slides:this.slides,existing:this.editExisting})}),this.$router.push({name:"editor",params:{uid:this.uuid}}))}checkRequiredFields(){return this.reqFields.uuid=!!this.uuid,!Object.values(this.reqFields).some(e=>!e)||(z["a"].error("Please fill out the required fields before proceeding."),!1)}continueToEditor(){var e;this.checkRequiredFields()&&(this.loadExisting?void 0!==this.configs[this.configLang]&&this.uuid===(null===(e=this.configFileStructure)||void 0===e?void 0:e.uuid)?(this.loadEditor=!0,this.updateEditorPath()):z["a"].error("No config exists for storylines product."):this.uuid?this.generateNewConfig():(z["a"].error("Missing required field: UUID"),this.error=!0))}updateSaveStatus(e){this.unsavedChanges=e}refreshConfig(){this.loadExisting?(this.reloadExisting=!0,this.loadExisting=!1,this.generateRemoteConfig()):(this.reloadExisting=!1,this.generateNewConfig())}beforeRouteLeave(e,t,a){const i="editor"===this.$route.name,l="Leave the page? Changes made may not be saved.";this.unsavedChanges&&i&&!window.confirm(l)?a(!1):a()}};Object(r["a"])([Object(n["b"])({default:!0})],Mo.prototype,"editExisting",void 0),Mo=Object(r["a"])([Object(n["a"])({components:{Editor:ko,"confirmation-modal":it,"metadata-content":to,spinner:P["a"],"slide-editor":Li,"slide-toc":vl,"vue-final-modal":U["a"]}})],Mo);var Lo=Mo;a("a26f");const $o=d()(Lo,[["render",A]]);var Io=$o;const Bo={key:0},Do={class:"block py-20 align-middle text-center h-full",style:{margin:"0 auto"}},Fo={key:1},Ro={key:0,class:"storyramp-app bg-white"},Ao={class:"sticky top-0 z-50 flex border-b border-black bg-gray-200 py-2 px-2 justify-between"},Po={class:"w-mobile-full truncate"},Uo={class:"font-semibold text-lg m-1"},zo={class:"w-full mx-auto pb-10",id:"story"},Wo={class:"p-8 pt-2 text-right text-sm"},qo=["href"],Xo=Object(i["createElementVNode"])("a",{href:"https://github.com/ramp4-pcar4/storylines-editor",target:"_NEW",class:"font-semibold text-blue-700"},"ramp4-pcar4/storylines-editor",-1),Ho={key:0,class:"storyramp-modified"};function Go(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("spinner"),s=Object(i["resolveComponent"])("storylines-intro"),c=Object(i["resolveComponent"])("storylines-content");return"loading"===e.loadStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Bo,[Object(i["createElementVNode"])("div",Do,[Object(i["createVNode"])(n,{size:"120px",color:"#009cd1",style:{margin:"0 auto"}})])])):"loaded"===e.loadStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Fo,[void 0!==e.config?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ro,[Object(i["createElementVNode"])("header",Ao,[Object(i["createElementVNode"])("div",Po,[Object(i["createElementVNode"])("span",Uo,Object(i["toDisplayString"])(e.config.title),1)])]),Object(i["createVNode"])(s,{config:e.config.introSlide,configFileStructure:e.configFileStructure},null,8,["config","configFileStructure"]),Object(i["createElementVNode"])("div",zo,[Object(i["createVNode"])(c,{config:e.config,configFileStructure:e.configFileStructure,lang:e.lang,plugin:!0,onStep:e.updateActiveIndex},null,8,["config","configFileStructure","lang","onStep"])]),Object(i["createElementVNode"])("footer",Wo,[Object(i["createTextVNode"])(" Context: "),Object(i["createElementVNode"])("a",{class:"text-blue-700 font-semibold",href:e.config.contextLink,target:"_NEW"},Object(i["toDisplayString"])(e.config.contextLabel),9,qo),Object(i["createTextVNode"])(" | "),Xo]),e.config.dateModified?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ho,Object(i["toDisplayString"])(e.$t("story.date"))+" "+Object(i["toDisplayString"])(e.config.dateModified),1)):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0)}let Jo=class extends n["c"]{constructor(){super(...arguments),this.config=void 0,this.configFileStructure=void 0,this.savedProduct=!1,this.loadStatus="loading",this.activeChapterIndex=-1,this.lang="en",this.uid=""}created(){const e=this.$route.params.uid,t=this.$route.params.lang;e?(this.savedProduct=!0,fetch(`http://localhost:6040/retrieve/${e}/${t}`).then(t=>{404===t.status?console.error(`There does not exist a saved product with UID ${e}.`):t.json().then(e=>{this.config=e,this.loadStatus="loaded",document.title=this.config.title+" - Canada.ca"})})):(this.config=window.props.config,this.configFileStructure=window.props.configFileStructure,this.loadStatus="loaded");const a=document.documentElement;a.setAttribute("lang",this.lang),this.$i18n.locale=this.lang}updateActiveIndex(e){this.activeChapterIndex=e}};Jo=Object(r["a"])([Object(n["a"])({components:{spinner:P["a"]}})],Jo);var Zo=Jo;a("185b");const Qo=d()(Zo,[["render",Go]]);var Yo=Qo,Ko=a("6605");const er=[{path:"/:lang/editor",name:"home",component:y,meta:{title:"editor.window.title"}},{path:"/:lang/editor/:uid",redirect:"/:lang/editor-metadata/:uid"},{path:"/:lang/editor-metadata",name:"metadataExisting",component:Io,props:{editExisting:!0},meta:{title:"editor.window.title"}},{path:"/:lang/editor-metadata",name:"metadataNew",component:Io,props:{editExisting:!1},meta:{title:"editor.window.title"}},{path:"/:lang/editor-metadata/:uid",component:Io,meta:{title:"editor.window.title"}},{path:"/:lang/editor-main/:uid",name:"editor",component:Io,props:!0,meta:{title:"editor.window.title"}},{path:"/:lang/editor-preview",component:Yo,name:"preview",props:!0,meta:{title:"story.window.title"}},{path:"/:lang/editor-preview/:uid",component:Yo,meta:{title:"story.window.title"}}],tr=Object(Ko["a"])({routes:er,history:Object(Ko["b"])(),scrollBehavior:function(e){if(e.hash)return{selector:decodeURIComponent(e.hash),behavior:"smooth"}}});var ar=tr,ir=(a("38c8"),a("13d5"),a("9ca6"));const lr=a("3d6d"),or=document.documentElement.getAttribute("lang");function rr(e){return e.reduce((e,t)=>(e.en[t.key]=t.enValue,e.fr[t.key]=t.frValue,e),{en:{},fr:{}})}const nr=Object(ir["a"])({legacy:!1,locale:or||void 0,fallbackLocale:"en",globalInjection:!0,messages:rr(lr)});var sr=a("ee2d"),cr=a.n(sr),dr=(a("fefe"),a("603a")),ur=a.n(dr),mr=(a("fbc4"),a("3b16")),pr=a.n(mr),gr=a("1487"),hr=a.n(gr),br=(a("40e8"),a("c4e7")),fr=(a("52df"),a("e748"),a("4452")),vr=a.n(fr),Or=(a("e896"),a("fc01")),jr=a.n(Or);a("3df5");cr.a.lang.use("en-US",pr.a),cr.a.use(ur.a,{Hljs:hr.a});const Vr=Object(U["b"])(),yr=Object(i["createApp"])(m);yr.use(ar).use(nr).use(br["a"],{directive:"tippy",component:"tippy"}).use(vr.a).use(z["a"]).use(jr.a).use(cr.a).use(Vr),yr.mount("#app")},d618:function(e,t,a){"use strict";a("c3a4")},d866:function(e,t,a){},dd0c:function(e,t,a){},ea6b:function(e){e.exports=JSON.parse('{"comment":"","version":"3.3.2","language":"fr","ui":{"title":"Carte interactive","fullscreen":true,"navBar":{"zoom":"buttons","extra":["fullscreen","geoLocator","home","help"]},"appBar":{"basemap":true},"help":{"folderName":"default"},"sideMenu":{"items":[["fullscreen","export","touch","help","about"]],"logo":false},"legend":{"allowImport":false,"isOpen":{"large":true,"medium":false,"small":false}}},"services":{"proxyUrl":"https://maps.canada.ca/wmsproxy/ws/wmsproxy/executeFromProxy","exportMapUrl":"https://maps-cartes.ec.gc.ca/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task","export":{"title":{"value":""},"map":{},"mapElements":{},"legend":{},"footnote":{"value":""}},"search":{"settings":{"categories":["CITY","HAM","IR","LTM","MUN1","MUN2","PROV","STM","TERR","TOWN","UTM","VILG","UNP"],"sortOrder":["CITY","HAM","IR","LTM","MUN1","MUN2","PROV","STM","TERR","TOWN","UTM","VILG","UNP"],"maxResults":1000,"officialOnly":true},"serviceUrls":{"geoNames":"https://geogratis.gc.ca/services/geoname/fr/geonames.json","geoLocation":"https://geogratis.gc.ca/services/geolocation/fr/locate?q=","geoSuggest":"https://geogratis.gc.ca/services/geolocation/fr/suggest?q=","provinces":"https://geogratis.gc.ca/services/geoname/fr/codes/province.json","types":"https://geogratis.gc.ca/services/geoname/fr/codes/concise.json"}}},"map":{"initialBasemapId":"baseNrCan","components":{"geoSearch":{"enabled":true,"showGraphic":true,"showInfo":true},"mouseInfo":{"enabled":true,"spatialReference":{"wkid":4326}},"northArrow":{"enabled":false},"basemap":{"enabled":true},"overviewMap":{"enabled":true,"layerType":"imagery"},"scaleBar":{"enabled":true}},"extentSets":[{"id":"EXT_NRCAN_Lambert_3978","default":{"xmax":3049492,"xmin":-5281457,"ymax":4482193,"ymin":-983440},"spatialReference":{"wkid":3978}},{"id":"EXT_ESRI_World_AuxMerc_3857","default":{"xmax":-5007771.626060756,"xmin":-16632697.354854,"ymax":10015875.184845109,"ymin":5022907.964742964},"spatialReference":{"wkid":102100,"latestWkid":3857}}],"lodSets":[{"id":"LOD_NRCAN_Lambert_3978","lods":[{"level":0,"resolution":38364.660062653464,"scale":145000000},{"level":1,"resolution":22489.62831258996,"scale":85000000},{"level":2,"resolution":13229.193125052918,"scale":50000000},{"level":3,"resolution":7937.5158750317505,"scale":30000000},{"level":4,"resolution":4630.2175937685215,"scale":17500000},{"level":5,"resolution":2645.8386250105837,"scale":10000000},{"level":6,"resolution":1587.5031750063501,"scale":6000000},{"level":7,"resolution":926.0435187537042,"scale":3500000},{"level":8,"resolution":529.1677250021168,"scale":2000000},{"level":9,"resolution":317.50063500127004,"scale":1200000},{"level":10,"resolution":185.20870375074085,"scale":700000},{"level":11,"resolution":111.12522225044451,"scale":420000},{"level":12,"resolution":66.1459656252646,"scale":250000},{"level":13,"resolution":38.36466006265346,"scale":145000},{"level":14,"resolution":22.48962831258996,"scale":85000},{"level":15,"resolution":13.229193125052918,"scale":50000},{"level":16,"resolution":7.9375158750317505,"scale":30000},{"level":17,"resolution":4.6302175937685215,"scale":17500}]},{"id":"LOD_ESRI_World_AuxMerc_3857","lods":[{"level":0,"resolution":19567.87924099992,"scale":73957190.948944},{"level":1,"resolution":9783.93962049996,"scale":36978595.474472},{"level":2,"resolution":4891.96981024998,"scale":18489297.737236},{"level":3,"resolution":2445.98490512499,"scale":9244648.868618},{"level":4,"resolution":1222.992452562495,"scale":4622324.434309},{"level":5,"resolution":611.4962262813797,"scale":2311162.217155},{"level":6,"resolution":305.74811314055756,"scale":1155581.108577},{"level":7,"resolution":152.87405657041106,"scale":577790.554289},{"level":8,"resolution":76.43702828507324,"scale":288895.277144},{"level":9,"resolution":38.21851414253662,"scale":144447.638572},{"level":10,"resolution":19.10925707126831,"scale":72223.819286},{"level":11,"resolution":9.554628535634155,"scale":36111.909643},{"level":12,"resolution":4.77731426794937,"scale":18055.954822},{"level":13,"resolution":2.388657133974685,"scale":9027.977411},{"level":14,"resolution":1.1943285668550503,"scale":4513.988705},{"level":15,"resolution":0.5971642835598172,"scale":2256.994353},{"level":16,"resolution":0.29858214164761665,"scale":1128.497176},{"level":17,"resolution":0.14929107082380833,"scale":564.248588},{"level":18,"resolution":0.07464553541190416,"scale":282.124294},{"level":19,"resolution":0.03732276770595208,"scale":141.062147},{"level":20,"resolution":0.01866138385297604,"scale":70.5310735}]}],"legend":{"type":"autopopulate"},"layers":[],"tileSchemas":[{"id":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978","name":"Lambert Maps","extentSetId":"EXT_NRCAN_Lambert_3978","lodSetId":"LOD_NRCAN_Lambert_3978","hasNorthPole":true},{"id":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857","name":"Web Mercator Maps","extentSetId":"EXT_ESRI_World_AuxMerc_3857","lodSetId":"LOD_ESRI_World_AuxMerc_3857"}],"baseMaps":[{"id":"baseNrCan","name":"Carte de base du Canada – transport (CBCT) avec étiquettes","description":"La carte de base du Canada – transport (CBCT) du Secteur des sciences de la Terre de Ressources naturelles Canada est un service Internet qui s\'adresse principalement aux utilisateurs et développeurs d\'applications cartographiques en ligne.","altText":"La carte de base du Canada – transport (CBCT)","layers":[{"id":"CBCT","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBCT3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseSimple","name":"Carte de base du Canada - simple","description":"La carte de base du Canada - simple","altText":"La carte de base du Canada - simple","layers":[{"id":"SMR","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/Simple/MapServer"},{"id":"SMW","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT_TXT_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseCBME_CBCE_HS_RO_3978","name":"Carte de base du Canada - élevation (CBCE)","description":"La carte de base du Canada - élevation (CBCE) du Secteur des sciences de la Terre de Ressources naturelles Canada est un service Internet qui s\'adresse principalement aux utilisateurs et développeurs d\'applications cartographiques en ligne.","altText":"La carte de base du Canada - élevation (CBCE)","layers":[{"id":"CBME_CBCE_HS_RO_3978","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBME_CBCE_HS_RO_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseCBMT_CBCT_GEOM_3978","name":"Carte de base du Canada - transport (CBCT)","description":"La carte de base du Canada - transport (CBCT) du Secteur des sciences de la Terre de Ressources naturelles Canada est un service Internet qui s\'adresse principalement aux utilisateurs et développeurs d\'applications cartographiques en ligne.","altText":"La carte de base du Canada - transport (CBCT)","layers":[{"id":"CBMT_CBCT_GEOM_3978","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT_CBCT_GEOM_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseEsriWorld","name":"Imagerie mondiale","description":"L\'imagerie mondiale fournit une imagerie satellitaire et aérienne dans de nombreuses régions du monde avec une résolution de 1 mètres et moins et des images satellitaires de résolution inférieure dans le monde entier.","altText":"L\'imagerie mondiale","layers":[{"id":"World_Imagery","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriPhysical","name":"Monde physique","description":"La carte du monde physique représente l\'aspect physique naturel de la Terre à 1.24 kilomètres par pixel pour le monde et à 500 mètres pour les États-Unis.","altText":"La carte du monde physique","layers":[{"id":"World_Physical_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Physical_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriRelief","name":"Monde en relief ombragé","description":"La carte du monde en relief ombragé représente l\'élévation de la surface de la terre comme un relief ombragé. Cette carte est utilisée comme couche de fond afin d\'ajouter un relief ombragé à d\'autres cartes SIG, comme la carte ArcGIS Online World Street Map.","altText":"La carte du monde en relief ombragé","layers":[{"id":"World_Shaded_Relief","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Shaded_Relief/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriStreet","name":"Monde routier","description":"La carte du monde routier présente des données au niveau des autoroutes pour le monde.","altText":"La carte du monde routier","layers":[{"id":"World_Street_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriTerrain","name":"Monde terrain","description":"La carte du monde terrain est conçue pour être utilisée comme une carte de base par les professionnels du SIG pour superposer d\'autres couches thématiques comme la démographie ou la couverture terrestre.","altText":"La carte du monde terrain","layers":[{"id":"World_Terrain_Base","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriTopo","name":"Monde topographique","description":"La carte du monde topographique est conçue pour être utilisé comme une carte de base par les professionnels du SIG et comme une carte de référence par quiconque.","altText":"La carte du monde topographique","layers":[{"id":"World_Topo_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"}]}}')},ed05:function(e,t,a){},f1a5:function(e,t,a){"use strict";a("fe34")},f850:function(e,t,a){},fe34:function(e,t,a){},ff0d:function(e,t,a){"use strict";a("9866")}}]); +//# sourceMappingURL=chunk-common.e3af61b6.js.map \ No newline at end of file diff --git a/vue3-refactor/js/chunk-common.e3af61b6.js.map b/vue3-refactor/js/chunk-common.e3af61b6.js.map new file mode 100644 index 00000000..920b2b26 --- /dev/null +++ b/vue3-refactor/js/chunk-common.e3af61b6.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/components/editor/map-editor.vue?c470","webpack:///./src/components/editor/text-editor.vue?f424","webpack:///./src/components/editor/preview.vue?9e59","webpack:///./src/components/editor/helpers/confirmation-modal.vue?d920","webpack:///./src/lang/lang.csv","webpack:///./src/components/editor/helpers/image-preview.vue?a760","webpack:///./src/components/editor/image-editor.vue?1179","webpack:///./src/components/editor/chart-editor.vue?9d5f","webpack:///./src/components/editor/dynamic-editor.vue?c227","webpack:///./src/components/editor/landing.vue?1abe","webpack:///./src/app.vue?b13b","webpack:///./src/components/editor/metadata-editor.vue?9292","webpack:///./src/components/editor/editor.vue?0b2e","webpack:///./src/components/editor/helpers/chart-preview.vue?5e6f","webpack:///./src/app.vue?6e82","webpack:///./src/app.vue","webpack:///./src/app.vue?cab0","webpack:///./src/router/componentHooks.ts","webpack:///./src/components/editor/landing.vue?019b","webpack:///./src/components/editor/landing.vue","webpack:///./src/components/editor/landing.vue?d196","webpack:///./src/components/editor/metadata-editor.vue?6490","webpack:///./src/components/editor/slide-editor.vue?2802","webpack:///./src/definitions.ts","webpack:///./src/components/editor/chart-editor.vue?c895","webpack:///./src/components/editor/helpers/chart-preview.vue?0c89","webpack:///./src/components/editor/helpers/chart-preview.vue","webpack:///./src/components/editor/helpers/chart-preview.vue?9be4","webpack:///./src/components/editor/helpers/confirmation-modal.vue?7578","webpack:///./src/components/editor/helpers/confirmation-modal.vue","webpack:///./src/components/editor/helpers/confirmation-modal.vue?7a7e","webpack:///./src/components/editor/chart-editor.vue","webpack:///./src/components/editor/chart-editor.vue?c3f9","webpack:///./src/components/editor/image-editor.vue?5fe5","webpack:///./src/components/editor/helpers/image-preview.vue?4408","webpack:///./src/components/editor/helpers/image-preview.vue","webpack:///./src/components/editor/helpers/image-preview.vue?88c4","webpack:///./src/components/editor/image-editor.vue","webpack:///./src/components/editor/image-editor.vue?2e57","webpack:///./src/components/editor/text-editor.vue?ef39","webpack:///./src/components/editor/text-editor.vue","webpack:///./src/components/editor/text-editor.vue?17bf","webpack:///./src/components/editor/map-editor.vue?72ba","webpack:///./src/components/editor/helpers/time-slider-editor.vue?44e1","webpack:///./src/components/editor/helpers/time-slider-editor.vue","webpack:///./src/components/editor/helpers/time-slider-editor.vue?434f","webpack:///./src/components/editor/map-editor.vue","webpack:///./src/components/editor/map-editor.vue?c2ed","webpack:///./src/components/editor/helpers/loading-page.vue?49c2","webpack:///./src/components/editor/helpers/loading-page.vue","webpack:///./src/components/editor/helpers/loading-page.vue?ec39","webpack:///./src/components/editor/dynamic-editor.vue?e294","webpack:///./src/components/editor/dynamic-editor.vue","webpack:///./src/components/editor/dynamic-editor.vue?bfae","webpack:///./src/components/editor/slide-editor.vue","webpack:///./src/components/editor/slide-editor.vue?a04f","webpack:///./src/components/editor/slide-toc.vue?6242","webpack:///./src/components/editor/slide-toc.vue","webpack:///./src/components/editor/slide-toc.vue?e6ed","webpack:///./src/components/editor/helpers/metadata-content.vue?233e","webpack:///./src/components/editor/helpers/metadata-content.vue","webpack:///./src/components/editor/helpers/metadata-content.vue?f1f6","webpack:///./src/components/editor/editor.vue?2a09","webpack:///./src/components/editor/editor.vue","webpack:///./src/components/editor/editor.vue?f9b7","webpack:///./src/components/editor/metadata-editor.vue","webpack:///./src/components/editor/metadata-editor.vue?356d","webpack:///./src/components/editor/preview.vue?bbfd","webpack:///./src/components/editor/preview.vue","webpack:///./src/components/editor/preview.vue?ca3e","webpack:///./src/router/index.ts","webpack:///./src/lang/index.ts","webpack:///./src/main.ts","webpack:///./src/components/editor/helpers/time-slider-editor.vue?056d","webpack:///./src/components/editor/slide-toc.vue?bd44","webpack:///./src/components/editor/slide-editor.vue?776d"],"names":["res","columns","module","exports","_hoisted_1","id","class","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_createBlock","key","$route","path","App","Vue","onRouteUpdate","to","_to$params$lang","this","$i18n","locale","params","lang","document","title","$t","meta","__decorate","Watch","immediate","__exports__","registerHooks","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_component_router_link","_createElementVNode","_createVNode","name","target","default","_withCtx","_toDisplayString","_","LandingV","_hoisted_6","_hoisted_7","_hoisted_8","viewBox","width","height","xmlns","d","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","slot","_hoisted_17","_component_spinner","_component_metadata_content","_component_confirmation_modal","_component_vue_final_modal","_component_editor","loadEditor","_createCommentVNode","_Fragment","editExisting","onClick","$event","swapLang","configLang","reqFields","_createTextVNode","_withDirectives","type","onInput","error","uuid","checkUuid","_normalizeClass","_vModelText","warning","args","generateRemoteConfig","loadStatus","size","color","metadata","onMetadataChanged","updateMetadata","onLogoChanged","onFileChange","onLogoSourceChanged","onLogoSourceInput","saveMetadata","$vfm","open","continueToEditor","message","onOk","configs","configFileStructure","sourceCounts","slides","saving","unsavedChanges","onSaveChanges","generateConfig","onSaveStatus","updateSaveStatus","onRefreshConfig","refreshConfig","ref","langModal","slotProps","_withModifiers","metadataModal","modalId","_withScopeId","n","_pushScopeId","_popScopeId","_createStaticVNode","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","currentSlide","placeholder","selectSlide","slideIndex","disabled","isLast","rightOnly","panel","panelIndex","onChange","_vModelCheckbox","length","saveChanges","newType","value","_renderList","Object","keys","editors","filter","editor","thing","_resolveDynamicComponent","uid","changePanelType","onCancel","cancelTypeChange","toggleRightOnly","PanelType","_component_ChartPreview","_component_draggable","num","chartConfigs","clearEditor","modelValue","handle","onUpdate","onChartsEdited","item","element","index","chart","onEdit","editChart","onDelete","_vShow","idx","deleteChart","fill","_component_storylines_chart","_directive_tippy","_resolveDirective","$emit","content","placement","hideOnClick","animateFill","loading","config","chartConfig","chartIdx","onLoaded","loadChart","chartName","ChartPreviewV","constructor","modalEditor","undefined","mounted","chartOptions","_chartOptions$data","highed","ModalEditor","allowDone","features","importer","options","defaultChartOptions","newChart","JSON","parse","text","src","oldChart","data","csv","csvData","dataTable","loadCSV","convertSeriesToCSV","setAll","_chartOptions$chart","seriesData","series","_chartOptions$yAxis","yAxis","map","row","y","join","xAxis","_chartOptions$xAxis","_chartOptions$xAxis2","catoData","concat","categories","unshift","Prop","MetadataEditorV","close","Options","components","VueFinalModal","ChartEditorV","edited","ready","createNewChart","toString","charts","match","replace","subtitle","credits","enabled","defaultTableData","chartInfo","some","alert","chartSrc","file","stringify","push","findIndex","chartFile","oldName","remove","newName","splice","ChartPreview","ConfirmationModalV","draggable","_component_ImagePreview","dragging","isDragging","onDragover","onDragleave","onDrop","dropImages","multiple","imagePreviewsLoading","imagePreviews","onImagesEdited","imageFile","deleteImage","altText","caption","slideshowCaption","alt","_renderSlot","$slots","ImagePreviewV","ImageEditorV","imagePreviewPromises","images","image","assetSrc","substring","indexOf","filename","assetFile","zip","async","then","URL","createObjectURL","Promise","all","e","filelist","Array","from","files","uploadSource","assets","imageSrc","dataTransfer","img","fileSource","revokeObjectURL","_this$slideshowCaptio","Image","ImagePreview","_component_v_md_editor","toolbar","TextEditorV","subsuper","menus","action","insert","selected","addLink","icon","style","_hoisted_19","_hoisted_23","_component_time_slider_editor","status","saveScrollguard","scrollguard","saveTimeSlider","usingTimeSlider","newFileName","createNewConfig","openEditor","timeSliderConf","timeSliderError","onTimeSliderChanged","onTimeSliderInput","range","start","attribute","layers","TimeSliderEditorV","MapEditorV","timeSlider","strippedFileName","split","_this$panel$timeSlide","_this$panel$timeSlide2","_this$panel$timeSlide3","_this$panel$timeSlide4","_this$panel$timeSlide5","_this$panel$timeSlide6","window","addEventListener","saveEditor","Date","getFullYear","validateTimeSlider","beforeDestroy","removeEventListener","rampConfig","defaultConfigEn","defaultConfigFr","configFile","iframe","getElementById","contentWindow","configname","fetch","json","stringResponse","checked","localStorage","RAMPconfig","property","layerId","trim","Number","val","isInteger","LoadingPageV","spinner","VueSpinnerOval","changePanel","editingStatus","children","switchSlide","removeSlide","newSlideName","idUsed","newSlideType","_vModelSelect","createNewSlide","editingSlide","DynamicEditorV","DynamicEditorV_1","slideshow","startingConfig","Text","dynamic","Dynamic","titleTag","Slideshow","Chart","Map","ch","_this$panel$children$","find","mapPanel","chartPanel","forEach","slideshowPanel","newConfig","$nextTick","$refs","slide","SlideEditorV","onSlideChange","prevType","removeSourceCounts","dynamicPanel","subPanel","typeSelector","assign","deep","addNewSlide","delay","copyAllFromOtherLang","selectedForCopying","copyFromOtherLang","copySlide","moveUp","moveDown","SlideTocV","cloneDeep","deletedIndex","_this$slides$find","p","removeSourceHelper","_hoisted_33","metadataChanged","introTitle","introSubtitle","logoPreview","logoName","openFileSelector","removeLogo","logoAltText","contextLink","contextLabel","dateModified","_document$getElementB","click","event","transform","_component_slide_toc","_component_slide_editor","_Transition","_normalizeProps","_guardReactiveProps","preview","onSlidesUpdated","updateSlides","onSlideEdit","onSlidesEdited","EditorV","logoImage","loadSlides","onMetadataEdited","created","beforeWindowUnload","observer","IntersectionObserver","classList","toggle","intersectionRatio","threshold","observe","querySelector","setTimeout","scrollTo","routeData","$router","resolve","previewTab","href","props","confirm","preventDefault","returnValue","MetadataContentV","JSZip","require","axios","v4","uuidv4","en","fr","loadExisting","reloadExisting","_this$$route$params$u","curDate","year","month","getMonth","padStart","day","getDate","_this$configs$this$co","existing","logo","introSlide","logoSrc","_this$configFileStruc","logoFile","File","blob","generateNewConfig","configZip","configHelper","includes","_this$logoImage","otherLang","formattedOtherLangConfig","fileName","formattedConfigFile","configFileStructureHelper","_this$uuid","Message","clearConfig","loadAsync","catch","findSources","_configs$lang","_configs$lang2","incrementSourceCount","panelSourceHelper","uploadLogo","assetsFolder","folder","chartsFolder","rampConfigFolder","loadConfig","useConfig","_this$configFileStruc2","_this$configFileStruc3","enFile","frFile","_this$uuid2","success","updateEditorPath","_config$introSlide$lo","newSlide","_config$introSlide$lo2","_this$configFileStruc4","_this$configFileStruc5","_this$configFileStruc6","generateAsync","formData","FormData","append","headers","post","finally","publish","_this$logoImage2","_this$configFileStruc7","_this$logoImage3","mainEditor","beforeRouteUpdate","next","isImgUrl","url","onerror","onload","uploadedFile","beforeEach","checkRequiredFields","values","field","_this$configFileStruc8","payload","beforeRouteLeave","curEditor","confirmationMessage","Editor","_component_storylines_intro","_component_storylines_content","plugin","onStep","updateActiveIndex","StoryPreviewV","savedProduct","activeChapterIndex","console","html","documentElement","setAttribute","routes","component","redirect","router","createRouter","history","createWebHashHistory","scrollBehavior","hash","selector","decodeURIComponent","behavior","rows","getAttribute","fold","reduce","enValue","frValue","i18n","createI18n","legacy","fallbackLocale","globalInjection","messages","VueMarkdownEditor","use","enUS","githubTheme","Hljs","hljs","vfm","createVfm","app","createApp","VueTippy","directive","HighchartsVue","StorylinesViewer","mount"],"mappings":"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","file":"js/chunk-common.e3af61b6.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./map-editor.vue?vue&type=style&index=0&id=681c9c6b&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./text-editor.vue?vue&type=style&index=0&id=b0fb221e&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./preview.vue?vue&type=style&index=0&id=c0d876e0&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./confirmation-modal.vue?vue&type=style&index=0&id=4ed11748&scoped=true&lang=css\"","var res = [{\"key\":\"chapters.title\",\"enValue\":\"Chapters\",\"enValid\":\"1\",\"frValue\":\"Chapitres\",\"frValid\":\"1\"},{\"key\":\"chapters.return\",\"enValue\":\"Return to top\",\"enValid\":\"1\",\"frValue\":\"Retournez en haut\",\"frValid\":\"1\"},{\"key\":\"chapters.menu\",\"enValue\":\"Toggle menu\",\"enValid\":\"1\",\"frValue\":\"Menu à bascule\",\"frValid\":\"1\"},{\"key\":\"scrollguard.desc\",\"enValue\":\"Use ctrl + scroll to zoom the map\",\"enValid\":\"1\",\"frValue\":\"Utilisez les touches Ctrl et + pour faire un zoom de la carte\",\"frValid\":\"1\"},{\"key\":\"story.window.title\",\"enValue\":\"RAMP Storylines\",\"enValid\":\"1\",\"frValue\":\"RAMP Storylines\",\"frValid\":\"0\"},{\"key\":\"story.date\",\"enValue\":\"Date modified:\",\"enValid\":\"1\",\"frValue\":\"Date de modification:\",\"frValid\":\"1\"},{\"key\":\"story.error\",\"enValue\":\"An error occurred while loading this Storylines product. See developer console for more information.\",\"enValid\":\"1\",\"frValue\":\"Une erreur est survenue pendant le chargement ce synopsis produit. Voir la console du promoteur pour obtenir de plus amples renseignements.\",\"frValid\":\"1\"},{\"key\":\"image.fullscreen\",\"enValue\":\"Full Screen\",\"enValid\":\"1\",\"frValue\":\"Plein Écran\",\"frValid\":\"1\"},{\"key\":\"dynamic.back\",\"enValue\":\"Back\",\"enValid\":\"1\",\"frValue\":\"Retour\",\"frValid\":\"0\"},{\"key\":\"dynamic.textSection\",\"enValue\":\"Text Section\",\"enValid\":\"1\",\"frValue\":\"Section de texte\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.collection\",\"enValue\":\"Panel Collection\",\"enValid\":\"1\",\"frValue\":\"Collection de panneaux\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.id\",\"enValue\":\"Panel ID\",\"enValid\":\"1\",\"frValue\":\"No d’identification du panneau\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.type\",\"enValue\":\"Panel Type\",\"enValid\":\"1\",\"frValue\":\"Type de panneaux\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.actions\",\"enValue\":\"Panel Actions\",\"enValid\":\"1\",\"frValue\":\"Actions du panneau\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.idTaken\",\"enValue\":\"Panel ID is already\",\"enValid\":\"1\",\"frValue\":\"Le nom du panneau est déjà utilisé\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.editor\",\"enValue\":\"Panel Editor:\",\"enValid\":\"1\",\"frValue\":\"Éditeur de panneaux:\",\"frValid\":\"1\"},{\"key\":\"timeslider.expand\",\"enValue\":\"Expand\",\"enValid\":\"1\",\"frValue\":\"Développer\",\"frValid\":\"1\"},{\"key\":\"timeslider.minimize\",\"enValue\":\"Minimize\",\"enValid\":\"1\",\"frValue\":\"Réduire\",\"frValid\":\"1\"},{\"key\":\"timeslider.play\",\"enValue\":\"Play\",\"enValid\":\"1\",\"frValue\":\"Lecture\",\"frValid\":\"1\"},{\"key\":\"timeslider.pause\",\"enValue\":\"Pause\",\"enValid\":\"1\",\"frValue\":\"Pause\",\"frValid\":\"1\"},{\"key\":\"fullscreen.activate\",\"enValue\":\"Enter Fullscreen\",\"enValid\":\"1\",\"frValue\":\"Afficher le mode plein écran\",\"frValid\":\"1\"},{\"key\":\"fullscreen.deactivate\",\"enValue\":\"Exit Fullscreen\",\"enValid\":\"1\",\"frValue\":\"Quitter le mode plein écran\",\"frValid\":\"1\"},{\"key\":\"editor.window.title\",\"enValue\":\"RAMP Storylines Editor\",\"enValid\":\"1\",\"frValue\":\"Éditeur de scénarios de la PCAR\",\"frValid\":\"1\"},{\"key\":\"editor.createProduct\",\"enValue\":\"Create New Storylines Product\",\"enValid\":\"1\",\"frValue\":\"Créer un nouveau produit de scénarios\",\"frValid\":\"1\"},{\"key\":\"editor.editProduct\",\"enValue\":\"Edit Existing Storylines Product\",\"enValid\":\"1\",\"frValue\":\"Modifier un produit de scénarios\",\"frValid\":\"1\"},{\"key\":\"editor.editMetadata\",\"enValue\":\"Edit Project Metadata\",\"enValid\":\"1\",\"frValue\":\"Modifier les métadonnées d’un projet\",\"frValid\":\"1\"},{\"key\":\"editor.productDetails\",\"enValue\":\"Storylines product details\",\"enValid\":\"1\",\"frValue\":\"Détails du produit de scénarios\",\"frValid\":\"1\"},{\"key\":\"editor.metadata.instructions\",\"enValue\":\"Fill in metadata details about your new Storylines product. Use the \\\"Preview\\\" button to see what your slides will look like.\",\"enValid\":\"1\",\"frValue\":\"Inscrivez les métadonnées de votre nouveau produit de scénario. Utilisez la fonction « Afficher l’aperçu » pour voir à quoi ressemblent vos diapositives.\",\"frValid\":\"1\"},{\"key\":\"editor.uuid\",\"enValue\":\"UUID\",\"enValid\":\"1\",\"frValue\":\"UUID\",\"frValid\":\"0\"},{\"key\":\"editor.uuid.exists\",\"enValue\":\"UUID already exists. Saving this will overwrite existing product.\",\"enValid\":\"1\",\"frValue\":\"L’IDUU existe déjà. Enregistrer ce produit écrasera le produit existant.\",\"frValid\":\"1\"},{\"key\":\"editor.title\",\"enValue\":\"Title\",\"enValid\":\"1\",\"frValue\":\"Titre\",\"frValid\":\"1\"},{\"key\":\"editor.logo\",\"enValue\":\"Logo\",\"enValid\":\"1\",\"frValue\":\"Logo\",\"frValid\":\"1\"},{\"key\":\"editor.logoPreview\",\"enValue\":\"Logo Preview\",\"enValid\":\"1\",\"frValue\":\"Aperçu du logo\",\"frValid\":\"1\"},{\"key\":\"editor.logoAltText\",\"enValue\":\"Logo Alt Text\",\"enValid\":\"1\",\"frValue\":\"Lien contextuel\",\"frValid\":\"1\"},{\"key\":\"editor.logoAltText.desc\",\"enValue\":\"For accessibility purposes, provide description text for the logo.\",\"enValid\":\"1\",\"frValue\":\"Pour des raisons d'accessibilité, fournissez un texte descriptif pour le logo.\",\"frValid\":\"0\"},{\"key\":\"editor.contextLink\",\"enValue\":\"Context Link\",\"enValid\":\"1\",\"frValue\":\"Lien contextuel\",\"frValid\":\"1\"},{\"key\":\"editor.contextLink.info\",\"enValue\":\"Context link shows up at the bottom of the page to provide additional resources for interested users.\",\"enValid\":\"1\",\"frValue\":\"Le lien contextuel apparaît au bas de la page et fournit des ressources supplémentaires aux utilisateurs intéressés.\",\"frValid\":\"1\"},{\"key\":\"editor.contextLabel\",\"enValue\":\"Context Label\",\"enValid\":\"1\",\"frValue\":\"Étiquette de contexte\",\"frValid\":\"1\"},{\"key\":\"editor.contextLabel.info\",\"enValue\":\"Context label shows up before the context link to explain what the link is for\",\"enValid\":\"1\",\"frValue\":\"L’étiquette de contexte apparaît avant le lien contextuel et explique à quoi sert le lien.\",\"frValid\":\"1\"},{\"key\":\"editor.dateModified\",\"enValue\":\"Date Modified\",\"enValid\":\"1\",\"frValue\":\"Date de modification\",\"frValid\":\"1\"},{\"key\":\"editor.load\",\"enValue\":\"Load\",\"enValid\":\"1\",\"frValue\":\"Charger\",\"frValid\":\"1\"},{\"key\":\"editor.browse\",\"enValue\":\"Browse\",\"enValid\":\"1\",\"frValue\":\"Parcourir\",\"frValid\":\"1\"},{\"key\":\"editor.remove\",\"enValue\":\"Remove\",\"enValid\":\"1\",\"frValue\":\"Supprimer\",\"frValid\":\"1\"},{\"key\":\"editor.back\",\"enValue\":\"Back\",\"enValid\":\"1\",\"frValue\":\"Retour\",\"frValid\":\"1\"},{\"key\":\"editor.next\",\"enValue\":\"Next\",\"enValid\":\"1\",\"frValue\":\"Suivant\",\"frValid\":\"1\"},{\"key\":\"editor.preview\",\"enValue\":\"Preview\",\"enValid\":\"1\",\"frValue\":\"Afficher l’aperçu\",\"frValid\":\"1\"},{\"key\":\"editor.confirm\",\"enValue\":\"Confirm\",\"enValid\":\"1\",\"frValue\":\"Confirmer\",\"frValid\":\"1\"},{\"key\":\"editor.cancel\",\"enValue\":\"Cancel\",\"enValid\":\"1\",\"frValue\":\"Annuler\",\"frValid\":\"1\"},{\"key\":\"editor.unsavedChanges\",\"enValue\":\"Unsaved changes\",\"enValid\":\"1\",\"frValue\":\"Modifications non enregistrées\",\"frValid\":\"1\"},{\"key\":\"editor.saveChanges\",\"enValue\":\"Save Changes\",\"enValid\":\"1\",\"frValue\":\"Enregistrer les modifications\",\"frValid\":\"1\"},{\"key\":\"editor.savingChanges\",\"enValue\":\"Saving...\",\"enValid\":\"1\",\"frValue\":\"Enregistrement...\",\"frValid\":\"1\"},{\"key\":\"editor.resetChanges\",\"enValue\":\"Reset Changes\",\"enValid\":\"1\",\"frValue\":\"Annuler les modifications\",\"frValid\":\"1\"},{\"key\":\"editor.refreshChanges.modal\",\"enValue\":\"Are you sure you want to reload the product? All unsaved changes will be lost.\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment recharger ce produit? Toute modification non enregistrée sera perdue.\",\"frValid\":\"1\"},{\"key\":\"editor.changeLang.modal\",\"enValue\":\"Are you sure you want to switch languages? Unsaved changes may be lost.\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment changer de langue? Toute modification non enregistrée sera perdue.\",\"frValid\":\"1\"},{\"key\":\"editor.frenchConfig\",\"enValue\":\"View French Config\",\"enValid\":\"1\",\"frValue\":\"Afficher la configuration en français\",\"frValid\":\"1\"},{\"key\":\"editor.englishConfig\",\"enValue\":\"View English Config\",\"enValid\":\"1\",\"frValue\":\"Afficher la configuration en anglais\",\"frValid\":\"1\"},{\"key\":\"editor.returnToLanding\",\"enValue\":\"Return to Landing\",\"enValid\":\"1\",\"frValue\":\"Retour à la page d’accueil\",\"frValid\":\"1\"},{\"key\":\"editor.image.delete\",\"enValue\":\"Delete Image\",\"enValid\":\"1\",\"frValue\":\"Supprimer l'image\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.drag\",\"enValue\":\"Drag your images here\",\"enValid\":\"1\",\"frValue\":\"Faites glisser vos images ici\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.or\",\"enValue\":\"or\",\"enValid\":\"1\",\"frValue\":\"ou\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.browse\",\"enValue\":\"browse\",\"enValid\":\"1\",\"frValue\":\"parcourir\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.upload\",\"enValue\":\"to upload\",\"enValid\":\"1\",\"frValue\":\"téléverser\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.caption\",\"enValue\":\"Caption\",\"enValid\":\"1\",\"frValue\":\"Légende\",\"frValid\":\"1\"},{\"key\":\"editor.image.reorder\",\"enValue\":\"Click and drag to reorder images\",\"enValid\":\"1\",\"frValue\":\"Cliquez sur les images et faites-les glisser pour changer l’ordre.\",\"frValid\":\"1\"},{\"key\":\"editor.image.altTag\",\"enValue\":\"Alt tag\",\"enValid\":\"1\",\"frValue\":\"Texte de remplacement\",\"frValid\":\"1\"},{\"key\":\"editor.image.slideshowCaption\",\"enValue\":\"Slideshow Caption\",\"enValid\":\"1\",\"frValue\":\"Légende du diaporama\",\"frValid\":\"1\"},{\"key\":\"editor.image.loadingError\",\"enValue\":\"An error occurred when trying to load image\",\"enValid\":\"1\",\"frValue\":\"Une erreur est survenue lors du chargement de l’image.\",\"frValid\":\"1\"},{\"key\":\"editor.chart.delete\",\"enValue\":\"Delete Chart\",\"enValid\":\"1\",\"frValue\":\"Supprimer le graphique\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.name\",\"enValue\":\"Name\",\"enValid\":\"1\",\"frValue\":\"Nom\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.edit\",\"enValue\":\"Edit\",\"enValid\":\"1\",\"frValue\":\"Éditer\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.empty\",\"enValue\":\"Empty\",\"enValid\":\"1\",\"frValue\":\"Vide\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.create\",\"enValue\":\"Add new chart\",\"enValid\":\"1\",\"frValue\":\"Ajouter un nouveau graphique\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.info\",\"enValue\":\"Interactive charts ({num})\",\"enValid\":\"1\",\"frValue\":\"Graphiques interactifs ({num})\",\"frValid\":\"1\"},{\"key\":\"editor.chart.delete.confirm\",\"enValue\":\"Are you sure you want to delete the chart {name}?\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment supprimer le graphique {nom}?\",\"frValid\":\"1\"},{\"key\":\"editor.map.title\",\"enValue\":\"Map title\",\"enValid\":\"1\",\"frValue\":\"Titre de la carte\",\"frValid\":\"1\"},{\"key\":\"editor.map.edit.cancel\",\"enValue\":\"Cancel editing\",\"enValid\":\"1\",\"frValue\":\"Annuler les modifications\",\"frValid\":\"1\"},{\"key\":\"editor.map.edit\",\"enValue\":\"Map editor\",\"enValid\":\"1\",\"frValue\":\"Éditeur de carte\",\"frValid\":\"1\"},{\"key\":\"editor.map.label.name\",\"enValue\":\"Map config name\",\"enValid\":\"1\",\"frValue\":\"Nom de la configuration de la carte\",\"frValid\":\"1\"},{\"key\":\"editor.map.label.create\",\"enValue\":\"Create New Configuration File\",\"enValid\":\"1\",\"frValue\":\"Créer un nouveau fichier de configuration\",\"frValid\":\"1\"},{\"key\":\"editor.map.label.edit\",\"enValue\":\"Edit Map Configuration\",\"enValid\":\"1\",\"frValue\":\"Modifier la configuration de la carte\",\"frValid\":\"1\"},{\"key\":\"editor.map.scrollguard.enable\",\"enValue\":\"Enable scrollguard\",\"enValid\":\"1\",\"frValue\":\"Activer le contrôle du défilement\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.enable\",\"enValue\":\"Enable Time Slider:\",\"enValid\":\"1\",\"frValue\":\"Activer le curseur temporel:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.edit\",\"enValue\":\"Edit Time Slider Config\",\"enValid\":\"1\",\"frValue\":\"Modifier la configuration du curseur temporel\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.range\",\"enValue\":\"Range:\",\"enValid\":\"1\",\"frValue\":\"Tranche:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.start\",\"enValue\":\"Start:\",\"enValid\":\"1\",\"frValue\":\"Début:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.attribute\",\"enValue\":\"Attribute:\",\"enValid\":\"1\",\"frValue\":\"Caractéristique:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.layers\",\"enValue\":\"(OPTIONAL) Comma separated Layer IDs:\",\"enValid\":\"1\",\"frValue\":\"(OPTIONAL) Comma separated Layer IDs:\",\"frValid\":\"0\"},{\"key\":\"editor.map.timeslider.to\",\"enValue\":\"to\",\"enValid\":\"1\",\"frValue\":\"to\",\"frValid\":\"0\"},{\"key\":\"editor.map.timeslider.warning\",\"enValue\":\"⚠️Warning! Please ensure that:\",\"enValid\":\"1\",\"frValue\":\"⚠️Avertissement! Veuillez vous assurer de ce qui suit:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.warning.bullet1\",\"enValue\":\"All range and start values are positive integers.\",\"enValid\":\"1\",\"frValue\":\"Toutes les valeurs de la tranche et du début sont des nombres entiers positifs.\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.warning.bullet2\",\"enValue\":\"The \\\"to\\\" value is greater than or equal to the \\\"from\\\" value.\",\"enValid\":\"1\",\"frValue\":\"La valeur « À » est supérieure ou égale à la valeur « De ».\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.warning.end\",\"enValue\":\"Otherwise, your time slider config cannot be saved.\",\"enValid\":\"1\",\"frValue\":\"Autrement\",\"frValid\":\" la configuration du curseur temporel ne pourra pas être enregistrée.\"},{\"key\":\"editor.slides.title\",\"enValue\":\"SLIDES\",\"enValid\":\"1\",\"frValue\":\"DIAPOSITIVES\",\"frValid\":\"1\"},{\"key\":\"editor.slides.addSlide\",\"enValue\":\"New Slide\",\"enValid\":\"1\",\"frValue\":\"Nouvelle diapositive\",\"frValid\":\"1\"},{\"key\":\"editor.slides.copyFromLang\",\"enValue\":\"Copy slides from the other language\",\"enValid\":\"1\",\"frValue\":\"Copier les diapositives de l’autre langue\",\"frValid\":\"1\"},{\"key\":\"editor.slides.deleteSlide.confirm\",\"enValue\":\"Are you sure you want to delete the slide {title}?\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment supprimer la diapositive {titre}?\",\"frValid\":\"1\"},{\"key\":\"editor.slides.changeSlide.confirm\",\"enValue\":\"Are you sure you want to change the slide {title}? All unsaved progress will be lost.\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment modifier la diapositive {titre}? Toute modification non enregistrée sera perdue.\",\"frValid\":\"1\"},{\"key\":\"editor.slides.makeFull\",\"enValue\":\"Make the right panel the full slide\",\"enValid\":\"1\",\"frValue\":\"Mettre la diapositive complète dans le panneau de droite\",\"frValid\":\"1\"},{\"key\":\"editor.slides.copyAll\",\"enValue\":\"Copy all\",\"enValid\":\"1\",\"frValue\":\"Copier tout\",\"frValid\":\"1\"},{\"key\":\"editor.slides.copy\",\"enValue\":\"Copy\",\"enValid\":\"1\",\"frValue\":\"Copier\",\"frValid\":\"1\"},{\"key\":\"editor.slides.slide\",\"enValue\":\"Slide\",\"enValid\":\"1\",\"frValue\":\"Diapositive\",\"frValid\":\"1\"},{\"key\":\"editor.slides.previousSlide\",\"enValue\":\"Previous slide\",\"enValid\":\"1\",\"frValue\":\"Diapositive précédente\",\"frValid\":\"1\"},{\"key\":\"editor.slides.nextSlide\",\"enValue\":\"Next slide\",\"enValid\":\"1\",\"frValue\":\"Diapositive suivante\",\"frValid\":\"1\"},{\"key\":\"editor.slides.leftPanel\",\"enValue\":\"Left panel\",\"enValid\":\"1\",\"frValue\":\"Panneau de gauche\",\"frValid\":\"1\"},{\"key\":\"editor.slides.rightPanel\",\"enValue\":\"Right panel\",\"enValid\":\"1\",\"frValue\":\"Panneau de droite\",\"frValid\":\"1\"},{\"key\":\"editor.slides.fullscreenPanel\",\"enValue\":\"Fullscreen panel\",\"enValid\":\"1\",\"frValue\":\"Panneau plein écran\",\"frValid\":\"1\"},{\"key\":\"editor.slides.contentType\",\"enValue\":\"Content type\",\"enValid\":\"1\",\"frValue\":\"Type de contenu\",\"frValid\":\"1\"},{\"key\":\"editor.slides.content\",\"enValue\":\"Content\",\"enValid\":\"1\",\"frValue\":\"Contenu\",\"frValid\":\"1\"},{\"key\":\"editor.slides.select\",\"enValue\":\"Please select a slide to edit\",\"enValid\":\"1\",\"frValue\":\"Veuillez sélectionner une diapositive à modifier\",\"frValid\":\"1\"},{\"key\":\"editor.slides.panel.body\",\"enValue\":\"Panel body\",\"enValid\":\"1\",\"frValue\":\"Corps du panneau\",\"frValid\":\"1\"},{\"key\":\"editor.slides.panel.title\",\"enValue\":\"Panel title\",\"enValid\":\"1\",\"frValue\":\"Titre du panneau\",\"frValid\":\"1\"},{\"key\":\"editor.slides.intro\",\"enValue\":\"Intro subtitle\",\"enValid\":\"1\",\"frValue\":\"Sous-titre de l’introduction\",\"frValid\":\"1\"},{\"key\":\"editor.slides.title\",\"enValue\":\"Intro title\",\"enValid\":\"1\",\"frValue\":\"Titre de l’introduction\",\"frValid\":\"1\"}];res.columns = [\"key\",\"enValue\",\"enValid\",\"frValue\",\"frValid\"];module.exports = res;","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./image-preview.vue?vue&type=style&index=0&id=5bdf84fc&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./image-editor.vue?vue&type=style&index=0&id=56f26618&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./chart-editor.vue?vue&type=style&index=0&id=1bea39b8&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./dynamic-editor.vue?vue&type=style&index=0&id=2385e538&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./landing.vue?vue&type=style&index=0&id=79d08e02&lang=scss\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./app.vue?vue&type=style&index=0&id=7370f27a&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./metadata-editor.vue?vue&type=style&index=0&id=0c6bdccf&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./editor.vue?vue&type=style&index=0&id=5e860565&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./chart-preview.vue?vue&type=style&index=0&id=c922f560&lang=scss&scoped=true\"","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"app\",\n class: \"storyramp-app bg-white\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createBlock(_component_router_view, {\n key: _ctx.$route.path\n }))\n ]))\n}","\nimport { Vue, Watch } from 'vue-property-decorator';\nimport { RouteLocationNormalized } from 'vue-router';\n\nexport default class App extends Vue {\n @Watch('$route', { immediate: true })\n onRouteUpdate(to: RouteLocationNormalized): void {\n this.$i18n.locale = (to.params.lang as string) ?? 'en';\n if (to.params.lang) {\n document.title = this.$t(to.meta.title);\n }\n }\n}\n","import { render } from \"./app.vue?vue&type=template&id=7370f27a&ts=true\"\nimport script from \"./app.vue?vue&type=script&lang=ts\"\nexport * from \"./app.vue?vue&type=script&lang=ts\"\n\nimport \"./app.vue?vue&type=style&index=0&id=7370f27a&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Vue } from 'vue-class-component';\n\n// register router hooks\nVue.registerHooks(['beforeRouterEnter', 'beforeRouteLeave', 'beforeRouteUpdate']);\n","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex justify-center\" }\nconst _hoisted_2 = { class: \"home-btn-container border-4 border-gray-400 border-solid m-24\" }\nconst _hoisted_3 = { class: \"text-2xl font-bold\" }\nconst _hoisted_4 = { class: \"home-btn-container border-4 border-gray-400 border-solid m-24\" }\nconst _hoisted_5 = { class: \"text-2xl font-bold\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_router_link, {\n to: { name: 'metadataNew' },\n class: \"flex justify-center h-full w-full\",\n target: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", _hoisted_3, \"+ \" + _toDisplayString(_ctx.$t('editor.createProduct')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: { name: 'metadataExisting' },\n class: \"flex justify-center h-full w-full\",\n target: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", _hoisted_5, _toDisplayString(_ctx.$t('editor.editProduct')), 1)\n ]),\n _: 1\n })\n ])\n ]))\n}","\nimport { Vue } from 'vue-property-decorator';\n\nexport default class LandingV extends Vue {}\n","import { render } from \"./landing.vue?vue&type=template&id=79d08e02&ts=true\"\nimport script from \"./landing.vue?vue&type=script&lang=ts\"\nexport * from \"./landing.vue?vue&type=script&lang=ts\"\n\nimport \"./landing.vue?vue&type=style&index=0&id=79d08e02&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, Fragment as _Fragment, withModifiers as _withModifiers, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"editor-container\" }\nconst _hoisted_2 = { class: \"px-20 py-5\" }\nconst _hoisted_3 = { class: \"flex\" }\nconst _hoisted_4 = { class: \"flex text-2xl font-bold mb-5\" }\nconst _hoisted_5 = { class: \"border py-5 w-5/6\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"text-red-500\"\n}\nconst _hoisted_7 = {\n key: 0,\n class: \"text-yellow-500 rounded p-1 ml-2\"\n}\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block mr-1 pb-1 fill-current\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n \"clip-rule\": \"evenodd\",\n \"fill-rule\": \"evenodd\",\n \"stroke-linejoin\": \"round\",\n \"stroke-miterlimit\": \"2\",\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"m2.095 19.886 9.248-16.5c.133-.237.384-.384.657-.384.272 0 .524.147.656.384l9.248 16.5c.064.115.096.241.096.367 0 .385-.309.749-.752.749h-18.496c-.44 0-.752-.36-.752-.749 0-.126.031-.252.095-.367zm9.907-6.881c-.414 0-.75.336-.75.75v3.5c0 .414.336.75.75.75s.75-.336.75-.75v-3.5c0-.414-.336-.75-.75-.75zm-.002-3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z\",\n \"fill-rule\": \"nonzero\"\n })\n ])\n], -1)\nconst _hoisted_9 = { class: \"align-center inline-block select-none\" }\nconst _hoisted_10 = {\n key: 2,\n class: \"inline-flex align-middle mb-1\"\n}\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_12 = { class: \"mb-4\" }\nconst _hoisted_13 = { class: \"flex mt-8\" }\nconst _hoisted_14 = { class: \"ml-auto\" }\nconst _hoisted_15 = [\"onClick\"]\nconst _hoisted_16 = {\n slot: \"header\",\n class: \"text-lg font-bold\"\n}\nconst _hoisted_17 = { class: \"w-full flex justify-end\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_spinner = _resolveComponent(\"spinner\")!\n const _component_metadata_content = _resolveComponent(\"metadata-content\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n const _component_vue_final_modal = _resolveComponent(\"vue-final-modal\")!\n const _component_editor = _resolveComponent(\"editor\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_ctx.loadEditor)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(_ctx.editExisting ? _ctx.$t('editor.editProduct') : _ctx.$t('editor.createProduct')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.swapLang()))\n }, _toDisplayString(_ctx.configLang === 'en' ? _ctx.$t('editor.frenchConfig') : _ctx.$t('editor.englishConfig')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", null, [\n ('uuid' in _ctx.reqFields)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, \"*\"))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('editor.uuid')) + \":\", 1)\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n onInput: _cache[1] || (_cache[1] = ($event: any) => {\n _ctx.error = false;\n _ctx.reqFields.uuid = true;\n _ctx.checkUuid();\n }),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.uuid) = $event)),\n class: _normalizeClass([\"w-1/3\", _ctx.error || !_ctx.reqFields.uuid ? 'input-error' : ''])\n }, null, 34), [\n [_vModelText, _ctx.uuid]\n ]),\n (_ctx.warning)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('editor.uuid.exists')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.editExisting)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.generateRemoteConfig && _ctx.generateRemoteConfig(...args))),\n class: _normalizeClass([\"bg-black text-white hover:bg-gray-800\", _ctx.error ? 'input-error' : ''])\n }, _toDisplayString(_ctx.$t('editor.load')), 3))\n : _createCommentVNode(\"\", true),\n (_ctx.loadStatus === 'loading')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createVNode(_component_spinner, {\n size: \"24px\",\n color: \"#009cd1\",\n class: \"mx-2 my-auto\"\n })\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_11,\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"h3\", null, _toDisplayString(_ctx.$t('editor.productDetails')), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('editor.metadata.instructions')), 1)\n ]),\n _createVNode(_component_metadata_content, {\n metadata: _ctx.metadata,\n onMetadataChanged: _ctx.updateMetadata,\n onLogoChanged: _ctx.onFileChange,\n onLogoSourceChanged: _ctx.onLogoSourceInput\n }, null, 8, [\"metadata\", \"onMetadataChanged\", \"onLogoChanged\", \"onLogoSourceChanged\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n (_ctx.editExisting)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.saveMetadata(true))),\n class: \"pl-8\"\n }, _toDisplayString(_ctx.$t('editor.saveChanges')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_router_link, {\n to: { name: 'home' },\n target: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", null, _toDisplayString(_ctx.$t('editor.back')), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (!_ctx.warning ? _ctx.continueToEditor() : _ctx.$vfm.open(`confirm-uuid-overwrite`))),\n class: \"bg-black text-white px-8\"\n }, _toDisplayString(_ctx.$t('editor.next')), 1),\n _createVNode(_component_confirmation_modal, {\n name: `confirm-uuid-overwrite`,\n message: _ctx.$t(`Are you sure you want to overwrite product '${_ctx.uuid}'?`),\n onOk: _cache[6] || (_cache[6] = ($event: any) => (_ctx.continueToEditor()))\n }, null, 8, [\"message\"])\n ])\n ])\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.loadEditor && _ctx.loadStatus === 'loaded')\n ? (_openBlock(), _createBlock(_component_editor, {\n key: 1,\n configs: _ctx.configs,\n configFileStructure: _ctx.configFileStructure,\n sourceCounts: _ctx.sourceCounts,\n metadata: _ctx.metadata,\n slides: _ctx.slides,\n configLang: _ctx.configLang,\n saving: _ctx.saving,\n unsavedChanges: _ctx.unsavedChanges,\n onSaveChanges: _ctx.generateConfig,\n onSaveStatus: _ctx.updateSaveStatus,\n onRefreshConfig: _ctx.refreshConfig,\n ref: \"mainEditor\"\n }, {\n langModal: _withCtx((slotProps) => [\n _createElementVNode(\"button\", {\n onClick: _withModifiers(($event: any) => (slotProps.unsavedChanges ? _ctx.$vfm.open(`change-lang`) : _ctx.swapLang()), [\"stop\"])\n }, _toDisplayString(_ctx.configLang === 'en' ? _ctx.$t('editor.frenchConfig') : _ctx.$t('editor.englishConfig')), 9, _hoisted_15),\n _createVNode(_component_confirmation_modal, {\n name: `change-lang`,\n message: _ctx.$t('editor.changeLang.modal'),\n onOk: _cache[7] || (_cache[7] = ($event: any) => (_ctx.swapLang()))\n }, null, 8, [\"message\"])\n ]),\n metadataModal: _withCtx(() => [\n _createVNode(_component_vue_final_modal, {\n modalId: \"metadata-edit-modal\",\n \"content-class\": \"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2\",\n class: \"flex justify-center items-center\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_16, _toDisplayString(_ctx.$t('editor.editMetadata')), 1),\n _createVNode(_component_metadata_content, {\n metadata: _ctx.metadata,\n onMetadataChanged: _ctx.updateMetadata,\n onLogoChanged: _ctx.onFileChange,\n onLogoSourceChanged: _ctx.onLogoSourceInput\n }, null, 8, [\"metadata\", \"onMetadataChanged\", \"onLogoChanged\", \"onLogoSourceChanged\"]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", {\n class: \"bg-black text-white hover:bg-gray-800\",\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.saveMetadata(false)))\n }, \" Done \")\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"configs\", \"configFileStructure\", \"sourceCounts\", \"metadata\", \"slides\", \"configLang\", \"saving\", \"unsavedChanges\", \"onSaveChanges\", \"onSaveStatus\", \"onRefreshConfig\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, toDisplayString as _toDisplayString, withModifiers as _withModifiers, vModelCheckbox as _vModelCheckbox, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createStaticVNode as _createStaticVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ecc4f964\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sticky top-20 h-auto self-start flex-grow m-5\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { class: \"flex\" }\nconst _hoisted_4 = { class: \"flex flex-col\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"Slide title:\", -1))\nconst _hoisted_6 = { class: \"flex\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-auto\" }, null, -1))\nconst _hoisted_8 = [\"disabled\"]\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = { class: \"flex mt-3\" }\nconst _hoisted_11 = { class: \"mx-2 font-bold\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"flex border-b border-black\"\n}\nconst _hoisted_15 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_17 = { class: \"align-middle inline-block pl-1\" }\nconst _hoisted_18 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_20 = { class: \"align-middle inline-block pl-1\" }\nconst _hoisted_21 = {\n key: 1,\n class: \"border-b border-black\"\n}\nconst _hoisted_22 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_24 = { class: \"align-middle inline-block pl-1\" }\nconst _hoisted_25 = { class: \"flex mt-4\" }\nconst _hoisted_26 = { class: \"font-bold text-xl\" }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-auto flex-grow\" }, null, -1))\nconst _hoisted_28 = {\n key: 0,\n class: \"flex flex-col mr-8\"\n}\nconst _hoisted_29 = { class: \"text-left text-lg\" }\nconst _hoisted_30 = [\"value\"]\nconst _hoisted_31 = [\"value\"]\nconst _hoisted_32 = {\n key: 1,\n class: \"flex h-full mt-4 justify-center text-gray-600 text-xl\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!!_ctx.currentSlide)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.currentSlide.title) = $event)),\n placeholder: \"Add a title\",\n class: \"w-2/3\"\n }, null, 512), [\n [_vModelText, _ctx.currentSlide.title]\n ]),\n _hoisted_7,\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.selectSlide(_ctx.slideIndex - 1)), [\"stop\"])),\n disabled: _ctx.slideIndex === 0,\n class: \"border border-black\"\n }, _toDisplayString(_ctx.$t('editor.slides.previousSlide')), 9, _hoisted_8),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.selectSlide(_ctx.slideIndex + 1)), [\"stop\"])),\n disabled: _ctx.isLast,\n class: \"border border-black\"\n }, _toDisplayString(_ctx.$t('editor.slides.nextSlide')), 9, _hoisted_9)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('editor.slides.makeFull')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n class: \"rounded-none cursor-pointer w-4 h-4\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.rightOnly) = $event)),\n disabled: _ctx.rightOnly && _ctx.currentSlide.panel[_ctx.panelIndex].type === 'dynamic',\n onChange: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$vfm.open(`right-only-${_ctx.slideIndex}`)), [\"stop\"]))\n }, null, 40, _hoisted_12), [\n [_vModelCheckbox, _ctx.rightOnly]\n ])\n ])\n ])\n ]),\n _hoisted_13,\n (_ctx.currentSlide.panel.length === 2)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = \n () => {\n _ctx.panelIndex = 0;\n _ctx.saveChanges();\n }\n ),\n class: _normalizeClass([\"border-t border-l border-r\", _ctx.panelIndex == 0 ? 'border-black' : 'border-white'])\n }, [\n _hoisted_15,\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('editor.slides.leftPanel')), 1)\n ], 2),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = \n () => {\n _ctx.panelIndex = 1;\n _ctx.saveChanges();\n }\n ),\n class: _normalizeClass([\"border-t border-l border-r\", _ctx.panelIndex == 1 ? 'border-black' : 'border-white'])\n }, [\n _hoisted_18,\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('editor.slides.rightPanel')), 1)\n ], 2)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n _createElementVNode(\"button\", {\n onClick: _cache[7] || (_cache[7] = \n () => {\n _ctx.saveChanges();\n }\n ),\n class: \"border-t border-l border-r border-black\"\n }, [\n _hoisted_22,\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.$t('editor.slides.fullscreenPanel')), 1)\n ])\n ])),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.$t('editor.slides.content')) + \":\", 1),\n _hoisted_27,\n (_ctx.panelIndex === 1 || _ctx.rightOnly)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_28, [\n _createElementVNode(\"label\", _hoisted_29, _toDisplayString(_ctx.$t('editor.slides.contentType')) + \":\", 1),\n _createElementVNode(\"select\", {\n ref: \"typeSelector\",\n onInput: _cache[8] || (_cache[8] = ($event: any) => {\n _ctx.$vfm.open(`change-slide-${_ctx.slideIndex}`);\n _ctx.newType = $event.target.value;\n }),\n value: _ctx.currentSlide.panel[_ctx.panelIndex].type\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_ctx.editors).filter(\n (editor) => editor !== 'slideshow' && editor !== 'loading'\n ), (thing) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n key: thing,\n value: thing === 'image' ? 'slideshow' : thing\n }, _toDisplayString(thing), 9, _hoisted_31))\n }), 128))\n ], 40, _hoisted_30)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.editors[_ctx.currentSlide.panel[_ctx.panelIndex].type]), {\n ref: \"editor\",\n key: _ctx.panelIndex + _ctx.currentSlide.panel[_ctx.panelIndex].type,\n panel: _ctx.currentSlide.panel[_ctx.panelIndex],\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.lang,\n uid: _ctx.uid,\n sourceCounts: _ctx.sourceCounts\n }, null, 8, [\"panel\", \"configFileStructure\", \"lang\", \"uid\", \"sourceCounts\"]))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_32, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('editor.slides.select')), 1)\n ])),\n _createVNode(_component_confirmation_modal, {\n name: `change-slide-${_ctx.slideIndex}`,\n message: _ctx.$t('editor.slides.changeSlide.confirm', { title: _ctx.currentSlide.title }),\n onOk: _cache[9] || (_cache[9] = ($event: any) => (_ctx.changePanelType(_ctx.currentSlide.panel[_ctx.panelIndex].type, _ctx.newType))),\n onCancel: _ctx.cancelTypeChange\n }, null, 8, [\"name\", \"message\", \"onCancel\"]),\n _createVNode(_component_confirmation_modal, {\n name: `right-only-${_ctx.slideIndex}`,\n message: _ctx.$t('editor.slides.changeSlide.confirm', { title: _ctx.currentSlide.title }),\n onOk: _cache[10] || (_cache[10] = ($event: any) => (_ctx.toggleRightOnly())),\n onCancel: _cache[11] || (_cache[11] = ($event: any) => (_ctx.rightOnly = !_ctx.rightOnly))\n }, null, 8, [\"name\", \"message\"])\n ]))\n}","import JSZip from 'jszip';\n\nexport interface StoryRampConfig {\n title: string;\n lang: string;\n introSlide: Intro;\n slides: Slide[];\n contextLink: string;\n contextLabel: string;\n dateModified: string;\n}\n\nexport interface ConfigFileStructure {\n uuid: string;\n zip: JSZip;\n configs: { [key: string]: StoryRampConfig };\n assets: {\n [key: string]: JSZip;\n };\n charts: {\n [key: string]: JSZip;\n };\n rampConfig: {\n [key: string]: JSZip;\n };\n}\n\nexport interface SourceCounts {\n [key: string]: number;\n}\n\nexport interface MetadataContent {\n title: string;\n introTitle: string;\n introSubtitle: string;\n logoPreview: string;\n logoName: string;\n logoAltText: string;\n contextLink: string;\n contextLabel: string;\n dateModified: string;\n}\n\n// unofficial interface: add properties as needed (just to make TS warnings disappear)\nexport interface Highchart {\n toString(): string;\n}\n\nexport interface DQVOptions {\n title: string;\n subtitle: string;\n xAxisLabel: string;\n yAxisLabel: string;\n width?: number;\n height?: number;\n export: boolean;\n colours?: string[];\n credits: boolean;\n type: string;\n}\n\nexport interface PieSeriesData {\n name: string;\n data: PieDataRow[];\n}\n\nexport interface PieDataRow {\n name: string;\n y?: number;\n}\n\nexport interface LineSeriesData {\n name: string;\n data: number[];\n}\n\nexport interface DQVChartConfig {\n chart: {\n type: string;\n };\n title: {\n text: string;\n };\n credits?: {\n enabled: boolean;\n };\n subtitle?: {\n text: string;\n };\n yAxis?: {\n title: {\n text: string;\n };\n };\n xAxis?: {\n title: {\n text: string;\n };\n categories: [];\n };\n data?: {\n csvURL: string;\n enablePolling: boolean;\n csv?: string;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plotOptions?: any;\n exporting?: {\n buttons: {\n contextButton: {\n menuItems: string[];\n };\n };\n enabled: boolean;\n };\n series?: PieSeriesData | LineSeriesData[];\n}\n\nexport interface Intro {\n logo: {\n src: string;\n altText?: string;\n };\n title: string;\n subtitle: string;\n blurb?: string;\n}\n\nexport interface Slide {\n title: string;\n // tuple definition to restrict array size\n // panel: [BasePanel, BasePanel | undefined];\n panel: BasePanel[];\n}\n\nexport enum PanelType {\n Text = 'text',\n Image = 'image',\n Map = 'map',\n Chart = 'chart',\n Video = 'video',\n Audio = 'audio',\n Slideshow = 'slideshow',\n Dynamic = 'dynamic',\n Loading = 'loading'\n}\n\nexport interface BasePanel {\n type: string;\n width?: number;\n}\n\nexport interface TextPanel extends BasePanel {\n type: PanelType.Text;\n title: string;\n titleTag?: string;\n content: string; // in md format\n}\n\nexport interface MapPanel extends BasePanel {\n type: PanelType.Map;\n config: string;\n fullscreen?: boolean;\n timeSlider?: TimeSliderConfig;\n title: string;\n scrollguard: boolean;\n}\nexport interface TimeSliderConfig {\n range: number[];\n start: number[];\n attribute: string;\n layers?: string[];\n}\n\nexport interface DynamicPanel extends BasePanel {\n type: PanelType.Dynamic;\n title: string;\n titleTag?: string;\n content: string;\n children: DynamicChildItem[];\n}\n\nexport interface DynamicChildItem {\n id: string;\n panel: BasePanel;\n}\n\nexport interface ImagePanel extends BasePanel {\n type: PanelType.Image;\n src: string;\n width?: number;\n height?: number;\n temp?: string;\n class?: string;\n fullscreen?: boolean;\n altText?: string;\n caption?: string;\n tooltip?: string;\n}\n\nexport interface VideoPanel extends BasePanel {\n type: PanelType.Video;\n width?: number;\n height?: number;\n src: string;\n caption?: string;\n}\n\nexport interface AudioPanel extends BasePanel {\n type: PanelType.Audio;\n src: string;\n caption?: string;\n}\n\nexport interface SlideshowPanel extends BasePanel {\n type: PanelType.Slideshow;\n images: ImagePanel[];\n fullscreen?: boolean;\n loop?: boolean;\n caption?: string;\n}\n\nexport interface ChartPanel extends BasePanel {\n type: PanelType.Chart;\n charts: ChartConfig[];\n fullscreen?: boolean;\n}\n\nexport interface ChartConfig {\n src: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n config?: any;\n name?: string;\n options?: DQVOptions;\n}\n\nexport interface ImageFile {\n id: string;\n src: string;\n altText: string;\n caption?: string;\n width?: number;\n height?: number;\n}\n\nexport interface DefaultConfigs {\n text: TextPanel;\n slideshow: SlideshowPanel;\n chart: ChartPanel;\n dynamic: DynamicPanel;\n map: MapPanel;\n}\n","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, withCtx as _withCtx, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"block\" }\nconst _hoisted_2 = { class: \"flex items-center\" }\nconst _hoisted_3 = { class: \"font-bold px-4\" }\nconst _hoisted_4 = { class: \"flex items-center\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"svg\", {\n height: \"18px\",\n width: \"18px\",\n viewBox: \"0 0 23 21\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\" })\n], -1)\nconst _hoisted_6 = { class: \"px-2\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"hr\", { class: \"border-solid border-t-2 border-gray-300 my-2\" }, null, -1)\nconst _hoisted_8 = {\n key: 0,\n class: \"m-4\"\n}\nconst _hoisted_9 = { class: \"italic text-gray-400\" }\nconst _hoisted_10 = { class: \"flex flex-wrap list-none\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ChartPreview = _resolveComponent(\"ChartPreview\")!\n const _component_draggable = _resolveComponent(\"draggable\")!\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('editor.chart.label.info', {\n num: _ctx.chartConfigs.length\n })), 1),\n _createElementVNode(\"button\", {\n class: \"chart-btn bg-gray-100 cursor-pointer hover:bg-gray-200\",\n id: \"modal-btn\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.clearEditor()))\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_ctx.$t('editor.chart.label.create')), 1)\n ])\n ])\n ]),\n _hoisted_7,\n (_ctx.chartConfigs.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('editor.chart.label.empty')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _withDirectives(_createElementVNode(\"ul\", _hoisted_10, [\n _createVNode(_component_draggable, {\n modelValue: _ctx.chartConfigs,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.chartConfigs) = $event)),\n handle: \".handle\",\n onUpdate: _ctx.onChartsEdited,\n class: \"flex flex-wrap list-none\",\n \"item-key\": \"name\"\n }, {\n item: _withCtx(({ element, index }) => [\n (_openBlock(), _createBlock(_component_ChartPreview, {\n key: `${element.name}-${index}`,\n chart: element,\n configFileStructure: _ctx.configFileStructure,\n onEdit: _ctx.editChart,\n onDelete: ($event: any) => (_ctx.$vfm.open(`${element.name}-${index}`))\n }, null, 8, [\"chart\", \"configFileStructure\", \"onEdit\", \"onDelete\"]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate\"])\n ], 512), [\n [_vShow, _ctx.chartConfigs.length]\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.chartConfigs, (chart, idx) => {\n return (_openBlock(), _createBlock(_component_confirmation_modal, {\n key: `${chart.name}-${idx}`,\n name: `${chart.name}-${idx}`,\n message: _ctx.$t('editor.chart.delete.confirm', { name: chart.name }),\n onOk: ($event: any) => (_ctx.deleteChart(chart))\n }, null, 8, [\"name\", \"message\", \"onOk\"]))\n }), 128))\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c922f560\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"chart-item items-center mt-8 mx-5 overflow-hidden\" }\nconst _hoisted_2 = { class: \"relative border-solid border-2 items-center justify-center text-center w-full\" }\nconst _hoisted_3 = [\"content\"]\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n class: \"absolute transform -translate-x-1/2 -translate-y-1/2\",\n height: \"22px\",\n width: \"22px\",\n viewBox: \"0 0 352 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\" })\n], -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", { class: \"bg-white absolute h-6 w-6 leading-5 rounded-full bottom-2 -right-1 p-0 z-10 handle\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#000000\",\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 24 24\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M8,18 C9.1045695,18 10,18.8954305 10,20 C10,21.1045695 9.1045695,22 8,22 C6.8954305,22 6,21.1045695 6,20 C6,18.8954305 6.8954305,18 8,18 Z M16,18 C17.1045695,18 18,18.8954305 18,20 C18,21.1045695 17.1045695,22 16,22 C14.8954305,22 14,21.1045695 14,20 C14,18.8954305 14.8954305,18 16,18 Z M8,10 C9.1045695,10 10,10.8954305 10,12 C10,13.1045695 9.1045695,14 8,14 C6.8954305,14 6,13.1045695 6,12 C6,10.8954305 6.8954305,10 8,10 Z M16,10 C17.1045695,10 18,10.8954305 18,12 C18,13.1045695 17.1045695,14 16,14 C14.8954305,14 14,13.1045695 14,12 C14,10.8954305 14.8954305,10 16,10 Z M8,2 C9.1045695,2 10,2.8954305 10,4 C10,5.1045695 9.1045695,6 8,6 C6.8954305,6 6,5.1045695 6,4 C6,2.8954305 6.8954305,2 8,2 Z M16,2 C17.1045695,2 18,2.8954305 18,4 C18,5.1045695 17.1045695,6 16,6 C14.8954305,6 14,5.1045695 14,4 C14,2.8954305 14.8954305,2 16,2 Z\"\n })\n ])\n], -1))\nconst _hoisted_7 = { class: \"flex mt-4 items-center\" }\nconst _hoisted_8 = { class: \"name-label font-bold flex-2\" }\nconst _hoisted_9 = { class: \"font-normal\" }\nconst _hoisted_10 = [\"id\"]\nconst _hoisted_11 = { class: \"flex items-center\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n height: \"18px\",\n width: \"18px\",\n viewBox: \"0 0 23 21\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M 18 2 L 15.585938 4.4140625 L 19.585938 8.4140625 L 22 6 L 18 2 z M 14.076172 5.9238281 L 3 17 L 3 21 L 7 21 L 18.076172 9.9238281 L 14.076172 5.9238281 z\" })\n], -1))\nconst _hoisted_13 = { class: \"px-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_storylines_chart = _resolveComponent(\"storylines-chart\")!\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n class: \"bg-white absolute h-6 w-6 leading-5 rounded-full top-2 left-0 p-0 z-10 cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = () => _ctx.$emit('delete', _ctx.chart)),\n content: _ctx.$t('editor.chart.delete')\n }, _hoisted_5, 8, _hoisted_3)), [\n [_directive_tippy, { placement: 'top', hideOnClick: false, animateFill: true }]\n ]),\n _hoisted_6,\n (!_ctx.loading)\n ? (_openBlock(), _createBlock(_component_storylines_chart, {\n class: \"w-full h-full\",\n config: _ctx.chartConfig,\n key: _ctx.chartIdx,\n configFileStructure: _ctx.configFileStructure,\n onLoaded: _ctx.loadChart\n }, null, 8, [\"config\", \"configFileStructure\", \"onLoaded\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('editor.chart.label.name')) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.chartName), 1)\n ]),\n _createElementVNode(\"button\", {\n class: \"chart-btn bg-gray-100 cursor-pointer hover:bg-gray-200\",\n id: `edit-${_ctx.chart.name}-btn`\n }, [\n _createElementVNode(\"div\", _hoisted_11, [\n _hoisted_12,\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('editor.chart.label.edit')), 1)\n ])\n ], 8, _hoisted_10)\n ])\n ]))\n}","\nimport { Prop, Vue } from 'vue-property-decorator';\nimport {\n ChartConfig,\n ConfigFileStructure,\n DQVChartConfig,\n LineSeriesData,\n PieDataRow,\n PieSeriesData\n} from '@/definitions';\n\nexport default class ChartPreviewV extends Vue {\n @Prop() chart!: ChartConfig;\n @Prop() configFileStructure!: ConfigFileStructure;\n\n loading = true;\n chartIdx = 0;\n chartConfig = {};\n chartName = '';\n modalEditor: typeof highed.ModalEditor = undefined;\n\n mounted(): void {\n this.chartConfig = this.chart;\n this.chartName = this.chart.name || '';\n this.loading = false;\n }\n\n /**\n * Save initial set of chart options used to create chart.\n */\n loadChart(chartOptions: DQVChartConfig): void {\n // initialize higcharts editor and link to edit summoner node\n if (this.modalEditor) {\n return;\n }\n\n this.modalEditor = highed.ModalEditor(\n `edit-${this.chartName}-btn`,\n {\n allowDone: true,\n features: 'import templates customize done',\n importer: {\n options: 'plugins csv json'\n },\n defaultChartOptions: chartOptions\n },\n (newChart: string) => {\n const chart = JSON.parse(newChart);\n const chartConfig = {\n name: chart.title.text,\n config: chart,\n src: ''\n };\n this.$emit('edit', { oldChart: this.chart, newChart: chartConfig });\n this.chartConfig = chartConfig;\n this.chartName = chartConfig.name;\n this.chartIdx += 1;\n }\n );\n\n // restore CSV data if exists\n if (chartOptions.data?.csv !== undefined) {\n const csvData = chartOptions.data.csv;\n this.modalEditor.editor.dataTable.loadCSV({ csv: csvData });\n } else {\n this.convertSeriesToCSV(chartOptions);\n }\n\n this.modalEditor.editor.chart.options.setAll(chartOptions);\n }\n\n /*\n * Convert series data into formatted csvData string for charts created without using editor\n * so that the datatable when re-opening modal is properly populated.\n */\n convertSeriesToCSV(chartOptions: DQVChartConfig): void {\n if (chartOptions.chart?.type === 'pie') {\n const seriesData = (chartOptions?.series as PieSeriesData).data;\n if (seriesData) {\n // pie charts only have one set of series data with the name;y format\n const csvData = [\n // first row is attempt to extract data labels if exists\n `${(chartOptions?.series as PieSeriesData).name};${chartOptions?.yAxis?.title.text}`,\n ...seriesData.map((row: PieDataRow) => `${row.name};${row.y}`)\n ];\n\n // load formatted CSV string into datatable\n this.modalEditor.editor.dataTable.loadCSV({ csv: csvData.join('\\n') });\n }\n } else {\n if (chartOptions?.series && (chartOptions?.series as LineSeriesData[]).length) {\n // other chart types may have multiple sets of series data along with x-axis categories\n // append series data name to its data set\n let seriesData = (chartOptions?.series as LineSeriesData[]).map((series: LineSeriesData) => [\n series.name,\n ...series.data\n ]);\n if (chartOptions.xAxis !== undefined) {\n // add xAxis categories to series data if it exists\n const catoData = [chartOptions.xAxis?.title?.text].concat(chartOptions.xAxis?.categories);\n seriesData.unshift(catoData);\n }\n\n // join series data together\n let csvData = seriesData[0].map((_, idx) => seriesData.map((data) => data[idx]).join(';'));\n\n // load formatted CSV string into datatable\n this.modalEditor.editor.dataTable.loadCSV({ csv: csvData.join('\\n') });\n }\n }\n }\n}\n","import { render } from \"./chart-preview.vue?vue&type=template&id=c922f560&scoped=true&ts=true\"\nimport script from \"./chart-preview.vue?vue&type=script&lang=ts\"\nexport * from \"./chart-preview.vue?vue&type=script&lang=ts\"\n\nimport \"./chart-preview.vue?vue&type=style&index=0&id=c922f560&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c922f560\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withModifiers as _withModifiers, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4ed11748\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n slot: \"header\",\n class: \"text-lg font-bold\"\n}\nconst _hoisted_2 = { class: \"w-full flex justify-end\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_vue_final_modal = _resolveComponent(\"vue-final-modal\")!\n\n return (_openBlock(), _createBlock(_component_vue_final_modal, {\n modalId: _ctx.name,\n class: \"flex justify-center items-center\",\n \"content-class\": \"flex flex-col max-w-xl mx-4 p-4 bg-white dark:bg-gray-900 border dark:border-gray-700 rounded-lg space-y-2\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_1, _toDisplayString(_ctx.message), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"confirm-button hover:bg-gray-800\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.onOk && _ctx.onOk(...args)), [\"stop\"]))\n }, _toDisplayString(_ctx.$t('editor.confirm')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel-button hover:bg-gray-100\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.onCancel && _ctx.onCancel(...args)), [\"stop\"]))\n }, _toDisplayString(_ctx.$t('editor.cancel')), 1)\n ])\n ]),\n _: 1\n }, 8, [\"modalId\"]))\n}","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { VueFinalModal } from 'vue-final-modal';\n\n@Options({\n components: {\n 'vue-final-modal': VueFinalModal\n }\n})\nexport default class MetadataEditorV extends Vue {\n @Prop() message!: string;\n @Prop() name!: string;\n\n onOk(): void {\n this.$emit('ok');\n this.$vfm.close(this.name);\n }\n\n onCancel(): void {\n this.$emit('Cancel');\n this.$vfm.close(this.name);\n }\n}\n","import { render } from \"./confirmation-modal.vue?vue&type=template&id=4ed11748&scoped=true&ts=true\"\nimport script from \"./confirmation-modal.vue?vue&type=script&lang=ts\"\nexport * from \"./confirmation-modal.vue?vue&type=script&lang=ts\"\n\nimport \"./confirmation-modal.vue?vue&type=style&index=0&id=4ed11748&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4ed11748\"]])\n\nexport default __exports__","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { ChartConfig, ChartPanel, ConfigFileStructure, Highchart, SourceCounts } from '@/definitions';\nimport ChartPreviewV from '@/components/editor/helpers/chart-preview.vue';\nimport ConfirmationModalV from '@/components/editor/helpers/confirmation-modal.vue';\nimport draggable from 'vuedraggable';\n\n@Options({\n components: {\n // TODO: fix when storylines plugin updated to Vue 3\n // 'chart-panel': ChartPanelV,\n ChartPreview: ChartPreviewV,\n 'confirmation-modal': ConfirmationModalV,\n draggable\n }\n})\nexport default class ChartEditorV extends Vue {\n @Prop() panel!: ChartPanel;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n edited = false;\n\n chartConfigs = [] as Array;\n modalEditor = {} as typeof highed.ModalEditor;\n\n mounted(): void {\n // attach highcharts modal editor to summoner node\n highed.ready(() => {\n this.modalEditor = highed.ModalEditor(\n 'modal-btn',\n {\n allowDone: true,\n features: 'import templates customize done',\n importer: {\n options: 'plugins csv json'\n }\n },\n (chart: Highchart) => {\n this.createNewChart(chart.toString());\n }\n );\n });\n\n // load charts from existing storylines product\n if (this.panel.charts !== undefined && this.panel.charts.length) {\n this.chartConfigs = this.panel.charts.map((chart: ChartConfig) => {\n let chartName = '';\n // extract chart name\n if (chart.options && chart.options.title) {\n chartName = chart.options.title;\n } else {\n const path = chart.src.match(/.*\\/(.*)$/);\n chartName = path ? path[1].replace(/\\.[^/.]+$/, '').replace(/\\./g, ' ') : chart.src;\n }\n return {\n name: chartName,\n ...chart\n };\n });\n }\n }\n\n clearEditor(): void {\n // reset to clear modal editor options\n this.modalEditor.editor.chart.options.setAll({\n title: {\n text: `Chart ${this.chartConfigs.length + 1}`\n },\n subtitle: {\n text: ''\n },\n credits: {\n enabled: false\n }\n });\n\n // resets and clears datatable section\n const defaultTableData = `\"Column 1\";\"Column 2\"\\n\" \"\";\" \"`;\n this.modalEditor.editor.dataTable.loadCSV({ csv: defaultTableData });\n }\n\n createNewChart(chartInfo: string): void {\n const chart = JSON.parse(chartInfo);\n // prevent duplicate chart names (alternative is to assign a unique ID for each chart)\n if (this.chartConfigs.some((chartConfig) => chartConfig.name === chart.title.text)) {\n alert('Existing chart already has the same chart name.');\n } else {\n const chartSrc = `${this.configFileStructure.uuid}/charts/${this.lang}/${chart.title.text}.json`;\n const chartConfig = {\n name: chart.title.text,\n src: chartSrc\n };\n\n if (this.sourceCounts[chartSrc]) {\n this.sourceCounts[chartSrc] += 1;\n } else {\n this.sourceCounts[chartSrc] = 1;\n }\n\n // Add chart config to ZIP file.\n this.configFileStructure.charts[this.lang].file(`${chart.title.text}.json`, JSON.stringify(chart, null, 4));\n\n this.chartConfigs.push(chartConfig);\n }\n this.onChartsEdited();\n }\n\n editChart(chartInfo: { oldChart: ChartConfig; newChart: ChartConfig }): void {\n const idx = this.chartConfigs.findIndex((chartFile: ChartConfig) => chartFile.name === chartInfo.oldChart.name);\n if (idx !== -1) {\n // Remove old chart config from ZIP file and add in new one.\n const oldName = `${this.configFileStructure.uuid}/charts/${this.lang}/${chartInfo.oldChart.name}.json`;\n this.sourceCounts[oldName] -= 1;\n if (this.sourceCounts[oldName] === 0) {\n this.configFileStructure.charts[this.lang].remove(`${chartInfo.oldChart.name}.json`);\n }\n\n const newName = `${this.configFileStructure.uuid}/charts/${this.lang}/${chartInfo.newChart.name}.json`;\n if (this.sourceCounts[newName]) {\n this.sourceCounts[newName] += 1;\n } else {\n this.sourceCounts[newName] = 1;\n }\n this.configFileStructure.charts[this.lang].file(\n `${chartInfo.newChart.name}.json`,\n JSON.stringify(chartInfo.newChart.config, null, 4)\n );\n\n chartInfo.newChart.src = `${this.configFileStructure.uuid}/charts/${this.lang}/${chartInfo.newChart.name}.json`;\n this.chartConfigs[idx] = {\n name: chartInfo.newChart.name,\n src: chartInfo.newChart.src\n };\n }\n this.onChartsEdited();\n }\n\n deleteChart(chart: ChartConfig): void {\n const idx = this.chartConfigs.findIndex((chartFile: ChartConfig) => chartFile.name === chart.name);\n if (idx !== -1) {\n // Remove the chart from the config file.\n this.sourceCounts[`${this.configFileStructure.uuid}/charts/${this.lang}/${chart.name}.json`] -= 1;\n if (this.sourceCounts[`${this.configFileStructure.uuid}/charts/${this.lang}/${chart.name}.json`] === 0) {\n this.configFileStructure.charts[this.lang].remove(`${chart.name}.json`);\n }\n this.chartConfigs.splice(idx, 1);\n }\n this.onChartsEdited();\n }\n\n saveChanges(): void {\n if (this.edited) {\n this.panel.charts = this.chartConfigs; // option to delete config property as is redundant\n }\n this.edited = false;\n }\n\n onChartsEdited(): void {\n this.edited = true;\n this.$emit('slide-edit');\n }\n}\n","import { render } from \"./chart-editor.vue?vue&type=template&id=1bea39b8&ts=true\"\nimport script from \"./chart-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./chart-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./chart-editor.vue?vue&type=style&index=0&id=1bea39b8&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, vShow as _vShow, withDirectives as _withDirectives, vModelText as _vModelText, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-56f26618\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"block\" }\nconst _hoisted_2 = { class: \"flex drag-label cursor-pointer\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block pr-4\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"48\",\n height: \"48\",\n viewBox: \"0 0 24 24\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M14 9l-2.519 4-2.481-1.96-5 6.96h16l-6-9zm8-5v16h-20v-16h20zm2-2h-24v20h24v-20zm-20 6c0-1.104.896-2 2-2s2 .896 2 2c0 1.105-.896 2-2 2s-2-.895-2-2z\" })\n ])\n], -1))\nconst _hoisted_4 = { class: \"align-middle inline-block\" }\nconst _hoisted_5 = { class: \"text-blue-400 font-bold\" }\nconst _hoisted_6 = { class: \"flex justify-center\" }\nconst _hoisted_7 = { class: \"flex mt-4 items-center w-full text-left\" }\nconst _hoisted_8 = { class: \"text-label\" }\nconst _hoisted_9 = [\"onUpdate:modelValue\"]\nconst _hoisted_10 = { class: \"flex mt-4 items-center w-full text-left\" }\nconst _hoisted_11 = { class: \"text-label\" }\nconst _hoisted_12 = [\"onUpdate:modelValue\"]\nconst _hoisted_13 = { class: \"flex items-center w-full text-left\" }\nconst _hoisted_14 = { class: \"text-label\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ImagePreview = _resolveComponent(\"ImagePreview\")!\n const _component_draggable = _resolveComponent(\"draggable\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"upload-image text-center m-5 p-12 bg-blue-100 border-4 border-dashed border-blue-300\", { dragging: _ctx.isDragging }]),\n onDragover: _cache[1] || (_cache[1] = _withModifiers(() => (_ctx.dragging = true), [\"prevent\"])),\n onDragleave: _cache[2] || (_cache[2] = _withModifiers(() => (_ctx.dragging = false), [\"prevent\"])),\n onDrop: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.dropImages($event)), [\"prevent\"]))\n }, [\n _createElementVNode(\"label\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.$t('editor.image.label.drag')), 1),\n _createElementVNode(\"div\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('editor.image.label.or')) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t('editor.image.label.browse')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('editor.image.label.upload')), 1)\n ])\n ]),\n _createElementVNode(\"input\", {\n type: \"file\",\n class: \"cursor-pointer\",\n onChange: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onFileChange && _ctx.onFileChange(...args))),\n multiple: \"multiple\"\n }, null, 32)\n ])\n ])\n ], 34),\n _withDirectives(_createElementVNode(\"span\", _hoisted_6, [\n _createElementVNode(\"i\", null, _toDisplayString(_ctx.$t('editor.image.reorder')), 1)\n ], 512), [\n [_vShow, !_ctx.imagePreviewsLoading && _ctx.imagePreviews.length]\n ]),\n _withDirectives(_createVNode(_component_draggable, {\n modelValue: _ctx.imagePreviews,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.imagePreviews) = $event)),\n class: \"flex flex-wrap list-none border my-4\",\n onUpdate: _ctx.onImagesEdited,\n \"item-key\": \"id\"\n }, {\n item: _withCtx(({ element, index }) => [\n (_openBlock(), _createBlock(_component_ImagePreview, {\n key: `${element.id}-${index}`,\n imageFile: element,\n onDelete: _ctx.deleteImage\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('editor.image.altTag')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"w-4/5\",\n type: \"text\",\n \"onUpdate:modelValue\": ($event: any) => ((element.altText) = $event),\n onChange: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.onImagesEdited && _ctx.onImagesEdited(...args)))\n }, null, 40, _hoisted_9), [\n [_vModelText, element.altText]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('editor.image.label.caption')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"w-4/5\",\n type: \"text\",\n \"onUpdate:modelValue\": ($event: any) => ((element.caption) = $event),\n onChange: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.onImagesEdited && _ctx.onImagesEdited(...args)))\n }, null, 40, _hoisted_12), [\n [_vModelText, element.caption]\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"imageFile\", \"onDelete\"]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate\"]), [\n [_vShow, !_ctx.imagePreviewsLoading && _ctx.imagePreviews.length]\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"label\", _hoisted_14, _toDisplayString(_ctx.$t('editor.image.slideshowCaption')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"w-3/5\",\n type: \"text\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.slideshowCaption) = $event)),\n onChange: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.onImagesEdited && _ctx.onImagesEdited(...args)))\n }, null, 544), [\n [_vModelText, _ctx.slideshowCaption]\n ])\n ], 512), [\n [_vShow, _ctx.imagePreviews.length > 1]\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, renderSlot as _renderSlot, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5bdf84fc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"image-item items-center my-8 mx-4 overflow-hidden\" }\nconst _hoisted_2 = { class: \"relative items-center justify-center text-center w-full grabbable\" }\nconst _hoisted_3 = [\"content\"]\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n height: \"24px\",\n width: \"24px\",\n viewBox: \"0 0 352 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\" })\n], -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = { class: \"flex-grow image-container\" }\nconst _hoisted_7 = [\"title\", \"src\", \"alt\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n class: \"bg-white absolute h-6 w-6 leading-5 rounded-full top-0 right-0 p-0 cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = () => _ctx.$emit('delete', _ctx.imageFile)),\n content: _ctx.$t('editor.image.delete')\n }, _hoisted_5, 8, _hoisted_3)), [\n [_directive_tippy, { placement: 'top', hideOnClick: false, animateFill: true }]\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"img\", {\n class: \"image-file object-cover\",\n title: _ctx.imageFile.id,\n src: _ctx.imageFile.src,\n alt: _ctx.imageFile.altText\n }, null, 8, _hoisted_7)\n ])\n ]),\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ]))\n}","\nimport { Prop, Vue } from 'vue-property-decorator';\nimport { ImageFile } from '@/definitions';\n\nexport default class ImagePreviewV extends Vue {\n @Prop() imageFile!: ImageFile;\n}\n","import { render } from \"./image-preview.vue?vue&type=template&id=5bdf84fc&scoped=true&ts=true\"\nimport script from \"./image-preview.vue?vue&type=script&lang=ts\"\nexport * from \"./image-preview.vue?vue&type=script&lang=ts\"\n\nimport \"./image-preview.vue?vue&type=style&index=0&id=5bdf84fc&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5bdf84fc\"]])\n\nexport default __exports__","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { ConfigFileStructure, ImageFile, ImagePanel, PanelType, SlideshowPanel, SourceCounts } from '@/definitions';\nimport draggable from 'vuedraggable';\nimport ImagePreviewV from '@/components/editor/helpers/image-preview.vue';\n\n@Options({\n components: {\n ImagePreview: ImagePreviewV,\n draggable\n }\n})\nexport default class ImageEditorV extends Vue {\n @Prop() panel!: SlideshowPanel;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n dragging = false;\n edited = false;\n\n imagePreviewsLoading = false;\n imagePreviewPromises = [] as Array>;\n imagePreviews = [] as Array;\n slideshowCaption = '';\n\n get isDragging(): boolean {\n return this.dragging;\n }\n\n mounted(): void {\n if (this.panel.images !== undefined && this.panel.images.length) {\n // Set images as loading until they are all loaded and resolve.\n this.imagePreviewsLoading = true;\n\n // Process each existing image.\n this.panel.images.map((image: ImagePanel) => {\n // Check if the config file exists in the ZIP folder first.\n const assetSrc = `${image.src.substring(image.src.indexOf('/') + 1)}`;\n const filename = image.src.replace(/^.*[\\\\/]/, '');\n\n const assetFile = this.configFileStructure.zip.file(assetSrc);\n if (assetFile) {\n this.imagePreviewPromises.push(\n assetFile.async('blob').then((res: Blob) => {\n return {\n ...image,\n id: filename ? filename : image.src,\n src: URL.createObjectURL(res)\n } as ImageFile;\n })\n );\n }\n });\n\n // Once all images have been retrieved, display them.\n Promise.all(this.imagePreviewPromises).then((res) => {\n this.imagePreviews = res;\n this.imagePreviewsLoading = false;\n });\n\n this.slideshowCaption = this.panel.caption as string;\n }\n }\n\n onFileChange(e: Event): void {\n // create object URL(s) to display image(s)\n const filelist = Array.from((e.target as HTMLInputElement).files as ArrayLike);\n this.imagePreviews.push(\n ...filelist.map((file: File) => {\n // Add the uploaded images to the product ZIP file.\n const uploadSource = `${this.configFileStructure.uuid}/assets/${this.lang}/${file.name}`;\n this.configFileStructure.assets[this.lang].file(file.name, file);\n\n if (this.sourceCounts[uploadSource]) {\n this.sourceCounts[uploadSource] += 1;\n } else {\n this.sourceCounts[uploadSource] = 1;\n }\n\n let imageSrc = URL.createObjectURL(file);\n return {\n id: file.name,\n altText: '',\n caption: '',\n src: imageSrc\n };\n })\n );\n this.onImagesEdited();\n }\n\n dropImages(e: DragEvent): void {\n if (e.dataTransfer !== null) {\n const files = [...e.dataTransfer.files];\n this.imagePreviews.push(\n ...files.map((file: File) => {\n // Add the uploaded images to the product ZIP file.\n const uploadSource = `${this.configFileStructure.uuid}/assets/${this.lang}/${file.name}`;\n this.configFileStructure.assets[this.lang].file(file.name, file);\n\n if (this.sourceCounts[uploadSource]) {\n this.sourceCounts[uploadSource] += 1;\n } else {\n this.sourceCounts[uploadSource] = 1;\n }\n\n let imageSrc = URL.createObjectURL(file);\n return {\n id: file.name,\n altText: '',\n caption: '',\n src: imageSrc\n };\n })\n );\n this.dragging = false;\n }\n this.onImagesEdited();\n }\n\n deleteImage(img: ImageFile): void {\n const idx = this.imagePreviews.findIndex((file: ImageFile) => file.id === img.id);\n if (idx !== -1) {\n const fileSource = `${this.configFileStructure.uuid}/assets/${this.lang}/${this.imagePreviews[idx].id}`;\n\n // Remove the image from the product ZIP file.\n this.sourceCounts[fileSource] -= 1;\n if (this.sourceCounts[fileSource] === 0) {\n this.configFileStructure.assets[this.lang].remove(this.imagePreviews[idx].id);\n URL.revokeObjectURL(this.imagePreviews[idx].src);\n }\n this.imagePreviews.splice(idx, 1);\n }\n this.onImagesEdited();\n }\n\n saveChanges(): void {\n if (this.edited) {\n this.panel.images = this.imagePreviews.map((imageFile: ImageFile) => {\n return {\n ...imageFile,\n src: `${this.configFileStructure.uuid}/assets/${this.lang}/${imageFile.id}`,\n type: PanelType.Image\n };\n });\n this.panel.caption = this.slideshowCaption ?? undefined;\n }\n this.edited = false;\n }\n\n onImagesEdited(): void {\n this.edited = true;\n this.$emit('slide-edit');\n }\n}\n","import { render } from \"./image-editor.vue?vue&type=template&id=56f26618&scoped=true&ts=true\"\nimport script from \"./image-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./image-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./image-editor.vue?vue&type=style&index=0&id=56f26618&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-56f26618\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b0fb221e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex flex-col mt-4\" }\nconst _hoisted_2 = { class: \"text-left\" }\nconst _hoisted_3 = { class: \"text-left mt-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_v_md_editor = _resolveComponent(\"v-md-editor\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", _hoisted_2, _toDisplayString(_ctx.$t('editor.slides.panel.title')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.panel.title) = $event))\n }, null, 512), [\n [_vModelText, _ctx.panel.title]\n ]),\n _createElementVNode(\"label\", _hoisted_3, _toDisplayString(_ctx.$t('editor.slides.panel.body')) + \":\", 1),\n _createVNode(_component_v_md_editor, {\n modelValue: _ctx.panel.content,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.panel.content) = $event)),\n height: \"400px\",\n \"left-toolbar\": \"undo redo clear | h bold italic strikethrough quote subsuper | ul ol table hr | addLink image code | save\",\n toolbar: _ctx.toolbar\n }, null, 8, [\"modelValue\", \"toolbar\"])\n ]))\n}","\nimport { Prop, Vue } from 'vue-property-decorator';\nimport { TextPanel } from '@/definitions';\n\ninterface MDEditor {\n insert(callback: (selected: string) => { text: string; selected: string }): void;\n}\n\nexport default class TextEditorV extends Vue {\n @Prop() panel!: TextPanel;\n\n toolbar = {\n subsuper: {\n title: 'Superscript/Subscript',\n text: 'T',\n menus: [\n {\n name: 'Superscript',\n text: 'Superscript',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `${content}`,\n selected: selected\n };\n });\n }\n },\n {\n name: 'Subscript',\n text: 'Subscript',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `${content}`,\n selected: selected\n };\n });\n }\n }\n ]\n },\n addLink: {\n title: 'Insert Link',\n icon: 'v-md-icon-link',\n menus: [\n {\n name: 'Add External Link (New Tab)',\n text: 'Add External Link (New Tab)',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `[${content}](http://)`,\n selected: selected\n };\n });\n }\n },\n {\n name: 'Add External Link (Same Tab)',\n text: 'Add External Link (Same Tab)',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `${content}`,\n selected: selected\n };\n });\n }\n },\n {\n name: 'Add Dynamic Link',\n text: 'Add Dynamic Link',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `${content}`,\n selected: selected\n };\n });\n }\n }\n ]\n }\n };\n}\n","import { render } from \"./text-editor.vue?vue&type=template&id=b0fb221e&scoped=true&ts=true\"\nimport script from \"./text-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./text-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./text-editor.vue?vue&type=style&index=0&id=b0fb221e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b0fb221e\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, vModelCheckbox as _vModelCheckbox, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-681c9c6b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex flex-col\" }\nconst _hoisted_2 = { class: \"text-left\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"mt-6\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-6\" }, null, -1))\nconst _hoisted_6 = { class: \"mt-6\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"mx-4\" }, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_9 = {\n key: 1,\n class: \"mb-4\"\n}\nconst _hoisted_10 = { class: \"flex justify-between mb-4\" }\nconst _hoisted_11 = { class: \"mt-2\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"iframe\", {\n src: \"scripts/ramp-editor/samples/fgpv-author.html\",\n style: {\"width\":\"70vw\",\"height\":\"100vh\"},\n id: \"RAMPeditorframe\"\n}, null, -1))\nconst _hoisted_13 = { key: 1 }\nconst _hoisted_14 = { class: \"text-left mt-2\" }\nconst _hoisted_15 = { class: \"flex flex-row items-center\" }\nconst _hoisted_16 = {\n key: 0,\n class: \"flex flex-wrap list-none justify-center\"\n}\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"add-map\" }, null, -1))\nconst _hoisted_18 = { key: 2 }\nconst _hoisted_19 = { class: \"text-left mt-2\" }\nconst _hoisted_20 = { class: \"flex flex-wrap list-none justify-center\" }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"edit-map\" }, null, -1))\nconst _hoisted_22 = {\n slot: \"header\",\n class: \"text-lg font-bold\"\n}\nconst _hoisted_23 = { class: \"w-full flex justify-end\" }\nconst _hoisted_24 = [\"disabled\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_time_slider_editor = _resolveComponent(\"time-slider-editor\")!\n const _component_vue_final_modal = _resolveComponent(\"vue-final-modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", _hoisted_2, _toDisplayString(_ctx.$t('editor.map.title')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.panel.title) = $event))\n }, null, 512), [\n [_vModelText, _ctx.panel.title]\n ]),\n (_ctx.status === 'editing')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"label\", _hoisted_4, _toDisplayString(_ctx.$t('editor.map.scrollguard.enable')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n onChange: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.saveScrollguard && _ctx.saveScrollguard(...args))),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.panel.scrollguard) = $event))\n }, null, 544), [\n [_vModelCheckbox, _ctx.panel.scrollguard]\n ]),\n _hoisted_5,\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('editor.map.timeslider.enable')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n onChange: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.saveTimeSlider && _ctx.saveTimeSlider(...args))),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.usingTimeSlider) = $event))\n }, null, 544), [\n [_vModelCheckbox, _ctx.usingTimeSlider]\n ]),\n _hoisted_7,\n (_ctx.usingTimeSlider)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$vfm.open('time-slider-edit-modal'))),\n class: \"bg-black text-white hover:bg-gray-800 mt-3\"\n }, _toDisplayString(_ctx.$t('editor.map.timeslider.edit')), 1))\n : _createCommentVNode(\"\", true),\n _hoisted_8,\n (_ctx.usingTimeSlider)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('editor.map.edit')) + \":\", 1),\n _createElementVNode(\"button\", {\n class: \"border border-black hover:bg-gray-100\",\n onClick: _cache[6] || (_cache[6] = \n () => {\n _ctx.status = 'default';\n }\n )\n }, _toDisplayString(_ctx.$t('editor.map.edit.cancel')), 1)\n ]),\n _hoisted_12\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.status === 'creating')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"label\", _hoisted_14, _toDisplayString(_ctx.$t('editor.map.label.name')) + \"*:\", 1),\n _createElementVNode(\"div\", _hoisted_15, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.newFileName) = $event))\n }, null, 512), [\n [_vModelText, _ctx.newFileName]\n ]),\n _createTextVNode(\".json\")\n ]),\n (_ctx.newFileName != '')\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_16, [\n _createElementVNode(\"li\", {\n class: \"map-item items-center my-8 mx-5 overflow-hidden\",\n onClick: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.createNewConfig && _ctx.createNewConfig(...args)))\n }, [\n _hoisted_17,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('editor.map.label.create')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.status === 'default')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _createElementVNode(\"label\", _hoisted_19, _toDisplayString(_ctx.$t('editor.map.edit')) + \":\", 1),\n _createElementVNode(\"ul\", _hoisted_20, [\n _createElementVNode(\"li\", {\n class: \"map-item items-center my-8 mx-5 overflow-hidden\",\n onClick: _cache[9] || (_cache[9] = \n//@ts-ignore\n(...args) => (_ctx.openEditor && _ctx.openEditor(...args)))\n }, [\n _hoisted_21,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('editor.map.label.edit')), 1)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_vue_final_modal, {\n modalId: \"time-slider-edit-modal\",\n \"content-class\": \"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2\",\n class: \"flex justify-center items-center\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_22, _toDisplayString(_ctx.$t('editor.map.timeslider.edit')), 1),\n _createVNode(_component_time_slider_editor, {\n config: _ctx.timeSliderConf,\n error: _ctx.timeSliderError,\n onTimeSliderChanged: _ctx.onTimeSliderInput\n }, null, 8, [\"config\", \"error\", \"onTimeSliderChanged\"]),\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"button\", {\n class: _normalizeClass(_ctx.timeSliderError ? '' : 'bg-black text-white hover:bg-gray-800'),\n disabled: _ctx.timeSliderError,\n onClick: _cache[10] || (_cache[10] = \n//@ts-ignore\n(...args) => (_ctx.saveTimeSlider && _ctx.saveTimeSlider(...args)))\n }, \" Done \", 10, _hoisted_24)\n ])\n ]),\n _: 1\n })\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6923af36\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"px-5\" }\nconst _hoisted_2 = { class: \"flex items-center\" }\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = { class: \"mx-3\" }\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_7 = { class: \"flex items-center\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"mx-3\" }\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_12 = {\n key: 0,\n class: \"border-black border-2 p-3 w-2/3\"\n}\nconst _hoisted_13 = { class: \"w-full\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_15 = { class: \"list-disc my-2 ml-8\" }\nconst _hoisted_16 = { key: 1 }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_20 = [\"value\"]\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.range')), 1),\n _createElementVNode(\"input\", {\n type: \"number\",\n value: _ctx.config.range[0],\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('time-slider-changed', 'range', 0, $event.target.value)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('editor.map.timeslider.to')), 1),\n _createElementVNode(\"input\", {\n type: \"number\",\n value: _ctx.config.range[1],\n onInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('time-slider-changed', 'range', 1, $event.target.value)))\n }, null, 40, _hoisted_5)\n ]),\n _hoisted_6,\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.start')), 1),\n _createElementVNode(\"input\", {\n class: \"ml-3\",\n type: \"number\",\n value: _ctx.config.start[0],\n onInput: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('time-slider-changed', 'start', 0, $event.target.value)))\n }, null, 40, _hoisted_8),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('editor.map.timeslider.to')), 1),\n _createElementVNode(\"input\", {\n type: \"number\",\n value: _ctx.config.start[1],\n onInput: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('time-slider-changed', 'start', 1, $event.target.value)))\n }, null, 40, _hoisted_10)\n ]),\n _hoisted_11,\n (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('editor.map.timeslider.warning')), 1),\n _hoisted_14,\n _createElementVNode(\"ul\", _hoisted_15, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.warning.bullet1')), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.warning.bullet2')), 1)\n ]),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.warning.end')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"br\", _hoisted_16))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.attribute')), 1),\n _createElementVNode(\"input\", {\n value: _ctx.config.attribute,\n onInput: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('time-slider-changed', 'attribute', undefined, $event.target.value)))\n }, null, 40, _hoisted_17)\n ]),\n _hoisted_18,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.layers')), 1),\n _hoisted_19,\n _createElementVNode(\"input\", {\n class: \"w-full\",\n value: _ctx.config.layers || '',\n onInput: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('time-slider-changed', 'layers', undefined, $event.target.value)))\n }, null, 40, _hoisted_20)\n ]),\n _hoisted_21,\n _hoisted_22\n ]))\n}","\nimport { TimeSliderConfig } from '@/definitions';\nimport { Prop, Vue } from 'vue-property-decorator';\n\nexport default class TimeSliderEditorV extends Vue {\n @Prop() config!: TimeSliderConfig;\n @Prop() error!: boolean;\n}\n","import { render } from \"./time-slider-editor.vue?vue&type=template&id=6923af36&scoped=true&ts=true\"\nimport script from \"./time-slider-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./time-slider-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./time-slider-editor.vue?vue&type=style&index=0&id=6923af36&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6923af36\"]])\n\nexport default __exports__","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { ConfigFileStructure, MapPanel, SourceCounts, TimeSliderConfig } from '@/definitions';\nimport { VueFinalModal } from 'vue-final-modal';\nimport defaultConfigEn from '../../../public/scripts/ramp-editor/samples/map_en.json';\nimport defaultConfigFr from '../../../public/scripts/ramp-editor/samples/map_fr.json';\nimport TimeSliderEditorV from './helpers/time-slider-editor.vue';\n\n@Options({\n components: {\n 'time-slider-editor': TimeSliderEditorV,\n 'vue-final-modal': VueFinalModal\n }\n})\nexport default class MapEditorV extends Vue {\n @Prop() panel!: MapPanel;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n // For creating new files.\n newFileName = '';\n\n // TimeSlider\n usingTimeSlider = !!this.panel.timeSlider;\n timeSliderError = false;\n timeSliderConf: TimeSliderConfig = { range: [], start: [], attribute: '' };\n status = this.panel.config !== '' ? 'default' : 'creating';\n strippedFileName = this.panel.config !== '' ? this.panel.config.split('/')[3].split('.')[0] : '';\n\n mounted(): void {\n // If a message is received, it means the map save button was pressed.\n window.addEventListener('message', this.saveEditor);\n this.timeSliderConf = JSON.parse(\n JSON.stringify({\n range: this.panel.timeSlider?.range ?? [1000, new Date().getFullYear()],\n start: this.panel.timeSlider?.start ?? [1000, new Date().getFullYear()],\n attribute: this.panel.timeSlider?.attribute ?? ''\n })\n );\n this.validateTimeSlider();\n }\n\n beforeDestroy(): void {\n window.removeEventListener('message', this.saveEditor);\n }\n\n createNewConfig(): void {\n // Update the path to the new file.\n // TODO: ensure that this is not a name already in use?\n this.panel.config = `${this.configFileStructure.uuid}/ramp-config/${this.lang}/${this.newFileName}.json`;\n this.strippedFileName = this.panel.config.split('/')[3].split('.')[0];\n\n if (this.sourceCounts[this.panel.config]) {\n this.sourceCounts[this.panel.config] += 1;\n } else {\n this.sourceCounts[this.panel.config] = 1;\n }\n\n // Create the new map configuration file in the ZIP folder. Copies the `config-default.json` file from the `ramp-editor` folder and renames it.\n this.configFileStructure.rampConfig[this.lang].file(\n `${this.strippedFileName}.json`,\n JSON.stringify(this.lang === 'en' ? defaultConfigEn : defaultConfigFr, null, 4)\n );\n\n // Display the normal edit page now.\n this.status = 'default';\n }\n\n openEditor(): void {\n if (this.panel.config === '') {\n return;\n }\n // Fetch the map configuration and load it into the editor.\n this.status = 'editing';\n\n if (this.panel.config) {\n // Check if the config file exists in the ZIP folder first.\n const assetSrc = `${this.panel.config.substring(this.panel.config.indexOf('/') + 1)}`;\n const configFile = this.configFileStructure.zip.file(assetSrc);\n\n if (configFile) {\n configFile.async('string').then((res: string) => {\n window.config = res;\n const iframe = document.getElementById('RAMPeditorframe') as HTMLIFrameElement;\n if (iframe.contentWindow) {\n iframe.contentWindow.config = res;\n iframe.contentWindow.configname = this.strippedFileName;\n }\n });\n } else {\n // If it does not exist in the ZIP folder, try and fetch from server.\n fetch(this.panel.config).then((data) => {\n data.json().then((res) => {\n let stringResponse = JSON.stringify(res);\n\n window.config = stringResponse;\n const iframe = document.getElementById('RAMPeditorframe') as HTMLIFrameElement;\n if (iframe.contentWindow) {\n iframe.contentWindow.config = stringResponse;\n iframe.contentWindow.configname = this.strippedFileName;\n }\n });\n });\n }\n }\n }\n\n saveScrollguard($event: Event): void {\n this.panel.scrollguard = ($event.target as HTMLInputElement).checked;\n }\n\n saveTimeSlider(): void {\n if (!this.timeSliderError || !this.usingTimeSlider) {\n this.panel.timeSlider = this.usingTimeSlider ? this.timeSliderConf : undefined;\n }\n this.$emit('slide-edit');\n this.$vfm.close('time-slider-edit-modal');\n }\n\n saveEditor(e: MessageEvent): void {\n if (e.data === 'mapSaved') {\n this.status = 'default';\n\n // Add chart config to ZIP file.\n this.configFileStructure.rampConfig[this.lang].file(\n `${this.strippedFileName}.json`,\n JSON.stringify(JSON.parse(localStorage.RAMPconfig), null, 4)\n );\n\n this.$emit('slide-edit');\n }\n }\n\n onTimeSliderInput(property: 'range' | 'start' | 'attribute' | 'layers', index: number, value: string): void {\n if (property === 'layers') {\n if (!value || value === '') {\n delete this.timeSliderConf['layers'];\n } else {\n this.timeSliderConf['layers'] = value.split(',').map((layerId) => {\n return layerId.trim();\n });\n }\n } else {\n property === 'attribute'\n ? (this.timeSliderConf[property] = value)\n : (this.timeSliderConf[property][index] = Number(value));\n }\n this.validateTimeSlider();\n }\n\n validateTimeSlider(): void {\n this.timeSliderError =\n this.timeSliderConf.range.some((val) => val < 0 || !Number.isInteger(val)) ||\n this.timeSliderConf.start.some((val) => val < 0 || !Number.isInteger(val)) ||\n this.timeSliderConf.range[1] < this.timeSliderConf.range[0] ||\n this.timeSliderConf.start[1] < this.timeSliderConf.start[0];\n }\n}\n","import { render } from \"./map-editor.vue?vue&type=template&id=681c9c6b&scoped=true&ts=true\"\nimport script from \"./map-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./map-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./map-editor.vue?vue&type=style&index=0&id=681c9c6b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-681c9c6b\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"block py-20 align-middle text-center h-full\",\n style: {\"margin\":\"0 auto\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_spinner = _resolveComponent(\"spinner\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_spinner, {\n size: \"120px\",\n color: \"#009cd1\",\n style: {\"margin\":\"0 auto\"}\n })\n ]))\n}","\nimport { Options, Vue } from 'vue-property-decorator';\nimport { VueSpinnerOval } from 'vue3-spinners';\n\n@Options({\n components: {\n spinner: VueSpinnerOval\n }\n})\nexport default class LoadingPageV extends Vue {}\n","import { render } from \"./loading-page.vue?vue&type=template&id=f992d808&ts=true\"\nimport script from \"./loading-page.vue?vue&type=script&lang=ts\"\nexport * from \"./loading-page.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, vModelSelect as _vModelSelect } from \"vue\"\n\nconst _hoisted_1 = { class: \"block\" }\nconst _hoisted_2 = { class: \"flex\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = { class: \"w-2/3 mt-5\" }\nconst _hoisted_6 = { class: \"table-header\" }\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { class: \"table-add-row\" }\nconst _hoisted_10 = { class: \"flex flex-col items-center\" }\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { key: 0 }\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_17 = { class: \"font-bold text-xl\" }\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = () => _ctx.changePanel('text')),\n class: _normalizeClass([\"border hover:bg-gray-100\", _ctx.editingStatus === 'text' ? 'border-black' : 'border-gray-300'])\n }, _toDisplayString(_ctx.$t('dynamic.textSection')), 3),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = () => _ctx.changePanel('panels')),\n class: _normalizeClass([\"border hover:bg-gray-100\", _ctx.editingStatus !== 'text' ? 'border-black' : 'border-gray-300'])\n }, _toDisplayString(_ctx.$t('dynamic.panel.collection')), 3)\n ]),\n (_ctx.editingStatus === 'text')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(), _createBlock(_resolveDynamicComponent('text-editor'), {\n key: \"text\",\n panel: _ctx.panel,\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.lang\n }, null, 8, [\"panel\", \"configFileStructure\", \"lang\"]))\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.editingStatus === 'panels')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"table\", _hoisted_5, [\n _createElementVNode(\"tr\", _hoisted_6, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('dynamic.panel.id')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('dynamic.panel.type')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('dynamic.panel.actions')), 1)\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.panel.children, (item, idx) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n class: \"table-contents\",\n key: idx\n }, [\n _createElementVNode(\"td\", null, _toDisplayString(item.id), 1),\n _createElementVNode(\"td\", null, _toDisplayString(item.panel.type), 1),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", {\n onClick: () => _ctx.switchSlide(idx)\n }, _toDisplayString(_ctx.$t('editor.chart.label.edit')), 9, _hoisted_7),\n _createTextVNode(\" | \"),\n _createElementVNode(\"span\", {\n onClick: () => _ctx.removeSlide(idx)\n }, _toDisplayString(_ctx.$t('editor.remove')), 9, _hoisted_8)\n ])\n ]))\n }), 128)),\n _createElementVNode(\"tr\", _hoisted_9, [\n _createElementVNode(\"th\", _hoisted_10, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n placeholder: \"Enter Panel ID\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.newSlideName) = $event))\n }, null, 512), [\n [_vModelText, _ctx.newSlideName]\n ]),\n (_ctx.idUsed)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('dynamic.panel.idTaken')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"th\", null, [\n _withDirectives(_createElementVNode(\"select\", {\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.newSlideType) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_ctx.editors).filter((editor) => editor !== 'image'), (thing) => {\n return (_openBlock(), _createElementBlock(\"option\", { key: thing }, _toDisplayString(thing), 1))\n }), 128))\n ], 512), [\n [_vModelSelect, _ctx.newSlideType]\n ])\n ]),\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.createNewSlide && _ctx.createNewSlide(...args))),\n disabled: _ctx.idUsed\n }, \"Add New\", 8, _hoisted_12)\n ])\n ])\n ]),\n (_ctx.editingSlide !== -1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _hoisted_14,\n _hoisted_15,\n _hoisted_16,\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('dynamic.panel.editor')), 1),\n _hoisted_18,\n (_openBlock(), _createBlock(_resolveDynamicComponent(\n _ctx.editors[\n _ctx.panel.children[_ctx.editingSlide].panel.type === 'image'\n ? 'slideshow'\n : _ctx.panel.children[_ctx.editingSlide].panel.type\n ]\n ), {\n ref: \"slide\",\n key: _ctx.editingSlide + _ctx.panel.children[_ctx.editingSlide].panel.type,\n panel: _ctx.panel.children[_ctx.editingSlide].panel,\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.lang,\n sourceCounts: _ctx.sourceCounts\n }, null, 8, [\"panel\", \"configFileStructure\", \"lang\", \"sourceCounts\"]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport {\n ChartConfig,\n ChartPanel,\n ConfigFileStructure,\n DefaultConfigs,\n DynamicChildItem,\n DynamicPanel,\n ImagePanel,\n MapPanel,\n PanelType,\n SlideshowPanel,\n SourceCounts\n} from '@/definitions';\n\nimport ChartEditorV from './chart-editor.vue';\nimport ImageEditorV from './image-editor.vue';\nimport TextEditorV from './text-editor.vue';\nimport MapEditorV from './map-editor.vue';\n\n@Options({\n components: {\n 'chart-editor': ChartEditorV,\n 'image-editor': ImageEditorV,\n 'text-editor': TextEditorV,\n 'dynamic-editor': DynamicEditorV,\n 'map-editor': MapEditorV\n }\n})\nexport default class DynamicEditorV extends Vue {\n @Prop() panel!: DynamicPanel;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n editors: Record = {\n text: 'text-editor',\n image: 'image-editor',\n slideshow: 'image-editor',\n chart: 'chart-editor',\n map: 'map-editor'\n };\n\n startingConfig: DefaultConfigs = {\n text: {\n type: PanelType.Text,\n title: '',\n content: ''\n },\n dynamic: {\n type: PanelType.Dynamic,\n title: '',\n titleTag: '',\n content: '',\n children: []\n },\n slideshow: {\n type: PanelType.Slideshow,\n images: []\n },\n chart: {\n type: PanelType.Chart,\n charts: []\n },\n map: {\n type: PanelType.Map,\n config: '',\n title: '',\n scrollguard: false\n }\n };\n\n editingStatus = 'text';\n editingSlide = -1;\n\n newSlideName = '';\n newSlideType = 'text';\n\n get idUsed(): boolean {\n return this.panel.children.some((ch: DynamicChildItem) => ch.id === this.newSlideName);\n }\n\n changePanel(target: string): void {\n this.saveChanges();\n this.editingStatus = target;\n }\n\n switchSlide(idx: number): void {\n // Save slide changes if neccessary and switch to the newly selected slide.\n this.saveChanges();\n this.editingSlide = idx;\n\n // Image Panel to Slideshow Panel Conversion\n if (this.panel.children[this.editingSlide].panel.type === 'image') {\n (this.panel.children[this.editingSlide].panel as SlideshowPanel) = {\n type: PanelType.Slideshow,\n images: [this.panel.children[this.editingSlide].panel as ImagePanel]\n };\n }\n }\n\n removeSlide(item: number): void {\n const panel = this.panel.children.find((panel: DynamicChildItem, idx: number) => idx === item)?.panel;\n\n // Update source counts based on which panel is removed.\n switch (panel?.type) {\n case 'map': {\n const mapPanel = panel as MapPanel;\n this.sourceCounts[mapPanel.config] -= 1;\n if (this.sourceCounts[mapPanel.config] === 0) {\n this.configFileStructure.zip.remove(\n `${mapPanel.config.substring(mapPanel.config.indexOf('/') + 1)}`\n );\n }\n break;\n }\n\n case 'chart': {\n const chartPanel = panel as ChartPanel;\n chartPanel.charts.forEach((chart: ChartConfig) => {\n this.sourceCounts[chart.src] -= 1;\n if (this.sourceCounts[chart.src] === 0) {\n this.configFileStructure.zip.remove(`${chart.src.substring(chart.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'slideshow': {\n const slideshowPanel = panel as SlideshowPanel;\n slideshowPanel.images.forEach((image: ImagePanel) => {\n this.sourceCounts[image.src] -= 1;\n if (this.sourceCounts[image.src] === 0) {\n this.configFileStructure.zip.remove(`${image.src.substring(image.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n }\n\n // Remove the panel itself.\n this.panel.children = this.panel.children.filter((panel: DynamicChildItem, idx: number) => idx !== item);\n\n // If the slide being removed is the currently selected slide, unselect it.\n if (this.editingSlide === item) {\n this.editingSlide = -1;\n }\n }\n\n createNewSlide(): void {\n if (!this.newSlideName) return;\n\n const newConfig = {\n id: this.newSlideName,\n panel: JSON.parse(JSON.stringify(this.startingConfig[this.newSlideType as keyof DefaultConfigs]))\n };\n\n this.newSlideName = '';\n this.panel.children.push(newConfig);\n }\n\n saveChanges(): void {\n this.$nextTick(() => {\n if (\n this.$refs.slide !== undefined &&\n typeof (this.$refs.slide as ImageEditorV | ChartEditorV).saveChanges === 'function'\n ) {\n (this.$refs.slide as ImageEditorV | ChartEditorV).saveChanges();\n }\n });\n }\n}\n","import { render } from \"./dynamic-editor.vue?vue&type=template&id=2385e538&ts=true\"\nimport script from \"./dynamic-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./dynamic-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./dynamic-editor.vue?vue&type=style&index=0&id=2385e538&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { Options, Prop, Vue, Watch } from 'vue-property-decorator';\nimport {\n BasePanel,\n ChartConfig,\n ChartPanel,\n ConfigFileStructure,\n DefaultConfigs,\n DynamicChildItem,\n DynamicPanel,\n ImagePanel,\n MapPanel,\n PanelType,\n Slide,\n SlideshowPanel,\n SourceCounts,\n StoryRampConfig,\n TextPanel\n} from '@/definitions';\n\nimport ChartEditorV from './chart-editor.vue';\nimport ImageEditorV from './image-editor.vue';\nimport TextEditorV from './text-editor.vue';\nimport MapEditorV from './map-editor.vue';\nimport LoadingPageV from './helpers/loading-page.vue';\nimport DynamicEditorV from './dynamic-editor.vue';\nimport ConfirmationModalV from './helpers/confirmation-modal.vue';\n\n@Options({\n components: {\n 'chart-editor': ChartEditorV,\n 'image-editor': ImageEditorV,\n 'text-editor': TextEditorV,\n 'map-editor': MapEditorV,\n 'loading-page': LoadingPageV,\n 'dynamic-editor': DynamicEditorV,\n 'confirmation-modal': ConfirmationModalV\n }\n})\nexport default class SlideEditorV extends Vue {\n config: StoryRampConfig | undefined = undefined;\n @Prop() currentSlide!: Slide;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() uid!: string;\n @Prop() slideIndex!: number;\n @Prop() isLast!: boolean;\n @Prop() sourceCounts!: SourceCounts;\n\n panelIndex = 0;\n newType = '';\n rightOnly = false;\n\n editors: Record = {\n text: 'text-editor',\n image: 'image-editor',\n slideshow: 'image-editor',\n chart: 'chart-editor',\n map: 'map-editor',\n loading: 'loading-page',\n dynamic: 'dynamic-editor'\n };\n\n @Watch('currentSlide', { deep: true })\n onSlideChange(): void {\n this.currentSlide ? (this.rightOnly = this.currentSlide.panel.length === 1) : false;\n }\n\n changePanelType(prevType: string, newType: string): void {\n const startingConfig: DefaultConfigs = {\n text: {\n type: PanelType.Text,\n title: '',\n content: ''\n },\n dynamic: {\n type: PanelType.Dynamic,\n title:\n this.currentSlide.panel[0] && prevType === 'text'\n ? (this.currentSlide.panel[0] as TextPanel).title\n : '',\n titleTag: '',\n content:\n this.currentSlide.panel[0] && prevType === 'text'\n ? (this.currentSlide.panel[0] as TextPanel).content\n : '',\n children: []\n },\n slideshow: {\n type: PanelType.Slideshow,\n images: []\n },\n chart: {\n type: PanelType.Chart,\n charts: []\n },\n map: {\n type: PanelType.Map,\n config: '',\n title: '',\n scrollguard: false\n }\n };\n\n // Before swapping panel type, update sources from the to-be-deleted config.\n this.currentSlide.panel.forEach((panel: BasePanel) => this.removeSourceCounts(panel));\n\n // When switching to a dynamic panel, remove the secondary panel.\n if (newType === 'dynamic') {\n this.panelIndex = 0;\n this.currentSlide['panel'] = [startingConfig[newType as keyof DefaultConfigs]];\n } else {\n // Switching panel type when dynamic panels are not involved.\n this.currentSlide.panel[this.panelIndex] = startingConfig[newType as keyof DefaultConfigs];\n }\n }\n\n removeSourceCounts(panel: BasePanel): void {\n // The provided panel is being removed. Update source counts accordingly.\n switch (panel.type) {\n case 'map': {\n const mapPanel = panel as MapPanel;\n this.sourceCounts[mapPanel.config] -= 1;\n if (this.sourceCounts[mapPanel.config] === 0) {\n this.configFileStructure.zip.remove(\n `${mapPanel.config.substring(mapPanel.config.indexOf('/') + 1)}`\n );\n }\n break;\n }\n\n case 'chart': {\n const chartPanel = panel as ChartPanel;\n chartPanel.charts.forEach((chart: ChartConfig) => {\n this.sourceCounts[chart.src] -= 1;\n if (this.sourceCounts[chart.src] === 0) {\n this.configFileStructure.zip.remove(`${chart.src.substring(chart.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'slideshow': {\n const slideshowPanel = panel as SlideshowPanel;\n slideshowPanel.images.forEach((image: ImagePanel) => {\n this.sourceCounts[image.src] -= 1;\n if (this.sourceCounts[image.src] === 0) {\n this.configFileStructure.zip.remove(`${image.src.substring(image.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'dynamic': {\n const dynamicPanel = panel as DynamicPanel;\n dynamicPanel.children.forEach((subPanel: DynamicChildItem) => {\n this.removeSourceCounts(subPanel.panel);\n });\n break;\n }\n }\n }\n\n saveChanges(): void {\n this.$nextTick(() => {\n if (\n this.$refs.editor !== undefined &&\n typeof (this.$refs.editor as ImageEditorV | ChartEditorV).saveChanges === 'function'\n ) {\n (this.$refs.editor as ImageEditorV | ChartEditorV).saveChanges();\n }\n });\n }\n\n selectSlide(index: number): void {\n this.$emit('slide-change', index);\n }\n\n cancelTypeChange(): void {\n (this.$refs.typeSelector as HTMLSelectElement).value = this.currentSlide.panel[this.panelIndex].type;\n }\n\n toggleRightOnly(): void {\n this.saveChanges();\n if (this.rightOnly) {\n this.panelIndex = 0;\n this.currentSlide['panel'] = [this.currentSlide.panel[1]];\n } else {\n this.currentSlide['panel'] = [\n Object.assign(\n {},\n {\n type: PanelType.Text,\n title: '',\n content: ''\n }\n ),\n Object.assign({}, this.currentSlide.panel[0])\n ];\n }\n }\n}\n","import { render } from \"./slide-editor.vue?vue&type=template&id=ecc4f964&scoped=true&ts=true\"\nimport script from \"./slide-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./slide-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./slide-editor.vue?vue&type=style&index=0&id=ecc4f964&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ecc4f964\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, resolveDirective as _resolveDirective, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-50ad0d19\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex toc-header p-2 mt-10\" }\nconst _hoisted_2 = { class: \"flex items-center justify-center font-bold\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"flex-1\" }, null, -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-auto\" }, null, -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block px-1\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\",\n viewBox: \"0 0 24 24\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M24 10h-10v-10h-4v10h-10v4h10v10h4v-10h10z\" })\n ])\n], -1))\nconst _hoisted_6 = { class: \"align-middle inline-block\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"24\",\n width: \"24\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z\" })\n], -1))\nconst _hoisted_8 = [\n _hoisted_7\n]\nconst _hoisted_9 = {\n slot: \"header\",\n class: \"text-xl font-bold\"\n}\nconst _hoisted_10 = { class: \"flex flex-col\" }\nconst _hoisted_11 = { class: \"text-lg font-bold my-6\" }\nconst _hoisted_12 = { class: \"flex\" }\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = [\"onClick\"]\nconst _hoisted_15 = { class: \"self-center overflow-ellipsis whitespace-nowrap overflow-hidden flex-grow ml-2\" }\nconst _hoisted_16 = { class: \"font-bold overflow-hidden\" }\nconst _hoisted_17 = { class: \"flex\" }\nconst _hoisted_18 = { class: \"flex flex-col\" }\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 24 24\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M3 6l3 18h12l3-18h-18zm19-4v2h-20v-2h5.711c.9 0 1.631-1.099 1.631-2h5.316c0 .901.73 2 1.631 2h5.711z\" })\n], -1))\nconst _hoisted_21 = [\n _hoisted_20\n]\nconst _hoisted_22 = [\"onClick\"]\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"24\",\n width: \"24\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z\" })\n], -1))\nconst _hoisted_24 = [\n _hoisted_23\n]\nconst _hoisted_25 = { class: \"flex flex-col mr-2 ml-1 my-1\" }\nconst _hoisted_26 = [\"onClick\", \"disabled\"]\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"fill-current\",\n height: \"20\",\n width: \"20\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"m2 16 8-12 8 12Z\" })\n], -1))\nconst _hoisted_28 = [\n _hoisted_27\n]\nconst _hoisted_29 = [\"onClick\", \"disabled\"]\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"fill-current\",\n height: \"20\",\n width: \"20\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"m2 16 8-12 8 12Z\" })\n], -1))\nconst _hoisted_31 = [\n _hoisted_30\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_vue_final_modal = _resolveComponent(\"vue-final-modal\")!\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n const _component_draggable = _resolveComponent(\"draggable\")!\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.$t('editor.slides.title')), 1),\n _hoisted_3,\n _hoisted_4,\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.addNewSlide && _ctx.addNewSlide(...args)))\n }, [\n _hoisted_5,\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_ctx.$t('editor.slides.addSlide')), 1)\n ]),\n _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$vfm.open(`copy-from-other-lang`)), [\"stop\"]))\n }, _hoisted_8)), [\n [_directive_tippy, {\n delay: '200',\n placement: 'right',\n content: _ctx.$t('editor.slides.copyFromLang'),\n animateFill: true\n }]\n ]),\n _createVNode(_component_vue_final_modal, {\n modalId: \"copy-from-other-lang\",\n \"content-class\": \"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2\",\n class: \"flex justify-center items-center\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_9, _toDisplayString(_ctx.$t('editor.slides.copyFromLang')), 1),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"button\", {\n class: \"w-32 h-12 ml-0\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.copyAllFromOtherLang(_ctx.configFileStructure.configs[_ctx.lang === 'en' ? 'fr' : 'en'].slides)))\n }, _toDisplayString(_ctx.$t('editor.slides.copyAll')), 1),\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('editor.image.label.or')), 1),\n _createElementVNode(\"div\", _hoisted_12, [\n _withDirectives(_createElementVNode(\"select\", {\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.selectedForCopying) = $event)),\n class: \"overflow-ellipsis copy-select\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.configFileStructure.configs[_ctx.lang === 'en' ? 'fr' : 'en']\n .slides, (slide, index) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: index,\n key: slide.title + index\n }, _toDisplayString(_ctx.$t('editor.slides.slide')) + \" \" + _toDisplayString(index + ': ' + slide.title), 9, _hoisted_13))\n }), 128))\n ], 512), [\n [_vModelSelect, _ctx.selectedForCopying]\n ]),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (\n _ctx.copyFromOtherLang(\n _ctx.configFileStructure.configs[_ctx.lang === 'en' ? 'fr' : 'en'].slides[_ctx.selectedForCopying]\n )\n ))\n }, _toDisplayString(_ctx.$t('editor.slides.copy')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"ul\", null, [\n _createVNode(_component_draggable, {\n modelValue: _ctx.slides,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.slides) = $event)),\n onUpdate: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('slides-updated', _ctx.slides))),\n \"item-key\": \"title\"\n }, {\n item: _withCtx(({ element, index }) => [\n _withDirectives((_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"toc-slide border-t flex px-2 cursor-pointer hover:bg-gray-100\", _ctx.currentSlide === element ? 'bg-gray-100' : '']),\n onClick: ($event: any) => (_ctx.selectSlide(index)),\n key: element.title + index\n }, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('editor.slides.slide')) + \" \" + _toDisplayString(index + 1) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(element.title || 'Add a title'), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"button\", {\n onClick: _withModifiers(($event: any) => (_ctx.$vfm.open(`delete-slide-${index}`)), [\"stop\"])\n }, _hoisted_21, 8, _hoisted_19),\n _createElementVNode(\"button\", {\n onClick: _withModifiers(($event: any) => (_ctx.copySlide(index)), [\"stop\"])\n }, _hoisted_24, 8, _hoisted_22)\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"button\", {\n class: _normalizeClass(index == 0 ? 'text-gray-500 cursor-not-allowed' : ''),\n onClick: _withModifiers(($event: any) => (_ctx.moveUp(index)), [\"stop\"]),\n disabled: index == 0\n }, _hoisted_28, 10, _hoisted_26),\n _createElementVNode(\"button\", {\n class: _normalizeClass([\"rotate-180 transform\", index == _ctx.slides.length - 1 ? 'text-gray-500 cursor-not-allowed' : '']),\n onClick: _withModifiers(($event: any) => (_ctx.moveDown(index)), [\"stop\"]),\n disabled: index == _ctx.slides.length - 1\n }, _hoisted_31, 10, _hoisted_29)\n ])\n ]),\n _createVNode(_component_confirmation_modal, {\n name: `delete-slide-${index}`,\n message: _ctx.$t('editor.slides.deleteSlide.confirm', { title: element.title }),\n onOk: ($event: any) => (_ctx.removeSlide(index))\n }, null, 8, [\"name\", \"message\", \"onOk\"])\n ], 10, _hoisted_14)), [\n [_directive_tippy, {\n delay: '200',\n placement: 'right',\n content: element.title,\n animateFill: true\n }]\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]))\n}","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport {\n BasePanel,\n ChartConfig,\n ChartPanel,\n ConfigFileStructure,\n DynamicChildItem,\n DynamicPanel,\n ImagePanel,\n MapPanel,\n Slide,\n SlideshowPanel,\n SourceCounts,\n TextPanel\n} from '@/definitions';\nimport { VueFinalModal } from 'vue-final-modal';\nimport cloneDeep from 'clone-deep';\nimport draggable from 'vuedraggable';\n\nimport SlideEditorV from './slide-editor.vue';\nimport ConfirmationModalV from './helpers/confirmation-modal.vue';\n\n@Options({\n components: {\n 'slide-editor': SlideEditorV,\n 'confirmation-modal': ConfirmationModalV,\n 'vue-final-modal': VueFinalModal,\n draggable\n }\n})\nexport default class SlideTocV extends Vue {\n @Prop() slides!: Slide[];\n @Prop() currentSlide!: Slide | string;\n @Prop() slideIndex!: number;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n selectedForCopying = 0;\n\n selectSlide(index: number): void {\n this.$emit('slide-change', index);\n }\n\n addNewSlide(): void {\n this.slides.push({\n title: '',\n panel: [\n {\n type: 'text',\n title: '',\n content: ''\n } as TextPanel,\n {\n type: 'text',\n title: '',\n content: ''\n } as TextPanel\n ]\n });\n this.selectSlide(this.slides.length - 1);\n this.$emit('slides-updated', this.slides);\n }\n\n copyFromOtherLang(slide: Slide | undefined): void {\n if (slide) {\n this.slides.splice(this.slides.length, 0, cloneDeep(slide));\n this.$emit('slides-updated', this.slides);\n }\n }\n\n copyAllFromOtherLang(slides: Slide[] | undefined): void {\n if (slides) {\n this.slides.splice(this.slides.length, 0, ...slides.map((slide) => cloneDeep(slide)));\n this.$emit('slides-updated', this.slides);\n }\n }\n\n copySlide(index: number): void {\n this.slides.splice(index + 1, 0, cloneDeep(this.slides[index]));\n this.$emit('slides-updated', this.slides);\n }\n\n removeSlide(index: number): void {\n if (index === this.slideIndex) {\n this.$emit('slide-change', -1);\n }\n\n // Before removing the slide, updated the sources for the panels.\n this.removeSourceCounts(index);\n\n this.slides.splice(index, 1);\n this.$emit('slides-updated', this.slides);\n }\n\n removeSourceCounts(deletedIndex: number): void {\n const panel = this.slides.find((slide: Slide, idx: number) => idx === deletedIndex)?.panel;\n panel?.forEach((p: BasePanel) => this.removeSourceHelper(p));\n }\n\n removeSourceHelper(panel: BasePanel): void {\n // The provided panel is being removed. Update source counts accordingly.\n switch (panel.type) {\n case 'map': {\n const mapPanel = panel as MapPanel;\n this.sourceCounts[mapPanel.config] -= 1;\n if (this.sourceCounts[mapPanel.config] === 0) {\n this.configFileStructure.zip.remove(\n `${mapPanel.config.substring(mapPanel.config.indexOf('/') + 1)}`\n );\n }\n break;\n }\n\n case 'chart': {\n const chartPanel = panel as ChartPanel;\n chartPanel.charts.forEach((chart: ChartConfig) => {\n this.sourceCounts[chart.src] -= 1;\n if (this.sourceCounts[chart.src] === 0) {\n this.configFileStructure.zip.remove(`${chart.src.substring(chart.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'slideshow': {\n const slideshowPanel = panel as SlideshowPanel;\n slideshowPanel.images.forEach((image: ImagePanel) => {\n this.sourceCounts[image.src] -= 1;\n if (this.sourceCounts[image.src] === 0) {\n this.configFileStructure.zip.remove(`${image.src.substring(image.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'dynamic': {\n const dynamicPanel = panel as DynamicPanel;\n dynamicPanel.children.forEach((subPanel: DynamicChildItem) => {\n this.removeSourceHelper(subPanel.panel);\n });\n break;\n }\n }\n }\n\n moveUp(index: number): void {\n this.moveDown(index - 1);\n }\n\n moveDown(index: number): void {\n this.slides.splice(index + 1, 0, this.slides.splice(index, 1)[0]);\n this.$emit('slides-updated', this.slides);\n }\n}\n","import { render } from \"./slide-toc.vue?vue&type=template&id=50ad0d19&scoped=true&ts=true\"\nimport script from \"./slide-toc.vue?vue&type=script&lang=ts\"\nexport * from \"./slide-toc.vue?vue&type=script&lang=ts\"\n\nimport \"./slide-toc.vue?vue&type=style&index=0&id=50ad0d19&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-50ad0d19\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"mb-5\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_4 = { class: \"mb-5\" }\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = { class: \"mb-5\" }\nconst _hoisted_7 = [\"value\"]\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = [\"src\"]\nconst _hoisted_11 = {\n key: 1,\n class: \"image-preview\"\n}\nconst _hoisted_12 = { class: \"mb-5\" }\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_15 = [\"value\"]\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"mb-5\" }, null, -1)\nconst _hoisted_18 = { class: \"inline-block\" }\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_20 = [\"value\"]\nconst _hoisted_21 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"mb-5\" }, null, -1)\nconst _hoisted_23 = { class: \"inline-block\" }\nconst _hoisted_24 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_25 = [\"value\"]\nconst _hoisted_26 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"mb-5\" }, null, -1)\nconst _hoisted_28 = { class: \"inline-block\" }\nconst _hoisted_29 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_30 = { class: \"mb-5\" }\nconst _hoisted_31 = [\"value\"]\nconst _hoisted_32 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_33 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"label\", _hoisted_1, _toDisplayString(_ctx.$t('editor.title')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"title\",\n value: _ctx.metadata.title,\n onChange: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-1/3\"\n }, null, 40, _hoisted_2),\n _hoisted_3,\n _createElementVNode(\"label\", _hoisted_4, _toDisplayString(_ctx.$t('editor.slides.title')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"introTitle\",\n value: _ctx.metadata.introTitle,\n onChange: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-1/4\"\n }, null, 40, _hoisted_5),\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('editor.slides.intro')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"introSubtitle\",\n value: _ctx.metadata.introSubtitle,\n onChange: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-1/4\"\n }, null, 40, _hoisted_7),\n _hoisted_8,\n (!!_ctx.metadata.logoPreview)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.logoPreview')) + \":\", 1),\n (!!_ctx.metadata.logoPreview && _ctx.metadata.logoPreview != 'error')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _ctx.metadata.logoPreview,\n class: \"image-preview\"\n }, null, 8, _hoisted_10))\n : _createCommentVNode(\"\", true),\n (_ctx.metadata.logoPreview == 'error')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('editor.image.loadingError')), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"label\", _hoisted_12, _toDisplayString(_ctx.$t('editor.logo')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n onChange: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('logo-source-changed', $event))),\n value: _ctx.metadata.logoName,\n class: \"w-1/4\"\n }, null, 40, _hoisted_13),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.openFileSelector && _ctx.openFileSelector(...args)), [\"stop\"])),\n class: \"bg-black text-white hover:bg-gray-800\"\n }, _toDisplayString(_ctx.$t('editor.browse')), 1),\n (_ctx.metadata.logoName || _ctx.metadata.logoPreview)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[5] || (_cache[5] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.removeLogo && _ctx.removeLogo(...args)), [\"stop\"])),\n class: \"border border-black\"\n }, _toDisplayString(_ctx.$t('editor.remove')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"input\", {\n type: \"file\",\n id: \"logoUpload\",\n onChange: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('logo-changed', $event))),\n class: \"w-1/4\",\n style: {\"display\":\"none\"}\n }, null, 32),\n _hoisted_14,\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.logoAltText')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"logoAltText\",\n value: _ctx.metadata.logoAltText,\n onChange: _cache[7] || (_cache[7] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-2/3\"\n }, null, 40, _hoisted_15),\n _hoisted_16,\n _hoisted_17,\n _createElementVNode(\"p\", _hoisted_18, [\n _createElementVNode(\"i\", null, _toDisplayString(_ctx.$t('editor.logoAltText.desc')), 1)\n ]),\n _hoisted_19,\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.contextLink')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"contextLink\",\n value: _ctx.metadata.contextLink,\n onChange: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-2/3\"\n }, null, 40, _hoisted_20),\n _hoisted_21,\n _hoisted_22,\n _createElementVNode(\"p\", _hoisted_23, [\n _createElementVNode(\"i\", null, _toDisplayString(_ctx.$t('editor.contextLink.info')), 1)\n ]),\n _hoisted_24,\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.contextLabel')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"contextLabel\",\n value: _ctx.metadata.contextLabel,\n onChange: _cache[9] || (_cache[9] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-2/3\"\n }, null, 40, _hoisted_25),\n _hoisted_26,\n _hoisted_27,\n _createElementVNode(\"p\", _hoisted_28, [\n _createElementVNode(\"i\", null, _toDisplayString(_ctx.$t('editor.contextLabel.info')), 1)\n ]),\n _hoisted_29,\n _createElementVNode(\"label\", _hoisted_30, _toDisplayString(_ctx.$t('editor.dateModified')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"date\",\n name: \"dateModified\",\n value: _ctx.metadata.dateModified,\n onChange: _cache[10] || (_cache[10] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args)))\n }, null, 40, _hoisted_31),\n _hoisted_32,\n _hoisted_33\n ]))\n}","\nimport { Prop, Vue } from 'vue-property-decorator';\n\nexport default class MetadataEditorV extends Vue {\n @Prop() metadata!: {\n title: string;\n introTitle: string;\n introSubtitle: string;\n logoName: string;\n logoPreview: string;\n logoAltText: string;\n contextLink: string;\n contextLabel: string;\n dateModified: string;\n };\n\n openFileSelector(): void {\n document.getElementById('logoUpload')?.click();\n }\n\n metadataChanged(event: Event): void {\n this.$emit(\n 'metadata-changed',\n (event.target as HTMLInputElement).name,\n (event.target as HTMLInputElement).value\n );\n }\n\n removeLogo(): void {\n this.metadata.logoName = '';\n this.metadata.logoPreview = '';\n }\n}\n","import { render } from \"./metadata-content.vue?vue&type=template&id=44a21107&ts=true\"\nimport script from \"./metadata-content.vue?vue&type=script&lang=ts\"\nexport * from \"./metadata-content.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, resolveDirective as _resolveDirective, withCtx as _withCtx, createBlock as _createBlock, withDirectives as _withDirectives, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, Transition as _Transition, createVNode as _createVNode, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, renderSlot as _renderSlot, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5e860565\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"editor-container\" }\nconst _hoisted_2 = { class: \"editor-header sticky flex items-center border-b border-black bg-gray-200 py-2 px-2 z-10\" }\nconst _hoisted_3 = { class: \"mx-1\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"18\",\n height: \"18.001\",\n viewBox: \"0 0 18 18.001\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n id: \"logout-Icon-SVG-098767893\",\n d: \"M5.808,13.782v1.406A2.816,2.816,0,0,0,8.621,18h7.067A2.816,2.816,0,0,0,18.5,15.188V2.813A2.816,2.816,0,0,0,15.687,0H8.621A2.816,2.816,0,0,0,5.808,2.813V4.219a.7.7,0,0,0,1.406,0V2.813A1.408,1.408,0,0,1,8.621,1.406h7.067a1.408,1.408,0,0,1,1.406,1.406V15.188a1.408,1.408,0,0,1-1.406,1.406H8.621a1.408,1.408,0,0,1-1.406-1.406V13.782a.7.7,0,0,0-1.406,0ZM1.014,7.793,2.589,6.218a.7.7,0,0,1,.994.994l-1.12,1.12h8.443a.7.7,0,1,1,0,1.406H2.463l1.12,1.12a.7.7,0,1,1-.994.994L1.014,10.279A1.76,1.76,0,0,1,1.014,7.793Zm0,0\",\n transform: \"translate(-0.5)\"\n })\n], -1))\nconst _hoisted_5 = { class: \"ml-3 flex flex-col\" }\nconst _hoisted_6 = { class: \"font-semibold text-lg\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-auto\" }, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n class: \"inline\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"18px\",\n height: \"18px\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M 2 2 L 4.9394531 4.9394531 C 3.1262684 6.7482143 2 9.2427079 2 12 C 2 17.514 6.486 22 12 22 C 17.514 22 22 17.514 22 12 C 22 6.486 17.514 2 12 2 L 12 4 C 16.411 4 20 7.589 20 12 C 20 16.411 16.411 20 12 20 C 7.589 20 4 16.411 4 12 C 4 9.7940092 4.9004767 7.7972757 6.3496094 6.3496094 L 9 9 L 9 2 L 2 2 z\" })\n], -1))\nconst _hoisted_9 = { class: \"font-normal ml-1\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"border-2 border-red-700 text-red-700 rounded p-1 mr-2\"\n}\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block mr-1 pb-1 fill-current\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n \"clip-rule\": \"evenodd\",\n \"fill-rule\": \"evenodd\",\n class: \"fill-red-600\",\n width: \"18\",\n height: \"18\",\n \"stroke-linejoin\": \"round\",\n \"stroke-miterlimit\": \"2\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"m12.002 21.534c5.518 0 9.998-4.48 9.998-9.998s-4.48-9.997-9.998-9.997c-5.517 0-9.997 4.479-9.997 9.997s4.48 9.998 9.997 9.998zm0-1.5c-4.69 0-8.497-3.808-8.497-8.498s3.807-8.497 8.497-8.497 8.498 3.807 8.498 8.497-3.808 8.498-8.498 8.498zm0-6.5c-.414 0-.75-.336-.75-.75v-5.5c0-.414.336-.75.75-.75s.75.336.75.75v5.5c0 .414-.336.75-.75.75zm-.002 3c.552 0 1-.448 1-1s-.448-1-1-1-1 .448-1 1 .448 1 1 1z\",\n \"fill-rule\": \"nonzero\"\n })\n ])\n], -1))\nconst _hoisted_12 = { class: \"align-center inline-block select-none\" }\nconst _hoisted_13 = [\"disabled\"]\nconst _hoisted_14 = { class: \"inline-block\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"align-middle inline-block px-1\"\n}\nconst _hoisted_16 = { class: \"flex\" }\nconst _hoisted_17 = { class: \"w-80 flex-shrink-0 border-r border-black editor-toc\" }\nconst _hoisted_18 = { class: \"flex items-center justify-center border-b p-2\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block px-1\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n \"clip-rule\": \"evenodd\",\n \"fill-rule\": \"evenodd\",\n width: \"16\",\n height: \"16\",\n \"stroke-linejoin\": \"round\",\n \"stroke-miterlimit\": \"2\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"m4.481 15.659c-1.334 3.916-1.48 4.232-1.48 4.587 0 .528.46.749.749.749.352 0 .668-.137 4.574-1.492zm1.06-1.061 3.846 3.846 11.321-11.311c.195-.195.293-.45.293-.707 0-.255-.098-.51-.293-.706-.692-.691-1.742-1.74-2.435-2.432-.195-.195-.451-.293-.707-.293-.254 0-.51.098-.706.293z\",\n \"fill-rule\": \"nonzero\"\n })\n ])\n], -1))\nconst _hoisted_20 = { class: \"align-middle inline-block\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_spinner = _resolveComponent(\"spinner\")!\n const _component_slide_toc = _resolveComponent(\"slide-toc\")!\n const _component_slide_editor = _resolveComponent(\"slide-editor\")!\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, [\n _withDirectives((_openBlock(), _createBlock(_component_router_link, {\n to: { name: 'home' },\n class: \"mt-1 flex justify-center h-full w-full\",\n target: \"\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n })), [\n [_directive_tippy, {\n delay: '200',\n placement: 'right',\n content: _ctx.$t('editor.returnToLanding'),\n animateFill: true\n }]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_ctx.metadata.title), 1),\n _createElementVNode(\"span\", {\n class: _normalizeClass(_ctx.metadata.title ? 'text-xs' : '')\n }, \"UUID: \" + _toDisplayString(_ctx.uuid), 3)\n ]),\n _hoisted_7,\n (_ctx.unsavedChanges)\n ? _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$vfm.open(`reload-config`))),\n class: \"border-2 border-red-700 text-red-700 rounded p-1 mr-2\"\n }, [\n _hoisted_8,\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('editor.resetChanges')), 1)\n ])), [\n [_directive_tippy, {\n delay: '200',\n placement: 'bottom',\n content: _ctx.$t('editor.resetChanges'),\n animateFill: true\n }]\n ])\n : _createCommentVNode(\"\", true),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_ctx.unsavedChanges)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [\n _hoisted_11,\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('editor.unsavedChanges')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _renderSlot(_ctx.$slots, \"langModal\", _normalizeProps(_guardReactiveProps({ unsavedChanges: _ctx.unsavedChanges })), undefined, true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.preview && _ctx.preview(...args))),\n class: \"bg-white border border-black hover:bg-gray-100\"\n }, _toDisplayString(_ctx.$t('editor.preview')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.saveChanges && _ctx.saveChanges(...args))),\n class: \"bg-black text-white hover:bg-gray-900\",\n disabled: _ctx.saving\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.saving ? _ctx.$t('editor.savingChanges') : _ctx.$t('editor.saveChanges')), 1),\n (_ctx.saving)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_15, [\n _createVNode(_component_spinner, {\n size: \"16px\",\n color: \"#009cd1\",\n class: \"ml-1 mb-1\"\n })\n ]))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_13)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$vfm.open('metadata-edit-modal')), [\"stop\"]))\n }, [\n _hoisted_19,\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('editor.editMetadata')), 1)\n ])\n ]),\n _createVNode(_component_slide_toc, {\n slides: _ctx.slides,\n currentSlide: _ctx.currentSlide,\n slideIndex: _ctx.slideIndex,\n onSlideChange: _ctx.selectSlide,\n onSlidesUpdated: _ctx.updateSlides,\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.configLang,\n sourceCounts: _ctx.sourceCounts\n }, null, 8, [\"slides\", \"currentSlide\", \"slideIndex\", \"onSlideChange\", \"onSlidesUpdated\", \"configFileStructure\", \"lang\", \"sourceCounts\"])\n ]),\n _createVNode(_component_slide_editor, {\n ref: \"slide\",\n configFileStructure: _ctx.configFileStructure,\n currentSlide: _ctx.currentSlide,\n lang: _ctx.configLang,\n slideIndex: _ctx.slideIndex,\n isLast: _ctx.slideIndex === _ctx.slides.length - 1,\n uid: _ctx.uuid,\n onSlideChange: _ctx.selectSlide,\n onSlideEdit: _ctx.onSlidesEdited,\n sourceCounts: _ctx.sourceCounts\n }, null, 8, [\"configFileStructure\", \"currentSlide\", \"lang\", \"slideIndex\", \"isLast\", \"uid\", \"onSlideChange\", \"onSlideEdit\", \"sourceCounts\"])\n ]),\n _renderSlot(_ctx.$slots, \"metadataModal\", {}, undefined, true),\n _createVNode(_component_confirmation_modal, {\n name: `reload-config`,\n message: _ctx.$t('editor.refreshChanges.modal'),\n onOk: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('refresh-config')))\n }, null, 8, [\"message\"])\n ]))\n}","\nimport { Options, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { ConfigFileStructure, MetadataContent, Slide, SourceCounts, StoryRampConfig } from '@/definitions';\n\nimport { VueSpinnerOval } from 'vue3-spinners';\nimport SlideEditorV from './slide-editor.vue';\nimport SlideTocV from './slide-toc.vue';\nimport MetadataContentV from './helpers/metadata-content.vue';\nimport ConfirmationModalV from './helpers/confirmation-modal.vue';\n\n@Options({\n components: {\n 'metadata-content': MetadataContentV,\n 'confirmation-modal': ConfirmationModalV,\n spinner: VueSpinnerOval,\n 'slide-editor': SlideEditorV,\n 'slide-toc': SlideTocV\n }\n})\nexport default class EditorV extends Vue {\n @Prop() configs!: {\n [key: string]: StoryRampConfig | undefined;\n };\n @Prop() configFileStructure!: ConfigFileStructure | undefined;\n @Prop() sourceCounts!: SourceCounts;\n @Prop() metadata!: MetadataContent;\n @Prop() slides!: Slide[];\n @Prop() configLang!: string;\n @Prop() saving!: boolean;\n @Prop() unsavedChanges!: boolean;\n\n // Form properties.\n uuid = '';\n logoImage: undefined | File = undefined;\n loadSlides: undefined | Slide[] = undefined;\n currentSlide: Slide | string = '';\n slideIndex = -1;\n\n @Watch('slides', { deep: true })\n onSlidesEdited(): void {\n this.$emit('save-status', true);\n }\n\n @Watch('metadata', { deep: true })\n onMetadataEdited(): void {\n this.$emit('save-status', true);\n }\n\n created(): void {\n this.loadSlides = this.slides;\n this.uuid = this.$route.params.uid as string;\n window.addEventListener('beforeunload', this.beforeWindowUnload);\n }\n\n mounted(): void {\n // from https://css-tricks.com/how-to-detect-when-a-sticky-element-gets-pinned/\n const observer = new IntersectionObserver(([e]) => e.target.classList.toggle('z-40', e.intersectionRatio < 1), {\n threshold: [1]\n });\n\n observer.observe(document.querySelector('.editor-header') as Element);\n }\n\n beforeDestroy(): void {\n window.removeEventListener('beforeunload', this.beforeWindowUnload);\n }\n\n /**\n * Change current slide to selected slide.\n */\n selectSlide(index: number): void {\n // save changes to current slide before changing slides\n if (this.$refs.slide !== undefined) {\n this.$nextTick(() => {\n (this.$refs.slide as SlideEditorV).saveChanges();\n });\n }\n\n // Quickly swap to loading page, and then swap to new slide. Allows Vue to re-draw page correctly.\n this.currentSlide = {\n title: '',\n panel: [{ type: 'loading-page' }, { type: 'loading-page' }]\n };\n\n setTimeout(() => {\n this.currentSlide = index === -1 ? '' : (this.loadSlides as Slide[])[index];\n this.slideIndex = index;\n (this.$refs.slide as SlideEditorV).panelIndex = 0;\n window.scrollTo(0, 0);\n }, 5);\n }\n\n /**\n * Updates slides after adding, removing, or reordering.\n */\n updateSlides(slides: Slide[]): void {\n this.loadSlides = slides;\n this.slideIndex = this.loadSlides.indexOf(this.currentSlide as Slide);\n }\n\n /**\n * Open current editor config as a new Storylines product in new tab.\n */\n preview(): void {\n // save current slide final changes before previewing product\n if (this.$refs.slide !== undefined) {\n this.$nextTick(() => {\n (this.$refs.slide as SlideEditorV).saveChanges();\n });\n }\n\n setTimeout(() => {\n const routeData = this.$router.resolve({ name: 'preview' });\n const previewTab = window.open(routeData.href, '_blank');\n (previewTab as Window).props = {\n config: JSON.parse(JSON.stringify(this.configs[this.configLang])),\n configFileStructure: this.configFileStructure\n };\n }, 5);\n }\n\n saveChanges(): void {\n // save current slide final changes before generating config file\n if (this.$refs.slide !== undefined) {\n this.$nextTick(() => {\n (this.$refs.slide as SlideEditorV).saveChanges();\n });\n }\n\n // emit save changes event\n this.$emit('save-changes');\n }\n\n beforeWindowUnload(e: BeforeUnloadEvent): void {\n // show popup if when leaving page with unsaved changes\n if (this.unsavedChanges && !window.confirm()) {\n e.preventDefault();\n e.returnValue = '';\n }\n }\n}\n","import { render } from \"./editor.vue?vue&type=template&id=5e860565&scoped=true&ts=true\"\nimport script from \"./editor.vue?vue&type=script&lang=ts\"\nexport * from \"./editor.vue?vue&type=script&lang=ts\"\n\nimport \"./editor.vue?vue&type=style&index=0&id=5e860565&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5e860565\"]])\n\nexport default __exports__","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { RouteLocationNormalized } from 'vue-router';\nimport { AxiosResponse } from 'axios';\nimport {\n AudioPanel,\n BasePanel,\n ChartConfig,\n ChartPanel,\n ConfigFileStructure,\n DynamicChildItem,\n DynamicPanel,\n ImagePanel,\n MapPanel,\n MetadataContent,\n Slide,\n SlideshowPanel,\n SourceCounts,\n StoryRampConfig\n} from '@/definitions';\nimport { VueSpinnerOval } from 'vue3-spinners';\nimport { VueFinalModal } from 'vue-final-modal';\n\nconst JSZip = require('jszip');\nconst axios = require('axios').default;\nconst { v4: uuidv4 } = require('uuid');\n\nimport Message from 'vue-m-message';\nimport SlideEditorV from './slide-editor.vue';\nimport SlideTocV from './slide-toc.vue';\nimport MetadataContentV from './helpers/metadata-content.vue';\nimport ConfirmationModalV from './helpers/confirmation-modal.vue';\nimport EditorV from './editor.vue';\n\nimport cloneDeep from 'clone-deep';\n\ninterface RouteParams {\n uid: string;\n configLang: string;\n configs: {\n [key: string]: StoryRampConfig | undefined;\n };\n configFileStructure: ConfigFileStructure;\n metadata: MetadataContent;\n slides: Slide[];\n sourceCounts: SourceCounts;\n existing: boolean;\n}\n\n@Options({\n components: {\n Editor: EditorV,\n 'confirmation-modal': ConfirmationModalV,\n 'metadata-content': MetadataContentV,\n spinner: VueSpinnerOval,\n 'slide-editor': SlideEditorV,\n 'slide-toc': SlideTocV,\n 'vue-final-modal': VueFinalModal\n }\n})\nexport default class MetadataEditorV extends Vue {\n @Prop({ default: true }) editExisting!: boolean; // true if editing existing storylines product, false if new product\n\n configs: {\n [key: string]: StoryRampConfig | undefined;\n } = { en: undefined, fr: undefined };\n configFileStructure: ConfigFileStructure | undefined = undefined;\n loadExisting = false;\n reloadExisting = false;\n loadStatus = 'waiting';\n loadEditor = false;\n error = false; // whether an error has occurred\n warning = false; // used for duplicate uuid warning\n configLang = 'en';\n\n // Saving properties.\n saving = false;\n unsavedChanges = false;\n\n // Form properties.\n uuid = '';\n logoImage: undefined | File = undefined;\n metadata: MetadataContent = {\n title: '',\n introTitle: '',\n introSubtitle: '',\n logoPreview: '',\n logoName: '',\n logoAltText: '',\n contextLink: '',\n contextLabel: '',\n dateModified: ''\n };\n // add more required metadata fields to here as needed\n reqFields: { uuid: boolean } = {\n uuid: true\n };\n slides: Slide[] = [];\n sourceCounts: SourceCounts = {};\n\n created(): void {\n this.loadExisting = this.editExisting;\n\n // Generate UUID for new product\n this.uuid = (this.$route.params.uid as string) ?? (this.loadExisting ? undefined : uuidv4());\n this.configLang = this.$route.params.configLang ? (this.$route.params.configLang as string) : 'en';\n\n // Initialize Storylines config and the configuration structure.\n this.configs = { en: undefined, fr: undefined };\n this.configFileStructure = undefined;\n\n // set any metadata default values for creating new product\n if (!this.loadExisting) {\n // set current date as default\n const curDate = new Date();\n const year = curDate.getFullYear();\n const month = (curDate.getMonth() + 1).toString().padStart(2, '0');\n const day = curDate.getDate().toString().padStart(2, '0');\n this.metadata.dateModified = `${year}-${month}-${day}`;\n }\n\n // Find which view to render based on route\n if (this.$route.name === 'editor') {\n this.loadEditor = true;\n const props = this.$route.meta.data as RouteParams;\n\n // Properties already passed in props, load editor view (could use a refactor to clean up this workflow process)\n if (props && props.configs && props.configFileStructure) {\n this.configs = props.configs;\n this.configFileStructure = props.configFileStructure;\n this.metadata = props.metadata;\n this.slides = props.slides;\n this.sourceCounts = props.sourceCounts;\n this.loadExisting = props.existing;\n // Load product logo (if provided).\n const logo = this.configs[this.configLang]?.introSlide.logo?.src;\n const logoSrc = `assets/${this.configLang}/${this.metadata.logoName}`;\n\n if (logo) {\n const logoFile = this.configFileStructure?.zip.file(logoSrc);\n if (logoFile) {\n logoFile.async('blob').then((img: Blob) => {\n this.logoImage = new File([img], this.metadata.logoName);\n this.metadata.logoPreview = URL.createObjectURL(img);\n this.loadStatus = 'loaded';\n });\n } else {\n // Fill in the field with this value whether it exists or not.\n this.metadata.logoName = logo;\n\n // If it doesn't exist, maybe it's a remote file?\n fetch(logo).then((data: Response) => {\n if (data.status !== 404) {\n data.blob().then((blob: Blob) => {\n this.logoImage = new File([blob], this.metadata.logoName);\n this.metadata.logoPreview = logo;\n this.loadStatus = 'loaded';\n });\n }\n });\n }\n } else {\n // No logo to load.\n this.loadStatus = 'loaded';\n }\n\n return;\n }\n }\n\n // If a product UUID is provided, fetch the contents from the server.\n if (this.$route.params.uid) {\n this.generateRemoteConfig();\n }\n }\n\n /**\n * Generates a new product file for brand new products.\n */\n generateNewConfig(): void {\n const configZip = new JSZip();\n\n // Generate a new configuration file and populate required fields.\n this.configs[this.configLang] = this.configHelper();\n const config = this.configs[this.configLang] as StoryRampConfig;\n\n // Set the source of the product logo\n if (!this.metadata.logoName) {\n config.introSlide.logo.src = '';\n } else if (!this.metadata.logoName.includes('http')) {\n config.introSlide.logo.src = `${this.uuid}/assets/${this.configLang}/${this.logoImage?.name}`;\n } else {\n config.introSlide.logo.src = this.metadata.logoName;\n }\n config.slides = [];\n\n const otherLang = this.configLang === 'en' ? 'fr' : 'en';\n this.configs[otherLang] = cloneDeep(config);\n (this.configs[otherLang] as StoryRampConfig).lang = otherLang;\n const formattedOtherLangConfig = JSON.stringify(this.configs[otherLang], null, 4);\n\n // Add the newly generated Storylines configuration file to the ZIP file.\n const fileName = `${this.uuid}_${this.configLang}.json`;\n const formattedConfigFile = JSON.stringify(config, null, 4);\n\n configZip.file(fileName, formattedConfigFile);\n configZip.file(`${this.uuid}_${otherLang}.json`, formattedOtherLangConfig);\n\n // Generate the file structure, defer uploading the image until the structure is created.\n this.configFileStructureHelper(configZip, this.logoImage);\n }\n\n configHelper(): StoryRampConfig {\n return {\n title: this.metadata.title,\n lang: this.configLang,\n introSlide: {\n logo: {\n src: ''\n },\n title: this.metadata.introTitle,\n subtitle: this.metadata.introSubtitle\n },\n slides: [],\n contextLabel: this.metadata.contextLabel,\n contextLink: this.metadata.contextLink,\n dateModified: this.metadata.dateModified\n };\n }\n\n /**\n * Provided with a UID, retrieve the project contents from the file server.\n */\n generateRemoteConfig(): void {\n this.loadStatus = 'loading';\n // Attempt to fetch the project from the server.\n fetch(`http://localhost:6040/retrieve/${this.uuid}`)\n .then((res: Response) => {\n if (res.status === 404) {\n // Product not found.\n Message.error(`The requested UUID '${this.uuid ?? ''}' does not exist.`);\n this.error = true;\n this.loadStatus = 'waiting';\n this.clearConfig();\n } else {\n const configZip = new JSZip();\n // Files retrieved. Convert them into a JSZip object.\n res.blob().then((file: Blob) => {\n configZip.loadAsync(file).then(() => {\n this.configFileStructureHelper(configZip);\n });\n });\n }\n })\n .catch(() => {\n Message.error(`Failed to load product, no response from server`);\n this.loadStatus = 'loaded';\n });\n }\n\n findSources(configs: { [key: string]: StoryRampConfig | undefined }): void {\n ['en', 'fr'].forEach((lang) => {\n if (configs[lang]?.introSlide.logo?.src) {\n this.incrementSourceCount((configs[lang] as StoryRampConfig).introSlide.logo.src);\n }\n\n configs[lang]?.slides.forEach((slide) => {\n slide.panel.forEach((panel) => {\n this.panelSourceHelper(panel);\n });\n });\n });\n }\n\n panelSourceHelper(panel: BasePanel): void {\n switch (panel.type) {\n case 'dynamic':\n (panel as DynamicPanel).children.forEach((subPanel: DynamicChildItem) => {\n this.panelSourceHelper(subPanel.panel);\n });\n break;\n case 'slideshow':\n (panel as SlideshowPanel).images.forEach((image: ImagePanel) => {\n this.incrementSourceCount(image.src);\n });\n break;\n case 'chart':\n (panel as ChartPanel).charts.forEach((chart: ChartConfig) => {\n this.incrementSourceCount(chart.src);\n });\n break;\n case 'image':\n case 'video':\n case 'audio':\n this.incrementSourceCount((panel as AudioPanel).src);\n break;\n case 'map':\n this.incrementSourceCount((panel as MapPanel).config);\n break;\n default:\n break;\n }\n }\n\n incrementSourceCount(src: string): void {\n if (this.sourceCounts[src]) {\n this.sourceCounts[src] += 1;\n } else {\n this.sourceCounts[src] = 1;\n }\n }\n\n /**\n * Generates or loads a ZIP file and creates required project folders if needed.\n * Returns an object that makes it easy to access any specific folder.\n */\n configFileStructureHelper(configZip: typeof JSZip, uploadLogo?: File | undefined): void {\n const assetsFolder = configZip.folder('assets');\n const chartsFolder = configZip.folder('charts');\n const rampConfigFolder = configZip.folder('ramp-config');\n\n this.configFileStructure = {\n uuid: this.uuid,\n zip: configZip,\n configs: this.configs as unknown as { [key: string]: StoryRampConfig },\n assets: {\n en: assetsFolder.folder('en'),\n fr: assetsFolder.folder('fr')\n },\n charts: {\n en: chartsFolder.folder('en'),\n fr: chartsFolder.folder('fr')\n },\n rampConfig: {\n en: rampConfigFolder.folder('en'),\n fr: rampConfigFolder.folder('fr')\n }\n };\n\n // If uploadLogo is set, upload the logo to the directory.\n if (uploadLogo !== undefined) {\n this.configFileStructure.assets[this.configLang].file(uploadLogo?.name, uploadLogo);\n }\n\n this.loadConfig();\n }\n\n /**\n * Loads a configuration file from the product folder, and sets application data\n * as needed.\n */\n async loadConfig(config?: StoryRampConfig): Promise {\n if (config) {\n this.useConfig(config);\n return;\n }\n\n try {\n const enFile = this.configFileStructure?.zip.file(`${this.uuid}_en.json`);\n const frFile = this.configFileStructure?.zip.file(`${this.uuid}_fr.json`);\n await enFile?.async('string').then((res: string) => {\n this.configs['en'] = JSON.parse(res);\n });\n await frFile?.async('string').then((res: string) => {\n this.configs['fr'] = JSON.parse(res);\n });\n } catch {\n Message.error(`The requested product '${this.uuid ?? ''}' is malformed.`);\n this.loadStatus = 'waiting';\n this.clearConfig();\n return;\n }\n\n if (this.loadExisting) {\n this.loadStatus = 'waiting';\n Message.success('Successfully loaded storyline!');\n } else {\n this.loadStatus = 'loaded';\n }\n\n // Load in project data.\n if (this.configs[this.configLang]) {\n this.useConfig(this.configs[this.configLang] as StoryRampConfig);\n this.findSources(this.configs);\n // Update router path\n if (this.reloadExisting) {\n this.loadEditor = true;\n this.generateConfig();\n this.updateEditorPath();\n } else if (!this.loadExisting) {\n this.loadEditor = true;\n this.updateEditorPath();\n }\n }\n }\n\n useConfig(config: StoryRampConfig): void {\n this.metadata.title = config.title;\n this.metadata.introTitle = config.introSlide.title;\n this.metadata.introSubtitle = config.introSlide.subtitle;\n this.metadata.contextLink = config.contextLink;\n this.metadata.contextLabel = config.contextLabel;\n this.metadata.dateModified = config.dateModified;\n\n // Conversion for individual image panels to slideshow for gallery display\n this.slides = config.slides;\n this.slides.forEach((slide: Slide) => {\n if (slide.panel.length === 2 && slide.panel[1].type === 'image') {\n const newSlide = {\n type: 'slideshow',\n images: [slide.panel[1]]\n };\n slide.panel[1] = newSlide;\n }\n });\n\n const logo = config.introSlide.logo?.src;\n if (logo) {\n // Set the alt text for the logo.\n this.metadata.logoAltText = config.introSlide.logo?.altText ? config.introSlide.logo.altText : '';\n\n // Fetch the logo from the folder (if it exists).\n const logoSrc = `${logo.substring(logo.indexOf('/') + 1)}`;\n const logoName = `${logo.split('/')[logo.split('/').length - 1]}`;\n const logoFile = this.configFileStructure?.zip.file(logoSrc);\n\n if (logoFile) {\n logoFile.async('blob').then((img: Blob) => {\n this.logoImage = new File([img], logoName);\n this.metadata.logoPreview = URL.createObjectURL(img);\n this.metadata.logoName = logoName;\n this.loadStatus = 'loaded';\n });\n } else {\n // Fill in the field with this value whether it exists or not.\n this.metadata.logoName = logo;\n\n // If it doesn't exist, maybe it's a remote file?\n fetch(logo).then((data: Response) => {\n if (data.status !== 404) {\n data.blob().then((blob: Blob) => {\n this.logoImage = new File([blob], logoName);\n this.metadata.logoPreview = logo;\n this.loadStatus = 'loaded';\n });\n }\n });\n }\n }\n }\n\n /**\n * Called when `Save Changes` is pressed. Re-generates the Storylines configuration file\n * with the new changes, then generates and submits the product file to the server.\n */\n generateConfig(): ConfigFileStructure {\n this.saving = true;\n\n // Update the configuration file.\n const fileName = `${this.uuid}_${this.configLang}.json`;\n const formattedConfigFile = JSON.stringify(this.configs[this.configLang], null, 4);\n\n this.configFileStructure?.zip.file(fileName, formattedConfigFile);\n\n // Upload the ZIP file.\n this.configFileStructure?.zip.generateAsync({ type: 'blob' }).then((content: Blob) => {\n const formData = new FormData();\n formData.append('data', content, `${this.uuid}.zip`);\n const headers = { 'Content-Type': 'multipart/form-data' };\n\n axios\n .post('http://localhost:6040/upload', formData, { headers })\n .then((res: AxiosResponse) => {\n res.data.files; // binary representation of the file\n res.status; // HTTP status\n this.unsavedChanges = false;\n this.loadExisting = true; // if editExisting was false, we can now set it to true\n Message.success('Successfully saved changes!');\n })\n .catch(() => {\n Message.error('Failed to save changes.');\n })\n .finally(() => {\n // padding to prevent save button from being clicked rapidly\n setTimeout(() => {\n this.saving = false;\n }, 500);\n });\n });\n\n return this.configFileStructure as ConfigFileStructure;\n }\n\n updateMetadata(\n key: 'title' | 'introTitle' | 'introSubtitle' | 'contextLink' | 'contextLabel' | 'dateModified',\n value: string\n ): void {\n this.metadata[key] = value;\n this.unsavedChanges = true;\n }\n\n /**\n * Called when `Save Changes` is pressed on metadata page. Save metadata content fields\n * to config file. If `publish` is set to true, publish to server as well.\n */\n saveMetadata(publish = false): void {\n // update metadata content to existing config only if it has been successfully loaded\n const config = this.configs[this.configLang];\n if (config !== undefined) {\n config.title = this.metadata.title;\n config.introSlide.title = this.metadata.introTitle;\n config.introSlide.subtitle = this.metadata.introSubtitle;\n config.contextLink = this.metadata.contextLink;\n config.contextLabel = this.metadata.contextLabel;\n config.dateModified = this.metadata.dateModified;\n\n // If the logo section is missing, create it here before overwriting values.\n if (config.introSlide.logo === undefined) {\n config.introSlide.logo = { src: '', altText: '' };\n }\n\n config.introSlide.logo.altText = this.metadata.logoAltText;\n\n // If the logo doesn't include HTTP, assume it's a local file.\n if (!this.metadata.logoName) {\n config.introSlide.logo.src = '';\n } else if (!this.metadata.logoName.includes('http')) {\n config.introSlide.logo.src = `${this.uuid}/assets/${this.configLang}/${this.logoImage?.name}`;\n this.configFileStructure?.assets[this.configLang].file(\n this.logoImage?.name as string,\n this.logoImage as File\n );\n } else {\n config.introSlide.logo.src = this.metadata.logoName;\n }\n\n if (publish) {\n this.generateConfig();\n }\n }\n this.$vfm.close('metadata-edit-modal');\n }\n\n /**\n * Called when loading a nonexistant or invalid UUID. Clears all previously populated\n * metadata fields, configs, and slide content.\n */\n clearConfig(): void {\n this.metadata = {\n title: '',\n introTitle: '',\n introSubtitle: '',\n contextLink: '',\n contextLabel: '',\n dateModified: '',\n logoPreview: '',\n logoName: '',\n logoAltText: ''\n };\n this.configs = { en: undefined, fr: undefined };\n this.slides = [];\n }\n\n /**\n * Language toggle.\n */\n swapLang(): void {\n this.configLang = this.configLang === 'en' ? 'fr' : 'en';\n if (!this.configs[this.configLang]) {\n return;\n }\n this.loadConfig(this.configs[this.configLang]);\n\n if (this.loadEditor) {\n (this.$refs.mainEditor as EditorV).updateSlides(this.slides);\n this.$nextTick(() => {\n (this.$refs.mainEditor as EditorV).selectSlide(-1);\n });\n }\n }\n\n checkUuid(): void {\n if (!this.loadExisting) {\n fetch(`http://localhost:6040/retrieve/${this.uuid}`).then((res: Response) => {\n if (res.status !== 404) {\n this.warning = true;\n }\n });\n }\n this.warning = false;\n }\n\n /**\n * React to param changes in URL.\n */\n beforeRouteUpdate(to: RouteLocationNormalized, from: RouteLocationNormalized, next: () => void): void {\n this.uuid = to.params.uid as string;\n this.$i18n.locale = to.params.lang as string;\n\n next();\n }\n\n onLogoSourceInput(e: InputEvent): void {\n const isImgUrl = (url: string) => {\n const img = new Image();\n img.src = url;\n return new Promise((resolve) => {\n img.onerror = () => resolve(false);\n img.onload = () => resolve(true);\n });\n };\n\n this.metadata.logoName = (e.target as HTMLInputElement).value;\n\n isImgUrl(this.metadata.logoName).then((res) => {\n if (res) {\n this.metadata.logoPreview = this.metadata.logoName;\n Message.success('Successfully loaded logo image.');\n } else {\n this.metadata.logoPreview = 'error';\n Message.error('Failed to load logo image.');\n }\n });\n }\n\n onFileChange(e: Event): void {\n // Retrieve the uploaded file.\n const uploadedFile = ((e.target as HTMLInputElement).files as ArrayLike)[0];\n this.logoImage = uploadedFile;\n\n // Generate an image preview.\n this.metadata.logoPreview = URL.createObjectURL(uploadedFile);\n this.metadata.logoName = uploadedFile.name;\n }\n\n updateEditorPath(): void {\n if (this.$route.name !== 'editor') {\n this.$router.beforeEach((to: RouteLocationNormalized) => {\n if (to.name === 'editor') {\n to.meta.data = {\n configLang: this.configLang,\n configs: this.configs,\n configFileStructure: this.configFileStructure,\n sourceCounts: this.sourceCounts,\n metadata: this.metadata,\n slides: this.slides,\n existing: this.editExisting\n };\n }\n });\n\n this.$router.push({ name: 'editor', params: { uid: this.uuid } });\n }\n }\n\n checkRequiredFields(): boolean {\n // check if all required metadata fields are non-empty\n this.reqFields.uuid = !!this.uuid;\n if (Object.values(this.reqFields).some((field: boolean) => !field)) {\n Message.error(`Please fill out the required fields before proceeding.`);\n return false;\n }\n return true;\n }\n\n /**\n * Called when 'next' button is pressed on metadata page to continue to main editor.\n */\n continueToEditor(): void {\n if (!this.checkRequiredFields()) {\n return;\n }\n if (this.loadExisting) {\n if (this.configs[this.configLang] !== undefined && this.uuid === this.configFileStructure?.uuid) {\n this.loadEditor = true;\n this.updateEditorPath();\n } else {\n Message.error('No config exists for storylines product.');\n }\n } else if (!this.uuid) {\n Message.error('Missing required field: UUID');\n this.error = true;\n } else {\n this.generateNewConfig();\n }\n }\n\n /**\n * Update the unsaved changes value to the payload.\n */\n updateSaveStatus(payload: boolean): void {\n this.unsavedChanges = payload;\n }\n\n refreshConfig(): void {\n // Re-fetch the product from the server.\n if (this.loadExisting) {\n this.reloadExisting = true;\n this.loadExisting = false;\n this.generateRemoteConfig();\n } else {\n this.reloadExisting = false;\n this.generateNewConfig();\n }\n }\n\n beforeRouteLeave(to: RouteLocationNormalized, from: RouteLocationNormalized, next: (cont?: boolean) => void): void {\n const curEditor = this.$route.name === 'editor';\n const confirmationMessage = 'Leave the page? Changes made may not be saved.';\n if (this.unsavedChanges && curEditor && !window.confirm(confirmationMessage)) {\n next(false);\n } else {\n next();\n }\n }\n}\n","import { render } from \"./metadata-editor.vue?vue&type=template&id=0c6bdccf&ts=true\"\nimport script from \"./metadata-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./metadata-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./metadata-editor.vue?vue&type=style&index=0&id=0c6bdccf&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = {\n class: \"block py-20 align-middle text-center h-full\",\n style: {\"margin\":\"0 auto\"}\n}\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = {\n key: 0,\n class: \"storyramp-app bg-white\"\n}\nconst _hoisted_5 = { class: \"sticky top-0 z-50 flex border-b border-black bg-gray-200 py-2 px-2 justify-between\" }\nconst _hoisted_6 = { class: \"w-mobile-full truncate\" }\nconst _hoisted_7 = { class: \"font-semibold text-lg m-1\" }\nconst _hoisted_8 = {\n class: \"w-full mx-auto pb-10\",\n id: \"story\"\n}\nconst _hoisted_9 = { class: \"p-8 pt-2 text-right text-sm\" }\nconst _hoisted_10 = [\"href\"]\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://github.com/ramp4-pcar4/storylines-editor\",\n target: \"_NEW\",\n class: \"font-semibold text-blue-700\"\n}, \"ramp4-pcar4/storylines-editor\", -1)\nconst _hoisted_12 = {\n key: 0,\n class: \"storyramp-modified\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_spinner = _resolveComponent(\"spinner\")!\n const _component_storylines_intro = _resolveComponent(\"storylines-intro\")!\n const _component_storylines_content = _resolveComponent(\"storylines-content\")!\n\n return (_ctx.loadStatus === 'loading')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_spinner, {\n size: \"120px\",\n color: \"#009cd1\",\n style: {\"margin\":\"0 auto\"}\n })\n ])\n ]))\n : (_ctx.loadStatus === 'loaded')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_ctx.config !== undefined)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"header\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.config.title), 1)\n ])\n ]),\n _createVNode(_component_storylines_intro, {\n config: _ctx.config.introSlide,\n configFileStructure: _ctx.configFileStructure\n }, null, 8, [\"config\", \"configFileStructure\"]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_storylines_content, {\n config: _ctx.config,\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.lang,\n plugin: true,\n onStep: _ctx.updateActiveIndex\n }, null, 8, [\"config\", \"configFileStructure\", \"lang\", \"onStep\"])\n ]),\n _createElementVNode(\"footer\", _hoisted_9, [\n _createTextVNode(\" Context: \"),\n _createElementVNode(\"a\", {\n class: \"text-blue-700 font-semibold\",\n href: _ctx.config.contextLink,\n target: \"_NEW\"\n }, _toDisplayString(_ctx.config.contextLabel), 9, _hoisted_10),\n _createTextVNode(\" | \"),\n _hoisted_11\n ]),\n (_ctx.config.dateModified)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, _toDisplayString(_ctx.$t('story.date')) + \" \" + _toDisplayString(_ctx.config.dateModified), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { Options, Vue } from 'vue-property-decorator';\nimport { ConfigFileStructure, StoryRampConfig } from '@/definitions';\nimport { VueSpinnerOval } from 'vue3-spinners';\n\n@Options({\n components: {\n spinner: VueSpinnerOval\n }\n})\nexport default class StoryPreviewV extends Vue {\n config: StoryRampConfig | undefined = undefined;\n configFileStructure: ConfigFileStructure | undefined = undefined;\n savedProduct = false;\n loadStatus = 'loading';\n activeChapterIndex = -1;\n lang = 'en';\n uid = '';\n\n created(): void {\n const uid = this.$route.params.uid as string;\n const lang = this.$route.params.lang as string;\n if (uid) {\n this.savedProduct = true;\n // attempt to fetch saved config file from the server (TODO: setup as express route?)\n fetch(`http://localhost:6040/retrieve/${uid}/${lang}`).then((res: Response) => {\n if (res.status === 404) {\n console.error(`There does not exist a saved product with UID ${uid}.`);\n // redirect to canada.ca 404 page on invalid URL params\n // window.location.href = 'https://www.canada.ca/errors/404.html';\n } else {\n res.json().then((config: StoryRampConfig) => {\n this.config = config;\n this.loadStatus = 'loaded';\n document.title = this.config.title + ' - Canada.ca';\n });\n }\n });\n } else {\n this.config = window.props.config;\n this.configFileStructure = window.props.configFileStructure;\n this.loadStatus = 'loaded';\n }\n\n // set page lang\n const html = document.documentElement;\n html.setAttribute('lang', this.lang);\n this.$i18n.locale = this.lang;\n }\n\n updateActiveIndex(idx: number): void {\n this.activeChapterIndex = idx;\n }\n}\n","import { render } from \"./preview.vue?vue&type=template&id=c0d876e0&ts=true\"\nimport script from \"./preview.vue?vue&type=script&lang=ts\"\nexport * from \"./preview.vue?vue&type=script&lang=ts\"\n\nimport \"./preview.vue?vue&type=style&index=0&id=c0d876e0&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import LandingV from '@/components/editor/landing.vue';\nimport MetadataEditorV from '@/components/editor/metadata-editor.vue';\nimport StoryPreviewV from '@/components/editor/preview.vue';\nimport { createRouter, createWebHashHistory, RouteLocationNormalized } from 'vue-router';\n\nconst routes = [\n {\n path: '/:lang/editor',\n name: 'home',\n component: LandingV,\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor/:uid',\n redirect: '/:lang/editor-metadata/:uid'\n },\n {\n path: '/:lang/editor-metadata',\n name: 'metadataExisting',\n component: MetadataEditorV,\n props: { editExisting: true },\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor-metadata',\n name: 'metadataNew',\n component: MetadataEditorV,\n props: { editExisting: false },\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor-metadata/:uid',\n component: MetadataEditorV,\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor-main/:uid',\n name: 'editor',\n component: MetadataEditorV,\n props: true,\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor-preview',\n component: StoryPreviewV,\n name: 'preview',\n props: true,\n meta: { title: 'story.window.title' }\n },\n {\n path: '/:lang/editor-preview/:uid',\n component: StoryPreviewV,\n meta: { title: 'story.window.title' }\n }\n];\n\nconst router = createRouter({\n routes: routes,\n // TODO: change to history mode for nicer URLs (eliminating middle hash) see #100\n history: createWebHashHistory(),\n scrollBehavior: function (to: RouteLocationNormalized) {\n if (to.hash) {\n return {\n selector: decodeURIComponent(to.hash),\n behavior: 'smooth'\n };\n }\n }\n});\n\nexport default router;\n","import { createI18n } from 'vue-i18n';\n\ntype csvRows = { key: string; enValue: string; frValue: string }[];\ninterface LocaleMessages {\n [key: string]: { [name: string]: string };\n}\n\nconst rows = require('./lang.csv');\n\nconst lang = document.documentElement.getAttribute('lang');\n\n/**\n * Fold the imported CSV file in the form of `{ key: string, enValue: string, frValue: string }[]` to the form understood by VueI18n: `{ en: { [name: string]: string }, fr: { [name: string]: string } }`.\n *\n * @param {csvRows} rows\n * @returns {LocaleMessages}\n */\nfunction fold(rows: csvRows): LocaleMessages {\n return rows.reduce(\n (map, item) => {\n map.en[item.key] = item.enValue;\n map.fr[item.key] = item.frValue;\n return map;\n },\n { en: {}, fr: {} } as LocaleMessages\n );\n}\n\nconst i18n = createI18n({\n legacy: false,\n locale: lang || undefined,\n fallbackLocale: 'en',\n globalInjection: true,\n messages: fold(rows)\n});\n\nexport { i18n };\n","import { createApp } from 'vue';\nimport App from './app.vue';\n\nimport './router/componentHooks';\nimport router from './router';\nimport './style.css';\nimport { i18n } from './lang';\n\nimport VueMarkdownEditor from '@kangc/v-md-editor';\nimport '@kangc/v-md-editor/lib/style/base-editor.css';\nimport githubTheme from '@kangc/v-md-editor/lib/theme/github.js';\nimport '@kangc/v-md-editor/lib/theme/style/github.css';\nimport enUS from '@kangc/v-md-editor/lib/lang/en-US';\nimport hljs from 'highlight.js';\n\nVueMarkdownEditor.lang.use('en-US', enUS);\nVueMarkdownEditor.use(githubTheme, {\n Hljs: hljs\n});\n\nimport { createVfm } from 'vue-final-modal';\nconst vfm = createVfm();\nimport 'vue-final-modal/dist/style.css';\n\nimport VueTippy from 'vue-tippy';\nimport 'tippy.js/dist/tippy.css';\nimport 'tippy.js/dist/backdrop.css';\n\nimport HighchartsVue from 'highcharts-vue';\nimport Message from 'vue-m-message';\nimport 'vue-m-message/dist/style.css';\n\nimport StorylinesViewer from 'ramp-storylines';\nimport 'ramp-storylines/dist/storylines-viewer.css';\n\nconst app = createApp(App);\n\napp.use(router)\n .use(i18n)\n .use(VueTippy, {\n directive: 'tippy',\n component: 'tippy'\n })\n .use(HighchartsVue)\n .use(Message)\n .use(StorylinesViewer)\n .use(VueMarkdownEditor)\n .use(vfm);\n\napp.mount('#app');\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./time-slider-editor.vue?vue&type=style&index=0&id=6923af36&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./slide-toc.vue?vue&type=style&index=0&id=50ad0d19&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./slide-editor.vue?vue&type=style&index=0&id=ecc4f964&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/vue3-refactor/js/chunk-common.eaeb0467.js b/vue3-refactor/js/chunk-common.eaeb0467.js deleted file mode 100644 index c70596b8..00000000 --- a/vue3-refactor/js/chunk-common.eaeb0467.js +++ /dev/null @@ -1,2 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-common"],{0:function(e,t,a){e.exports=a("cd49")},"03b2":function(e,t,a){"use strict";a("2c0d")},"0bb1":function(e,t,a){"use strict";a("4f41")},"0c56":function(e,t,a){},"185b":function(e,t,a){"use strict";a("a183")},"1c29":function(e,t,a){"use strict";a("ed05")},"2c0d":function(e,t,a){},"38c8":function(e,t,a){},"3d6d":function(e,t){var a=[{key:"chapters.title",enValue:"Chapters",enValid:"1",frValue:"Chapitres",frValid:"1"},{key:"chapters.return",enValue:"Return to top",enValid:"1",frValue:"Retournez en haut",frValid:"1"},{key:"chapters.menu",enValue:"Toggle menu",enValid:"1",frValue:"Menu à bascule",frValid:"1"},{key:"scrollguard.desc",enValue:"Use ctrl + scroll to zoom the map",enValid:"1",frValue:"Utilisez les touches Ctrl et + pour faire un zoom de la carte",frValid:"1"},{key:"story.window.title",enValue:"RAMP Storylines",enValid:"1",frValue:"RAMP Storylines",frValid:"0"},{key:"story.date",enValue:"Date modified:",enValid:"1",frValue:"Date de modification:",frValid:"1"},{key:"story.error",enValue:"An error occurred while loading this Storylines product. See developer console for more information.",enValid:"1",frValue:"Une erreur est survenue pendant le chargement ce synopsis produit. Voir la console du promoteur pour obtenir de plus amples renseignements.",frValid:"1"},{key:"image.fullscreen",enValue:"Full Screen",enValid:"1",frValue:"Plein Écran",frValid:"1"},{key:"dynamic.back",enValue:"Back",enValid:"1",frValue:"Retour",frValid:"0"},{key:"dynamic.textSection",enValue:"Text Section",enValid:"1",frValue:"Section de texte",frValid:"1"},{key:"dynamic.panel.collection",enValue:"Panel Collection",enValid:"1",frValue:"Collection de panneaux",frValid:"1"},{key:"dynamic.panel.id",enValue:"Panel ID",enValid:"1",frValue:"No d’identification du panneau",frValid:"1"},{key:"dynamic.panel.type",enValue:"Panel Type",enValid:"1",frValue:"Type de panneaux",frValid:"1"},{key:"dynamic.panel.actions",enValue:"Panel Actions",enValid:"1",frValue:"Actions du panneau",frValid:"1"},{key:"dynamic.panel.idTaken",enValue:"Panel ID is already",enValid:"1",frValue:"Le nom du panneau est déjà utilisé",frValid:"1"},{key:"dynamic.panel.editor",enValue:"Panel Editor:",enValid:"1",frValue:"Éditeur de panneaux:",frValid:"1"},{key:"timeslider.expand",enValue:"Expand",enValid:"1",frValue:"Développer",frValid:"1"},{key:"timeslider.minimize",enValue:"Minimize",enValid:"1",frValue:"Réduire",frValid:"1"},{key:"timeslider.play",enValue:"Play",enValid:"1",frValue:"Lecture",frValid:"1"},{key:"timeslider.pause",enValue:"Pause",enValid:"1",frValue:"Pause",frValid:"1"},{key:"fullscreen.activate",enValue:"Enter Fullscreen",enValid:"1",frValue:"Afficher le mode plein écran",frValid:"1"},{key:"fullscreen.deactivate",enValue:"Exit Fullscreen",enValid:"1",frValue:"Quitter le mode plein écran",frValid:"1"},{key:"editor.window.title",enValue:"RAMP Storylines Editor",enValid:"1",frValue:"Éditeur de scénarios de la PCAR",frValid:"1"},{key:"editor.createProduct",enValue:"Create New Storylines Product",enValid:"1",frValue:"Créer un nouveau produit de scénarios",frValid:"1"},{key:"editor.editProduct",enValue:"Edit Existing Storylines Product",enValid:"1",frValue:"Modifier un produit de scénarios",frValid:"1"},{key:"editor.editMetadata",enValue:"Edit Project Metadata",enValid:"1",frValue:"Modifier les métadonnées d’un projet",frValid:"1"},{key:"editor.productDetails",enValue:"Storylines product details",enValid:"1",frValue:"Détails du produit de scénarios",frValid:"1"},{key:"editor.metadata.instructions",enValue:'Fill in metadata details about your new Storylines product. Use the "Preview" button to see what your slides will look like.',enValid:"1",frValue:"Inscrivez les métadonnées de votre nouveau produit de scénario. Utilisez la fonction « Afficher l’aperçu » pour voir à quoi ressemblent vos diapositives.",frValid:"1"},{key:"editor.uuid",enValue:"UUID",enValid:"1",frValue:"UUID",frValid:"0"},{key:"editor.uuid.exists",enValue:"UUID already exists. Saving this will overwrite existing product.",enValid:"1",frValue:"L’IDUU existe déjà. Enregistrer ce produit écrasera le produit existant.",frValid:"1"},{key:"editor.title",enValue:"Title",enValid:"1",frValue:"Titre",frValid:"1"},{key:"editor.logo",enValue:"Logo",enValid:"1",frValue:"Logo",frValid:"1"},{key:"editor.logoPreview",enValue:"Logo Preview",enValid:"1",frValue:"Aperçu du logo",frValid:"1"},{key:"editor.logoAltText",enValue:"Logo Alt Text",enValid:"1",frValue:"Lien contextuel",frValid:"1"},{key:"editor.logoAltText.desc",enValue:"For accessibility purposes, provide description text for the logo.",enValid:"1",frValue:"Pour des raisons d'accessibilité, fournissez un texte descriptif pour le logo.",frValid:"0"},{key:"editor.contextLink",enValue:"Context Link",enValid:"1",frValue:"Lien contextuel",frValid:"1"},{key:"editor.contextLink.info",enValue:"Context link shows up at the bottom of the page to provide additional resources for interested users.",enValid:"1",frValue:"Le lien contextuel apparaît au bas de la page et fournit des ressources supplémentaires aux utilisateurs intéressés.",frValid:"1"},{key:"editor.contextLabel",enValue:"Context Label",enValid:"1",frValue:"Étiquette de contexte",frValid:"1"},{key:"editor.contextLabel.info",enValue:"Context label shows up before the context link to explain what the link is for",enValid:"1",frValue:"L’étiquette de contexte apparaît avant le lien contextuel et explique à quoi sert le lien.",frValid:"1"},{key:"editor.dateModified",enValue:"Date Modified",enValid:"1",frValue:"Date de modification",frValid:"1"},{key:"editor.load",enValue:"Load",enValid:"1",frValue:"Charger",frValid:"1"},{key:"editor.browse",enValue:"Browse",enValid:"1",frValue:"Parcourir",frValid:"1"},{key:"editor.remove",enValue:"Remove",enValid:"1",frValue:"Supprimer",frValid:"1"},{key:"editor.back",enValue:"Back",enValid:"1",frValue:"Retour",frValid:"1"},{key:"editor.next",enValue:"Next",enValid:"1",frValue:"Suivant",frValid:"1"},{key:"editor.preview",enValue:"Preview",enValid:"1",frValue:"Afficher l’aperçu",frValid:"1"},{key:"editor.confirm",enValue:"Confirm",enValid:"1",frValue:"Confirmer",frValid:"1"},{key:"editor.cancel",enValue:"Cancel",enValid:"1",frValue:"Annuler",frValid:"1"},{key:"editor.unsavedChanges",enValue:"Unsaved changes",enValid:"1",frValue:"Modifications non enregistrées",frValid:"1"},{key:"editor.saveChanges",enValue:"Save Changes",enValid:"1",frValue:"Enregistrer les modifications",frValid:"1"},{key:"editor.savingChanges",enValue:"Saving...",enValid:"1",frValue:"Enregistrement...",frValid:"1"},{key:"editor.resetChanges",enValue:"Reset Changes",enValid:"1",frValue:"Annuler les modifications",frValid:"1"},{key:"editor.refreshChanges.modal",enValue:"Are you sure you want to reload the product? All unsaved changes will be lost.",enValid:"1",frValue:"Voulez-vous vraiment recharger ce produit? Toute modification non enregistrée sera perdue.",frValid:"1"},{key:"editor.changeLang.modal",enValue:"Are you sure you want to switch languages? Unsaved changes may be lost.",enValid:"1",frValue:"Voulez-vous vraiment changer de langue? Toute modification non enregistrée sera perdue.",frValid:"1"},{key:"editor.frenchConfig",enValue:"View French Config",enValid:"1",frValue:"Afficher la configuration en français",frValid:"1"},{key:"editor.englishConfig",enValue:"View English Config",enValid:"1",frValue:"Afficher la configuration en anglais",frValid:"1"},{key:"editor.returnToLanding",enValue:"Return to Landing",enValid:"1",frValue:"Retour à la page d’accueil",frValid:"1"},{key:"editor.image.delete",enValue:"Delete Image",enValid:"1",frValue:"Supprimer l'image",frValid:"1"},{key:"editor.image.label.drag",enValue:"Drag your images here",enValid:"1",frValue:"Faites glisser vos images ici",frValid:"1"},{key:"editor.image.label.or",enValue:"or",enValid:"1",frValue:"ou",frValid:"1"},{key:"editor.image.label.browse",enValue:"browse",enValid:"1",frValue:"parcourir",frValid:"1"},{key:"editor.image.label.upload",enValue:"to upload",enValid:"1",frValue:"téléverser",frValid:"1"},{key:"editor.image.label.caption",enValue:"Caption",enValid:"1",frValue:"Légende",frValid:"1"},{key:"editor.image.reorder",enValue:"Click and drag to reorder images",enValid:"1",frValue:"Cliquez sur les images et faites-les glisser pour changer l’ordre.",frValid:"1"},{key:"editor.image.altTag",enValue:"Alt tag",enValid:"1",frValue:"Texte de remplacement",frValid:"1"},{key:"editor.image.slideshowCaption",enValue:"Slideshow Caption",enValid:"1",frValue:"Légende du diaporama",frValid:"1"},{key:"editor.image.loadingError",enValue:"An error occurred when trying to load image",enValid:"1",frValue:"Une erreur est survenue lors du chargement de l’image.",frValid:"1"},{key:"editor.chart.delete",enValue:"Delete Chart",enValid:"1",frValue:"Supprimer le graphique",frValid:"1"},{key:"editor.chart.label.name",enValue:"Name",enValid:"1",frValue:"Nom",frValid:"1"},{key:"editor.chart.label.edit",enValue:"Edit",enValid:"1",frValue:"Éditer",frValid:"1"},{key:"editor.chart.label.empty",enValue:"Empty",enValid:"1",frValue:"Vide",frValid:"1"},{key:"editor.chart.label.create",enValue:"Add new chart",enValid:"1",frValue:"Ajouter un nouveau graphique",frValid:"1"},{key:"editor.chart.label.info",enValue:"Interactive charts ({num})",enValid:"1",frValue:"Graphiques interactifs ({num})",frValid:"1"},{key:"editor.chart.delete.confirm",enValue:"Are you sure you want to delete the chart {name}?",enValid:"1",frValue:"Voulez-vous vraiment supprimer le graphique {nom}?",frValid:"1"},{key:"editor.map.title",enValue:"Map title",enValid:"1",frValue:"Titre de la carte",frValid:"1"},{key:"editor.map.edit.cancel",enValue:"Cancel editing",enValid:"1",frValue:"Annuler les modifications",frValid:"1"},{key:"editor.map.edit",enValue:"Map editor",enValid:"1",frValue:"Éditeur de carte",frValid:"1"},{key:"editor.map.label.name",enValue:"Map config name",enValid:"1",frValue:"Nom de la configuration de la carte",frValid:"1"},{key:"editor.map.label.create",enValue:"Create New Configuration File",enValid:"1",frValue:"Créer un nouveau fichier de configuration",frValid:"1"},{key:"editor.map.label.edit",enValue:"Edit Map Configuration",enValid:"1",frValue:"Modifier la configuration de la carte",frValid:"1"},{key:"editor.map.scrollguard.enable",enValue:"Enable scrollguard",enValid:"1",frValue:"Activer le contrôle du défilement",frValid:"1"},{key:"editor.map.timeslider.enable",enValue:"Enable Time Slider:",enValid:"1",frValue:"Activer le curseur temporel:",frValid:"1"},{key:"editor.map.timeslider.edit",enValue:"Edit Time Slider Config",enValid:"1",frValue:"Modifier la configuration du curseur temporel",frValid:"1"},{key:"editor.map.timeslider.range",enValue:"Range:",enValid:"1",frValue:"Tranche:",frValid:"1"},{key:"editor.map.timeslider.start",enValue:"Start:",enValid:"1",frValue:"Début:",frValid:"1"},{key:"editor.map.timeslider.attribute",enValue:"Attribute:",enValid:"1",frValue:"Caractéristique:",frValid:"1"},{key:"editor.map.timeslider.layers",enValue:"(OPTIONAL) Comma separated Layer IDs:",enValid:"1",frValue:"(OPTIONAL) Comma separated Layer IDs:",frValid:"0"},{key:"editor.map.timeslider.to",enValue:"to",enValid:"1",frValue:"to",frValid:"0"},{key:"editor.map.timeslider.warning",enValue:"⚠️Warning! Please ensure that:",enValid:"1",frValue:"⚠️Avertissement! Veuillez vous assurer de ce qui suit:",frValid:"1"},{key:"editor.map.timeslider.warning.bullet1",enValue:"All range and start values are positive integers.",enValid:"1",frValue:"Toutes les valeurs de la tranche et du début sont des nombres entiers positifs.",frValid:"1"},{key:"editor.map.timeslider.warning.bullet2",enValue:'The "to" value is greater than or equal to the "from" value.',enValid:"1",frValue:"La valeur « À » est supérieure ou égale à la valeur « De ».",frValid:"1"},{key:"editor.map.timeslider.warning.end",enValue:"Otherwise, your time slider config cannot be saved.",enValid:"1",frValue:"Autrement",frValid:" la configuration du curseur temporel ne pourra pas être enregistrée."},{key:"editor.slides.title",enValue:"SLIDES",enValid:"1",frValue:"DIAPOSITIVES",frValid:"1"},{key:"editor.slides.addSlide",enValue:"New Slide",enValid:"1",frValue:"Nouvelle diapositive",frValid:"1"},{key:"editor.slides.copyFromLang",enValue:"Copy slides from the other language",enValid:"1",frValue:"Copier les diapositives de l’autre langue",frValid:"1"},{key:"editor.slides.deleteSlide.confirm",enValue:"Are you sure you want to delete the slide {title}?",enValid:"1",frValue:"Voulez-vous vraiment supprimer la diapositive {titre}?",frValid:"1"},{key:"editor.slides.changeSlide.confirm",enValue:"Are you sure you want to change the slide {title}? All unsaved progress will be lost.",enValid:"1",frValue:"Voulez-vous vraiment modifier la diapositive {titre}? Toute modification non enregistrée sera perdue.",frValid:"1"},{key:"editor.slides.makeFull",enValue:"Make the right panel the full slide",enValid:"1",frValue:"Mettre la diapositive complète dans le panneau de droite",frValid:"1"},{key:"editor.slides.copyAll",enValue:"Copy all",enValid:"1",frValue:"Copier tout",frValid:"1"},{key:"editor.slides.copy",enValue:"Copy",enValid:"1",frValue:"Copier",frValid:"1"},{key:"editor.slides.slide",enValue:"Slide",enValid:"1",frValue:"Diapositive",frValid:"1"},{key:"editor.slides.previousSlide",enValue:"Previous slide",enValid:"1",frValue:"Diapositive précédente",frValid:"1"},{key:"editor.slides.nextSlide",enValue:"Next slide",enValid:"1",frValue:"Diapositive suivante",frValid:"1"},{key:"editor.slides.leftPanel",enValue:"Left panel",enValid:"1",frValue:"Panneau de gauche",frValid:"1"},{key:"editor.slides.rightPanel",enValue:"Right panel",enValid:"1",frValue:"Panneau de droite",frValid:"1"},{key:"editor.slides.fullscreenPanel",enValue:"Fullscreen panel",enValid:"1",frValue:"Panneau plein écran",frValid:"1"},{key:"editor.slides.contentType",enValue:"Content type",enValid:"1",frValue:"Type de contenu",frValid:"1"},{key:"editor.slides.content",enValue:"Content",enValid:"1",frValue:"Contenu",frValid:"1"},{key:"editor.slides.select",enValue:"Please select a slide to edit",enValid:"1",frValue:"Veuillez sélectionner une diapositive à modifier",frValid:"1"},{key:"editor.slides.panel.body",enValue:"Panel body",enValid:"1",frValue:"Corps du panneau",frValid:"1"},{key:"editor.slides.panel.title",enValue:"Panel title",enValid:"1",frValue:"Titre du panneau",frValid:"1"},{key:"editor.slides.intro",enValue:"Intro subtitle",enValid:"1",frValue:"Sous-titre de l’introduction",frValid:"1"},{key:"editor.slides.title",enValue:"Intro title",enValid:"1",frValue:"Titre de l’introduction",frValid:"1"}];a.columns=["key","enValue","enValid","frValue","frValid"],e.exports=a},4497:function(e,t,a){"use strict";a("fb4d")},"4f41":function(e,t,a){},"5cf1":function(e,t,a){},"5cf4":function(e,t,a){"use strict";a("689c")},"67dc":function(e,t,a){"use strict";a("0c56")},"689c":function(e,t,a){},6965:function(e,t,a){"use strict";a("d866")},"6a63":function(e,t,a){"use strict";a("9303")},"77cb":function(e,t,a){},7847:function(e){e.exports=JSON.parse('{"comment":"","version":"3.3.2","language":"en","ui":{"title":"Interactive map","fullscreen":true,"navBar":{"zoom":"buttons","extra":["fullscreen","geoLocator","home","help"]},"appBar":{"basemap":true},"help":{"folderName":"default"},"sideMenu":{"items":[["fullscreen","export","touch","help","about"]],"logo":false},"legend":{"allowImport":false,"isOpen":{"large":true,"medium":false,"small":false}}},"services":{"proxyUrl":"https://maps.canada.ca/wmsproxy/ws/wmsproxy/executeFromProxy","exportMapUrl":"https://maps-cartes.ec.gc.ca/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task","export":{"title":{"value":""},"map":{},"mapElements":{},"legend":{},"footnote":{"value":""}},"search":{"settings":{"categories":["CITY","HAM","IR","LTM","MUN1","MUN2","PROV","STM","TERR","TOWN","UTM","VILG","UNP"],"sortOrder":["CITY","HAM","IR","LTM","MUN1","MUN2","PROV","STM","TERR","TOWN","UTM","VILG","UNP"],"maxResults":1000,"officialOnly":true},"serviceUrls":{"geoNames":"https://geogratis.gc.ca/services/geoname/en/geonames.json","geoLocation":"https://geogratis.gc.ca/services/geolocation/en/locate?q=","geoSuggest":"https://geogratis.gc.ca/services/geolocation/en/suggest?q=","provinces":"https://geogratis.gc.ca/services/geoname/en/codes/province.json","types":"https://geogratis.gc.ca/services/geoname/en/codes/concise.json"}}},"map":{"initialBasemapId":"baseNrCan","components":{"geoSearch":{"enabled":true,"showGraphic":true,"showInfo":true},"mouseInfo":{"enabled":true,"spatialReference":{"wkid":4326}},"northArrow":{"enabled":false},"basemap":{"enabled":true},"overviewMap":{"enabled":true,"layerType":"imagery"},"scaleBar":{"enabled":true}},"extentSets":[{"id":"EXT_NRCAN_Lambert_3978","default":{"xmax":3049492,"xmin":-5281457,"ymax":4482193,"ymin":-983440},"spatialReference":{"wkid":3978}},{"id":"EXT_ESRI_World_AuxMerc_3857","default":{"xmax":-5007771.626060756,"xmin":-16632697.354854,"ymax":10015875.184845109,"ymin":5022907.964742964},"spatialReference":{"wkid":102100,"latestWkid":3857}}],"lodSets":[{"id":"LOD_NRCAN_Lambert_3978","lods":[{"level":0,"resolution":38364.660062653464,"scale":145000000},{"level":1,"resolution":22489.62831258996,"scale":85000000},{"level":2,"resolution":13229.193125052918,"scale":50000000},{"level":3,"resolution":7937.5158750317505,"scale":30000000},{"level":4,"resolution":4630.2175937685215,"scale":17500000},{"level":5,"resolution":2645.8386250105837,"scale":10000000},{"level":6,"resolution":1587.5031750063501,"scale":6000000},{"level":7,"resolution":926.0435187537042,"scale":3500000},{"level":8,"resolution":529.1677250021168,"scale":2000000},{"level":9,"resolution":317.50063500127004,"scale":1200000},{"level":10,"resolution":185.20870375074085,"scale":700000},{"level":11,"resolution":111.12522225044451,"scale":420000},{"level":12,"resolution":66.1459656252646,"scale":250000},{"level":13,"resolution":38.36466006265346,"scale":145000},{"level":14,"resolution":22.48962831258996,"scale":85000},{"level":15,"resolution":13.229193125052918,"scale":50000},{"level":16,"resolution":7.9375158750317505,"scale":30000},{"level":17,"resolution":4.6302175937685215,"scale":17500}]},{"id":"LOD_ESRI_World_AuxMerc_3857","lods":[{"level":0,"resolution":19567.87924099992,"scale":73957190.948944},{"level":1,"resolution":9783.93962049996,"scale":36978595.474472},{"level":2,"resolution":4891.96981024998,"scale":18489297.737236},{"level":3,"resolution":2445.98490512499,"scale":9244648.868618},{"level":4,"resolution":1222.992452562495,"scale":4622324.434309},{"level":5,"resolution":611.4962262813797,"scale":2311162.217155},{"level":6,"resolution":305.74811314055756,"scale":1155581.108577},{"level":7,"resolution":152.87405657041106,"scale":577790.554289},{"level":8,"resolution":76.43702828507324,"scale":288895.277144},{"level":9,"resolution":38.21851414253662,"scale":144447.638572},{"level":10,"resolution":19.10925707126831,"scale":72223.819286},{"level":11,"resolution":9.554628535634155,"scale":36111.909643},{"level":12,"resolution":4.77731426794937,"scale":18055.954822},{"level":13,"resolution":2.388657133974685,"scale":9027.977411},{"level":14,"resolution":1.1943285668550503,"scale":4513.988705},{"level":15,"resolution":0.5971642835598172,"scale":2256.994353},{"level":16,"resolution":0.29858214164761665,"scale":1128.497176},{"level":17,"resolution":0.14929107082380833,"scale":564.248588},{"level":18,"resolution":0.07464553541190416,"scale":282.124294},{"level":19,"resolution":0.03732276770595208,"scale":141.062147},{"level":20,"resolution":0.01866138385297604,"scale":70.5310735}]}],"legend":{"type":"autopopulate"},"layers":[],"tileSchemas":[{"id":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978","name":"Lambert Maps","extentSetId":"EXT_NRCAN_Lambert_3978","lodSetId":"LOD_NRCAN_Lambert_3978","hasNorthPole":true},{"id":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857","name":"Web Mercator Maps","extentSetId":"EXT_ESRI_World_AuxMerc_3857","lodSetId":"LOD_ESRI_World_AuxMerc_3857"}],"baseMaps":[{"id":"baseNrCan","name":"Canada Base Map - Transportation (CBMT)","description":"The Canada Base Map - Transportation (CBMT) web mapping services of the Earth Sciences Sector at Natural Resources Canada, are intended primarily for online mapping application users and developers.","altText":"The Canada Base Map - Transportation (CBMT)","layers":[{"id":"CBMT","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseSimple","name":"Canada Base Map - Simple","description":"Canada Base Map - Simple","altText":"Canada base map - Simple","layers":[{"id":"SMR","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/Simple/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseCBME_CBCE_HS_RO_3978","name":"Canada Base Map - Elevation (CBME)","description":"The Canada Base Map - Elevation (CBME) web mapping services of the Earth Sciences Sector at Natural Resources Canada, is intended primarily for online mapping application users and developers.","altText":"Canada Base Map - Elevation (CBME)","layers":[{"id":"CBME_CBCE_HS_RO_3978","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBME_CBCE_HS_RO_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseCBMT_CBCT_GEOM_3978","name":"Canada Base Map - Transportation (CBMT)","description":" The Canada Base Map - Transportation (CBMT) web mapping services of the Earth Sciences Sector at Natural Resources Canada, are intended primarily for online mapping application users and developers.","altText":"Canada Base Map - Transportation (CBMT)","layers":[{"id":"CBMT_CBCT_GEOM_3978","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT_CBCT_GEOM_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseEsriWorld","name":"World Imagery","description":"World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide.","altText":"World Imagery","layers":[{"id":"World_Imagery","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriPhysical","name":"World Physical Map","description":"This map presents the Natural Earth physical map at 1.24km per pixel for the world and 500m for the coterminous United States.","altText":"World Physical Map","layers":[{"id":"World_Physical_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Physical_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriRelief","name":"World Shaded Relief","description":"This map portrays surface elevation as shaded relief. This map is used as a basemap layer to add shaded relief to other GIS maps, such as the ArcGIS Online World Street Map.","altText":"World Shaded Relief","layers":[{"id":"World_Shaded_Relief","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Shaded_Relief/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriStreet","name":"World Street Map","description":"This worldwide street map presents highway-level data for the world.","altText":"ESWorld Street Map","layers":[{"id":"World_Street_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriTerrain","name":"World Terrain Base","description":"This map is designed to be used as a base map by GIS professionals to overlay other thematic layers such as demographics or land cover.","altText":"World Terrain Base","layers":[{"id":"World_Terrain_Base","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriTopo","name":"World Topographic Map","description":"This map is designed to be used as a basemap by GIS professionals and as a reference map by anyone.","altText":"World Topographic Map","layers":[{"id":"World_Topo_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"}]}}')},9303:function(e,t,a){},9866:function(e,t,a){},9972:function(e,t,a){"use strict";a("5cf1")},"9a2c":function(e,t,a){"use strict";a("dd0c")},a183:function(e,t,a){},a26f:function(e,t,a){"use strict";a("f850")},c3a4:function(e,t,a){},cad2:function(e,t,a){"use strict";a("77cb")},cd49:function(e,t,a){"use strict";a.r(t);var i=a("7a23");const l={id:"app",class:"storyramp-app bg-white"};function o(e,t,a,o,r,n){const s=Object(i["resolveComponent"])("router-view");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",l,[(Object(i["openBlock"])(),Object(i["createBlock"])(s,{key:e.$route.path}))])}var r=a("9ab4"),n=a("1b40");class s extends n["c"]{onRouteUpdate(e){var t;this.$i18n.locale=null!==(t=e.params.lang)&&void 0!==t?t:"en",e.params.lang&&(document.title=this.$t(e.meta.title))}}Object(r["a"])([Object(n["d"])("$route",{immediate:!0})],s.prototype,"onRouteUpdate",null);a("9a2c");var c=a("6b0d"),d=a.n(c);const u=d()(s,[["render",o]]);var m=u,p=a("ce1f");p["b"].registerHooks(["beforeRouterEnter","beforeRouteLeave","beforeRouteUpdate"]);const g={class:"flex justify-center"},h={class:"home-btn-container border-4 border-gray-400 border-solid m-24"},b={class:"text-2xl font-bold"},f={class:"home-btn-container border-4 border-gray-400 border-solid m-24"},v={class:"text-2xl font-bold"};function O(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("router-link");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",g,[Object(i["createElementVNode"])("div",h,[Object(i["createVNode"])(n,{to:{name:"metadataNew"},class:"flex justify-center h-full w-full",target:""},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("button",b,"+ "+Object(i["toDisplayString"])(e.$t("editor.createProduct")),1)]),_:1})]),Object(i["createElementVNode"])("div",f,[Object(i["createVNode"])(n,{to:{name:"metadataExisting"},class:"flex justify-center h-full w-full",target:""},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("button",v,Object(i["toDisplayString"])(e.$t("editor.editProduct")),1)]),_:1})])])}class j extends n["c"]{}a("9972");const V=d()(j,[["render",O]]);var y=V;const S={class:"editor-container"},C={class:"px-20 py-5"},x={class:"flex"},E={class:"flex text-2xl font-bold mb-5"},w={class:"border py-5 w-5/6"},k={key:0,class:"text-red-500"},N={key:0,class:"text-yellow-500 rounded p-1 ml-2"},_=Object(i["createElementVNode"])("span",{class:"align-middle inline-block mr-1 pb-1 fill-current"},[Object(i["createElementVNode"])("svg",{"clip-rule":"evenodd","fill-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2",viewBox:"0 0 24 24",width:"18",height:"18",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"m2.095 19.886 9.248-16.5c.133-.237.384-.384.657-.384.272 0 .524.147.656.384l9.248 16.5c.064.115.096.241.096.367 0 .385-.309.749-.752.749h-18.496c-.44 0-.752-.36-.752-.749 0-.126.031-.252.095-.367zm9.907-6.881c-.414 0-.75.336-.75.75v3.5c0 .414.336.75.75.75s.75-.336.75-.75v-3.5c0-.414-.336-.75-.75-.75zm-.002-3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z","fill-rule":"nonzero"})])],-1),T={class:"align-center inline-block select-none"},M={key:2,class:"inline-flex align-middle mb-1"},L=Object(i["createElementVNode"])("br",null,null,-1),$={class:"mb-4"},I={class:"flex mt-8"},B={class:"ml-auto"},D=["onClick"],F={slot:"header",class:"text-lg font-bold"},R={class:"w-full flex justify-end"};function A(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("spinner"),s=Object(i["resolveComponent"])("metadata-content"),c=Object(i["resolveComponent"])("router-link"),d=Object(i["resolveComponent"])("confirmation-modal"),u=Object(i["resolveComponent"])("vue-final-modal"),m=Object(i["resolveComponent"])("editor");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",S,[e.loadEditor?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])(i["Fragment"],{key:0},[Object(i["createElementVNode"])("div",C,[Object(i["createElementVNode"])("div",x,[Object(i["createElementVNode"])("div",E,Object(i["toDisplayString"])(e.editExisting?e.$t("editor.editProduct"):e.$t("editor.createProduct")),1),Object(i["createElementVNode"])("button",{onClick:t[0]||(t[0]=t=>e.swapLang())},Object(i["toDisplayString"])("en"===e.configLang?e.$t("editor.frenchConfig"):e.$t("editor.englishConfig")),1)]),Object(i["createElementVNode"])("div",w,[Object(i["createElementVNode"])("label",null,["uuid"in e.reqFields?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",k,"*")):Object(i["createCommentVNode"])("",!0),Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.$t("editor.uuid"))+":",1)]),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text",onInput:t[1]||(t[1]=t=>{e.error=!1,e.reqFields.uuid=!0,e.checkUuid()}),"onUpdate:modelValue":t[2]||(t[2]=t=>e.uuid=t),class:Object(i["normalizeClass"])(["w-1/3",e.error||!e.reqFields.uuid?"input-error":""])},null,34),[[i["vModelText"],e.uuid]]),e.warning?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",N,[_,Object(i["createElementVNode"])("span",T,Object(i["toDisplayString"])(e.$t("editor.uuid.exists")),1)])):Object(i["createCommentVNode"])("",!0),e.editExisting?(Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:1,onClick:t[3]||(t[3]=(...t)=>e.generateRemoteConfig&&e.generateRemoteConfig(...t)),class:Object(i["normalizeClass"])(["bg-black text-white hover:bg-gray-800",e.error?"input-error":""])},Object(i["toDisplayString"])(e.$t("editor.load")),3)):Object(i["createCommentVNode"])("",!0),"loading"===e.loadStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",M,[Object(i["createVNode"])(n,{size:"24px",color:"#009cd1",class:"mx-2 my-auto"})])):Object(i["createCommentVNode"])("",!0)]),L,Object(i["createElementVNode"])("div",$,[Object(i["createElementVNode"])("h3",null,Object(i["toDisplayString"])(e.$t("editor.productDetails")),1),Object(i["createElementVNode"])("p",null,Object(i["toDisplayString"])(e.$t("editor.metadata.instructions")),1)]),Object(i["createVNode"])(s,{metadata:e.metadata,onMetadataChanged:e.updateMetadata,onLogoChanged:e.onFileChange,onLogoSourceChanged:e.onLogoSourceInput},null,8,["metadata","onMetadataChanged","onLogoChanged","onLogoSourceChanged"])]),Object(i["createElementVNode"])("div",I,[e.editExisting?(Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:0,onClick:t[4]||(t[4]=t=>e.saveMetadata(!0)),class:"pl-8"},Object(i["toDisplayString"])(e.$t("editor.saveChanges")),1)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("div",B,[Object(i["createVNode"])(c,{to:{name:"home"},target:""},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("button",null,Object(i["toDisplayString"])(e.$t("editor.back")),1)]),_:1}),Object(i["createElementVNode"])("button",{onClick:t[5]||(t[5]=t=>e.warning?e.$vfm.open("confirm-uuid-overwrite"):e.continueToEditor()),class:"bg-black text-white px-8"},Object(i["toDisplayString"])(e.$t("editor.next")),1),Object(i["createVNode"])(d,{name:"confirm-uuid-overwrite",message:e.$t(`Are you sure you want to overwrite product '${e.uuid}'?`),onOk:t[6]||(t[6]=t=>e.continueToEditor())},null,8,["message"])])])],64)),e.loadEditor&&"loaded"===e.loadStatus?(Object(i["openBlock"])(),Object(i["createBlock"])(m,{key:1,configs:e.configs,configFileStructure:e.configFileStructure,sourceCounts:e.sourceCounts,metadata:e.metadata,slides:e.slides,configLang:e.configLang,saving:e.saving,unsavedChanges:e.unsavedChanges,onSaveChanges:e.generateConfig,onSaveStatus:e.updateSaveStatus,onRefreshConfig:e.refreshConfig,ref:"mainEditor"},{langModal:Object(i["withCtx"])(a=>[Object(i["createElementVNode"])("button",{onClick:Object(i["withModifiers"])(t=>a.unsavedChanges?e.$vfm.open("change-lang"):e.swapLang(),["stop"])},Object(i["toDisplayString"])("en"===e.configLang?e.$t("editor.frenchConfig"):e.$t("editor.englishConfig")),9,D),Object(i["createVNode"])(d,{name:"change-lang",message:e.$t("editor.changeLang.modal"),onOk:t[7]||(t[7]=t=>e.swapLang())},null,8,["message"])]),metadataModal:Object(i["withCtx"])(()=>[Object(i["createVNode"])(u,{modalId:"metadata-edit-modal","content-class":"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2",class:"flex justify-center items-center"},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("h2",F,Object(i["toDisplayString"])(e.$t("editor.editMetadata")),1),Object(i["createVNode"])(s,{metadata:e.metadata,onMetadataChanged:e.updateMetadata,onLogoChanged:e.onFileChange,onLogoSourceChanged:e.onLogoSourceInput},null,8,["metadata","onMetadataChanged","onLogoChanged","onLogoSourceChanged"]),Object(i["createElementVNode"])("div",R,[Object(i["createElementVNode"])("button",{class:"bg-black text-white hover:bg-gray-800",onClick:t[8]||(t[8]=t=>e.saveMetadata(!1))}," Done ")])]),_:1})]),_:1},8,["configs","configFileStructure","sourceCounts","metadata","slides","configLang","saving","unsavedChanges","onSaveChanges","onSaveStatus","onRefreshConfig"])):Object(i["createCommentVNode"])("",!0)])}a("88a7"),a("271a"),a("5494"),a("14d9");var P=a("0a4f"),U=a("7b97"),z=a("327a");const W=e=>(Object(i["pushScopeId"])("data-v-ecc4f964"),e=e(),Object(i["popScopeId"])(),e),q={class:"sticky top-20 h-auto self-start flex-grow m-5"},X={key:0},H={class:"flex"},G={class:"flex flex-col"},J=W(()=>Object(i["createElementVNode"])("label",null,"Slide title:",-1)),Z={class:"flex"},Q=W(()=>Object(i["createElementVNode"])("span",{class:"ml-auto"},null,-1)),Y=["disabled"],K=["disabled"],ee={class:"flex mt-3"},te={class:"mx-2 font-bold"},ae=["disabled"],ie=W(()=>Object(i["createElementVNode"])("br",null,null,-1)),le={key:0,class:"flex border-b border-black"},oe=Object(i["createStaticVNode"])('',2),re={class:"align-middle inline-block pl-1"},ne=Object(i["createStaticVNode"])('',2),se={class:"align-middle inline-block pl-1"},ce={key:1,class:"border-b border-black"},de=Object(i["createStaticVNode"])('',2),ue={class:"align-middle inline-block pl-1"},me={class:"flex mt-4"},pe={class:"font-bold text-xl"},ge=W(()=>Object(i["createElementVNode"])("span",{class:"ml-auto flex-grow"},null,-1)),he={key:0,class:"flex flex-col mr-8"},be={class:"text-left text-lg"},fe=["value"],ve=["value"],Oe={key:1,class:"flex h-full mt-4 justify-center text-gray-600 text-xl"};function je(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("confirmation-modal");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",q,[e.currentSlide?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",X,[Object(i["createElementVNode"])("div",H,[Object(i["createElementVNode"])("div",G,[J,Object(i["createElementVNode"])("div",Z,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=t=>e.currentSlide.title=t),placeholder:"Add a title",class:"w-2/3"},null,512),[[i["vModelText"],e.currentSlide.title]]),Q,Object(i["createElementVNode"])("button",{onClick:t[1]||(t[1]=Object(i["withModifiers"])(t=>e.selectSlide(e.slideIndex-1),["stop"])),disabled:0===e.slideIndex,class:"border border-black"},Object(i["toDisplayString"])(e.$t("editor.slides.previousSlide")),9,Y),Object(i["createElementVNode"])("button",{onClick:t[2]||(t[2]=Object(i["withModifiers"])(t=>e.selectSlide(e.slideIndex+1),["stop"])),disabled:e.isLast,class:"border border-black"},Object(i["toDisplayString"])(e.$t("editor.slides.nextSlide")),9,K)]),Object(i["createElementVNode"])("div",ee,[Object(i["createElementVNode"])("span",te,Object(i["toDisplayString"])(e.$t("editor.slides.makeFull")),1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"checkbox",class:"rounded-none cursor-pointer w-4 h-4","onUpdate:modelValue":t[3]||(t[3]=t=>e.rightOnly=t),disabled:e.rightOnly&&"dynamic"===e.currentSlide.panel[e.panelIndex].type,onChange:t[4]||(t[4]=Object(i["withModifiers"])(t=>e.$vfm.open("right-only-"+e.slideIndex),["stop"]))},null,40,ae),[[i["vModelCheckbox"],e.rightOnly]])])])]),ie,2===e.currentSlide.panel.length?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",le,[Object(i["createElementVNode"])("button",{onClick:t[5]||(t[5]=()=>{e.panelIndex=0,e.saveChanges()}),class:Object(i["normalizeClass"])(["border-t border-l border-r",0==e.panelIndex?"border-black":"border-white"])},[oe,Object(i["createElementVNode"])("span",re,Object(i["toDisplayString"])(e.$t("editor.slides.leftPanel")),1)],2),Object(i["createElementVNode"])("button",{onClick:t[6]||(t[6]=()=>{e.panelIndex=1,e.saveChanges()}),class:Object(i["normalizeClass"])(["border-t border-l border-r",1==e.panelIndex?"border-black":"border-white"])},[ne,Object(i["createElementVNode"])("span",se,Object(i["toDisplayString"])(e.$t("editor.slides.rightPanel")),1)],2)])):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",ce,[Object(i["createElementVNode"])("button",{onClick:t[7]||(t[7]=()=>{e.saveChanges()}),class:"border-t border-l border-r border-black"},[de,Object(i["createElementVNode"])("span",ue,Object(i["toDisplayString"])(e.$t("editor.slides.fullscreenPanel")),1)])])),Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("div",me,[Object(i["createElementVNode"])("span",pe,Object(i["toDisplayString"])(e.$t("editor.slides.content"))+":",1),ge,1===e.panelIndex||e.rightOnly?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",he,[Object(i["createElementVNode"])("label",be,Object(i["toDisplayString"])(e.$t("editor.slides.contentType"))+":",1),Object(i["createElementVNode"])("select",{ref:"typeSelector",onInput:t[8]||(t[8]=t=>{e.$vfm.open("change-slide-"+e.slideIndex),e.newType=t.target.value}),value:e.currentSlide.panel[e.panelIndex].type},[(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(Object.keys(e.editors).filter(e=>"slideshow"!==e&&"loading"!==e),e=>(Object(i["openBlock"])(),Object(i["createElementBlock"])("option",{key:e,value:"image"===e?"slideshow":e},Object(i["toDisplayString"])(e),9,ve))),128))],40,fe)])):Object(i["createCommentVNode"])("",!0)]),(Object(i["openBlock"])(),Object(i["createBlock"])(Object(i["resolveDynamicComponent"])(e.editors[e.currentSlide.panel[e.panelIndex].type]),{ref:"editor",key:e.panelIndex+e.currentSlide.panel[e.panelIndex].type,panel:e.currentSlide.panel[e.panelIndex],configFileStructure:e.configFileStructure,lang:e.lang,uid:e.uid,sourceCounts:e.sourceCounts},null,8,["panel","configFileStructure","lang","uid","sourceCounts"]))])])):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Oe,[Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.$t("editor.slides.select")),1)])),Object(i["createVNode"])(n,{name:"change-slide-"+e.slideIndex,message:e.$t("editor.slides.changeSlide.confirm",{title:e.currentSlide.title}),onOk:t[9]||(t[9]=t=>e.changePanelType(e.currentSlide.panel[e.panelIndex].type,e.newType)),onCancel:e.cancelTypeChange},null,8,["name","message","onCancel"]),Object(i["createVNode"])(n,{name:"right-only-"+e.slideIndex,message:e.$t("editor.slides.changeSlide.confirm",{title:e.currentSlide.title}),onOk:t[10]||(t[10]=t=>e.toggleRightOnly()),onCancel:t[11]||(t[11]=t=>e.rightOnly=!e.rightOnly)},null,8,["name","message"])])}var Ve;(function(e){e["Text"]="text",e["Image"]="image",e["Map"]="map",e["Chart"]="chart",e["Video"]="video",e["Audio"]="audio",e["Slideshow"]="slideshow",e["Dynamic"]="dynamic",e["Loading"]="loading"})(Ve||(Ve={}));const ye={class:"block"},Se={class:"flex items-center"},Ce={class:"font-bold px-4"},xe={class:"flex items-center"},Ee=Object(i["createElementVNode"])("svg",{height:"18px",width:"18px",viewBox:"0 0 23 21",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})],-1),we={class:"px-2"},ke=Object(i["createElementVNode"])("hr",{class:"border-solid border-t-2 border-gray-300 my-2"},null,-1),Ne={key:0,class:"m-4"},_e={class:"italic text-gray-400"},Te={class:"flex flex-wrap list-none"};function Me(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("ChartPreview"),s=Object(i["resolveComponent"])("draggable"),c=Object(i["resolveComponent"])("confirmation-modal");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",ye,[Object(i["createElementVNode"])("div",Se,[Object(i["createElementVNode"])("span",Ce,Object(i["toDisplayString"])(e.$t("editor.chart.label.info",{num:e.chartConfigs.length})),1),Object(i["createElementVNode"])("button",{class:"chart-btn bg-gray-100 cursor-pointer hover:bg-gray-200",id:"modal-btn",onClick:t[0]||(t[0]=t=>e.clearEditor())},[Object(i["createElementVNode"])("div",xe,[Ee,Object(i["createElementVNode"])("span",we,Object(i["toDisplayString"])(e.$t("editor.chart.label.create")),1)])])]),ke,0===e.chartConfigs.length?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ne,[Object(i["createElementVNode"])("span",_e,Object(i["toDisplayString"])(e.$t("editor.chart.label.empty")),1)])):Object(i["createCommentVNode"])("",!0),Object(i["withDirectives"])(Object(i["createElementVNode"])("ul",Te,[Object(i["createVNode"])(s,{modelValue:e.chartConfigs,"onUpdate:modelValue":t[1]||(t[1]=t=>e.chartConfigs=t),handle:".handle",onUpdate:e.onChartsEdited,class:"flex flex-wrap list-none","item-key":"name"},{item:Object(i["withCtx"])(({element:t,index:a})=>[(Object(i["openBlock"])(),Object(i["createBlock"])(n,{key:`${t.name}-${a}`,chart:t,configFileStructure:e.configFileStructure,onEdit:e.editChart,onDelete:i=>e.$vfm.open(`${t.name}-${a}`)},null,8,["chart","configFileStructure","onEdit","onDelete"]))]),_:1},8,["modelValue","onUpdate"])],512),[[i["vShow"],e.chartConfigs.length]]),(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.chartConfigs,(t,a)=>(Object(i["openBlock"])(),Object(i["createBlock"])(c,{key:`${t.name}-${a}`,name:`${t.name}-${a}`,message:e.$t("editor.chart.delete.confirm",{name:t.name}),onOk:a=>e.deleteChart(t)},null,8,["name","message","onOk"]))),128))])}const Le=e=>(Object(i["pushScopeId"])("data-v-c922f560"),e=e(),Object(i["popScopeId"])(),e),$e={class:"chart-item items-center mt-8 mx-5 overflow-hidden"},Ie={class:"relative border-solid border-2 items-center justify-center text-center w-full"},Be=["content"],De=Le(()=>Object(i["createElementVNode"])("svg",{class:"absolute transform -translate-x-1/2 -translate-y-1/2",height:"22px",width:"22px",viewBox:"0 0 352 512",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"})],-1)),Fe=[De],Re=Le(()=>Object(i["createElementVNode"])("button",{class:"bg-white absolute h-6 w-6 leading-5 rounded-full bottom-2 -right-1 p-0 z-10 handle"},[Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"#000000",width:"22px",height:"22px",viewBox:"0 0 24 24"},[Object(i["createElementVNode"])("path",{"fill-rule":"evenodd",d:"M8,18 C9.1045695,18 10,18.8954305 10,20 C10,21.1045695 9.1045695,22 8,22 C6.8954305,22 6,21.1045695 6,20 C6,18.8954305 6.8954305,18 8,18 Z M16,18 C17.1045695,18 18,18.8954305 18,20 C18,21.1045695 17.1045695,22 16,22 C14.8954305,22 14,21.1045695 14,20 C14,18.8954305 14.8954305,18 16,18 Z M8,10 C9.1045695,10 10,10.8954305 10,12 C10,13.1045695 9.1045695,14 8,14 C6.8954305,14 6,13.1045695 6,12 C6,10.8954305 6.8954305,10 8,10 Z M16,10 C17.1045695,10 18,10.8954305 18,12 C18,13.1045695 17.1045695,14 16,14 C14.8954305,14 14,13.1045695 14,12 C14,10.8954305 14.8954305,10 16,10 Z M8,2 C9.1045695,2 10,2.8954305 10,4 C10,5.1045695 9.1045695,6 8,6 C6.8954305,6 6,5.1045695 6,4 C6,2.8954305 6.8954305,2 8,2 Z M16,2 C17.1045695,2 18,2.8954305 18,4 C18,5.1045695 17.1045695,6 16,6 C14.8954305,6 14,5.1045695 14,4 C14,2.8954305 14.8954305,2 16,2 Z"})])],-1)),Ae={class:"flex mt-4 items-center"},Pe={class:"name-label font-bold flex-2"},Ue={class:"font-normal"},ze=["id"],We={class:"flex items-center"},qe=Le(()=>Object(i["createElementVNode"])("svg",{height:"18px",width:"18px",viewBox:"0 0 23 21",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"M 18 2 L 15.585938 4.4140625 L 19.585938 8.4140625 L 22 6 L 18 2 z M 14.076172 5.9238281 L 3 17 L 3 21 L 7 21 L 18.076172 9.9238281 L 14.076172 5.9238281 z"})],-1)),Xe={class:"px-2"};function He(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("storylines-chart"),s=Object(i["resolveDirective"])("tippy");return Object(i["openBlock"])(),Object(i["createElementBlock"])("li",$e,[Object(i["createElementVNode"])("div",Ie,[Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{class:"bg-white absolute h-6 w-6 leading-5 rounded-full top-2 left-0 p-0 z-10 cursor-pointer",onClick:t[0]||(t[0]=()=>e.$emit("delete",e.chart)),content:e.$t("editor.chart.delete")},Fe,8,Be)),[[s,{placement:"top",hideOnClick:!1,animateFill:!0}]]),Re,e.loading?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createBlock"])(n,{class:"w-full h-full",config:e.chartConfig,key:e.chartIdx,configFileStructure:e.configFileStructure,onLoaded:e.loadChart},null,8,["config","configFileStructure","onLoaded"]))]),Object(i["createElementVNode"])("div",Ae,[Object(i["createElementVNode"])("label",Pe,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.$t("editor.chart.label.name"))+": ",1),Object(i["createElementVNode"])("span",Ue,Object(i["toDisplayString"])(e.chartName),1)]),Object(i["createElementVNode"])("button",{class:"chart-btn bg-gray-100 cursor-pointer hover:bg-gray-200",id:`edit-${e.chart.name}-btn`},[Object(i["createElementVNode"])("div",We,[qe,Object(i["createElementVNode"])("span",Xe,Object(i["toDisplayString"])(e.$t("editor.chart.label.edit")),1)])],8,ze)])])}a("3c65");class Ge extends n["c"]{constructor(){super(...arguments),this.loading=!0,this.chartIdx=0,this.chartConfig={},this.chartName="",this.modalEditor=void 0}mounted(){this.chartConfig=this.chart,this.chartName=this.chart.name||"",this.loading=!1}loadChart(e){var t;if(!this.modalEditor){if(this.modalEditor=highed.ModalEditor(`edit-${this.chartName}-btn`,{allowDone:!0,features:"import templates customize done",importer:{options:"plugins csv json"},defaultChartOptions:e},e=>{const t=JSON.parse(e),a={name:t.title.text,config:t,src:""};this.$emit("edit",{oldChart:this.chart,newChart:a}),this.chartConfig=a,this.chartName=a.name,this.chartIdx+=1}),void 0!==(null===(t=e.data)||void 0===t?void 0:t.csv)){const t=e.data.csv;this.modalEditor.editor.dataTable.loadCSV({csv:t})}else this.convertSeriesToCSV(e);this.modalEditor.editor.chart.options.setAll(e)}}convertSeriesToCSV(e){var t;if("pie"===(null===(t=e.chart)||void 0===t?void 0:t.type)){const t=null===e||void 0===e?void 0:e.series.data;if(t){var a;const i=[`${null===e||void 0===e?void 0:e.series.name};${null===e||void 0===e||null===(a=e.yAxis)||void 0===a?void 0:a.title.text}`,...t.map(e=>`${e.name};${e.y}`)];this.modalEditor.editor.dataTable.loadCSV({csv:i.join("\n")})}}else if(null!==e&&void 0!==e&&e.series&&null!==e&&void 0!==e&&e.series.length){let t=null===e||void 0===e?void 0:e.series.map(e=>[e.name,...e.data]);if(void 0!==e.xAxis){var i,l;const a=[null===(i=e.xAxis)||void 0===i||null===(i=i.title)||void 0===i?void 0:i.text].concat(null===(l=e.xAxis)||void 0===l?void 0:l.categories);t.unshift(a)}let a=t[0].map((e,a)=>t.map(e=>e[a]).join(";"));this.modalEditor.editor.dataTable.loadCSV({csv:a.join("\n")})}}}Object(r["a"])([Object(n["b"])()],Ge.prototype,"chart",void 0),Object(r["a"])([Object(n["b"])()],Ge.prototype,"configFileStructure",void 0);a("cad2");const Je=d()(Ge,[["render",He],["__scopeId","data-v-c922f560"]]);var Ze=Je;const Qe={slot:"header",class:"text-lg font-bold"},Ye={class:"w-full flex justify-end"};function Ke(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("vue-final-modal");return Object(i["openBlock"])(),Object(i["createBlock"])(n,{modalId:e.name,class:"flex justify-center items-center","content-class":"flex flex-col max-w-xl mx-4 p-4 bg-white dark:bg-gray-900 border dark:border-gray-700 rounded-lg space-y-2"},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("h2",Qe,Object(i["toDisplayString"])(e.message),1),Object(i["createElementVNode"])("div",Ye,[Object(i["createElementVNode"])("button",{class:"confirm-button hover:bg-gray-800",onClick:t[0]||(t[0]=Object(i["withModifiers"])((...t)=>e.onOk&&e.onOk(...t),["stop"]))},Object(i["toDisplayString"])(e.$t("editor.confirm")),1),Object(i["createElementVNode"])("button",{class:"cancel-button hover:bg-gray-100",onClick:t[1]||(t[1]=Object(i["withModifiers"])((...t)=>e.onCancel&&e.onCancel(...t),["stop"]))},Object(i["toDisplayString"])(e.$t("editor.cancel")),1)])]),_:1},8,["modalId"])}let et=class extends n["c"]{onOk(){this.$emit("ok"),this.$vfm.close(this.name)}onCancel(){this.$emit("Cancel"),this.$vfm.close(this.name)}};Object(r["a"])([Object(n["b"])()],et.prototype,"message",void 0),Object(r["a"])([Object(n["b"])()],et.prototype,"name",void 0),et=Object(r["a"])([Object(n["a"])({components:{"vue-final-modal":U["a"]}})],et);var tt=et;a("1c29");const at=d()(tt,[["render",Ke],["__scopeId","data-v-4ed11748"]]);var it=at,lt=a("b76a"),ot=a.n(lt);let rt=class extends n["c"]{constructor(){super(...arguments),this.edited=!1,this.chartConfigs=[],this.modalEditor={}}mounted(){highed.ready(()=>{this.modalEditor=highed.ModalEditor("modal-btn",{allowDone:!0,features:"import templates customize done",importer:{options:"plugins csv json"}},e=>{this.createNewChart(e.toString())})}),void 0!==this.panel.charts&&this.panel.charts.length&&(this.chartConfigs=this.panel.charts.map(e=>{let t="";if(e.options&&e.options.title)t=e.options.title;else{const a=e.src.match(/.*\/(.*)$/);t=a?a[1].replace(/\.[^/.]+$/,"").replace(/\./g," "):e.src}return{name:t,...e}}))}clearEditor(){this.modalEditor.editor.chart.options.setAll({title:{text:"Chart "+(this.chartConfigs.length+1)},subtitle:{text:""},credits:{enabled:!1}});const e='"Column 1";"Column 2"\n" "";" "';this.modalEditor.editor.dataTable.loadCSV({csv:e})}createNewChart(e){const t=JSON.parse(e);if(this.chartConfigs.some(e=>e.name===t.title.text))alert("Existing chart already has the same chart name.");else{const e=`${this.configFileStructure.uuid}/charts/${this.lang}/${t.title.text}.json`,a={name:t.title.text,src:e};this.sourceCounts[e]?this.sourceCounts[e]+=1:this.sourceCounts[e]=1,this.configFileStructure.charts[this.lang].file(t.title.text+".json",JSON.stringify(t,null,4)),this.chartConfigs.push(a)}this.onChartsEdited()}editChart(e){const t=this.chartConfigs.findIndex(t=>t.name===e.oldChart.name);if(-1!==t){const a=`${this.configFileStructure.uuid}/charts/${this.lang}/${e.oldChart.name}.json`;this.sourceCounts[a]-=1,0===this.sourceCounts[a]&&this.configFileStructure.charts[this.lang].remove(e.oldChart.name+".json");const i=`${this.configFileStructure.uuid}/charts/${this.lang}/${e.newChart.name}.json`;this.sourceCounts[i]?this.sourceCounts[i]+=1:this.sourceCounts[i]=1,this.configFileStructure.charts[this.lang].file(e.newChart.name+".json",JSON.stringify(e.newChart.config,null,4)),e.newChart.src=`${this.configFileStructure.uuid}/charts/${this.lang}/${e.newChart.name}.json`,this.chartConfigs[t]={name:e.newChart.name,src:e.newChart.src}}this.onChartsEdited()}deleteChart(e){const t=this.chartConfigs.findIndex(t=>t.name===e.name);-1!==t&&(this.sourceCounts[`${this.configFileStructure.uuid}/charts/${this.lang}/${e.name}.json`]-=1,0===this.sourceCounts[`${this.configFileStructure.uuid}/charts/${this.lang}/${e.name}.json`]&&this.configFileStructure.charts[this.lang].remove(e.name+".json"),this.chartConfigs.splice(t,1)),this.onChartsEdited()}saveChanges(){this.edited&&(this.panel.charts=this.chartConfigs),this.edited=!1}onChartsEdited(){this.edited=!0,this.$emit("slide-edit")}};Object(r["a"])([Object(n["b"])()],rt.prototype,"panel",void 0),Object(r["a"])([Object(n["b"])()],rt.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],rt.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],rt.prototype,"sourceCounts",void 0),rt=Object(r["a"])([Object(n["a"])({components:{ChartPreview:Ze,"confirmation-modal":it,draggable:ot.a}})],rt);var nt=rt;a("6965");const st=d()(nt,[["render",Me]]);var ct=st;const dt=e=>(Object(i["pushScopeId"])("data-v-56f26618"),e=e(),Object(i["popScopeId"])(),e),ut={class:"block"},mt={class:"flex drag-label cursor-pointer"},pt=dt(()=>Object(i["createElementVNode"])("span",{class:"align-middle inline-block pr-4"},[Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"48",height:"48",viewBox:"0 0 24 24"},[Object(i["createElementVNode"])("path",{d:"M14 9l-2.519 4-2.481-1.96-5 6.96h16l-6-9zm8-5v16h-20v-16h20zm2-2h-24v20h24v-20zm-20 6c0-1.104.896-2 2-2s2 .896 2 2c0 1.105-.896 2-2 2s-2-.895-2-2z"})])],-1)),gt={class:"align-middle inline-block"},ht={class:"text-blue-400 font-bold"},bt={class:"flex justify-center"},ft={class:"flex mt-4 items-center w-full text-left"},vt={class:"text-label"},Ot=["onUpdate:modelValue"],jt={class:"flex mt-4 items-center w-full text-left"},Vt={class:"text-label"},yt=["onUpdate:modelValue"],St={class:"flex items-center w-full text-left"},Ct={class:"text-label"};function xt(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("ImagePreview"),s=Object(i["resolveComponent"])("draggable");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",ut,[Object(i["createElementVNode"])("div",{class:Object(i["normalizeClass"])(["upload-image text-center m-5 p-12 bg-blue-100 border-4 border-dashed border-blue-300",{dragging:e.isDragging}]),onDragover:t[1]||(t[1]=Object(i["withModifiers"])(()=>e.dragging=!0,["prevent"])),onDragleave:t[2]||(t[2]=Object(i["withModifiers"])(()=>e.dragging=!1,["prevent"])),onDrop:t[3]||(t[3]=Object(i["withModifiers"])(t=>e.dropImages(t),["prevent"]))},[Object(i["createElementVNode"])("label",mt,[pt,Object(i["createElementVNode"])("span",gt,[Object(i["createElementVNode"])("span",null,[Object(i["createElementVNode"])("div",null,Object(i["toDisplayString"])(e.$t("editor.image.label.drag")),1),Object(i["createElementVNode"])("div",null,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.$t("editor.image.label.or"))+" ",1),Object(i["createElementVNode"])("span",ht,Object(i["toDisplayString"])(e.$t("editor.image.label.browse")),1),Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.$t("editor.image.label.upload")),1)])]),Object(i["createElementVNode"])("input",{type:"file",class:"cursor-pointer",onChange:t[0]||(t[0]=(...t)=>e.onFileChange&&e.onFileChange(...t)),multiple:"multiple"},null,32)])])],34),Object(i["withDirectives"])(Object(i["createElementVNode"])("span",bt,[Object(i["createElementVNode"])("i",null,Object(i["toDisplayString"])(e.$t("editor.image.reorder")),1)],512),[[i["vShow"],!e.imagePreviewsLoading&&e.imagePreviews.length]]),Object(i["withDirectives"])(Object(i["createVNode"])(s,{modelValue:e.imagePreviews,"onUpdate:modelValue":t[6]||(t[6]=t=>e.imagePreviews=t),class:"flex flex-wrap list-none border my-4",onUpdate:e.onImagesEdited,"item-key":"id"},{item:Object(i["withCtx"])(({element:a,index:l})=>[(Object(i["openBlock"])(),Object(i["createBlock"])(n,{key:`${a.id}-${l}`,imageFile:a,onDelete:e.deleteImage},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("div",ft,[Object(i["createElementVNode"])("label",vt,Object(i["toDisplayString"])(e.$t("editor.image.altTag"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{class:"w-4/5",type:"text","onUpdate:modelValue":e=>a.altText=e,onChange:t[4]||(t[4]=(...t)=>e.onImagesEdited&&e.onImagesEdited(...t))},null,40,Ot),[[i["vModelText"],a.altText]])]),Object(i["createElementVNode"])("div",jt,[Object(i["createElementVNode"])("label",Vt,Object(i["toDisplayString"])(e.$t("editor.image.label.caption"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{class:"w-4/5",type:"text","onUpdate:modelValue":e=>a.caption=e,onChange:t[5]||(t[5]=(...t)=>e.onImagesEdited&&e.onImagesEdited(...t))},null,40,yt),[[i["vModelText"],a.caption]])])]),_:2},1032,["imageFile","onDelete"]))]),_:1},8,["modelValue","onUpdate"]),[[i["vShow"],!e.imagePreviewsLoading&&e.imagePreviews.length]]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",St,[Object(i["createElementVNode"])("label",Ct,Object(i["toDisplayString"])(e.$t("editor.image.slideshowCaption"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{class:"w-3/5",type:"text","onUpdate:modelValue":t[7]||(t[7]=t=>e.slideshowCaption=t),onChange:t[8]||(t[8]=(...t)=>e.onImagesEdited&&e.onImagesEdited(...t))},null,544),[[i["vModelText"],e.slideshowCaption]])],512),[[i["vShow"],e.imagePreviews.length>1]])])}const Et=e=>(Object(i["pushScopeId"])("data-v-5bdf84fc"),e=e(),Object(i["popScopeId"])(),e),wt={class:"image-item items-center my-8 mx-4 overflow-hidden"},kt={class:"relative items-center justify-center text-center w-full grabbable"},Nt=["content"],_t=Et(()=>Object(i["createElementVNode"])("svg",{height:"24px",width:"24px",viewBox:"0 0 352 512",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"})],-1)),Tt=[_t],Mt={class:"flex-grow image-container"},Lt=["title","src","alt"];function $t(e,t,a,l,o,r){const n=Object(i["resolveDirective"])("tippy");return Object(i["openBlock"])(),Object(i["createElementBlock"])("li",wt,[Object(i["createElementVNode"])("div",kt,[Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{class:"bg-white absolute h-6 w-6 leading-5 rounded-full top-0 right-0 p-0 cursor-pointer",onClick:t[0]||(t[0]=()=>e.$emit("delete",e.imageFile)),content:e.$t("editor.image.delete")},Tt,8,Nt)),[[n,{placement:"top",hideOnClick:!1,animateFill:!0}]]),Object(i["createElementVNode"])("div",Mt,[Object(i["createElementVNode"])("img",{class:"image-file object-cover",title:e.imageFile.id,src:e.imageFile.src,alt:e.imageFile.altText},null,8,Lt)])]),Object(i["renderSlot"])(e.$slots,"default",{},void 0,!0)])}class It extends n["c"]{}Object(r["a"])([Object(n["b"])()],It.prototype,"imageFile",void 0);a("5cf4");const Bt=d()(It,[["render",$t],["__scopeId","data-v-5bdf84fc"]]);var Dt=Bt;let Ft=class extends n["c"]{constructor(){super(...arguments),this.dragging=!1,this.edited=!1,this.imagePreviewsLoading=!1,this.imagePreviewPromises=[],this.imagePreviews=[],this.slideshowCaption=""}get isDragging(){return this.dragging}mounted(){void 0!==this.panel.images&&this.panel.images.length&&(this.imagePreviewsLoading=!0,this.panel.images.map(e=>{const t=""+e.src.substring(e.src.indexOf("/")+1),a=e.src.replace(/^.*[\\/]/,""),i=this.configFileStructure.zip.file(t);i&&this.imagePreviewPromises.push(i.async("blob").then(t=>({...e,id:a||e.src,src:URL.createObjectURL(t)})))}),Promise.all(this.imagePreviewPromises).then(e=>{this.imagePreviews=e,this.imagePreviewsLoading=!1}),this.slideshowCaption=this.panel.caption)}onFileChange(e){const t=Array.from(e.target.files);this.imagePreviews.push(...t.map(e=>{const t=`${this.configFileStructure.uuid}/assets/${this.lang}/${e.name}`;this.configFileStructure.assets[this.lang].file(e.name,e),this.sourceCounts[t]?this.sourceCounts[t]+=1:this.sourceCounts[t]=1;let a=URL.createObjectURL(e);return{id:e.name,altText:"",caption:"",src:a}})),this.onImagesEdited()}dropImages(e){if(null!==e.dataTransfer){const t=[...e.dataTransfer.files];this.imagePreviews.push(...t.map(e=>{const t=`${this.configFileStructure.uuid}/assets/${this.lang}/${e.name}`;this.configFileStructure.assets[this.lang].file(e.name,e),this.sourceCounts[t]?this.sourceCounts[t]+=1:this.sourceCounts[t]=1;let a=URL.createObjectURL(e);return{id:e.name,altText:"",caption:"",src:a}})),this.dragging=!1}this.onImagesEdited()}deleteImage(e){const t=this.imagePreviews.findIndex(t=>t.id===e.id);if(-1!==t){const e=`${this.configFileStructure.uuid}/assets/${this.lang}/${this.imagePreviews[t].id}`;this.sourceCounts[e]-=1,0===this.sourceCounts[e]&&(this.configFileStructure.assets[this.lang].remove(this.imagePreviews[t].id),URL.revokeObjectURL(this.imagePreviews[t].src)),this.imagePreviews.splice(t,1)}this.onImagesEdited()}saveChanges(){var e;this.edited&&(this.panel.images=this.imagePreviews.map(e=>({...e,src:`${this.configFileStructure.uuid}/assets/${this.lang}/${e.id}`,type:Ve.Image})),this.panel.caption=null!==(e=this.slideshowCaption)&&void 0!==e?e:void 0);this.edited=!1}onImagesEdited(){this.edited=!0,this.$emit("slide-edit")}};Object(r["a"])([Object(n["b"])()],Ft.prototype,"panel",void 0),Object(r["a"])([Object(n["b"])()],Ft.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],Ft.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],Ft.prototype,"sourceCounts",void 0),Ft=Object(r["a"])([Object(n["a"])({components:{ImagePreview:Dt,draggable:ot.a}})],Ft);var Rt=Ft;a("67dc");const At=d()(Rt,[["render",xt],["__scopeId","data-v-56f26618"]]);var Pt=At;const Ut={class:"flex flex-col mt-4"},zt={class:"text-left"},Wt={class:"text-left mt-2"};function qt(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("v-md-editor");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ut,[Object(i["createElementVNode"])("label",zt,Object(i["toDisplayString"])(e.$t("editor.slides.panel.title"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=t=>e.panel.title=t)},null,512),[[i["vModelText"],e.panel.title]]),Object(i["createElementVNode"])("label",Wt,Object(i["toDisplayString"])(e.$t("editor.slides.panel.body"))+":",1),Object(i["createVNode"])(n,{modelValue:e.panel.content,"onUpdate:modelValue":t[1]||(t[1]=t=>e.panel.content=t),height:"400px","left-toolbar":"undo redo clear | h bold italic strikethrough quote subsuper | ul ol table hr | addLink image code | save",toolbar:e.toolbar},null,8,["modelValue","toolbar"])])}class Xt extends n["c"]{constructor(){super(...arguments),this.toolbar={subsuper:{title:"Superscript/Subscript",text:"T",menus:[{name:"Superscript",text:"Superscript",action(e){e.insert(e=>{const t=e||"";return{text:`${t}`,selected:e}})}},{name:"Subscript",text:"Subscript",action(e){e.insert(e=>{const t=e||"";return{text:`${t}`,selected:e}})}}]},addLink:{title:"Insert Link",icon:"v-md-icon-link",menus:[{name:"Add External Link (New Tab)",text:"Add External Link (New Tab)",action(e){e.insert(e=>{const t=e||"";return{text:`[${t}](http://)`,selected:e}})}},{name:"Add External Link (Same Tab)",text:"Add External Link (Same Tab)",action(e){e.insert(e=>{const t=e||"";return{text:`${t}`,selected:e}})}},{name:"Add Dynamic Link",text:"Add Dynamic Link",action(e){e.insert(e=>{const t=e||"";return{text:`${t}`,selected:e}})}}]}}}}Object(r["a"])([Object(n["b"])()],Xt.prototype,"panel",void 0);a("0bb1");const Ht=d()(Xt,[["render",qt],["__scopeId","data-v-b0fb221e"]]);var Gt=Ht;const Jt=e=>(Object(i["pushScopeId"])("data-v-681c9c6b"),e=e(),Object(i["popScopeId"])(),e),Zt={class:"flex flex-col"},Qt={class:"text-left"},Yt={key:0},Kt={class:"mt-6"},ea=Jt(()=>Object(i["createElementVNode"])("span",{class:"ml-6"},null,-1)),ta={class:"mt-6"},aa=Jt(()=>Object(i["createElementVNode"])("span",{class:"mx-4"},null,-1)),ia=Jt(()=>Object(i["createElementVNode"])("br",null,null,-1)),la={key:1,class:"mb-4"},oa={class:"flex justify-between mb-4"},ra={class:"mt-2"},na=Jt(()=>Object(i["createElementVNode"])("iframe",{src:"scripts/ramp-editor/samples/fgpv-author.html",style:{width:"70vw",height:"100vh"},id:"RAMPeditorframe"},null,-1)),sa={key:1},ca={class:"text-left mt-2"},da={class:"flex flex-row items-center"},ua={key:0,class:"flex flex-wrap list-none justify-center"},ma=Jt(()=>Object(i["createElementVNode"])("div",{class:"add-map"},null,-1)),pa={key:2},ga={class:"text-left mt-2"},ha={class:"flex flex-wrap list-none justify-center"},ba=Jt(()=>Object(i["createElementVNode"])("div",{class:"edit-map"},null,-1)),fa={slot:"header",class:"text-lg font-bold"},va={class:"w-full flex justify-end"},Oa=["disabled"];function ja(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("time-slider-editor"),s=Object(i["resolveComponent"])("vue-final-modal");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Zt,[Object(i["createElementVNode"])("label",Qt,Object(i["toDisplayString"])(e.$t("editor.map.title"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=t=>e.panel.title=t)},null,512),[[i["vModelText"],e.panel.title]]),"editing"===e.status?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Yt,[Object(i["createElementVNode"])("label",Kt,Object(i["toDisplayString"])(e.$t("editor.map.scrollguard.enable"))+":",1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"checkbox",onChange:t[1]||(t[1]=(...t)=>e.saveScrollguard&&e.saveScrollguard(...t)),"onUpdate:modelValue":t[2]||(t[2]=t=>e.panel.scrollguard=t)},null,544),[[i["vModelCheckbox"],e.panel.scrollguard]]),ea,Object(i["createElementVNode"])("label",ta,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.enable")),1),Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"checkbox",onChange:t[3]||(t[3]=(...t)=>e.saveTimeSlider&&e.saveTimeSlider(...t)),"onUpdate:modelValue":t[4]||(t[4]=t=>e.usingTimeSlider=t)},null,544),[[i["vModelCheckbox"],e.usingTimeSlider]]),aa,e.usingTimeSlider?(Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:0,onClick:t[5]||(t[5]=t=>e.$vfm.open("time-slider-edit-modal")),class:"bg-black text-white hover:bg-gray-800 mt-3"},Object(i["toDisplayString"])(e.$t("editor.map.timeslider.edit")),1)):Object(i["createCommentVNode"])("",!0),ia,e.usingTimeSlider?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",la)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("div",oa,[Object(i["createElementVNode"])("label",ra,Object(i["toDisplayString"])(e.$t("editor.map.edit"))+":",1),Object(i["createElementVNode"])("button",{class:"border border-black hover:bg-gray-100",onClick:t[6]||(t[6]=()=>{e.status="default"})},Object(i["toDisplayString"])(e.$t("editor.map.edit.cancel")),1)]),na])):Object(i["createCommentVNode"])("",!0),"creating"===e.status?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",sa,[Object(i["createElementVNode"])("label",ca,Object(i["toDisplayString"])(e.$t("editor.map.label.name"))+"*:",1),Object(i["createElementVNode"])("div",da,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[7]||(t[7]=t=>e.newFileName=t)},null,512),[[i["vModelText"],e.newFileName]]),Object(i["createTextVNode"])(".json")]),""!=e.newFileName?(Object(i["openBlock"])(),Object(i["createElementBlock"])("ul",ua,[Object(i["createElementVNode"])("li",{class:"map-item items-center my-8 mx-5 overflow-hidden",onClick:t[8]||(t[8]=(...t)=>e.createNewConfig&&e.createNewConfig(...t))},[ma,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.$t("editor.map.label.create")),1)])])):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0),"default"===e.status?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",pa,[Object(i["createElementVNode"])("label",ga,Object(i["toDisplayString"])(e.$t("editor.map.edit"))+":",1),Object(i["createElementVNode"])("ul",ha,[Object(i["createElementVNode"])("li",{class:"map-item items-center my-8 mx-5 overflow-hidden",onClick:t[9]||(t[9]=(...t)=>e.openEditor&&e.openEditor(...t))},[ba,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.$t("editor.map.label.edit")),1)])])])):Object(i["createCommentVNode"])("",!0),Object(i["createVNode"])(s,{modalId:"time-slider-edit-modal","content-class":"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2",class:"flex justify-center items-center"},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("h2",fa,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.edit")),1),Object(i["createVNode"])(n,{config:e.timeSliderConf,error:e.timeSliderError,onTimeSliderChanged:e.onTimeSliderInput},null,8,["config","error","onTimeSliderChanged"]),Object(i["createElementVNode"])("div",va,[Object(i["createElementVNode"])("button",{class:Object(i["normalizeClass"])(e.timeSliderError?"":"bg-black text-white hover:bg-gray-800"),disabled:e.timeSliderError,onClick:t[10]||(t[10]=(...t)=>e.saveTimeSlider&&e.saveTimeSlider(...t))}," Done ",10,Oa)])]),_:1})])}var Va=a("7847"),ya=a("ea6b");const Sa=e=>(Object(i["pushScopeId"])("data-v-6923af36"),e=e(),Object(i["popScopeId"])(),e),Ca={class:"px-5"},xa={class:"flex items-center"},Ea=["value"],wa={class:"mx-3"},ka=["value"],Na=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),_a={class:"flex items-center"},Ta=["value"],Ma={class:"mx-3"},La=["value"],$a=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),Ia={key:0,class:"border-black border-2 p-3 w-2/3"},Ba={class:"w-full"},Da=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),Fa={class:"list-disc my-2 ml-8"},Ra={key:1},Aa=["value"],Pa=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),Ua=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),za=["value"],Wa=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1)),qa=Sa(()=>Object(i["createElementVNode"])("br",null,null,-1));function Xa(e,t,a,l,o,r){return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ca,[Object(i["createElementVNode"])("div",xa,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.range")),1),Object(i["createElementVNode"])("input",{type:"number",value:e.config.range[0],onInput:t[0]||(t[0]=t=>e.$emit("time-slider-changed","range",0,t.target.value))},null,40,Ea),Object(i["createElementVNode"])("span",wa,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.to")),1),Object(i["createElementVNode"])("input",{type:"number",value:e.config.range[1],onInput:t[1]||(t[1]=t=>e.$emit("time-slider-changed","range",1,t.target.value))},null,40,ka)]),Na,Object(i["createElementVNode"])("div",_a,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.start")),1),Object(i["createElementVNode"])("input",{class:"ml-3",type:"number",value:e.config.start[0],onInput:t[2]||(t[2]=t=>e.$emit("time-slider-changed","start",0,t.target.value))},null,40,Ta),Object(i["createElementVNode"])("span",Ma,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.to")),1),Object(i["createElementVNode"])("input",{type:"number",value:e.config.start[1],onInput:t[3]||(t[3]=t=>e.$emit("time-slider-changed","start",1,t.target.value))},null,40,La)]),$a,e.error?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ia,[Object(i["createElementVNode"])("label",Ba,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.warning")),1),Da,Object(i["createElementVNode"])("ul",Fa,[Object(i["createElementVNode"])("li",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.warning.bullet1")),1),Object(i["createElementVNode"])("li",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.warning.bullet2")),1)]),Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.warning.end")),1)])):Object(i["createCommentVNode"])("",!0),e.error?(Object(i["openBlock"])(),Object(i["createElementBlock"])("br",Ra)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.attribute")),1),Object(i["createElementVNode"])("input",{value:e.config.attribute,onInput:t[4]||(t[4]=t=>e.$emit("time-slider-changed","attribute",void 0,t.target.value))},null,40,Aa)]),Pa,Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.map.timeslider.layers")),1),Ua,Object(i["createElementVNode"])("input",{class:"w-full",value:e.config.layers||"",onInput:t[5]||(t[5]=t=>e.$emit("time-slider-changed","layers",void 0,t.target.value))},null,40,za)]),Wa,qa])}class Ha extends n["c"]{}Object(r["a"])([Object(n["b"])()],Ha.prototype,"config",void 0),Object(r["a"])([Object(n["b"])()],Ha.prototype,"error",void 0);a("d618");const Ga=d()(Ha,[["render",Xa],["__scopeId","data-v-6923af36"]]);var Ja=Ga;let Za=class extends n["c"]{constructor(){super(...arguments),this.newFileName="",this.usingTimeSlider=!!this.panel.timeSlider,this.timeSliderError=!1,this.timeSliderConf={range:[],start:[],attribute:""},this.status=""!==this.panel.config?"default":"creating",this.strippedFileName=""!==this.panel.config?this.panel.config.split("/")[3].split(".")[0]:""}mounted(){var e,t,a,i,l,o;window.addEventListener("message",this.saveEditor),this.timeSliderConf=JSON.parse(JSON.stringify({range:null!==(e=null===(t=this.panel.timeSlider)||void 0===t?void 0:t.range)&&void 0!==e?e:[1e3,(new Date).getFullYear()],start:null!==(a=null===(i=this.panel.timeSlider)||void 0===i?void 0:i.start)&&void 0!==a?a:[1e3,(new Date).getFullYear()],attribute:null!==(l=null===(o=this.panel.timeSlider)||void 0===o?void 0:o.attribute)&&void 0!==l?l:""})),this.validateTimeSlider()}beforeDestroy(){window.removeEventListener("message",this.saveEditor)}createNewConfig(){this.panel.config=`${this.configFileStructure.uuid}/ramp-config/${this.lang}/${this.newFileName}.json`,this.strippedFileName=this.panel.config.split("/")[3].split(".")[0],this.sourceCounts[this.panel.config]?this.sourceCounts[this.panel.config]+=1:this.sourceCounts[this.panel.config]=1,this.configFileStructure.rampConfig[this.lang].file(this.strippedFileName+".json",JSON.stringify("en"===this.lang?Va:ya,null,4)),this.status="default"}openEditor(){if(""!==this.panel.config&&(this.status="editing",this.panel.config)){const e=""+this.panel.config.substring(this.panel.config.indexOf("/")+1),t=this.configFileStructure.zip.file(e);t?t.async("string").then(e=>{window.config=e;const t=document.getElementById("RAMPeditorframe");t.contentWindow&&(t.contentWindow.config=e,t.contentWindow.configname=this.strippedFileName)}):fetch(this.panel.config).then(e=>{e.json().then(e=>{let t=JSON.stringify(e);window.config=t;const a=document.getElementById("RAMPeditorframe");a.contentWindow&&(a.contentWindow.config=t,a.contentWindow.configname=this.strippedFileName)})})}}saveScrollguard(e){this.panel.scrollguard=e.target.checked}saveTimeSlider(){this.timeSliderError&&this.usingTimeSlider||(this.panel.timeSlider=this.usingTimeSlider?this.timeSliderConf:void 0),this.$emit("slide-edit"),this.$vfm.close("time-slider-edit-modal")}saveEditor(e){"mapSaved"===e.data&&(this.status="default",this.configFileStructure.rampConfig[this.lang].file(this.strippedFileName+".json",JSON.stringify(JSON.parse(localStorage.RAMPconfig),null,4)),this.$emit("slide-edit"))}onTimeSliderInput(e,t,a){"layers"===e?a&&""!==a?this.timeSliderConf["layers"]=a.split(",").map(e=>e.trim()):delete this.timeSliderConf["layers"]:"attribute"===e?this.timeSliderConf[e]=a:this.timeSliderConf[e][t]=Number(a),this.validateTimeSlider()}validateTimeSlider(){this.timeSliderError=this.timeSliderConf.range.some(e=>e<0||!Number.isInteger(e))||this.timeSliderConf.start.some(e=>e<0||!Number.isInteger(e))||this.timeSliderConf.range[1]e.changePanel("text")),class:Object(i["normalizeClass"])(["border hover:bg-gray-100","text"===e.editingStatus?"border-black":"border-gray-300"])},Object(i["toDisplayString"])(e.$t("dynamic.textSection")),3),Object(i["createElementVNode"])("button",{onClick:t[1]||(t[1]=()=>e.changePanel("panels")),class:Object(i["normalizeClass"])(["border hover:bg-gray-100","text"!==e.editingStatus?"border-black":"border-gray-300"])},Object(i["toDisplayString"])(e.$t("dynamic.panel.collection")),3)]),"text"===e.editingStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",si,[(Object(i["openBlock"])(),Object(i["createBlock"])(Object(i["resolveDynamicComponent"])("text-editor"),{key:"text",panel:e.panel,configFileStructure:e.configFileStructure,lang:e.lang},null,8,["panel","configFileStructure","lang"]))])):Object(i["createCommentVNode"])("",!0),"panels"===e.editingStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",ci,[Object(i["createElementVNode"])("table",di,[Object(i["createElementVNode"])("tr",ui,[Object(i["createElementVNode"])("th",null,Object(i["toDisplayString"])(e.$t("dynamic.panel.id")),1),Object(i["createElementVNode"])("th",null,Object(i["toDisplayString"])(e.$t("dynamic.panel.type")),1),Object(i["createElementVNode"])("th",null,Object(i["toDisplayString"])(e.$t("dynamic.panel.actions")),1)]),(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.panel.children,(t,a)=>(Object(i["openBlock"])(),Object(i["createElementBlock"])("tr",{class:"table-contents",key:a},[Object(i["createElementVNode"])("td",null,Object(i["toDisplayString"])(t.id),1),Object(i["createElementVNode"])("td",null,Object(i["toDisplayString"])(t.panel.type),1),Object(i["createElementVNode"])("td",null,[Object(i["createElementVNode"])("span",{onClick:()=>e.switchSlide(a)},Object(i["toDisplayString"])(e.$t("editor.chart.label.edit")),9,mi),Object(i["createTextVNode"])(" | "),Object(i["createElementVNode"])("span",{onClick:()=>e.removeSlide(a)},Object(i["toDisplayString"])(e.$t("editor.remove")),9,pi)])]))),128)),Object(i["createElementVNode"])("tr",gi,[Object(i["createElementVNode"])("th",hi,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text",placeholder:"Enter Panel ID","onUpdate:modelValue":t[2]||(t[2]=t=>e.newSlideName=t)},null,512),[[i["vModelText"],e.newSlideName]]),e.idUsed?(Object(i["openBlock"])(),Object(i["createElementBlock"])("p",bi,Object(i["toDisplayString"])(e.$t("dynamic.panel.idTaken")),1)):Object(i["createCommentVNode"])("",!0)]),Object(i["createElementVNode"])("th",null,[Object(i["withDirectives"])(Object(i["createElementVNode"])("select",{"onUpdate:modelValue":t[3]||(t[3]=t=>e.newSlideType=t)},[(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(Object.keys(e.editors).filter(e=>"image"!==e),e=>(Object(i["openBlock"])(),Object(i["createElementBlock"])("option",{key:e},Object(i["toDisplayString"])(e),1))),128))],512),[[i["vModelSelect"],e.newSlideType]])]),Object(i["createElementVNode"])("th",null,[Object(i["createElementVNode"])("button",{onClick:t[4]||(t[4]=(...t)=>e.createNewSlide&&e.createNewSlide(...t)),disabled:e.idUsed},"Add New",8,fi)])])]),-1!==e.editingSlide?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",vi,[Oi,ji,Vi,Object(i["createElementVNode"])("span",yi,Object(i["toDisplayString"])(e.$t("dynamic.panel.editor")),1),Si,(Object(i["openBlock"])(),Object(i["createBlock"])(Object(i["resolveDynamicComponent"])(e.editors["image"===e.panel.children[e.editingSlide].panel.type?"slideshow":e.panel.children[e.editingSlide].panel.type]),{ref:"slide",key:e.editingSlide+e.panel.children[e.editingSlide].panel.type,panel:e.panel.children[e.editingSlide].panel,configFileStructure:e.configFileStructure,lang:e.lang,sourceCounts:e.sourceCounts},null,8,["panel","configFileStructure","lang","sourceCounts"]))])):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0)])}var xi;let Ei=xi=class extends n["c"]{constructor(){super(...arguments),this.editors={text:"text-editor",image:"image-editor",slideshow:"image-editor",chart:"chart-editor",map:"map-editor"},this.startingConfig={text:{type:Ve.Text,title:"",content:""},dynamic:{type:Ve.Dynamic,title:"",titleTag:"",content:"",children:[]},slideshow:{type:Ve.Slideshow,images:[]},chart:{type:Ve.Chart,charts:[]},map:{type:Ve.Map,config:"",title:"",scrollguard:!1}},this.editingStatus="text",this.editingSlide=-1,this.newSlideName="",this.newSlideType="text"}get idUsed(){return this.panel.children.some(e=>e.id===this.newSlideName)}changePanel(e){this.saveChanges(),this.editingStatus=e}switchSlide(e){this.saveChanges(),this.editingSlide=e,"image"===this.panel.children[this.editingSlide].panel.type&&(this.panel.children[this.editingSlide].panel={type:Ve.Slideshow,images:[this.panel.children[this.editingSlide].panel]})}removeSlide(e){var t;const a=null===(t=this.panel.children.find((t,a)=>a===e))||void 0===t?void 0:t.panel;switch(null===a||void 0===a?void 0:a.type){case"map":{const e=a;this.sourceCounts[e.config]-=1,0===this.sourceCounts[e.config]&&this.configFileStructure.zip.remove(""+e.config.substring(e.config.indexOf("/")+1));break}case"chart":{const e=a;e.charts.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"slideshow":{const e=a;e.images.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}}this.panel.children=this.panel.children.filter((t,a)=>a!==e),this.editingSlide===e&&(this.editingSlide=-1)}createNewSlide(){if(!this.newSlideName)return;const e={id:this.newSlideName,panel:JSON.parse(JSON.stringify(this.startingConfig[this.newSlideType]))};this.newSlideName="",this.panel.children.push(e)}saveChanges(){this.$nextTick(()=>{void 0!==this.$refs.slide&&"function"===typeof this.$refs.slide.saveChanges&&this.$refs.slide.saveChanges()})}};Object(r["a"])([Object(n["b"])()],Ei.prototype,"panel",void 0),Object(r["a"])([Object(n["b"])()],Ei.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],Ei.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],Ei.prototype,"sourceCounts",void 0),Ei=xi=Object(r["a"])([Object(n["a"])({components:{"chart-editor":ct,"image-editor":Pt,"text-editor":Gt,"dynamic-editor":xi,"map-editor":Ka}})],Ei);var wi=Ei;a("6a63");const ki=d()(wi,[["render",Ci]]);var Ni=ki;let _i=class extends n["c"]{constructor(){super(...arguments),this.config=void 0,this.panelIndex=0,this.newType="",this.rightOnly=!1,this.editors={text:"text-editor",image:"image-editor",slideshow:"image-editor",chart:"chart-editor",map:"map-editor",loading:"loading-page",dynamic:"dynamic-editor"}}onSlideChange(){this.currentSlide&&(this.rightOnly=1===this.currentSlide.panel.length)}changePanelType(e,t){const a={text:{type:Ve.Text,title:"",content:""},dynamic:{type:Ve.Dynamic,title:this.currentSlide.panel[0]&&"text"===e?this.currentSlide.panel[0].title:"",titleTag:"",content:this.currentSlide.panel[0]&&"text"===e?this.currentSlide.panel[0].content:"",children:[]},slideshow:{type:Ve.Slideshow,images:[]},chart:{type:Ve.Chart,charts:[]},map:{type:Ve.Map,config:"",title:"",scrollguard:!1}};this.currentSlide.panel.forEach(e=>this.removeSourceCounts(e)),"dynamic"===t?(this.panelIndex=0,this.currentSlide["panel"]=[a[t]]):this.currentSlide.panel[this.panelIndex]=a[t]}removeSourceCounts(e){switch(e.type){case"map":{const t=e;this.sourceCounts[t.config]-=1,0===this.sourceCounts[t.config]&&this.configFileStructure.zip.remove(""+t.config.substring(t.config.indexOf("/")+1));break}case"chart":{const t=e;t.charts.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"slideshow":{const t=e;t.images.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"dynamic":{const t=e;t.children.forEach(e=>{this.removeSourceCounts(e.panel)});break}}}saveChanges(){this.$nextTick(()=>{void 0!==this.$refs.editor&&"function"===typeof this.$refs.editor.saveChanges&&this.$refs.editor.saveChanges()})}selectSlide(e){this.$emit("slide-change",e)}cancelTypeChange(){this.$refs.typeSelector.value=this.currentSlide.panel[this.panelIndex].type}toggleRightOnly(){this.saveChanges(),this.rightOnly?(this.panelIndex=0,this.currentSlide["panel"]=[this.currentSlide.panel[1]]):this.currentSlide["panel"]=[Object.assign({},{type:Ve.Text,title:"",content:""}),Object.assign({},this.currentSlide.panel[0])]}};Object(r["a"])([Object(n["b"])()],_i.prototype,"currentSlide",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"uid",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"slideIndex",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"isLast",void 0),Object(r["a"])([Object(n["b"])()],_i.prototype,"sourceCounts",void 0),Object(r["a"])([Object(n["d"])("currentSlide",{deep:!0})],_i.prototype,"onSlideChange",null),_i=Object(r["a"])([Object(n["a"])({components:{"chart-editor":ct,"image-editor":Pt,"text-editor":Gt,"map-editor":Ka,"loading-page":oi,"dynamic-editor":Ni,"confirmation-modal":it}})],_i);var Ti=_i;a("ff0d");const Mi=d()(Ti,[["render",je],["__scopeId","data-v-ecc4f964"]]);var Li=Mi;const $i=e=>(Object(i["pushScopeId"])("data-v-50ad0d19"),e=e(),Object(i["popScopeId"])(),e),Ii={class:"flex toc-header p-2 mt-10"},Bi={class:"flex items-center justify-center font-bold"},Di=$i(()=>Object(i["createElementVNode"])("span",{class:"flex-1"},null,-1)),Fi=$i(()=>Object(i["createElementVNode"])("span",{class:"ml-auto"},null,-1)),Ri=$i(()=>Object(i["createElementVNode"])("span",{class:"align-middle inline-block px-1"},[Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[Object(i["createElementVNode"])("path",{d:"M24 10h-10v-10h-4v10h-10v4h10v10h4v-10h10z"})])],-1)),Ai={class:"align-middle inline-block"},Pi=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24",width:"24"},[Object(i["createElementVNode"])("path",{d:"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z"})],-1)),Ui=[Pi],zi={slot:"header",class:"text-xl font-bold"},Wi={class:"flex flex-col"},qi={class:"text-lg font-bold my-6"},Xi={class:"flex"},Hi=["value"],Gi=["onClick"],Ji={class:"self-center overflow-ellipsis whitespace-nowrap overflow-hidden flex-grow ml-2"},Zi={class:"font-bold overflow-hidden"},Qi={class:"flex"},Yi={class:"flex flex-col"},Ki=["onClick"],el=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24"},[Object(i["createElementVNode"])("path",{d:"M3 6l3 18h12l3-18h-18zm19-4v2h-20v-2h5.711c.9 0 1.631-1.099 1.631-2h5.316c0 .901.73 2 1.631 2h5.711z"})],-1)),tl=[el],al=["onClick"],il=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24",width:"24"},[Object(i["createElementVNode"])("path",{d:"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z"})],-1)),ll=[il],ol={class:"flex flex-col mr-2 ml-1 my-1"},rl=["onClick","disabled"],nl=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",class:"fill-current",height:"20",width:"20"},[Object(i["createElementVNode"])("path",{d:"m2 16 8-12 8 12Z"})],-1)),sl=[nl],cl=["onClick","disabled"],dl=$i(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",class:"fill-current",height:"20",width:"20"},[Object(i["createElementVNode"])("path",{d:"m2 16 8-12 8 12Z"})],-1)),ul=[dl];function ml(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("vue-final-modal"),s=Object(i["resolveComponent"])("confirmation-modal"),c=Object(i["resolveComponent"])("draggable"),d=Object(i["resolveDirective"])("tippy");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",null,[Object(i["createElementVNode"])("div",Ii,[Object(i["createElementVNode"])("span",Bi,Object(i["toDisplayString"])(e.$t("editor.slides.title")),1),Di,Fi,Object(i["createElementVNode"])("button",{onClick:t[0]||(t[0]=(...t)=>e.addNewSlide&&e.addNewSlide(...t))},[Ri,Object(i["createElementVNode"])("span",Ai,Object(i["toDisplayString"])(e.$t("editor.slides.addSlide")),1)]),Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{onClick:t[1]||(t[1]=Object(i["withModifiers"])(t=>e.$vfm.open("copy-from-other-lang"),["stop"]))},Ui)),[[d,{delay:"200",placement:"right",content:e.$t("editor.slides.copyFromLang"),animateFill:!0}]]),Object(i["createVNode"])(n,{modalId:"copy-from-other-lang","content-class":"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2",class:"flex justify-center items-center"},{default:Object(i["withCtx"])(()=>[Object(i["createElementVNode"])("h2",zi,Object(i["toDisplayString"])(e.$t("editor.slides.copyFromLang")),1),Object(i["createElementVNode"])("div",Wi,[Object(i["createElementVNode"])("button",{class:"w-32 h-12 ml-0",onClick:t[2]||(t[2]=t=>e.copyAllFromOtherLang(e.configFileStructure.configs["en"===e.lang?"fr":"en"].slides))},Object(i["toDisplayString"])(e.$t("editor.slides.copyAll")),1),Object(i["createElementVNode"])("span",qi,Object(i["toDisplayString"])(e.$t("editor.image.label.or")),1),Object(i["createElementVNode"])("div",Xi,[Object(i["withDirectives"])(Object(i["createElementVNode"])("select",{"onUpdate:modelValue":t[3]||(t[3]=t=>e.selectedForCopying=t),class:"overflow-ellipsis copy-select"},[(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.configFileStructure.configs["en"===e.lang?"fr":"en"].slides,(t,a)=>(Object(i["openBlock"])(),Object(i["createElementBlock"])("option",{value:a,key:t.title+a},Object(i["toDisplayString"])(e.$t("editor.slides.slide"))+" "+Object(i["toDisplayString"])(a+": "+t.title),9,Hi))),128))],512),[[i["vModelSelect"],e.selectedForCopying]]),Object(i["createElementVNode"])("button",{onClick:t[4]||(t[4]=t=>e.copyFromOtherLang(e.configFileStructure.configs["en"===e.lang?"fr":"en"].slides[e.selectedForCopying]))},Object(i["toDisplayString"])(e.$t("editor.slides.copy")),1)])])]),_:1})]),Object(i["createElementVNode"])("ul",null,[Object(i["createVNode"])(c,{modelValue:e.slides,"onUpdate:modelValue":t[5]||(t[5]=t=>e.slides=t),onUpdate:t[6]||(t[6]=t=>e.$emit("slides-updated",e.slides)),"item-key":"title"},{item:Object(i["withCtx"])(({element:t,index:a})=>[Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("li",{class:Object(i["normalizeClass"])(["toc-slide border-t flex px-2 cursor-pointer hover:bg-gray-100",e.currentSlide===t?"bg-gray-100":""]),onClick:t=>e.selectSlide(a),key:t.title+a},[Object(i["createElementVNode"])("div",Ji,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.$t("editor.slides.slide"))+" "+Object(i["toDisplayString"])(a+1)+": ",1),Object(i["createElementVNode"])("span",Zi,Object(i["toDisplayString"])(t.title||"Add a title"),1)]),Object(i["createElementVNode"])("div",Qi,[Object(i["createElementVNode"])("div",Yi,[Object(i["createElementVNode"])("button",{onClick:Object(i["withModifiers"])(t=>e.$vfm.open("delete-slide-"+a),["stop"])},tl,8,Ki),Object(i["createElementVNode"])("button",{onClick:Object(i["withModifiers"])(t=>e.copySlide(a),["stop"])},ll,8,al)]),Object(i["createElementVNode"])("div",ol,[Object(i["createElementVNode"])("button",{class:Object(i["normalizeClass"])(0==a?"text-gray-500 cursor-not-allowed":""),onClick:Object(i["withModifiers"])(t=>e.moveUp(a),["stop"]),disabled:0==a},sl,10,rl),Object(i["createElementVNode"])("button",{class:Object(i["normalizeClass"])(["rotate-180 transform",a==e.slides.length-1?"text-gray-500 cursor-not-allowed":""]),onClick:Object(i["withModifiers"])(t=>e.moveDown(a),["stop"]),disabled:a==e.slides.length-1},ul,10,cl)])]),Object(i["createVNode"])(s,{name:"delete-slide-"+a,message:e.$t("editor.slides.deleteSlide.confirm",{title:t.title}),onOk:t=>e.removeSlide(a)},null,8,["name","message","onOk"])],10,Gi)),[[d,{delay:"200",placement:"right",content:t.title,animateFill:!0}]])]),_:1},8,["modelValue"])])])}var pl=a("9675"),gl=a.n(pl);let hl=class extends n["c"]{constructor(){super(...arguments),this.selectedForCopying=0}selectSlide(e){this.$emit("slide-change",e)}addNewSlide(){this.slides.push({title:"",panel:[{type:"text",title:"",content:""},{type:"text",title:"",content:""}]}),this.selectSlide(this.slides.length-1),this.$emit("slides-updated",this.slides)}copyFromOtherLang(e){e&&(this.slides.splice(this.slides.length,0,gl()(e)),this.$emit("slides-updated",this.slides))}copyAllFromOtherLang(e){e&&(this.slides.splice(this.slides.length,0,...e.map(e=>gl()(e))),this.$emit("slides-updated",this.slides))}copySlide(e){this.slides.splice(e+1,0,gl()(this.slides[e])),this.$emit("slides-updated",this.slides)}removeSlide(e){e===this.slideIndex&&this.$emit("slide-change",-1),this.removeSourceCounts(e),this.slides.splice(e,1),this.$emit("slides-updated",this.slides)}removeSourceCounts(e){var t;const a=null===(t=this.slides.find((t,a)=>a===e))||void 0===t?void 0:t.panel;null===a||void 0===a||a.forEach(e=>this.removeSourceHelper(e))}removeSourceHelper(e){switch(e.type){case"map":{const t=e;this.sourceCounts[t.config]-=1,0===this.sourceCounts[t.config]&&this.configFileStructure.zip.remove(""+t.config.substring(t.config.indexOf("/")+1));break}case"chart":{const t=e;t.charts.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"slideshow":{const t=e;t.images.forEach(e=>{this.sourceCounts[e.src]-=1,0===this.sourceCounts[e.src]&&this.configFileStructure.zip.remove(""+e.src.substring(e.src.indexOf("/")+1))});break}case"dynamic":{const t=e;t.children.forEach(e=>{this.removeSourceHelper(e.panel)});break}}}moveUp(e){this.moveDown(e-1)}moveDown(e){this.slides.splice(e+1,0,this.slides.splice(e,1)[0]),this.$emit("slides-updated",this.slides)}};Object(r["a"])([Object(n["b"])()],hl.prototype,"slides",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"currentSlide",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"slideIndex",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"lang",void 0),Object(r["a"])([Object(n["b"])()],hl.prototype,"sourceCounts",void 0),hl=Object(r["a"])([Object(n["a"])({components:{"slide-editor":Li,"confirmation-modal":it,"vue-final-modal":U["a"],draggable:ot.a}})],hl);var bl=hl;a("f1a5");const fl=d()(bl,[["render",ml],["__scopeId","data-v-50ad0d19"]]);var vl=fl;const Ol={class:"mb-5"},jl=["value"],Vl=Object(i["createElementVNode"])("br",null,null,-1),yl={class:"mb-5"},Sl=["value"],Cl={class:"mb-5"},xl=["value"],El=Object(i["createElementVNode"])("br",null,null,-1),wl={key:0},kl=["src"],Nl={key:1,class:"image-preview"},_l={class:"mb-5"},Tl=["value"],Ml=Object(i["createElementVNode"])("br",null,null,-1),Ll=["value"],$l=Object(i["createElementVNode"])("br",null,null,-1),Il=Object(i["createElementVNode"])("label",{class:"mb-5"},null,-1),Bl={class:"inline-block"},Dl=Object(i["createElementVNode"])("br",null,null,-1),Fl=["value"],Rl=Object(i["createElementVNode"])("br",null,null,-1),Al=Object(i["createElementVNode"])("label",{class:"mb-5"},null,-1),Pl={class:"inline-block"},Ul=Object(i["createElementVNode"])("br",null,null,-1),zl=["value"],Wl=Object(i["createElementVNode"])("br",null,null,-1),ql=Object(i["createElementVNode"])("label",{class:"mb-5"},null,-1),Xl={class:"inline-block"},Hl=Object(i["createElementVNode"])("br",null,null,-1),Gl={class:"mb-5"},Jl=["value"],Zl=Object(i["createElementVNode"])("br",null,null,-1),Ql=Object(i["createElementVNode"])("br",null,null,-1);function Yl(e,t,a,l,o,r){return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",null,[Object(i["createElementVNode"])("label",Ol,Object(i["toDisplayString"])(e.$t("editor.title"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"title",value:e.metadata.title,onChange:t[0]||(t[0]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-1/3"},null,40,jl),Vl,Object(i["createElementVNode"])("label",yl,Object(i["toDisplayString"])(e.$t("editor.slides.title"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"introTitle",value:e.metadata.introTitle,onChange:t[1]||(t[1]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-1/4"},null,40,Sl),Object(i["createElementVNode"])("label",Cl,Object(i["toDisplayString"])(e.$t("editor.slides.intro"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"introSubtitle",value:e.metadata.introSubtitle,onChange:t[2]||(t[2]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-1/4"},null,40,xl),El,e.metadata.logoPreview?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",wl,[Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.logoPreview"))+":",1),e.metadata.logoPreview&&"error"!=e.metadata.logoPreview?(Object(i["openBlock"])(),Object(i["createElementBlock"])("img",{key:0,src:e.metadata.logoPreview,class:"image-preview"},null,8,kl)):Object(i["createCommentVNode"])("",!0),"error"==e.metadata.logoPreview?(Object(i["openBlock"])(),Object(i["createElementBlock"])("p",Nl,Object(i["toDisplayString"])(e.$t("editor.image.loadingError")),1)):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("label",_l,Object(i["toDisplayString"])(e.$t("editor.logo"))+":",1),Object(i["createElementVNode"])("input",{type:"text",onChange:t[3]||(t[3]=t=>e.$emit("logo-source-changed",t)),value:e.metadata.logoName,class:"w-1/4"},null,40,Tl),Object(i["createElementVNode"])("button",{onClick:t[4]||(t[4]=Object(i["withModifiers"])((...t)=>e.openFileSelector&&e.openFileSelector(...t),["stop"])),class:"bg-black text-white hover:bg-gray-800"},Object(i["toDisplayString"])(e.$t("editor.browse")),1),e.metadata.logoName||e.metadata.logoPreview?(Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:1,onClick:t[5]||(t[5]=Object(i["withModifiers"])((...t)=>e.removeLogo&&e.removeLogo(...t),["stop"])),class:"border border-black"},Object(i["toDisplayString"])(e.$t("editor.remove")),1)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("input",{type:"file",id:"logoUpload",onChange:t[6]||(t[6]=t=>e.$emit("logo-changed",t)),class:"w-1/4",style:{display:"none"}},null,32),Ml,Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.logoAltText"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"logoAltText",value:e.metadata.logoAltText,onChange:t[7]||(t[7]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-2/3"},null,40,Ll),$l,Il,Object(i["createElementVNode"])("p",Bl,[Object(i["createElementVNode"])("i",null,Object(i["toDisplayString"])(e.$t("editor.logoAltText.desc")),1)]),Dl,Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.contextLink"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"contextLink",value:e.metadata.contextLink,onChange:t[8]||(t[8]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-2/3"},null,40,Fl),Rl,Al,Object(i["createElementVNode"])("p",Pl,[Object(i["createElementVNode"])("i",null,Object(i["toDisplayString"])(e.$t("editor.contextLink.info")),1)]),Ul,Object(i["createElementVNode"])("label",null,Object(i["toDisplayString"])(e.$t("editor.contextLabel"))+":",1),Object(i["createElementVNode"])("input",{type:"text",name:"contextLabel",value:e.metadata.contextLabel,onChange:t[9]||(t[9]=(...t)=>e.metadataChanged&&e.metadataChanged(...t)),class:"w-2/3"},null,40,zl),Wl,ql,Object(i["createElementVNode"])("p",Xl,[Object(i["createElementVNode"])("i",null,Object(i["toDisplayString"])(e.$t("editor.contextLabel.info")),1)]),Hl,Object(i["createElementVNode"])("label",Gl,Object(i["toDisplayString"])(e.$t("editor.dateModified"))+":",1),Object(i["createElementVNode"])("input",{type:"date",name:"dateModified",value:e.metadata.dateModified,onChange:t[10]||(t[10]=(...t)=>e.metadataChanged&&e.metadataChanged(...t))},null,40,Jl),Zl,Ql])}class Kl extends n["c"]{openFileSelector(){var e;null===(e=document.getElementById("logoUpload"))||void 0===e||e.click()}metadataChanged(e){this.$emit("metadata-changed",e.target.name,e.target.value)}removeLogo(){this.metadata.logoName="",this.metadata.logoPreview=""}}Object(r["a"])([Object(n["b"])()],Kl.prototype,"metadata",void 0);const eo=d()(Kl,[["render",Yl]]);var to=eo;const ao=e=>(Object(i["pushScopeId"])("data-v-7d7fb887"),e=e(),Object(i["popScopeId"])(),e),io={class:"editor-container"},lo={class:"editor-header sticky flex items-center border-b border-black bg-gray-200 py-2 px-2 z-10"},oo={class:"mx-1"},ro=ao(()=>Object(i["createElementVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18.001",viewBox:"0 0 18 18.001"},[Object(i["createElementVNode"])("path",{id:"logout-Icon-SVG-098767893",d:"M5.808,13.782v1.406A2.816,2.816,0,0,0,8.621,18h7.067A2.816,2.816,0,0,0,18.5,15.188V2.813A2.816,2.816,0,0,0,15.687,0H8.621A2.816,2.816,0,0,0,5.808,2.813V4.219a.7.7,0,0,0,1.406,0V2.813A1.408,1.408,0,0,1,8.621,1.406h7.067a1.408,1.408,0,0,1,1.406,1.406V15.188a1.408,1.408,0,0,1-1.406,1.406H8.621a1.408,1.408,0,0,1-1.406-1.406V13.782a.7.7,0,0,0-1.406,0ZM1.014,7.793,2.589,6.218a.7.7,0,0,1,.994.994l-1.12,1.12h8.443a.7.7,0,1,1,0,1.406H2.463l1.12,1.12a.7.7,0,1,1-.994.994L1.014,10.279A1.76,1.76,0,0,1,1.014,7.793Zm0,0",transform:"translate(-0.5)"})],-1)),no={class:"ml-3 flex flex-col"},so={class:"font-semibold text-lg"},co=ao(()=>Object(i["createElementVNode"])("span",{class:"ml-auto"},null,-1)),uo=ao(()=>Object(i["createElementVNode"])("svg",{class:"inline",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"18px",height:"18px"},[Object(i["createElementVNode"])("path",{d:"M 2 2 L 4.9394531 4.9394531 C 3.1262684 6.7482143 2 9.2427079 2 12 C 2 17.514 6.486 22 12 22 C 17.514 22 22 17.514 22 12 C 22 6.486 17.514 2 12 2 L 12 4 C 16.411 4 20 7.589 20 12 C 20 16.411 16.411 20 12 20 C 7.589 20 4 16.411 4 12 C 4 9.7940092 4.9004767 7.7972757 6.3496094 6.3496094 L 9 9 L 9 2 L 2 2 z"})],-1)),mo={class:"font-normal ml-1"},po={key:0,class:"border-2 border-red-700 text-red-700 rounded p-1 mr-2"},go=ao(()=>Object(i["createElementVNode"])("span",{class:"align-middle inline-block mr-1 pb-1 fill-current"},[Object(i["createElementVNode"])("svg",{"clip-rule":"evenodd","fill-rule":"evenodd",class:"fill-red-600",width:"18",height:"18","stroke-linejoin":"round","stroke-miterlimit":"2",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"m12.002 21.534c5.518 0 9.998-4.48 9.998-9.998s-4.48-9.997-9.998-9.997c-5.517 0-9.997 4.479-9.997 9.997s4.48 9.998 9.997 9.998zm0-1.5c-4.69 0-8.497-3.808-8.497-8.498s3.807-8.497 8.497-8.497 8.498 3.807 8.498 8.497-3.808 8.498-8.498 8.498zm0-6.5c-.414 0-.75-.336-.75-.75v-5.5c0-.414.336-.75.75-.75s.75.336.75.75v5.5c0 .414-.336.75-.75.75zm-.002 3c.552 0 1-.448 1-1s-.448-1-1-1-1 .448-1 1 .448 1 1 1z","fill-rule":"nonzero"})])],-1)),ho={class:"align-center inline-block select-none"},bo=["disabled"],fo={class:"inline-block"},vo={key:0,class:"align-middle inline-block px-1"},Oo={class:"flex"},jo={class:"w-80 flex-shrink-0 border-r border-black editor-toc"},Vo={class:"flex items-center justify-center border-b p-2"},yo=ao(()=>Object(i["createElementVNode"])("span",{class:"align-middle inline-block px-1"},[Object(i["createElementVNode"])("svg",{"clip-rule":"evenodd","fill-rule":"evenodd",width:"16",height:"16","stroke-linejoin":"round","stroke-miterlimit":"2",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[Object(i["createElementVNode"])("path",{d:"m4.481 15.659c-1.334 3.916-1.48 4.232-1.48 4.587 0 .528.46.749.749.749.352 0 .668-.137 4.574-1.492zm1.06-1.061 3.846 3.846 11.321-11.311c.195-.195.293-.45.293-.707 0-.255-.098-.51-.293-.706-.692-.691-1.742-1.74-2.435-2.432-.195-.195-.451-.293-.707-.293-.254 0-.51.098-.706.293z","fill-rule":"nonzero"})])],-1)),So={class:"align-middle inline-block"};function Co(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("router-link"),s=Object(i["resolveComponent"])("spinner"),c=Object(i["resolveComponent"])("slide-toc"),d=Object(i["resolveComponent"])("slide-editor"),u=Object(i["resolveComponent"])("confirmation-modal"),m=Object(i["resolveDirective"])("tippy");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",io,[Object(i["createElementVNode"])("div",lo,[Object(i["createElementVNode"])("span",oo,[Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createBlock"])(n,{to:{name:"home"},class:"mt-1 flex justify-center h-full w-full",target:""},{default:Object(i["withCtx"])(()=>[ro]),_:1})),[[m,{delay:"200",placement:"right",content:e.$t("editor.returnToLanding"),animateFill:!0}]])]),Object(i["createElementVNode"])("div",no,[Object(i["createElementVNode"])("span",so,Object(i["toDisplayString"])(e.metadata.title),1),Object(i["createElementVNode"])("span",{class:Object(i["normalizeClass"])(e.metadata.title?"text-xs":"")},"UUID: "+Object(i["toDisplayString"])(e.uuid),3)]),co,e.unsavedChanges?Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("button",{key:0,onClick:t[0]||(t[0]=t=>e.$vfm.open("reload-config")),class:"border-2 border-red-700 text-red-700 rounded p-1 mr-2"},[uo,Object(i["createElementVNode"])("span",mo,Object(i["toDisplayString"])(e.$t("editor.resetChanges")),1)])),[[m,{delay:"200",placement:"bottom",content:e.$t("editor.resetChanges"),animateFill:!0}]]):Object(i["createCommentVNode"])("",!0),Object(i["createVNode"])(i["Transition"],{name:"fade"},{default:Object(i["withCtx"])(()=>[e.unsavedChanges?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",po,[go,Object(i["createElementVNode"])("span",ho,Object(i["toDisplayString"])(e.$t("editor.unsavedChanges")),1)])):Object(i["createCommentVNode"])("",!0)]),_:1}),Object(i["renderSlot"])(e.$slots,"langModal",Object(i["normalizeProps"])(Object(i["guardReactiveProps"])({unsavedChanges:e.unsavedChanges})),void 0,!0),Object(i["createElementVNode"])("button",{onClick:t[1]||(t[1]=(...t)=>e.preview&&e.preview(...t)),class:"bg-white border border-black hover:bg-gray-100"},Object(i["toDisplayString"])(e.$t("editor.preview")),1),Object(i["createElementVNode"])("button",{onClick:t[2]||(t[2]=(...t)=>e.saveChanges&&e.saveChanges(...t)),class:"bg-black text-white hover:bg-gray-900",disabled:e.saving},[Object(i["createElementVNode"])("span",fo,Object(i["toDisplayString"])(e.saving?e.$t("editor.savingChanges"):e.$t("editor.saveChanges")),1),e.saving?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",vo,[Object(i["createVNode"])(s,{size:"16px",color:"#009cd1",class:"ml-1 mb-1"})])):Object(i["createCommentVNode"])("",!0)],8,bo)]),Object(i["createElementVNode"])("div",Oo,[Object(i["createElementVNode"])("div",jo,[Object(i["createElementVNode"])("div",Vo,[Object(i["createElementVNode"])("button",{onClick:t[3]||(t[3]=Object(i["withModifiers"])(t=>e.$vfm.open("metadata-edit-modal"),["stop"]))},[yo,Object(i["createElementVNode"])("span",So,Object(i["toDisplayString"])(e.$t("editor.editMetadata")),1)])]),Object(i["createVNode"])(c,{slides:e.slides,currentSlide:e.currentSlide,slideIndex:e.slideIndex,onSlideChange:e.selectSlide,onSlidesUpdated:e.updateSlides,configFileStructure:e.configFileStructure,lang:e.configLang,sourceCounts:e.sourceCounts},null,8,["slides","currentSlide","slideIndex","onSlideChange","onSlidesUpdated","configFileStructure","lang","sourceCounts"])]),Object(i["createVNode"])(d,{ref:"slide",configFileStructure:e.configFileStructure,currentSlide:e.currentSlide,lang:e.configLang,slideIndex:e.slideIndex,isLast:e.slideIndex===e.slides.length-1,uid:e.uuid,onSlideChange:e.selectSlide,onSlideEdit:e.onSlidesEdited,sourceCounts:e.sourceCounts},null,8,["configFileStructure","currentSlide","lang","slideIndex","isLast","uid","onSlideChange","onSlideEdit","sourceCounts"])]),Object(i["renderSlot"])(e.$slots,"metadataModal",{},void 0,!0),Object(i["createVNode"])(u,{name:"reload-config",message:e.$t("editor.refreshChanges.modal"),onOk:t[4]||(t[4]=t=>e.$emit("refresh-config"))},null,8,["message"])])}let xo=class extends n["c"]{constructor(){super(...arguments),this.uuid="",this.logoImage=void 0,this.loadSlides=void 0,this.currentSlide="",this.slideIndex=-1}onSlidesEdited(){this.$emit("save-status",!0)}onMetadataEdited(){this.$emit("save-status",!0)}created(){this.loadSlides=this.slides,this.uuid=this.$route.params.uid,window.addEventListener("beforeunload",this.beforeWindowUnload)}mounted(){const e=new IntersectionObserver(([e])=>e.target.classList.toggle("z-40",e.intersectionRatio<1),{threshold:[1]});e.observe(document.querySelector(".editor-header"))}beforeDestroy(){window.removeEventListener("beforeunload",this.beforeWindowUnload)}selectSlide(e){void 0!==this.$refs.slide&&this.$nextTick(()=>{this.$refs.slide.saveChanges()}),this.currentSlide={title:"",panel:[{type:"loading-page"},{type:"loading-page"}]},setTimeout(()=>{this.currentSlide=-1===e?"":this.loadSlides[e],this.slideIndex=e,this.$refs.slide.panelIndex=0,window.scrollTo(0,0)},5)}updateSlides(e){this.loadSlides=e,this.slideIndex=this.loadSlides.indexOf(this.currentSlide)}preview(){void 0!==this.$refs.slide&&this.$refs.slide.saveChanges();const e=this.$router.resolve({name:"preview"}),t=window.open(e.href,"_blank");t.props={config:JSON.parse(JSON.stringify(this.configs[this.configLang])),configFileStructure:this.configFileStructure}}saveChanges(){void 0!==this.$refs.slide&&this.$nextTick(()=>{this.$refs.slide.saveChanges()}),this.$emit("save-changes")}beforeWindowUnload(e){this.unsavedChanges&&!window.confirm()&&(e.preventDefault(),e.returnValue="")}};Object(r["a"])([Object(n["b"])()],xo.prototype,"configs",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"configFileStructure",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"sourceCounts",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"metadata",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"slides",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"configLang",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"saving",void 0),Object(r["a"])([Object(n["b"])()],xo.prototype,"unsavedChanges",void 0),Object(r["a"])([Object(n["d"])("slides",{deep:!0})],xo.prototype,"onSlidesEdited",null),Object(r["a"])([Object(n["d"])("metadata",{deep:!0})],xo.prototype,"onMetadataEdited",null),xo=Object(r["a"])([Object(n["a"])({components:{"metadata-content":to,"confirmation-modal":it,spinner:P["a"],"slide-editor":Li,"slide-toc":vl}})],xo);var Eo=xo;a("4497");const wo=d()(Eo,[["render",Co],["__scopeId","data-v-7d7fb887"]]);var ko=wo;const No=a("c4e3"),_o=a("bc3a").default,{v4:To}=a("e144");let Mo=class extends n["c"]{constructor(){super(...arguments),this.configs={en:void 0,fr:void 0},this.configFileStructure=void 0,this.loadExisting=!1,this.reloadExisting=!1,this.loadStatus="waiting",this.loadEditor=!1,this.error=!1,this.warning=!1,this.configLang="en",this.saving=!1,this.unsavedChanges=!1,this.uuid="",this.logoImage=void 0,this.metadata={title:"",introTitle:"",introSubtitle:"",logoPreview:"",logoName:"",logoAltText:"",contextLink:"",contextLabel:"",dateModified:""},this.reqFields={uuid:!0},this.slides=[],this.sourceCounts={}}created(){var e;if(this.loadExisting=this.editExisting,this.uuid=null!==(e=this.$route.params.uid)&&void 0!==e?e:this.loadExisting?void 0:To(),this.configLang=this.$route.params.configLang?this.$route.params.configLang:"en",this.configs={en:void 0,fr:void 0},this.configFileStructure=void 0,!this.loadExisting){const e=new Date,t=e.getFullYear(),a=(e.getMonth()+1).toString().padStart(2,"0"),i=e.getDate().toString().padStart(2,"0");this.metadata.dateModified=`${t}-${a}-${i}`}if("editor"===this.$route.name){this.loadEditor=!0;const e=this.$route.meta.data;if(e&&e.configs&&e.configFileStructure){var t;this.configs=e.configs,this.configFileStructure=e.configFileStructure,this.metadata=e.metadata,this.slides=e.slides,this.sourceCounts=e.sourceCounts,this.loadExisting=e.existing;const i=null===(t=this.configs[this.configLang])||void 0===t||null===(t=t.introSlide.logo)||void 0===t?void 0:t.src,l=`assets/${this.configLang}/${this.metadata.logoName}`;if(i){var a;const e=null===(a=this.configFileStructure)||void 0===a?void 0:a.zip.file(l);e?e.async("blob").then(e=>{this.logoImage=new File([e],this.metadata.logoName),this.metadata.logoPreview=URL.createObjectURL(e),this.loadStatus="loaded"}):(this.metadata.logoName=i,fetch(i).then(e=>{404!==e.status&&e.blob().then(e=>{this.logoImage=new File([e],this.metadata.logoName),this.metadata.logoPreview=i,this.loadStatus="loaded"})}))}else this.loadStatus="loaded";return}}this.$route.params.uid&&this.generateRemoteConfig()}generateNewConfig(){const e=new No;this.configs[this.configLang]=this.configHelper();const t=this.configs[this.configLang];if(this.metadata.logoName)if(this.metadata.logoName.includes("http"))t.introSlide.logo.src=this.metadata.logoName;else{var a;t.introSlide.logo.src=`${this.uuid}/assets/${this.configLang}/${null===(a=this.logoImage)||void 0===a?void 0:a.name}`}else t.introSlide.logo.src="";t.slides=[];const i="en"===this.configLang?"fr":"en";this.configs[i]=gl()(t),this.configs[i].lang=i;const l=JSON.stringify(this.configs[i],null,4),o=`${this.uuid}_${this.configLang}.json`,r=JSON.stringify(t,null,4);e.file(o,r),e.file(`${this.uuid}_${i}.json`,l),this.configFileStructureHelper(e,this.logoImage)}configHelper(){return{title:this.metadata.title,lang:this.configLang,introSlide:{logo:{src:""},title:this.metadata.introTitle,subtitle:this.metadata.introSubtitle},slides:[],contextLabel:this.metadata.contextLabel,contextLink:this.metadata.contextLink,dateModified:this.metadata.dateModified}}generateRemoteConfig(){this.loadStatus="loading",fetch("http://localhost:6040/retrieve/"+this.uuid).then(e=>{if(404===e.status){var t;z["a"].error(`The requested UUID '${null!==(t=this.uuid)&&void 0!==t?t:""}' does not exist.`),this.error=!0,this.loadStatus="waiting",this.clearConfig()}else{const t=new No;e.blob().then(e=>{t.loadAsync(e).then(()=>{this.configFileStructureHelper(t)})})}}).catch(()=>{z["a"].error("Failed to load product, no response from server"),this.loadStatus="loaded"})}findSources(e){["en","fr"].forEach(t=>{var a,i;null!==(a=e[t])&&void 0!==a&&null!==(a=a.introSlide.logo)&&void 0!==a&&a.src&&this.incrementSourceCount(e[t].introSlide.logo.src),null===(i=e[t])||void 0===i||i.slides.forEach(e=>{e.panel.forEach(e=>{this.panelSourceHelper(e)})})})}panelSourceHelper(e){switch(e.type){case"dynamic":e.children.forEach(e=>{this.panelSourceHelper(e.panel)});break;case"slideshow":e.images.forEach(e=>{this.incrementSourceCount(e.src)});break;case"chart":e.charts.forEach(e=>{this.incrementSourceCount(e.src)});break;case"image":case"video":case"audio":this.incrementSourceCount(e.src);break;case"map":this.incrementSourceCount(e.config);break;default:break}}incrementSourceCount(e){this.sourceCounts[e]?this.sourceCounts[e]+=1:this.sourceCounts[e]=1}configFileStructureHelper(e,t){const a=e.folder("assets"),i=e.folder("charts"),l=e.folder("ramp-config");this.configFileStructure={uuid:this.uuid,zip:e,configs:this.configs,assets:{en:a.folder("en"),fr:a.folder("fr")},charts:{en:i.folder("en"),fr:i.folder("fr")},rampConfig:{en:l.folder("en"),fr:l.folder("fr")}},void 0!==t&&this.configFileStructure.assets[this.configLang].file(null===t||void 0===t?void 0:t.name,t),this.loadConfig()}async loadConfig(e){if(e)this.useConfig(e);else{try{var t,a;const e=null===(t=this.configFileStructure)||void 0===t?void 0:t.zip.file(this.uuid+"_en.json"),i=null===(a=this.configFileStructure)||void 0===a?void 0:a.zip.file(this.uuid+"_fr.json");await(null===e||void 0===e?void 0:e.async("string").then(e=>{this.configs["en"]=JSON.parse(e)})),await(null===i||void 0===i?void 0:i.async("string").then(e=>{this.configs["fr"]=JSON.parse(e)}))}catch{var i;return z["a"].error(`The requested product '${null!==(i=this.uuid)&&void 0!==i?i:""}' is malformed.`),this.loadStatus="waiting",void this.clearConfig()}this.loadExisting?(this.loadStatus="waiting",z["a"].success("Successfully loaded storyline!")):this.loadStatus="loaded",this.configs[this.configLang]&&(this.useConfig(this.configs[this.configLang]),this.findSources(this.configs),this.reloadExisting?(this.loadEditor=!0,this.generateConfig(),this.updateEditorPath()):this.loadExisting||(this.loadEditor=!0,this.updateEditorPath()))}}useConfig(e){var t;this.metadata.title=e.title,this.metadata.introTitle=e.introSlide.title,this.metadata.introSubtitle=e.introSlide.subtitle,this.metadata.contextLink=e.contextLink,this.metadata.contextLabel=e.contextLabel,this.metadata.dateModified=e.dateModified,this.slides=e.slides,this.slides.forEach(e=>{if(2===e.panel.length&&"image"===e.panel[1].type){const t={type:"slideshow",images:[e.panel[1]]};e.panel[1]=t}});const a=null===(t=e.introSlide.logo)||void 0===t?void 0:t.src;if(a){var i,l;this.metadata.logoAltText=null!==(i=e.introSlide.logo)&&void 0!==i&&i.altText?e.introSlide.logo.altText:"";const t=""+a.substring(a.indexOf("/")+1),o=""+a.split("/")[a.split("/").length-1],r=null===(l=this.configFileStructure)||void 0===l?void 0:l.zip.file(t);r?r.async("blob").then(e=>{this.logoImage=new File([e],o),this.metadata.logoPreview=URL.createObjectURL(e),this.metadata.logoName=o,this.loadStatus="loaded"}):(this.metadata.logoName=a,fetch(a).then(e=>{404!==e.status&&e.blob().then(e=>{this.logoImage=new File([e],o),this.metadata.logoPreview=a,this.loadStatus="loaded"})}))}}generateConfig(){var e,t;this.saving=!0;const a=`${this.uuid}_${this.configLang}.json`,i=JSON.stringify(this.configs[this.configLang],null,4);return null===(e=this.configFileStructure)||void 0===e||e.zip.file(a,i),null===(t=this.configFileStructure)||void 0===t||t.zip.generateAsync({type:"blob"}).then(e=>{const t=new FormData;t.append("data",e,this.uuid+".zip");const a={"Content-Type":"multipart/form-data"};_o.post("http://localhost:6040/upload",t,{headers:a}).then(e=>{e.data.files,e.status,this.unsavedChanges=!1,this.loadExisting=!0,z["a"].success("Successfully saved changes!")}).catch(()=>{z["a"].error("Failed to save changes.")}).finally(()=>{setTimeout(()=>{this.saving=!1},500)})}),this.configFileStructure}updateMetadata(e,t){this.metadata[e]=t,this.unsavedChanges=!0}saveMetadata(e=!1){const t=this.configs[this.configLang];if(void 0!==t){if(t.title=this.metadata.title,t.introSlide.title=this.metadata.introTitle,t.introSlide.subtitle=this.metadata.introSubtitle,t.contextLink=this.metadata.contextLink,t.contextLabel=this.metadata.contextLabel,t.dateModified=this.metadata.dateModified,void 0===t.introSlide.logo&&(t.introSlide.logo={src:"",altText:""}),t.introSlide.logo.altText=this.metadata.logoAltText,this.metadata.logoName)if(this.metadata.logoName.includes("http"))t.introSlide.logo.src=this.metadata.logoName;else{var a,i,l;t.introSlide.logo.src=`${this.uuid}/assets/${this.configLang}/${null===(a=this.logoImage)||void 0===a?void 0:a.name}`,null===(i=this.configFileStructure)||void 0===i||i.assets[this.configLang].file(null===(l=this.logoImage)||void 0===l?void 0:l.name,this.logoImage)}else t.introSlide.logo.src="";e&&this.generateConfig()}this.$vfm.close("metadata-edit-modal")}clearConfig(){this.metadata={title:"",introTitle:"",introSubtitle:"",contextLink:"",contextLabel:"",dateModified:"",logoPreview:"",logoName:"",logoAltText:""},this.configs={en:void 0,fr:void 0},this.slides=[]}swapLang(){this.configLang="en"===this.configLang?"fr":"en",this.configs[this.configLang]&&(this.loadConfig(this.configs[this.configLang]),this.loadEditor&&(this.$refs.mainEditor.updateSlides(this.slides),this.$nextTick(()=>{this.$refs.mainEditor.selectSlide(-1)})))}checkUuid(){this.loadExisting||fetch("http://localhost:6040/retrieve/"+this.uuid).then(e=>{404!==e.status&&(this.warning=!0)}),this.warning=!1}beforeRouteUpdate(e,t,a){this.uuid=e.params.uid,this.$i18n.locale=e.params.lang,a()}onLogoSourceInput(e){const t=e=>{const t=new Image;return t.src=e,new Promise(e=>{t.onerror=()=>e(!1),t.onload=()=>e(!0)})};this.metadata.logoName=e.target.value,t(this.metadata.logoName).then(e=>{e?(this.metadata.logoPreview=this.metadata.logoName,z["a"].success("Successfully loaded logo image.")):(this.metadata.logoPreview="error",z["a"].error("Failed to load logo image."))})}onFileChange(e){const t=e.target.files[0];this.logoImage=t,this.metadata.logoPreview=URL.createObjectURL(t),this.metadata.logoName=t.name}updateEditorPath(){"editor"!==this.$route.name&&(this.$router.beforeEach(e=>{"editor"===e.name&&(e.meta.data={configLang:this.configLang,configs:this.configs,configFileStructure:this.configFileStructure,sourceCounts:this.sourceCounts,metadata:this.metadata,slides:this.slides,existing:this.editExisting})}),this.$router.push({name:"editor",params:{uid:this.uuid}}))}checkRequiredFields(){return this.reqFields.uuid=!!this.uuid,!Object.values(this.reqFields).some(e=>!e)||(z["a"].error("Please fill out the required fields before proceeding."),!1)}continueToEditor(){var e;this.checkRequiredFields()&&(this.loadExisting?void 0!==this.configs[this.configLang]&&this.uuid===(null===(e=this.configFileStructure)||void 0===e?void 0:e.uuid)?(this.loadEditor=!0,this.updateEditorPath()):z["a"].error("No config exists for storylines product."):this.uuid?this.generateNewConfig():(z["a"].error("Missing required field: UUID"),this.error=!0))}updateSaveStatus(e){this.unsavedChanges=e}refreshConfig(){this.loadExisting?(this.reloadExisting=!0,this.loadExisting=!1,this.generateRemoteConfig()):(this.reloadExisting=!1,this.generateNewConfig())}beforeRouteLeave(e,t,a){const i="editor"===this.$route.name,l="Leave the page? Changes made may not be saved.";this.unsavedChanges&&i&&!window.confirm(l)?a(!1):a()}};Object(r["a"])([Object(n["b"])({default:!0})],Mo.prototype,"editExisting",void 0),Mo=Object(r["a"])([Object(n["a"])({components:{Editor:ko,"confirmation-modal":it,"metadata-content":to,spinner:P["a"],"slide-editor":Li,"slide-toc":vl,"vue-final-modal":U["a"]}})],Mo);var Lo=Mo;a("a26f");const $o=d()(Lo,[["render",A]]);var Io=$o;const Bo={key:0},Do={class:"block py-20 align-middle text-center h-full",style:{margin:"0 auto"}},Fo={key:1},Ro={key:0,class:"storyramp-app bg-white"},Ao={class:"sticky top-0 z-50 flex border-b border-black bg-gray-200 py-2 px-2 justify-between"},Po={class:"w-mobile-full truncate"},Uo={class:"font-semibold text-lg m-1"},zo={class:"w-full mx-auto pb-10",id:"story"},Wo={class:"p-8 pt-2 text-right text-sm"},qo=["href"],Xo=Object(i["createElementVNode"])("a",{href:"https://github.com/ramp4-pcar4/storylines-editor",target:"_NEW",class:"font-semibold text-blue-700"},"ramp4-pcar4/storylines-editor",-1),Ho={key:0,class:"storyramp-modified"};function Go(e,t,a,l,o,r){const n=Object(i["resolveComponent"])("spinner"),s=Object(i["resolveComponent"])("storylines-intro"),c=Object(i["resolveComponent"])("storylines-content");return"loading"===e.loadStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Bo,[Object(i["createElementVNode"])("div",Do,[Object(i["createVNode"])(n,{size:"120px",color:"#009cd1",style:{margin:"0 auto"}})])])):"loaded"===e.loadStatus?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Fo,[void 0!==e.config?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ro,[Object(i["createElementVNode"])("header",Ao,[Object(i["createElementVNode"])("div",Po,[Object(i["createElementVNode"])("span",Uo,Object(i["toDisplayString"])(e.config.title),1)])]),Object(i["createVNode"])(s,{config:e.config.introSlide,configFileStructure:e.configFileStructure},null,8,["config","configFileStructure"]),Object(i["createElementVNode"])("div",zo,[Object(i["createVNode"])(c,{config:e.config,configFileStructure:e.configFileStructure,lang:e.lang,plugin:!0,onStep:e.updateActiveIndex},null,8,["config","configFileStructure","lang","onStep"])]),Object(i["createElementVNode"])("footer",Wo,[Object(i["createTextVNode"])(" Context: "),Object(i["createElementVNode"])("a",{class:"text-blue-700 font-semibold",href:e.config.contextLink,target:"_NEW"},Object(i["toDisplayString"])(e.config.contextLabel),9,qo),Object(i["createTextVNode"])(" | "),Xo]),e.config.dateModified?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",Ho,Object(i["toDisplayString"])(e.$t("story.date"))+" "+Object(i["toDisplayString"])(e.config.dateModified),1)):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0)])):Object(i["createCommentVNode"])("",!0)}let Jo=class extends n["c"]{constructor(){super(...arguments),this.config=void 0,this.configFileStructure=void 0,this.savedProduct=!1,this.loadStatus="loading",this.activeChapterIndex=-1,this.lang="en",this.uid=""}created(){const e=this.$route.params.uid,t=this.$route.params.lang;e?(this.savedProduct=!0,fetch(`http://localhost:6040/retrieve/${e}/${t}`).then(t=>{404===t.status?console.error(`There does not exist a saved product with UID ${e}.`):t.json().then(e=>{this.config=e,this.loadStatus="loaded",document.title=this.config.title+" - Canada.ca"})})):(this.config=window.props.config,this.configFileStructure=window.props.configFileStructure,this.loadStatus="loaded");const a=document.documentElement;a.setAttribute("lang",this.lang),this.$i18n.locale=this.lang}updateActiveIndex(e){this.activeChapterIndex=e}};Jo=Object(r["a"])([Object(n["a"])({components:{spinner:P["a"]}})],Jo);var Zo=Jo;a("185b");const Qo=d()(Zo,[["render",Go]]);var Yo=Qo,Ko=a("6605");const er=[{path:"/:lang/editor",name:"home",component:y,meta:{title:"editor.window.title"}},{path:"/:lang/editor/:uid",redirect:"/:lang/editor-metadata/:uid"},{path:"/:lang/editor-metadata",name:"metadataExisting",component:Io,props:{editExisting:!0},meta:{title:"editor.window.title"}},{path:"/:lang/editor-metadata",name:"metadataNew",component:Io,props:{editExisting:!1},meta:{title:"editor.window.title"}},{path:"/:lang/editor-metadata/:uid",component:Io,meta:{title:"editor.window.title"}},{path:"/:lang/editor-main/:uid",name:"editor",component:Io,props:!0,meta:{title:"editor.window.title"}},{path:"/:lang/editor-preview",component:Yo,name:"preview",props:!0,meta:{title:"story.window.title"}},{path:"/:lang/editor-preview/:uid",component:Yo,meta:{title:"story.window.title"}}],tr=Object(Ko["a"])({routes:er,history:Object(Ko["b"])(),scrollBehavior:function(e){if(e.hash)return{selector:decodeURIComponent(e.hash),behavior:"smooth"}}});var ar=tr,ir=(a("38c8"),a("13d5"),a("9ca6"));const lr=a("3d6d"),or=document.documentElement.getAttribute("lang");function rr(e){return e.reduce((e,t)=>(e.en[t.key]=t.enValue,e.fr[t.key]=t.frValue,e),{en:{},fr:{}})}const nr=Object(ir["a"])({legacy:!1,locale:or||void 0,fallbackLocale:"en",globalInjection:!0,messages:rr(lr)});var sr=a("ee2d"),cr=a.n(sr),dr=(a("fefe"),a("603a")),ur=a.n(dr),mr=(a("fbc4"),a("3b16")),pr=a.n(mr),gr=a("1487"),hr=a.n(gr),br=(a("40e8"),a("c4e7")),fr=(a("52df"),a("e748"),a("4452")),vr=a.n(fr),Or=(a("e896"),a("fc01")),jr=a.n(Or);a("3df5");cr.a.lang.use("en-US",pr.a),cr.a.use(ur.a,{Hljs:hr.a});const Vr=Object(U["b"])(),yr=Object(i["createApp"])(m);yr.use(ar).use(nr).use(br["a"],{directive:"tippy",component:"tippy"}).use(vr.a).use(z["a"]).use(jr.a).use(cr.a).use(Vr),yr.mount("#app")},d618:function(e,t,a){"use strict";a("c3a4")},d866:function(e,t,a){},dd0c:function(e,t,a){},ea6b:function(e){e.exports=JSON.parse('{"comment":"","version":"3.3.2","language":"fr","ui":{"title":"Carte interactive","fullscreen":true,"navBar":{"zoom":"buttons","extra":["fullscreen","geoLocator","home","help"]},"appBar":{"basemap":true},"help":{"folderName":"default"},"sideMenu":{"items":[["fullscreen","export","touch","help","about"]],"logo":false},"legend":{"allowImport":false,"isOpen":{"large":true,"medium":false,"small":false}}},"services":{"proxyUrl":"https://maps.canada.ca/wmsproxy/ws/wmsproxy/executeFromProxy","exportMapUrl":"https://maps-cartes.ec.gc.ca/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task","export":{"title":{"value":""},"map":{},"mapElements":{},"legend":{},"footnote":{"value":""}},"search":{"settings":{"categories":["CITY","HAM","IR","LTM","MUN1","MUN2","PROV","STM","TERR","TOWN","UTM","VILG","UNP"],"sortOrder":["CITY","HAM","IR","LTM","MUN1","MUN2","PROV","STM","TERR","TOWN","UTM","VILG","UNP"],"maxResults":1000,"officialOnly":true},"serviceUrls":{"geoNames":"https://geogratis.gc.ca/services/geoname/fr/geonames.json","geoLocation":"https://geogratis.gc.ca/services/geolocation/fr/locate?q=","geoSuggest":"https://geogratis.gc.ca/services/geolocation/fr/suggest?q=","provinces":"https://geogratis.gc.ca/services/geoname/fr/codes/province.json","types":"https://geogratis.gc.ca/services/geoname/fr/codes/concise.json"}}},"map":{"initialBasemapId":"baseNrCan","components":{"geoSearch":{"enabled":true,"showGraphic":true,"showInfo":true},"mouseInfo":{"enabled":true,"spatialReference":{"wkid":4326}},"northArrow":{"enabled":false},"basemap":{"enabled":true},"overviewMap":{"enabled":true,"layerType":"imagery"},"scaleBar":{"enabled":true}},"extentSets":[{"id":"EXT_NRCAN_Lambert_3978","default":{"xmax":3049492,"xmin":-5281457,"ymax":4482193,"ymin":-983440},"spatialReference":{"wkid":3978}},{"id":"EXT_ESRI_World_AuxMerc_3857","default":{"xmax":-5007771.626060756,"xmin":-16632697.354854,"ymax":10015875.184845109,"ymin":5022907.964742964},"spatialReference":{"wkid":102100,"latestWkid":3857}}],"lodSets":[{"id":"LOD_NRCAN_Lambert_3978","lods":[{"level":0,"resolution":38364.660062653464,"scale":145000000},{"level":1,"resolution":22489.62831258996,"scale":85000000},{"level":2,"resolution":13229.193125052918,"scale":50000000},{"level":3,"resolution":7937.5158750317505,"scale":30000000},{"level":4,"resolution":4630.2175937685215,"scale":17500000},{"level":5,"resolution":2645.8386250105837,"scale":10000000},{"level":6,"resolution":1587.5031750063501,"scale":6000000},{"level":7,"resolution":926.0435187537042,"scale":3500000},{"level":8,"resolution":529.1677250021168,"scale":2000000},{"level":9,"resolution":317.50063500127004,"scale":1200000},{"level":10,"resolution":185.20870375074085,"scale":700000},{"level":11,"resolution":111.12522225044451,"scale":420000},{"level":12,"resolution":66.1459656252646,"scale":250000},{"level":13,"resolution":38.36466006265346,"scale":145000},{"level":14,"resolution":22.48962831258996,"scale":85000},{"level":15,"resolution":13.229193125052918,"scale":50000},{"level":16,"resolution":7.9375158750317505,"scale":30000},{"level":17,"resolution":4.6302175937685215,"scale":17500}]},{"id":"LOD_ESRI_World_AuxMerc_3857","lods":[{"level":0,"resolution":19567.87924099992,"scale":73957190.948944},{"level":1,"resolution":9783.93962049996,"scale":36978595.474472},{"level":2,"resolution":4891.96981024998,"scale":18489297.737236},{"level":3,"resolution":2445.98490512499,"scale":9244648.868618},{"level":4,"resolution":1222.992452562495,"scale":4622324.434309},{"level":5,"resolution":611.4962262813797,"scale":2311162.217155},{"level":6,"resolution":305.74811314055756,"scale":1155581.108577},{"level":7,"resolution":152.87405657041106,"scale":577790.554289},{"level":8,"resolution":76.43702828507324,"scale":288895.277144},{"level":9,"resolution":38.21851414253662,"scale":144447.638572},{"level":10,"resolution":19.10925707126831,"scale":72223.819286},{"level":11,"resolution":9.554628535634155,"scale":36111.909643},{"level":12,"resolution":4.77731426794937,"scale":18055.954822},{"level":13,"resolution":2.388657133974685,"scale":9027.977411},{"level":14,"resolution":1.1943285668550503,"scale":4513.988705},{"level":15,"resolution":0.5971642835598172,"scale":2256.994353},{"level":16,"resolution":0.29858214164761665,"scale":1128.497176},{"level":17,"resolution":0.14929107082380833,"scale":564.248588},{"level":18,"resolution":0.07464553541190416,"scale":282.124294},{"level":19,"resolution":0.03732276770595208,"scale":141.062147},{"level":20,"resolution":0.01866138385297604,"scale":70.5310735}]}],"legend":{"type":"autopopulate"},"layers":[],"tileSchemas":[{"id":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978","name":"Lambert Maps","extentSetId":"EXT_NRCAN_Lambert_3978","lodSetId":"LOD_NRCAN_Lambert_3978","hasNorthPole":true},{"id":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857","name":"Web Mercator Maps","extentSetId":"EXT_ESRI_World_AuxMerc_3857","lodSetId":"LOD_ESRI_World_AuxMerc_3857"}],"baseMaps":[{"id":"baseNrCan","name":"Carte de base du Canada – transport (CBCT) avec étiquettes","description":"La carte de base du Canada – transport (CBCT) du Secteur des sciences de la Terre de Ressources naturelles Canada est un service Internet qui s\'adresse principalement aux utilisateurs et développeurs d\'applications cartographiques en ligne.","altText":"La carte de base du Canada – transport (CBCT)","layers":[{"id":"CBCT","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBCT3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseSimple","name":"Carte de base du Canada - simple","description":"La carte de base du Canada - simple","altText":"La carte de base du Canada - simple","layers":[{"id":"SMR","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/Simple/MapServer"},{"id":"SMW","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT_TXT_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseCBME_CBCE_HS_RO_3978","name":"Carte de base du Canada - élevation (CBCE)","description":"La carte de base du Canada - élevation (CBCE) du Secteur des sciences de la Terre de Ressources naturelles Canada est un service Internet qui s\'adresse principalement aux utilisateurs et développeurs d\'applications cartographiques en ligne.","altText":"La carte de base du Canada - élevation (CBCE)","layers":[{"id":"CBME_CBCE_HS_RO_3978","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBME_CBCE_HS_RO_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseCBMT_CBCT_GEOM_3978","name":"Carte de base du Canada - transport (CBCT)","description":"La carte de base du Canada - transport (CBCT) du Secteur des sciences de la Terre de Ressources naturelles Canada est un service Internet qui s\'adresse principalement aux utilisateurs et développeurs d\'applications cartographiques en ligne.","altText":"La carte de base du Canada - transport (CBCT)","layers":[{"id":"CBMT_CBCT_GEOM_3978","layerType":"esriFeature","url":"https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT_CBCT_GEOM_3978/MapServer"}],"tileSchemaId":"EXT_NRCAN_Lambert_3978#LOD_NRCAN_Lambert_3978"},{"id":"baseEsriWorld","name":"Imagerie mondiale","description":"L\'imagerie mondiale fournit une imagerie satellitaire et aérienne dans de nombreuses régions du monde avec une résolution de 1 mètres et moins et des images satellitaires de résolution inférieure dans le monde entier.","altText":"L\'imagerie mondiale","layers":[{"id":"World_Imagery","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriPhysical","name":"Monde physique","description":"La carte du monde physique représente l\'aspect physique naturel de la Terre à 1.24 kilomètres par pixel pour le monde et à 500 mètres pour les États-Unis.","altText":"La carte du monde physique","layers":[{"id":"World_Physical_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Physical_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriRelief","name":"Monde en relief ombragé","description":"La carte du monde en relief ombragé représente l\'élévation de la surface de la terre comme un relief ombragé. Cette carte est utilisée comme couche de fond afin d\'ajouter un relief ombragé à d\'autres cartes SIG, comme la carte ArcGIS Online World Street Map.","altText":"La carte du monde en relief ombragé","layers":[{"id":"World_Shaded_Relief","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Shaded_Relief/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriStreet","name":"Monde routier","description":"La carte du monde routier présente des données au niveau des autoroutes pour le monde.","altText":"La carte du monde routier","layers":[{"id":"World_Street_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriTerrain","name":"Monde terrain","description":"La carte du monde terrain est conçue pour être utilisée comme une carte de base par les professionnels du SIG pour superposer d\'autres couches thématiques comme la démographie ou la couverture terrestre.","altText":"La carte du monde terrain","layers":[{"id":"World_Terrain_Base","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"},{"id":"baseEsriTopo","name":"Monde topographique","description":"La carte du monde topographique est conçue pour être utilisé comme une carte de base par les professionnels du SIG et comme une carte de référence par quiconque.","altText":"La carte du monde topographique","layers":[{"id":"World_Topo_Map","layerType":"esriFeature","url":"https://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer"}],"tileSchemaId":"EXT_ESRI_World_AuxMerc_3857#LOD_ESRI_World_AuxMerc_3857"}]}}')},ed05:function(e,t,a){},f1a5:function(e,t,a){"use strict";a("fe34")},f850:function(e,t,a){},fb4d:function(e,t,a){},fe34:function(e,t,a){},ff0d:function(e,t,a){"use strict";a("9866")}}]); -//# sourceMappingURL=chunk-common.eaeb0467.js.map \ No newline at end of file diff --git a/vue3-refactor/js/chunk-common.eaeb0467.js.map b/vue3-refactor/js/chunk-common.eaeb0467.js.map deleted file mode 100644 index aacd010e..00000000 --- a/vue3-refactor/js/chunk-common.eaeb0467.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/components/editor/map-editor.vue?c470","webpack:///./src/components/editor/text-editor.vue?f424","webpack:///./src/components/editor/preview.vue?9e59","webpack:///./src/components/editor/helpers/confirmation-modal.vue?d920","webpack:///./src/lang/lang.csv","webpack:///./src/components/editor/editor.vue?5265","webpack:///./src/components/editor/helpers/image-preview.vue?a760","webpack:///./src/components/editor/image-editor.vue?1179","webpack:///./src/components/editor/chart-editor.vue?9d5f","webpack:///./src/components/editor/dynamic-editor.vue?c227","webpack:///./src/components/editor/landing.vue?1abe","webpack:///./src/app.vue?b13b","webpack:///./src/components/editor/metadata-editor.vue?9292","webpack:///./src/components/editor/helpers/chart-preview.vue?5e6f","webpack:///./src/app.vue?6e82","webpack:///./src/app.vue","webpack:///./src/app.vue?cab0","webpack:///./src/router/componentHooks.ts","webpack:///./src/components/editor/landing.vue?019b","webpack:///./src/components/editor/landing.vue","webpack:///./src/components/editor/landing.vue?d196","webpack:///./src/components/editor/metadata-editor.vue?6490","webpack:///./src/components/editor/slide-editor.vue?2802","webpack:///./src/definitions.ts","webpack:///./src/components/editor/chart-editor.vue?c895","webpack:///./src/components/editor/helpers/chart-preview.vue?0c89","webpack:///./src/components/editor/helpers/chart-preview.vue","webpack:///./src/components/editor/helpers/chart-preview.vue?9be4","webpack:///./src/components/editor/helpers/confirmation-modal.vue?7578","webpack:///./src/components/editor/helpers/confirmation-modal.vue","webpack:///./src/components/editor/helpers/confirmation-modal.vue?7a7e","webpack:///./src/components/editor/chart-editor.vue","webpack:///./src/components/editor/chart-editor.vue?c3f9","webpack:///./src/components/editor/image-editor.vue?5fe5","webpack:///./src/components/editor/helpers/image-preview.vue?4408","webpack:///./src/components/editor/helpers/image-preview.vue","webpack:///./src/components/editor/helpers/image-preview.vue?88c4","webpack:///./src/components/editor/image-editor.vue","webpack:///./src/components/editor/image-editor.vue?2e57","webpack:///./src/components/editor/text-editor.vue?ef39","webpack:///./src/components/editor/text-editor.vue","webpack:///./src/components/editor/text-editor.vue?17bf","webpack:///./src/components/editor/map-editor.vue?72ba","webpack:///./src/components/editor/helpers/time-slider-editor.vue?44e1","webpack:///./src/components/editor/helpers/time-slider-editor.vue","webpack:///./src/components/editor/helpers/time-slider-editor.vue?434f","webpack:///./src/components/editor/map-editor.vue","webpack:///./src/components/editor/map-editor.vue?c2ed","webpack:///./src/components/editor/helpers/loading-page.vue?49c2","webpack:///./src/components/editor/helpers/loading-page.vue","webpack:///./src/components/editor/helpers/loading-page.vue?ec39","webpack:///./src/components/editor/dynamic-editor.vue?e294","webpack:///./src/components/editor/dynamic-editor.vue","webpack:///./src/components/editor/dynamic-editor.vue?bfae","webpack:///./src/components/editor/slide-editor.vue","webpack:///./src/components/editor/slide-editor.vue?a04f","webpack:///./src/components/editor/slide-toc.vue?6242","webpack:///./src/components/editor/slide-toc.vue","webpack:///./src/components/editor/slide-toc.vue?e6ed","webpack:///./src/components/editor/helpers/metadata-content.vue?233e","webpack:///./src/components/editor/helpers/metadata-content.vue","webpack:///./src/components/editor/helpers/metadata-content.vue?f1f6","webpack:///./src/components/editor/editor.vue?71a3","webpack:///./src/components/editor/editor.vue","webpack:///./src/components/editor/editor.vue?f9b7","webpack:///./src/components/editor/metadata-editor.vue","webpack:///./src/components/editor/metadata-editor.vue?356d","webpack:///./src/components/editor/preview.vue?bbfd","webpack:///./src/components/editor/preview.vue","webpack:///./src/components/editor/preview.vue?ca3e","webpack:///./src/router/index.ts","webpack:///./src/lang/index.ts","webpack:///./src/main.ts","webpack:///./src/components/editor/helpers/time-slider-editor.vue?056d","webpack:///./src/components/editor/slide-toc.vue?bd44","webpack:///./src/components/editor/slide-editor.vue?776d"],"names":["res","columns","module","exports","_hoisted_1","id","class","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_createBlock","key","$route","path","App","Vue","onRouteUpdate","to","_to$params$lang","this","$i18n","locale","params","lang","document","title","$t","meta","__decorate","Watch","immediate","__exports__","registerHooks","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_component_router_link","_createElementVNode","_createVNode","name","target","default","_withCtx","_toDisplayString","_","LandingV","_hoisted_6","_hoisted_7","_hoisted_8","viewBox","width","height","xmlns","d","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","slot","_hoisted_17","_component_spinner","_component_metadata_content","_component_confirmation_modal","_component_vue_final_modal","_component_editor","loadEditor","_createCommentVNode","_Fragment","editExisting","onClick","$event","swapLang","configLang","reqFields","_createTextVNode","_withDirectives","type","onInput","error","uuid","checkUuid","_normalizeClass","_vModelText","warning","args","generateRemoteConfig","loadStatus","size","color","metadata","onMetadataChanged","updateMetadata","onLogoChanged","onFileChange","onLogoSourceChanged","onLogoSourceInput","saveMetadata","$vfm","open","continueToEditor","message","onOk","configs","configFileStructure","sourceCounts","slides","saving","unsavedChanges","onSaveChanges","generateConfig","onSaveStatus","updateSaveStatus","onRefreshConfig","refreshConfig","ref","langModal","slotProps","_withModifiers","metadataModal","modalId","_withScopeId","n","_pushScopeId","_popScopeId","_createStaticVNode","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","currentSlide","placeholder","selectSlide","slideIndex","disabled","isLast","rightOnly","panel","panelIndex","onChange","_vModelCheckbox","length","saveChanges","newType","value","_renderList","Object","keys","editors","filter","editor","thing","_resolveDynamicComponent","uid","changePanelType","onCancel","cancelTypeChange","toggleRightOnly","PanelType","_component_ChartPreview","_component_draggable","num","chartConfigs","clearEditor","modelValue","handle","onUpdate","onChartsEdited","item","element","index","chart","onEdit","editChart","onDelete","_vShow","idx","deleteChart","fill","_component_storylines_chart","_directive_tippy","_resolveDirective","$emit","content","placement","hideOnClick","animateFill","loading","config","chartConfig","chartIdx","onLoaded","loadChart","chartName","ChartPreviewV","constructor","modalEditor","undefined","mounted","chartOptions","_chartOptions$data","highed","ModalEditor","allowDone","features","importer","options","defaultChartOptions","newChart","JSON","parse","text","src","oldChart","data","csv","csvData","dataTable","loadCSV","convertSeriesToCSV","setAll","_chartOptions$chart","seriesData","series","_chartOptions$yAxis","yAxis","map","row","y","join","xAxis","_chartOptions$xAxis","_chartOptions$xAxis2","catoData","concat","categories","unshift","Prop","MetadataEditorV","close","Options","components","VueFinalModal","ChartEditorV","edited","ready","createNewChart","toString","charts","match","replace","subtitle","credits","enabled","defaultTableData","chartInfo","some","alert","chartSrc","file","stringify","push","findIndex","chartFile","oldName","remove","newName","splice","ChartPreview","ConfirmationModalV","draggable","_component_ImagePreview","dragging","isDragging","onDragover","onDragleave","onDrop","dropImages","multiple","imagePreviewsLoading","imagePreviews","onImagesEdited","imageFile","deleteImage","altText","caption","slideshowCaption","alt","_renderSlot","$slots","ImagePreviewV","ImageEditorV","imagePreviewPromises","images","image","assetSrc","substring","indexOf","filename","assetFile","zip","async","then","URL","createObjectURL","Promise","all","e","filelist","Array","from","files","uploadSource","assets","imageSrc","dataTransfer","img","fileSource","revokeObjectURL","_this$slideshowCaptio","Image","ImagePreview","_component_v_md_editor","toolbar","TextEditorV","subsuper","menus","action","insert","selected","addLink","icon","style","_hoisted_19","_hoisted_23","_component_time_slider_editor","status","saveScrollguard","scrollguard","saveTimeSlider","usingTimeSlider","newFileName","createNewConfig","openEditor","timeSliderConf","timeSliderError","onTimeSliderChanged","onTimeSliderInput","range","start","attribute","layers","TimeSliderEditorV","MapEditorV","timeSlider","strippedFileName","split","_this$panel$timeSlide","_this$panel$timeSlide2","_this$panel$timeSlide3","_this$panel$timeSlide4","_this$panel$timeSlide5","_this$panel$timeSlide6","window","addEventListener","saveEditor","Date","getFullYear","validateTimeSlider","beforeDestroy","removeEventListener","rampConfig","defaultConfigEn","defaultConfigFr","configFile","iframe","getElementById","contentWindow","configname","fetch","json","stringResponse","checked","localStorage","RAMPconfig","property","layerId","trim","Number","val","isInteger","LoadingPageV","spinner","VueSpinnerOval","changePanel","editingStatus","children","switchSlide","removeSlide","newSlideName","idUsed","newSlideType","_vModelSelect","createNewSlide","editingSlide","DynamicEditorV","DynamicEditorV_1","slideshow","startingConfig","Text","dynamic","Dynamic","titleTag","Slideshow","Chart","Map","ch","_this$panel$children$","find","mapPanel","chartPanel","forEach","slideshowPanel","newConfig","$nextTick","$refs","slide","SlideEditorV","onSlideChange","prevType","removeSourceCounts","dynamicPanel","subPanel","typeSelector","assign","deep","addNewSlide","delay","copyAllFromOtherLang","selectedForCopying","copyFromOtherLang","copySlide","moveUp","moveDown","SlideTocV","cloneDeep","deletedIndex","_this$slides$find","p","removeSourceHelper","_hoisted_33","metadataChanged","introTitle","introSubtitle","logoPreview","logoName","openFileSelector","removeLogo","logoAltText","contextLink","contextLabel","dateModified","_document$getElementB","click","event","transform","_component_slide_toc","_component_slide_editor","_Transition","_normalizeProps","_guardReactiveProps","preview","onSlidesUpdated","updateSlides","onSlideEdit","onSlidesEdited","EditorV","logoImage","loadSlides","onMetadataEdited","created","beforeWindowUnload","observer","IntersectionObserver","classList","toggle","intersectionRatio","threshold","observe","querySelector","setTimeout","scrollTo","routeData","$router","resolve","previewTab","href","props","confirm","preventDefault","returnValue","MetadataContentV","JSZip","require","axios","v4","uuidv4","en","fr","loadExisting","reloadExisting","_this$$route$params$u","curDate","year","month","getMonth","padStart","day","getDate","_this$configs$this$co","existing","logo","introSlide","logoSrc","_this$configFileStruc","logoFile","File","blob","generateNewConfig","configZip","configHelper","includes","_this$logoImage","otherLang","formattedOtherLangConfig","fileName","formattedConfigFile","configFileStructureHelper","_this$uuid","Message","clearConfig","loadAsync","catch","findSources","_configs$lang","_configs$lang2","incrementSourceCount","panelSourceHelper","uploadLogo","assetsFolder","folder","chartsFolder","rampConfigFolder","loadConfig","useConfig","_this$configFileStruc2","_this$configFileStruc3","enFile","frFile","_this$uuid2","success","updateEditorPath","_config$introSlide$lo","newSlide","_config$introSlide$lo2","_this$configFileStruc4","_this$configFileStruc5","_this$configFileStruc6","generateAsync","formData","FormData","append","headers","post","finally","publish","_this$logoImage2","_this$configFileStruc7","_this$logoImage3","mainEditor","beforeRouteUpdate","next","isImgUrl","url","onerror","onload","uploadedFile","beforeEach","checkRequiredFields","values","field","_this$configFileStruc8","payload","beforeRouteLeave","curEditor","confirmationMessage","Editor","_component_storylines_intro","_component_storylines_content","plugin","onStep","updateActiveIndex","StoryPreviewV","savedProduct","activeChapterIndex","console","html","documentElement","setAttribute","routes","component","redirect","router","createRouter","history","createWebHashHistory","scrollBehavior","hash","selector","decodeURIComponent","behavior","rows","getAttribute","fold","reduce","enValue","frValue","i18n","createI18n","legacy","fallbackLocale","globalInjection","messages","VueMarkdownEditor","use","enUS","githubTheme","Hljs","hljs","vfm","createVfm","app","createApp","VueTippy","directive","HighchartsVue","StorylinesViewer","mount"],"mappings":"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","file":"js/chunk-common.eaeb0467.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./map-editor.vue?vue&type=style&index=0&id=681c9c6b&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./text-editor.vue?vue&type=style&index=0&id=b0fb221e&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./preview.vue?vue&type=style&index=0&id=c0d876e0&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./confirmation-modal.vue?vue&type=style&index=0&id=4ed11748&scoped=true&lang=css\"","var res = [{\"key\":\"chapters.title\",\"enValue\":\"Chapters\",\"enValid\":\"1\",\"frValue\":\"Chapitres\",\"frValid\":\"1\"},{\"key\":\"chapters.return\",\"enValue\":\"Return to top\",\"enValid\":\"1\",\"frValue\":\"Retournez en haut\",\"frValid\":\"1\"},{\"key\":\"chapters.menu\",\"enValue\":\"Toggle menu\",\"enValid\":\"1\",\"frValue\":\"Menu à bascule\",\"frValid\":\"1\"},{\"key\":\"scrollguard.desc\",\"enValue\":\"Use ctrl + scroll to zoom the map\",\"enValid\":\"1\",\"frValue\":\"Utilisez les touches Ctrl et + pour faire un zoom de la carte\",\"frValid\":\"1\"},{\"key\":\"story.window.title\",\"enValue\":\"RAMP Storylines\",\"enValid\":\"1\",\"frValue\":\"RAMP Storylines\",\"frValid\":\"0\"},{\"key\":\"story.date\",\"enValue\":\"Date modified:\",\"enValid\":\"1\",\"frValue\":\"Date de modification:\",\"frValid\":\"1\"},{\"key\":\"story.error\",\"enValue\":\"An error occurred while loading this Storylines product. See developer console for more information.\",\"enValid\":\"1\",\"frValue\":\"Une erreur est survenue pendant le chargement ce synopsis produit. Voir la console du promoteur pour obtenir de plus amples renseignements.\",\"frValid\":\"1\"},{\"key\":\"image.fullscreen\",\"enValue\":\"Full Screen\",\"enValid\":\"1\",\"frValue\":\"Plein Écran\",\"frValid\":\"1\"},{\"key\":\"dynamic.back\",\"enValue\":\"Back\",\"enValid\":\"1\",\"frValue\":\"Retour\",\"frValid\":\"0\"},{\"key\":\"dynamic.textSection\",\"enValue\":\"Text Section\",\"enValid\":\"1\",\"frValue\":\"Section de texte\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.collection\",\"enValue\":\"Panel Collection\",\"enValid\":\"1\",\"frValue\":\"Collection de panneaux\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.id\",\"enValue\":\"Panel ID\",\"enValid\":\"1\",\"frValue\":\"No d’identification du panneau\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.type\",\"enValue\":\"Panel Type\",\"enValid\":\"1\",\"frValue\":\"Type de panneaux\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.actions\",\"enValue\":\"Panel Actions\",\"enValid\":\"1\",\"frValue\":\"Actions du panneau\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.idTaken\",\"enValue\":\"Panel ID is already\",\"enValid\":\"1\",\"frValue\":\"Le nom du panneau est déjà utilisé\",\"frValid\":\"1\"},{\"key\":\"dynamic.panel.editor\",\"enValue\":\"Panel Editor:\",\"enValid\":\"1\",\"frValue\":\"Éditeur de panneaux:\",\"frValid\":\"1\"},{\"key\":\"timeslider.expand\",\"enValue\":\"Expand\",\"enValid\":\"1\",\"frValue\":\"Développer\",\"frValid\":\"1\"},{\"key\":\"timeslider.minimize\",\"enValue\":\"Minimize\",\"enValid\":\"1\",\"frValue\":\"Réduire\",\"frValid\":\"1\"},{\"key\":\"timeslider.play\",\"enValue\":\"Play\",\"enValid\":\"1\",\"frValue\":\"Lecture\",\"frValid\":\"1\"},{\"key\":\"timeslider.pause\",\"enValue\":\"Pause\",\"enValid\":\"1\",\"frValue\":\"Pause\",\"frValid\":\"1\"},{\"key\":\"fullscreen.activate\",\"enValue\":\"Enter Fullscreen\",\"enValid\":\"1\",\"frValue\":\"Afficher le mode plein écran\",\"frValid\":\"1\"},{\"key\":\"fullscreen.deactivate\",\"enValue\":\"Exit Fullscreen\",\"enValid\":\"1\",\"frValue\":\"Quitter le mode plein écran\",\"frValid\":\"1\"},{\"key\":\"editor.window.title\",\"enValue\":\"RAMP Storylines Editor\",\"enValid\":\"1\",\"frValue\":\"Éditeur de scénarios de la PCAR\",\"frValid\":\"1\"},{\"key\":\"editor.createProduct\",\"enValue\":\"Create New Storylines Product\",\"enValid\":\"1\",\"frValue\":\"Créer un nouveau produit de scénarios\",\"frValid\":\"1\"},{\"key\":\"editor.editProduct\",\"enValue\":\"Edit Existing Storylines Product\",\"enValid\":\"1\",\"frValue\":\"Modifier un produit de scénarios\",\"frValid\":\"1\"},{\"key\":\"editor.editMetadata\",\"enValue\":\"Edit Project Metadata\",\"enValid\":\"1\",\"frValue\":\"Modifier les métadonnées d’un projet\",\"frValid\":\"1\"},{\"key\":\"editor.productDetails\",\"enValue\":\"Storylines product details\",\"enValid\":\"1\",\"frValue\":\"Détails du produit de scénarios\",\"frValid\":\"1\"},{\"key\":\"editor.metadata.instructions\",\"enValue\":\"Fill in metadata details about your new Storylines product. Use the \\\"Preview\\\" button to see what your slides will look like.\",\"enValid\":\"1\",\"frValue\":\"Inscrivez les métadonnées de votre nouveau produit de scénario. Utilisez la fonction « Afficher l’aperçu » pour voir à quoi ressemblent vos diapositives.\",\"frValid\":\"1\"},{\"key\":\"editor.uuid\",\"enValue\":\"UUID\",\"enValid\":\"1\",\"frValue\":\"UUID\",\"frValid\":\"0\"},{\"key\":\"editor.uuid.exists\",\"enValue\":\"UUID already exists. Saving this will overwrite existing product.\",\"enValid\":\"1\",\"frValue\":\"L’IDUU existe déjà. Enregistrer ce produit écrasera le produit existant.\",\"frValid\":\"1\"},{\"key\":\"editor.title\",\"enValue\":\"Title\",\"enValid\":\"1\",\"frValue\":\"Titre\",\"frValid\":\"1\"},{\"key\":\"editor.logo\",\"enValue\":\"Logo\",\"enValid\":\"1\",\"frValue\":\"Logo\",\"frValid\":\"1\"},{\"key\":\"editor.logoPreview\",\"enValue\":\"Logo Preview\",\"enValid\":\"1\",\"frValue\":\"Aperçu du logo\",\"frValid\":\"1\"},{\"key\":\"editor.logoAltText\",\"enValue\":\"Logo Alt Text\",\"enValid\":\"1\",\"frValue\":\"Lien contextuel\",\"frValid\":\"1\"},{\"key\":\"editor.logoAltText.desc\",\"enValue\":\"For accessibility purposes, provide description text for the logo.\",\"enValid\":\"1\",\"frValue\":\"Pour des raisons d'accessibilité, fournissez un texte descriptif pour le logo.\",\"frValid\":\"0\"},{\"key\":\"editor.contextLink\",\"enValue\":\"Context Link\",\"enValid\":\"1\",\"frValue\":\"Lien contextuel\",\"frValid\":\"1\"},{\"key\":\"editor.contextLink.info\",\"enValue\":\"Context link shows up at the bottom of the page to provide additional resources for interested users.\",\"enValid\":\"1\",\"frValue\":\"Le lien contextuel apparaît au bas de la page et fournit des ressources supplémentaires aux utilisateurs intéressés.\",\"frValid\":\"1\"},{\"key\":\"editor.contextLabel\",\"enValue\":\"Context Label\",\"enValid\":\"1\",\"frValue\":\"Étiquette de contexte\",\"frValid\":\"1\"},{\"key\":\"editor.contextLabel.info\",\"enValue\":\"Context label shows up before the context link to explain what the link is for\",\"enValid\":\"1\",\"frValue\":\"L’étiquette de contexte apparaît avant le lien contextuel et explique à quoi sert le lien.\",\"frValid\":\"1\"},{\"key\":\"editor.dateModified\",\"enValue\":\"Date Modified\",\"enValid\":\"1\",\"frValue\":\"Date de modification\",\"frValid\":\"1\"},{\"key\":\"editor.load\",\"enValue\":\"Load\",\"enValid\":\"1\",\"frValue\":\"Charger\",\"frValid\":\"1\"},{\"key\":\"editor.browse\",\"enValue\":\"Browse\",\"enValid\":\"1\",\"frValue\":\"Parcourir\",\"frValid\":\"1\"},{\"key\":\"editor.remove\",\"enValue\":\"Remove\",\"enValid\":\"1\",\"frValue\":\"Supprimer\",\"frValid\":\"1\"},{\"key\":\"editor.back\",\"enValue\":\"Back\",\"enValid\":\"1\",\"frValue\":\"Retour\",\"frValid\":\"1\"},{\"key\":\"editor.next\",\"enValue\":\"Next\",\"enValid\":\"1\",\"frValue\":\"Suivant\",\"frValid\":\"1\"},{\"key\":\"editor.preview\",\"enValue\":\"Preview\",\"enValid\":\"1\",\"frValue\":\"Afficher l’aperçu\",\"frValid\":\"1\"},{\"key\":\"editor.confirm\",\"enValue\":\"Confirm\",\"enValid\":\"1\",\"frValue\":\"Confirmer\",\"frValid\":\"1\"},{\"key\":\"editor.cancel\",\"enValue\":\"Cancel\",\"enValid\":\"1\",\"frValue\":\"Annuler\",\"frValid\":\"1\"},{\"key\":\"editor.unsavedChanges\",\"enValue\":\"Unsaved changes\",\"enValid\":\"1\",\"frValue\":\"Modifications non enregistrées\",\"frValid\":\"1\"},{\"key\":\"editor.saveChanges\",\"enValue\":\"Save Changes\",\"enValid\":\"1\",\"frValue\":\"Enregistrer les modifications\",\"frValid\":\"1\"},{\"key\":\"editor.savingChanges\",\"enValue\":\"Saving...\",\"enValid\":\"1\",\"frValue\":\"Enregistrement...\",\"frValid\":\"1\"},{\"key\":\"editor.resetChanges\",\"enValue\":\"Reset Changes\",\"enValid\":\"1\",\"frValue\":\"Annuler les modifications\",\"frValid\":\"1\"},{\"key\":\"editor.refreshChanges.modal\",\"enValue\":\"Are you sure you want to reload the product? All unsaved changes will be lost.\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment recharger ce produit? Toute modification non enregistrée sera perdue.\",\"frValid\":\"1\"},{\"key\":\"editor.changeLang.modal\",\"enValue\":\"Are you sure you want to switch languages? Unsaved changes may be lost.\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment changer de langue? Toute modification non enregistrée sera perdue.\",\"frValid\":\"1\"},{\"key\":\"editor.frenchConfig\",\"enValue\":\"View French Config\",\"enValid\":\"1\",\"frValue\":\"Afficher la configuration en français\",\"frValid\":\"1\"},{\"key\":\"editor.englishConfig\",\"enValue\":\"View English Config\",\"enValid\":\"1\",\"frValue\":\"Afficher la configuration en anglais\",\"frValid\":\"1\"},{\"key\":\"editor.returnToLanding\",\"enValue\":\"Return to Landing\",\"enValid\":\"1\",\"frValue\":\"Retour à la page d’accueil\",\"frValid\":\"1\"},{\"key\":\"editor.image.delete\",\"enValue\":\"Delete Image\",\"enValid\":\"1\",\"frValue\":\"Supprimer l'image\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.drag\",\"enValue\":\"Drag your images here\",\"enValid\":\"1\",\"frValue\":\"Faites glisser vos images ici\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.or\",\"enValue\":\"or\",\"enValid\":\"1\",\"frValue\":\"ou\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.browse\",\"enValue\":\"browse\",\"enValid\":\"1\",\"frValue\":\"parcourir\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.upload\",\"enValue\":\"to upload\",\"enValid\":\"1\",\"frValue\":\"téléverser\",\"frValid\":\"1\"},{\"key\":\"editor.image.label.caption\",\"enValue\":\"Caption\",\"enValid\":\"1\",\"frValue\":\"Légende\",\"frValid\":\"1\"},{\"key\":\"editor.image.reorder\",\"enValue\":\"Click and drag to reorder images\",\"enValid\":\"1\",\"frValue\":\"Cliquez sur les images et faites-les glisser pour changer l’ordre.\",\"frValid\":\"1\"},{\"key\":\"editor.image.altTag\",\"enValue\":\"Alt tag\",\"enValid\":\"1\",\"frValue\":\"Texte de remplacement\",\"frValid\":\"1\"},{\"key\":\"editor.image.slideshowCaption\",\"enValue\":\"Slideshow Caption\",\"enValid\":\"1\",\"frValue\":\"Légende du diaporama\",\"frValid\":\"1\"},{\"key\":\"editor.image.loadingError\",\"enValue\":\"An error occurred when trying to load image\",\"enValid\":\"1\",\"frValue\":\"Une erreur est survenue lors du chargement de l’image.\",\"frValid\":\"1\"},{\"key\":\"editor.chart.delete\",\"enValue\":\"Delete Chart\",\"enValid\":\"1\",\"frValue\":\"Supprimer le graphique\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.name\",\"enValue\":\"Name\",\"enValid\":\"1\",\"frValue\":\"Nom\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.edit\",\"enValue\":\"Edit\",\"enValid\":\"1\",\"frValue\":\"Éditer\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.empty\",\"enValue\":\"Empty\",\"enValid\":\"1\",\"frValue\":\"Vide\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.create\",\"enValue\":\"Add new chart\",\"enValid\":\"1\",\"frValue\":\"Ajouter un nouveau graphique\",\"frValid\":\"1\"},{\"key\":\"editor.chart.label.info\",\"enValue\":\"Interactive charts ({num})\",\"enValid\":\"1\",\"frValue\":\"Graphiques interactifs ({num})\",\"frValid\":\"1\"},{\"key\":\"editor.chart.delete.confirm\",\"enValue\":\"Are you sure you want to delete the chart {name}?\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment supprimer le graphique {nom}?\",\"frValid\":\"1\"},{\"key\":\"editor.map.title\",\"enValue\":\"Map title\",\"enValid\":\"1\",\"frValue\":\"Titre de la carte\",\"frValid\":\"1\"},{\"key\":\"editor.map.edit.cancel\",\"enValue\":\"Cancel editing\",\"enValid\":\"1\",\"frValue\":\"Annuler les modifications\",\"frValid\":\"1\"},{\"key\":\"editor.map.edit\",\"enValue\":\"Map editor\",\"enValid\":\"1\",\"frValue\":\"Éditeur de carte\",\"frValid\":\"1\"},{\"key\":\"editor.map.label.name\",\"enValue\":\"Map config name\",\"enValid\":\"1\",\"frValue\":\"Nom de la configuration de la carte\",\"frValid\":\"1\"},{\"key\":\"editor.map.label.create\",\"enValue\":\"Create New Configuration File\",\"enValid\":\"1\",\"frValue\":\"Créer un nouveau fichier de configuration\",\"frValid\":\"1\"},{\"key\":\"editor.map.label.edit\",\"enValue\":\"Edit Map Configuration\",\"enValid\":\"1\",\"frValue\":\"Modifier la configuration de la carte\",\"frValid\":\"1\"},{\"key\":\"editor.map.scrollguard.enable\",\"enValue\":\"Enable scrollguard\",\"enValid\":\"1\",\"frValue\":\"Activer le contrôle du défilement\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.enable\",\"enValue\":\"Enable Time Slider:\",\"enValid\":\"1\",\"frValue\":\"Activer le curseur temporel:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.edit\",\"enValue\":\"Edit Time Slider Config\",\"enValid\":\"1\",\"frValue\":\"Modifier la configuration du curseur temporel\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.range\",\"enValue\":\"Range:\",\"enValid\":\"1\",\"frValue\":\"Tranche:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.start\",\"enValue\":\"Start:\",\"enValid\":\"1\",\"frValue\":\"Début:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.attribute\",\"enValue\":\"Attribute:\",\"enValid\":\"1\",\"frValue\":\"Caractéristique:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.layers\",\"enValue\":\"(OPTIONAL) Comma separated Layer IDs:\",\"enValid\":\"1\",\"frValue\":\"(OPTIONAL) Comma separated Layer IDs:\",\"frValid\":\"0\"},{\"key\":\"editor.map.timeslider.to\",\"enValue\":\"to\",\"enValid\":\"1\",\"frValue\":\"to\",\"frValid\":\"0\"},{\"key\":\"editor.map.timeslider.warning\",\"enValue\":\"⚠️Warning! Please ensure that:\",\"enValid\":\"1\",\"frValue\":\"⚠️Avertissement! Veuillez vous assurer de ce qui suit:\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.warning.bullet1\",\"enValue\":\"All range and start values are positive integers.\",\"enValid\":\"1\",\"frValue\":\"Toutes les valeurs de la tranche et du début sont des nombres entiers positifs.\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.warning.bullet2\",\"enValue\":\"The \\\"to\\\" value is greater than or equal to the \\\"from\\\" value.\",\"enValid\":\"1\",\"frValue\":\"La valeur « À » est supérieure ou égale à la valeur « De ».\",\"frValid\":\"1\"},{\"key\":\"editor.map.timeslider.warning.end\",\"enValue\":\"Otherwise, your time slider config cannot be saved.\",\"enValid\":\"1\",\"frValue\":\"Autrement\",\"frValid\":\" la configuration du curseur temporel ne pourra pas être enregistrée.\"},{\"key\":\"editor.slides.title\",\"enValue\":\"SLIDES\",\"enValid\":\"1\",\"frValue\":\"DIAPOSITIVES\",\"frValid\":\"1\"},{\"key\":\"editor.slides.addSlide\",\"enValue\":\"New Slide\",\"enValid\":\"1\",\"frValue\":\"Nouvelle diapositive\",\"frValid\":\"1\"},{\"key\":\"editor.slides.copyFromLang\",\"enValue\":\"Copy slides from the other language\",\"enValid\":\"1\",\"frValue\":\"Copier les diapositives de l’autre langue\",\"frValid\":\"1\"},{\"key\":\"editor.slides.deleteSlide.confirm\",\"enValue\":\"Are you sure you want to delete the slide {title}?\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment supprimer la diapositive {titre}?\",\"frValid\":\"1\"},{\"key\":\"editor.slides.changeSlide.confirm\",\"enValue\":\"Are you sure you want to change the slide {title}? All unsaved progress will be lost.\",\"enValid\":\"1\",\"frValue\":\"Voulez-vous vraiment modifier la diapositive {titre}? Toute modification non enregistrée sera perdue.\",\"frValid\":\"1\"},{\"key\":\"editor.slides.makeFull\",\"enValue\":\"Make the right panel the full slide\",\"enValid\":\"1\",\"frValue\":\"Mettre la diapositive complète dans le panneau de droite\",\"frValid\":\"1\"},{\"key\":\"editor.slides.copyAll\",\"enValue\":\"Copy all\",\"enValid\":\"1\",\"frValue\":\"Copier tout\",\"frValid\":\"1\"},{\"key\":\"editor.slides.copy\",\"enValue\":\"Copy\",\"enValid\":\"1\",\"frValue\":\"Copier\",\"frValid\":\"1\"},{\"key\":\"editor.slides.slide\",\"enValue\":\"Slide\",\"enValid\":\"1\",\"frValue\":\"Diapositive\",\"frValid\":\"1\"},{\"key\":\"editor.slides.previousSlide\",\"enValue\":\"Previous slide\",\"enValid\":\"1\",\"frValue\":\"Diapositive précédente\",\"frValid\":\"1\"},{\"key\":\"editor.slides.nextSlide\",\"enValue\":\"Next slide\",\"enValid\":\"1\",\"frValue\":\"Diapositive suivante\",\"frValid\":\"1\"},{\"key\":\"editor.slides.leftPanel\",\"enValue\":\"Left panel\",\"enValid\":\"1\",\"frValue\":\"Panneau de gauche\",\"frValid\":\"1\"},{\"key\":\"editor.slides.rightPanel\",\"enValue\":\"Right panel\",\"enValid\":\"1\",\"frValue\":\"Panneau de droite\",\"frValid\":\"1\"},{\"key\":\"editor.slides.fullscreenPanel\",\"enValue\":\"Fullscreen panel\",\"enValid\":\"1\",\"frValue\":\"Panneau plein écran\",\"frValid\":\"1\"},{\"key\":\"editor.slides.contentType\",\"enValue\":\"Content type\",\"enValid\":\"1\",\"frValue\":\"Type de contenu\",\"frValid\":\"1\"},{\"key\":\"editor.slides.content\",\"enValue\":\"Content\",\"enValid\":\"1\",\"frValue\":\"Contenu\",\"frValid\":\"1\"},{\"key\":\"editor.slides.select\",\"enValue\":\"Please select a slide to edit\",\"enValid\":\"1\",\"frValue\":\"Veuillez sélectionner une diapositive à modifier\",\"frValid\":\"1\"},{\"key\":\"editor.slides.panel.body\",\"enValue\":\"Panel body\",\"enValid\":\"1\",\"frValue\":\"Corps du panneau\",\"frValid\":\"1\"},{\"key\":\"editor.slides.panel.title\",\"enValue\":\"Panel title\",\"enValid\":\"1\",\"frValue\":\"Titre du panneau\",\"frValid\":\"1\"},{\"key\":\"editor.slides.intro\",\"enValue\":\"Intro subtitle\",\"enValid\":\"1\",\"frValue\":\"Sous-titre de l’introduction\",\"frValid\":\"1\"},{\"key\":\"editor.slides.title\",\"enValue\":\"Intro title\",\"enValid\":\"1\",\"frValue\":\"Titre de l’introduction\",\"frValid\":\"1\"}];res.columns = [\"key\",\"enValue\",\"enValid\",\"frValue\",\"frValid\"];module.exports = res;","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./editor.vue?vue&type=style&index=0&id=7d7fb887&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./image-preview.vue?vue&type=style&index=0&id=5bdf84fc&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./image-editor.vue?vue&type=style&index=0&id=56f26618&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./chart-editor.vue?vue&type=style&index=0&id=1bea39b8&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./dynamic-editor.vue?vue&type=style&index=0&id=2385e538&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./landing.vue?vue&type=style&index=0&id=79d08e02&lang=scss\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./app.vue?vue&type=style&index=0&id=7370f27a&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./metadata-editor.vue?vue&type=style&index=0&id=0c6bdccf&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./chart-preview.vue?vue&type=style&index=0&id=c922f560&lang=scss&scoped=true\"","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"app\",\n class: \"storyramp-app bg-white\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createBlock(_component_router_view, {\n key: _ctx.$route.path\n }))\n ]))\n}","\nimport { Vue, Watch } from 'vue-property-decorator';\nimport { RouteLocationNormalized } from 'vue-router';\n\nexport default class App extends Vue {\n @Watch('$route', { immediate: true })\n onRouteUpdate(to: RouteLocationNormalized): void {\n this.$i18n.locale = (to.params.lang as string) ?? 'en';\n if (to.params.lang) {\n document.title = this.$t(to.meta.title);\n }\n }\n}\n","import { render } from \"./app.vue?vue&type=template&id=7370f27a&ts=true\"\nimport script from \"./app.vue?vue&type=script&lang=ts\"\nexport * from \"./app.vue?vue&type=script&lang=ts\"\n\nimport \"./app.vue?vue&type=style&index=0&id=7370f27a&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Vue } from 'vue-class-component';\n\n// register router hooks\nVue.registerHooks(['beforeRouterEnter', 'beforeRouteLeave', 'beforeRouteUpdate']);\n","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex justify-center\" }\nconst _hoisted_2 = { class: \"home-btn-container border-4 border-gray-400 border-solid m-24\" }\nconst _hoisted_3 = { class: \"text-2xl font-bold\" }\nconst _hoisted_4 = { class: \"home-btn-container border-4 border-gray-400 border-solid m-24\" }\nconst _hoisted_5 = { class: \"text-2xl font-bold\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_router_link, {\n to: { name: 'metadataNew' },\n class: \"flex justify-center h-full w-full\",\n target: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", _hoisted_3, \"+ \" + _toDisplayString(_ctx.$t('editor.createProduct')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: { name: 'metadataExisting' },\n class: \"flex justify-center h-full w-full\",\n target: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", _hoisted_5, _toDisplayString(_ctx.$t('editor.editProduct')), 1)\n ]),\n _: 1\n })\n ])\n ]))\n}","\nimport { Vue } from 'vue-property-decorator';\n\nexport default class LandingV extends Vue {}\n","import { render } from \"./landing.vue?vue&type=template&id=79d08e02&ts=true\"\nimport script from \"./landing.vue?vue&type=script&lang=ts\"\nexport * from \"./landing.vue?vue&type=script&lang=ts\"\n\nimport \"./landing.vue?vue&type=style&index=0&id=79d08e02&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, Fragment as _Fragment, withModifiers as _withModifiers, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"editor-container\" }\nconst _hoisted_2 = { class: \"px-20 py-5\" }\nconst _hoisted_3 = { class: \"flex\" }\nconst _hoisted_4 = { class: \"flex text-2xl font-bold mb-5\" }\nconst _hoisted_5 = { class: \"border py-5 w-5/6\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"text-red-500\"\n}\nconst _hoisted_7 = {\n key: 0,\n class: \"text-yellow-500 rounded p-1 ml-2\"\n}\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block mr-1 pb-1 fill-current\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n \"clip-rule\": \"evenodd\",\n \"fill-rule\": \"evenodd\",\n \"stroke-linejoin\": \"round\",\n \"stroke-miterlimit\": \"2\",\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"m2.095 19.886 9.248-16.5c.133-.237.384-.384.657-.384.272 0 .524.147.656.384l9.248 16.5c.064.115.096.241.096.367 0 .385-.309.749-.752.749h-18.496c-.44 0-.752-.36-.752-.749 0-.126.031-.252.095-.367zm9.907-6.881c-.414 0-.75.336-.75.75v3.5c0 .414.336.75.75.75s.75-.336.75-.75v-3.5c0-.414-.336-.75-.75-.75zm-.002-3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z\",\n \"fill-rule\": \"nonzero\"\n })\n ])\n], -1)\nconst _hoisted_9 = { class: \"align-center inline-block select-none\" }\nconst _hoisted_10 = {\n key: 2,\n class: \"inline-flex align-middle mb-1\"\n}\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_12 = { class: \"mb-4\" }\nconst _hoisted_13 = { class: \"flex mt-8\" }\nconst _hoisted_14 = { class: \"ml-auto\" }\nconst _hoisted_15 = [\"onClick\"]\nconst _hoisted_16 = {\n slot: \"header\",\n class: \"text-lg font-bold\"\n}\nconst _hoisted_17 = { class: \"w-full flex justify-end\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_spinner = _resolveComponent(\"spinner\")!\n const _component_metadata_content = _resolveComponent(\"metadata-content\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n const _component_vue_final_modal = _resolveComponent(\"vue-final-modal\")!\n const _component_editor = _resolveComponent(\"editor\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_ctx.loadEditor)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(_ctx.editExisting ? _ctx.$t('editor.editProduct') : _ctx.$t('editor.createProduct')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.swapLang()))\n }, _toDisplayString(_ctx.configLang === 'en' ? _ctx.$t('editor.frenchConfig') : _ctx.$t('editor.englishConfig')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", null, [\n ('uuid' in _ctx.reqFields)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, \"*\"))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('editor.uuid')) + \":\", 1)\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n onInput: _cache[1] || (_cache[1] = ($event: any) => {\n _ctx.error = false;\n _ctx.reqFields.uuid = true;\n _ctx.checkUuid();\n }),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.uuid) = $event)),\n class: _normalizeClass([\"w-1/3\", _ctx.error || !_ctx.reqFields.uuid ? 'input-error' : ''])\n }, null, 34), [\n [_vModelText, _ctx.uuid]\n ]),\n (_ctx.warning)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('editor.uuid.exists')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.editExisting)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.generateRemoteConfig && _ctx.generateRemoteConfig(...args))),\n class: _normalizeClass([\"bg-black text-white hover:bg-gray-800\", _ctx.error ? 'input-error' : ''])\n }, _toDisplayString(_ctx.$t('editor.load')), 3))\n : _createCommentVNode(\"\", true),\n (_ctx.loadStatus === 'loading')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createVNode(_component_spinner, {\n size: \"24px\",\n color: \"#009cd1\",\n class: \"mx-2 my-auto\"\n })\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_11,\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"h3\", null, _toDisplayString(_ctx.$t('editor.productDetails')), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('editor.metadata.instructions')), 1)\n ]),\n _createVNode(_component_metadata_content, {\n metadata: _ctx.metadata,\n onMetadataChanged: _ctx.updateMetadata,\n onLogoChanged: _ctx.onFileChange,\n onLogoSourceChanged: _ctx.onLogoSourceInput\n }, null, 8, [\"metadata\", \"onMetadataChanged\", \"onLogoChanged\", \"onLogoSourceChanged\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n (_ctx.editExisting)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.saveMetadata(true))),\n class: \"pl-8\"\n }, _toDisplayString(_ctx.$t('editor.saveChanges')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_router_link, {\n to: { name: 'home' },\n target: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", null, _toDisplayString(_ctx.$t('editor.back')), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (!_ctx.warning ? _ctx.continueToEditor() : _ctx.$vfm.open(`confirm-uuid-overwrite`))),\n class: \"bg-black text-white px-8\"\n }, _toDisplayString(_ctx.$t('editor.next')), 1),\n _createVNode(_component_confirmation_modal, {\n name: `confirm-uuid-overwrite`,\n message: _ctx.$t(`Are you sure you want to overwrite product '${_ctx.uuid}'?`),\n onOk: _cache[6] || (_cache[6] = ($event: any) => (_ctx.continueToEditor()))\n }, null, 8, [\"message\"])\n ])\n ])\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.loadEditor && _ctx.loadStatus === 'loaded')\n ? (_openBlock(), _createBlock(_component_editor, {\n key: 1,\n configs: _ctx.configs,\n configFileStructure: _ctx.configFileStructure,\n sourceCounts: _ctx.sourceCounts,\n metadata: _ctx.metadata,\n slides: _ctx.slides,\n configLang: _ctx.configLang,\n saving: _ctx.saving,\n unsavedChanges: _ctx.unsavedChanges,\n onSaveChanges: _ctx.generateConfig,\n onSaveStatus: _ctx.updateSaveStatus,\n onRefreshConfig: _ctx.refreshConfig,\n ref: \"mainEditor\"\n }, {\n langModal: _withCtx((slotProps) => [\n _createElementVNode(\"button\", {\n onClick: _withModifiers(($event: any) => (slotProps.unsavedChanges ? _ctx.$vfm.open(`change-lang`) : _ctx.swapLang()), [\"stop\"])\n }, _toDisplayString(_ctx.configLang === 'en' ? _ctx.$t('editor.frenchConfig') : _ctx.$t('editor.englishConfig')), 9, _hoisted_15),\n _createVNode(_component_confirmation_modal, {\n name: `change-lang`,\n message: _ctx.$t('editor.changeLang.modal'),\n onOk: _cache[7] || (_cache[7] = ($event: any) => (_ctx.swapLang()))\n }, null, 8, [\"message\"])\n ]),\n metadataModal: _withCtx(() => [\n _createVNode(_component_vue_final_modal, {\n modalId: \"metadata-edit-modal\",\n \"content-class\": \"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2\",\n class: \"flex justify-center items-center\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_16, _toDisplayString(_ctx.$t('editor.editMetadata')), 1),\n _createVNode(_component_metadata_content, {\n metadata: _ctx.metadata,\n onMetadataChanged: _ctx.updateMetadata,\n onLogoChanged: _ctx.onFileChange,\n onLogoSourceChanged: _ctx.onLogoSourceInput\n }, null, 8, [\"metadata\", \"onMetadataChanged\", \"onLogoChanged\", \"onLogoSourceChanged\"]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", {\n class: \"bg-black text-white hover:bg-gray-800\",\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.saveMetadata(false)))\n }, \" Done \")\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"configs\", \"configFileStructure\", \"sourceCounts\", \"metadata\", \"slides\", \"configLang\", \"saving\", \"unsavedChanges\", \"onSaveChanges\", \"onSaveStatus\", \"onRefreshConfig\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, toDisplayString as _toDisplayString, withModifiers as _withModifiers, vModelCheckbox as _vModelCheckbox, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createStaticVNode as _createStaticVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ecc4f964\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sticky top-20 h-auto self-start flex-grow m-5\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { class: \"flex\" }\nconst _hoisted_4 = { class: \"flex flex-col\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, \"Slide title:\", -1))\nconst _hoisted_6 = { class: \"flex\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-auto\" }, null, -1))\nconst _hoisted_8 = [\"disabled\"]\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = { class: \"flex mt-3\" }\nconst _hoisted_11 = { class: \"mx-2 font-bold\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"flex border-b border-black\"\n}\nconst _hoisted_15 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_17 = { class: \"align-middle inline-block pl-1\" }\nconst _hoisted_18 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_20 = { class: \"align-middle inline-block pl-1\" }\nconst _hoisted_21 = {\n key: 1,\n class: \"border-b border-black\"\n}\nconst _hoisted_22 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_24 = { class: \"align-middle inline-block pl-1\" }\nconst _hoisted_25 = { class: \"flex mt-4\" }\nconst _hoisted_26 = { class: \"font-bold text-xl\" }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-auto flex-grow\" }, null, -1))\nconst _hoisted_28 = {\n key: 0,\n class: \"flex flex-col mr-8\"\n}\nconst _hoisted_29 = { class: \"text-left text-lg\" }\nconst _hoisted_30 = [\"value\"]\nconst _hoisted_31 = [\"value\"]\nconst _hoisted_32 = {\n key: 1,\n class: \"flex h-full mt-4 justify-center text-gray-600 text-xl\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!!_ctx.currentSlide)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.currentSlide.title) = $event)),\n placeholder: \"Add a title\",\n class: \"w-2/3\"\n }, null, 512), [\n [_vModelText, _ctx.currentSlide.title]\n ]),\n _hoisted_7,\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.selectSlide(_ctx.slideIndex - 1)), [\"stop\"])),\n disabled: _ctx.slideIndex === 0,\n class: \"border border-black\"\n }, _toDisplayString(_ctx.$t('editor.slides.previousSlide')), 9, _hoisted_8),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.selectSlide(_ctx.slideIndex + 1)), [\"stop\"])),\n disabled: _ctx.isLast,\n class: \"border border-black\"\n }, _toDisplayString(_ctx.$t('editor.slides.nextSlide')), 9, _hoisted_9)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('editor.slides.makeFull')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n class: \"rounded-none cursor-pointer w-4 h-4\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.rightOnly) = $event)),\n disabled: _ctx.rightOnly && _ctx.currentSlide.panel[_ctx.panelIndex].type === 'dynamic',\n onChange: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$vfm.open(`right-only-${_ctx.slideIndex}`)), [\"stop\"]))\n }, null, 40, _hoisted_12), [\n [_vModelCheckbox, _ctx.rightOnly]\n ])\n ])\n ])\n ]),\n _hoisted_13,\n (_ctx.currentSlide.panel.length === 2)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = \n () => {\n _ctx.panelIndex = 0;\n _ctx.saveChanges();\n }\n ),\n class: _normalizeClass([\"border-t border-l border-r\", _ctx.panelIndex == 0 ? 'border-black' : 'border-white'])\n }, [\n _hoisted_15,\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('editor.slides.leftPanel')), 1)\n ], 2),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = \n () => {\n _ctx.panelIndex = 1;\n _ctx.saveChanges();\n }\n ),\n class: _normalizeClass([\"border-t border-l border-r\", _ctx.panelIndex == 1 ? 'border-black' : 'border-white'])\n }, [\n _hoisted_18,\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('editor.slides.rightPanel')), 1)\n ], 2)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n _createElementVNode(\"button\", {\n onClick: _cache[7] || (_cache[7] = \n () => {\n _ctx.saveChanges();\n }\n ),\n class: \"border-t border-l border-r border-black\"\n }, [\n _hoisted_22,\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.$t('editor.slides.fullscreenPanel')), 1)\n ])\n ])),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.$t('editor.slides.content')) + \":\", 1),\n _hoisted_27,\n (_ctx.panelIndex === 1 || _ctx.rightOnly)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_28, [\n _createElementVNode(\"label\", _hoisted_29, _toDisplayString(_ctx.$t('editor.slides.contentType')) + \":\", 1),\n _createElementVNode(\"select\", {\n ref: \"typeSelector\",\n onInput: _cache[8] || (_cache[8] = ($event: any) => {\n _ctx.$vfm.open(`change-slide-${_ctx.slideIndex}`);\n _ctx.newType = $event.target.value;\n }),\n value: _ctx.currentSlide.panel[_ctx.panelIndex].type\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_ctx.editors).filter(\n (editor) => editor !== 'slideshow' && editor !== 'loading'\n ), (thing) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n key: thing,\n value: thing === 'image' ? 'slideshow' : thing\n }, _toDisplayString(thing), 9, _hoisted_31))\n }), 128))\n ], 40, _hoisted_30)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.editors[_ctx.currentSlide.panel[_ctx.panelIndex].type]), {\n ref: \"editor\",\n key: _ctx.panelIndex + _ctx.currentSlide.panel[_ctx.panelIndex].type,\n panel: _ctx.currentSlide.panel[_ctx.panelIndex],\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.lang,\n uid: _ctx.uid,\n sourceCounts: _ctx.sourceCounts\n }, null, 8, [\"panel\", \"configFileStructure\", \"lang\", \"uid\", \"sourceCounts\"]))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_32, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('editor.slides.select')), 1)\n ])),\n _createVNode(_component_confirmation_modal, {\n name: `change-slide-${_ctx.slideIndex}`,\n message: _ctx.$t('editor.slides.changeSlide.confirm', { title: _ctx.currentSlide.title }),\n onOk: _cache[9] || (_cache[9] = ($event: any) => (_ctx.changePanelType(_ctx.currentSlide.panel[_ctx.panelIndex].type, _ctx.newType))),\n onCancel: _ctx.cancelTypeChange\n }, null, 8, [\"name\", \"message\", \"onCancel\"]),\n _createVNode(_component_confirmation_modal, {\n name: `right-only-${_ctx.slideIndex}`,\n message: _ctx.$t('editor.slides.changeSlide.confirm', { title: _ctx.currentSlide.title }),\n onOk: _cache[10] || (_cache[10] = ($event: any) => (_ctx.toggleRightOnly())),\n onCancel: _cache[11] || (_cache[11] = ($event: any) => (_ctx.rightOnly = !_ctx.rightOnly))\n }, null, 8, [\"name\", \"message\"])\n ]))\n}","import JSZip from 'jszip';\n\nexport interface StoryRampConfig {\n title: string;\n lang: string;\n introSlide: Intro;\n slides: Slide[];\n contextLink: string;\n contextLabel: string;\n dateModified: string;\n}\n\nexport interface ConfigFileStructure {\n uuid: string;\n zip: JSZip;\n configs: { [key: string]: StoryRampConfig };\n assets: {\n [key: string]: JSZip;\n };\n charts: {\n [key: string]: JSZip;\n };\n rampConfig: {\n [key: string]: JSZip;\n };\n}\n\nexport interface SourceCounts {\n [key: string]: number;\n}\n\nexport interface MetadataContent {\n title: string;\n introTitle: string;\n introSubtitle: string;\n logoPreview: string;\n logoName: string;\n logoAltText: string;\n contextLink: string;\n contextLabel: string;\n dateModified: string;\n}\n\n// unofficial interface: add properties as needed (just to make TS warnings disappear)\nexport interface Highchart {\n toString(): string;\n}\n\nexport interface DQVOptions {\n title: string;\n subtitle: string;\n xAxisLabel: string;\n yAxisLabel: string;\n width?: number;\n height?: number;\n export: boolean;\n colours?: string[];\n credits: boolean;\n type: string;\n}\n\nexport interface PieSeriesData {\n name: string;\n data: PieDataRow[];\n}\n\nexport interface PieDataRow {\n name: string;\n y?: number;\n}\n\nexport interface LineSeriesData {\n name: string;\n data: number[];\n}\n\nexport interface DQVChartConfig {\n chart: {\n type: string;\n };\n title: {\n text: string;\n };\n credits?: {\n enabled: boolean;\n };\n subtitle?: {\n text: string;\n };\n yAxis?: {\n title: {\n text: string;\n };\n };\n xAxis?: {\n title: {\n text: string;\n };\n categories: [];\n };\n data?: {\n csvURL: string;\n enablePolling: boolean;\n csv?: string;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plotOptions?: any;\n exporting?: {\n buttons: {\n contextButton: {\n menuItems: string[];\n };\n };\n enabled: boolean;\n };\n series?: PieSeriesData | LineSeriesData[];\n}\n\nexport interface Intro {\n logo: {\n src: string;\n altText?: string;\n };\n title: string;\n subtitle: string;\n blurb?: string;\n}\n\nexport interface Slide {\n title: string;\n // tuple definition to restrict array size\n // panel: [BasePanel, BasePanel | undefined];\n panel: BasePanel[];\n}\n\nexport enum PanelType {\n Text = 'text',\n Image = 'image',\n Map = 'map',\n Chart = 'chart',\n Video = 'video',\n Audio = 'audio',\n Slideshow = 'slideshow',\n Dynamic = 'dynamic',\n Loading = 'loading'\n}\n\nexport interface BasePanel {\n type: string;\n width?: number;\n}\n\nexport interface TextPanel extends BasePanel {\n type: PanelType.Text;\n title: string;\n titleTag?: string;\n content: string; // in md format\n}\n\nexport interface MapPanel extends BasePanel {\n type: PanelType.Map;\n config: string;\n fullscreen?: boolean;\n timeSlider?: TimeSliderConfig;\n title: string;\n scrollguard: boolean;\n}\nexport interface TimeSliderConfig {\n range: number[];\n start: number[];\n attribute: string;\n layers?: string[];\n}\n\nexport interface DynamicPanel extends BasePanel {\n type: PanelType.Dynamic;\n title: string;\n titleTag?: string;\n content: string;\n children: DynamicChildItem[];\n}\n\nexport interface DynamicChildItem {\n id: string;\n panel: BasePanel;\n}\n\nexport interface ImagePanel extends BasePanel {\n type: PanelType.Image;\n src: string;\n width?: number;\n height?: number;\n temp?: string;\n class?: string;\n fullscreen?: boolean;\n altText?: string;\n caption?: string;\n tooltip?: string;\n}\n\nexport interface VideoPanel extends BasePanel {\n type: PanelType.Video;\n width?: number;\n height?: number;\n src: string;\n caption?: string;\n}\n\nexport interface AudioPanel extends BasePanel {\n type: PanelType.Audio;\n src: string;\n caption?: string;\n}\n\nexport interface SlideshowPanel extends BasePanel {\n type: PanelType.Slideshow;\n images: ImagePanel[];\n fullscreen?: boolean;\n loop?: boolean;\n caption?: string;\n}\n\nexport interface ChartPanel extends BasePanel {\n type: PanelType.Chart;\n charts: ChartConfig[];\n fullscreen?: boolean;\n}\n\nexport interface ChartConfig {\n src: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n config?: any;\n name?: string;\n options?: DQVOptions;\n}\n\nexport interface ImageFile {\n id: string;\n src: string;\n altText: string;\n caption?: string;\n width?: number;\n height?: number;\n}\n\nexport interface DefaultConfigs {\n text: TextPanel;\n slideshow: SlideshowPanel;\n chart: ChartPanel;\n dynamic: DynamicPanel;\n map: MapPanel;\n}\n","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, withCtx as _withCtx, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"block\" }\nconst _hoisted_2 = { class: \"flex items-center\" }\nconst _hoisted_3 = { class: \"font-bold px-4\" }\nconst _hoisted_4 = { class: \"flex items-center\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"svg\", {\n height: \"18px\",\n width: \"18px\",\n viewBox: \"0 0 23 21\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\" })\n], -1)\nconst _hoisted_6 = { class: \"px-2\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"hr\", { class: \"border-solid border-t-2 border-gray-300 my-2\" }, null, -1)\nconst _hoisted_8 = {\n key: 0,\n class: \"m-4\"\n}\nconst _hoisted_9 = { class: \"italic text-gray-400\" }\nconst _hoisted_10 = { class: \"flex flex-wrap list-none\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ChartPreview = _resolveComponent(\"ChartPreview\")!\n const _component_draggable = _resolveComponent(\"draggable\")!\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('editor.chart.label.info', {\n num: _ctx.chartConfigs.length\n })), 1),\n _createElementVNode(\"button\", {\n class: \"chart-btn bg-gray-100 cursor-pointer hover:bg-gray-200\",\n id: \"modal-btn\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.clearEditor()))\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_ctx.$t('editor.chart.label.create')), 1)\n ])\n ])\n ]),\n _hoisted_7,\n (_ctx.chartConfigs.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('editor.chart.label.empty')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _withDirectives(_createElementVNode(\"ul\", _hoisted_10, [\n _createVNode(_component_draggable, {\n modelValue: _ctx.chartConfigs,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.chartConfigs) = $event)),\n handle: \".handle\",\n onUpdate: _ctx.onChartsEdited,\n class: \"flex flex-wrap list-none\",\n \"item-key\": \"name\"\n }, {\n item: _withCtx(({ element, index }) => [\n (_openBlock(), _createBlock(_component_ChartPreview, {\n key: `${element.name}-${index}`,\n chart: element,\n configFileStructure: _ctx.configFileStructure,\n onEdit: _ctx.editChart,\n onDelete: ($event: any) => (_ctx.$vfm.open(`${element.name}-${index}`))\n }, null, 8, [\"chart\", \"configFileStructure\", \"onEdit\", \"onDelete\"]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate\"])\n ], 512), [\n [_vShow, _ctx.chartConfigs.length]\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.chartConfigs, (chart, idx) => {\n return (_openBlock(), _createBlock(_component_confirmation_modal, {\n key: `${chart.name}-${idx}`,\n name: `${chart.name}-${idx}`,\n message: _ctx.$t('editor.chart.delete.confirm', { name: chart.name }),\n onOk: ($event: any) => (_ctx.deleteChart(chart))\n }, null, 8, [\"name\", \"message\", \"onOk\"]))\n }), 128))\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c922f560\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"chart-item items-center mt-8 mx-5 overflow-hidden\" }\nconst _hoisted_2 = { class: \"relative border-solid border-2 items-center justify-center text-center w-full\" }\nconst _hoisted_3 = [\"content\"]\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n class: \"absolute transform -translate-x-1/2 -translate-y-1/2\",\n height: \"22px\",\n width: \"22px\",\n viewBox: \"0 0 352 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\" })\n], -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", { class: \"bg-white absolute h-6 w-6 leading-5 rounded-full bottom-2 -right-1 p-0 z-10 handle\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#000000\",\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 24 24\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M8,18 C9.1045695,18 10,18.8954305 10,20 C10,21.1045695 9.1045695,22 8,22 C6.8954305,22 6,21.1045695 6,20 C6,18.8954305 6.8954305,18 8,18 Z M16,18 C17.1045695,18 18,18.8954305 18,20 C18,21.1045695 17.1045695,22 16,22 C14.8954305,22 14,21.1045695 14,20 C14,18.8954305 14.8954305,18 16,18 Z M8,10 C9.1045695,10 10,10.8954305 10,12 C10,13.1045695 9.1045695,14 8,14 C6.8954305,14 6,13.1045695 6,12 C6,10.8954305 6.8954305,10 8,10 Z M16,10 C17.1045695,10 18,10.8954305 18,12 C18,13.1045695 17.1045695,14 16,14 C14.8954305,14 14,13.1045695 14,12 C14,10.8954305 14.8954305,10 16,10 Z M8,2 C9.1045695,2 10,2.8954305 10,4 C10,5.1045695 9.1045695,6 8,6 C6.8954305,6 6,5.1045695 6,4 C6,2.8954305 6.8954305,2 8,2 Z M16,2 C17.1045695,2 18,2.8954305 18,4 C18,5.1045695 17.1045695,6 16,6 C14.8954305,6 14,5.1045695 14,4 C14,2.8954305 14.8954305,2 16,2 Z\"\n })\n ])\n], -1))\nconst _hoisted_7 = { class: \"flex mt-4 items-center\" }\nconst _hoisted_8 = { class: \"name-label font-bold flex-2\" }\nconst _hoisted_9 = { class: \"font-normal\" }\nconst _hoisted_10 = [\"id\"]\nconst _hoisted_11 = { class: \"flex items-center\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n height: \"18px\",\n width: \"18px\",\n viewBox: \"0 0 23 21\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M 18 2 L 15.585938 4.4140625 L 19.585938 8.4140625 L 22 6 L 18 2 z M 14.076172 5.9238281 L 3 17 L 3 21 L 7 21 L 18.076172 9.9238281 L 14.076172 5.9238281 z\" })\n], -1))\nconst _hoisted_13 = { class: \"px-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_storylines_chart = _resolveComponent(\"storylines-chart\")!\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n class: \"bg-white absolute h-6 w-6 leading-5 rounded-full top-2 left-0 p-0 z-10 cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = () => _ctx.$emit('delete', _ctx.chart)),\n content: _ctx.$t('editor.chart.delete')\n }, _hoisted_5, 8, _hoisted_3)), [\n [_directive_tippy, { placement: 'top', hideOnClick: false, animateFill: true }]\n ]),\n _hoisted_6,\n (!_ctx.loading)\n ? (_openBlock(), _createBlock(_component_storylines_chart, {\n class: \"w-full h-full\",\n config: _ctx.chartConfig,\n key: _ctx.chartIdx,\n configFileStructure: _ctx.configFileStructure,\n onLoaded: _ctx.loadChart\n }, null, 8, [\"config\", \"configFileStructure\", \"onLoaded\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('editor.chart.label.name')) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.chartName), 1)\n ]),\n _createElementVNode(\"button\", {\n class: \"chart-btn bg-gray-100 cursor-pointer hover:bg-gray-200\",\n id: `edit-${_ctx.chart.name}-btn`\n }, [\n _createElementVNode(\"div\", _hoisted_11, [\n _hoisted_12,\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('editor.chart.label.edit')), 1)\n ])\n ], 8, _hoisted_10)\n ])\n ]))\n}","\nimport { Prop, Vue } from 'vue-property-decorator';\nimport {\n ChartConfig,\n ConfigFileStructure,\n DQVChartConfig,\n LineSeriesData,\n PieDataRow,\n PieSeriesData\n} from '@/definitions';\n\nexport default class ChartPreviewV extends Vue {\n @Prop() chart!: ChartConfig;\n @Prop() configFileStructure!: ConfigFileStructure;\n\n loading = true;\n chartIdx = 0;\n chartConfig = {};\n chartName = '';\n modalEditor: typeof highed.ModalEditor = undefined;\n\n mounted(): void {\n this.chartConfig = this.chart;\n this.chartName = this.chart.name || '';\n this.loading = false;\n }\n\n /**\n * Save initial set of chart options used to create chart.\n */\n loadChart(chartOptions: DQVChartConfig): void {\n // initialize higcharts editor and link to edit summoner node\n if (this.modalEditor) {\n return;\n }\n\n this.modalEditor = highed.ModalEditor(\n `edit-${this.chartName}-btn`,\n {\n allowDone: true,\n features: 'import templates customize done',\n importer: {\n options: 'plugins csv json'\n },\n defaultChartOptions: chartOptions\n },\n (newChart: string) => {\n const chart = JSON.parse(newChart);\n const chartConfig = {\n name: chart.title.text,\n config: chart,\n src: ''\n };\n this.$emit('edit', { oldChart: this.chart, newChart: chartConfig });\n this.chartConfig = chartConfig;\n this.chartName = chartConfig.name;\n this.chartIdx += 1;\n }\n );\n\n // restore CSV data if exists\n if (chartOptions.data?.csv !== undefined) {\n const csvData = chartOptions.data.csv;\n this.modalEditor.editor.dataTable.loadCSV({ csv: csvData });\n } else {\n this.convertSeriesToCSV(chartOptions);\n }\n\n this.modalEditor.editor.chart.options.setAll(chartOptions);\n }\n\n /*\n * Convert series data into formatted csvData string for charts created without using editor\n * so that the datatable when re-opening modal is properly populated.\n */\n convertSeriesToCSV(chartOptions: DQVChartConfig): void {\n if (chartOptions.chart?.type === 'pie') {\n const seriesData = (chartOptions?.series as PieSeriesData).data;\n if (seriesData) {\n // pie charts only have one set of series data with the name;y format\n const csvData = [\n // first row is attempt to extract data labels if exists\n `${(chartOptions?.series as PieSeriesData).name};${chartOptions?.yAxis?.title.text}`,\n ...seriesData.map((row: PieDataRow) => `${row.name};${row.y}`)\n ];\n\n // load formatted CSV string into datatable\n this.modalEditor.editor.dataTable.loadCSV({ csv: csvData.join('\\n') });\n }\n } else {\n if (chartOptions?.series && (chartOptions?.series as LineSeriesData[]).length) {\n // other chart types may have multiple sets of series data along with x-axis categories\n // append series data name to its data set\n let seriesData = (chartOptions?.series as LineSeriesData[]).map((series: LineSeriesData) => [\n series.name,\n ...series.data\n ]);\n if (chartOptions.xAxis !== undefined) {\n // add xAxis categories to series data if it exists\n const catoData = [chartOptions.xAxis?.title?.text].concat(chartOptions.xAxis?.categories);\n seriesData.unshift(catoData);\n }\n\n // join series data together\n let csvData = seriesData[0].map((_, idx) => seriesData.map((data) => data[idx]).join(';'));\n\n // load formatted CSV string into datatable\n this.modalEditor.editor.dataTable.loadCSV({ csv: csvData.join('\\n') });\n }\n }\n }\n}\n","import { render } from \"./chart-preview.vue?vue&type=template&id=c922f560&scoped=true&ts=true\"\nimport script from \"./chart-preview.vue?vue&type=script&lang=ts\"\nexport * from \"./chart-preview.vue?vue&type=script&lang=ts\"\n\nimport \"./chart-preview.vue?vue&type=style&index=0&id=c922f560&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c922f560\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withModifiers as _withModifiers, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4ed11748\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n slot: \"header\",\n class: \"text-lg font-bold\"\n}\nconst _hoisted_2 = { class: \"w-full flex justify-end\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_vue_final_modal = _resolveComponent(\"vue-final-modal\")!\n\n return (_openBlock(), _createBlock(_component_vue_final_modal, {\n modalId: _ctx.name,\n class: \"flex justify-center items-center\",\n \"content-class\": \"flex flex-col max-w-xl mx-4 p-4 bg-white dark:bg-gray-900 border dark:border-gray-700 rounded-lg space-y-2\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_1, _toDisplayString(_ctx.message), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"confirm-button hover:bg-gray-800\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.onOk && _ctx.onOk(...args)), [\"stop\"]))\n }, _toDisplayString(_ctx.$t('editor.confirm')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel-button hover:bg-gray-100\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.onCancel && _ctx.onCancel(...args)), [\"stop\"]))\n }, _toDisplayString(_ctx.$t('editor.cancel')), 1)\n ])\n ]),\n _: 1\n }, 8, [\"modalId\"]))\n}","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { VueFinalModal } from 'vue-final-modal';\n\n@Options({\n components: {\n 'vue-final-modal': VueFinalModal\n }\n})\nexport default class MetadataEditorV extends Vue {\n @Prop() message!: string;\n @Prop() name!: string;\n\n onOk(): void {\n this.$emit('ok');\n this.$vfm.close(this.name);\n }\n\n onCancel(): void {\n this.$emit('Cancel');\n this.$vfm.close(this.name);\n }\n}\n","import { render } from \"./confirmation-modal.vue?vue&type=template&id=4ed11748&scoped=true&ts=true\"\nimport script from \"./confirmation-modal.vue?vue&type=script&lang=ts\"\nexport * from \"./confirmation-modal.vue?vue&type=script&lang=ts\"\n\nimport \"./confirmation-modal.vue?vue&type=style&index=0&id=4ed11748&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4ed11748\"]])\n\nexport default __exports__","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { ChartConfig, ChartPanel, ConfigFileStructure, Highchart, SourceCounts } from '@/definitions';\nimport ChartPreviewV from '@/components/editor/helpers/chart-preview.vue';\nimport ConfirmationModalV from '@/components/editor/helpers/confirmation-modal.vue';\nimport draggable from 'vuedraggable';\n\n@Options({\n components: {\n // TODO: fix when storylines plugin updated to Vue 3\n // 'chart-panel': ChartPanelV,\n ChartPreview: ChartPreviewV,\n 'confirmation-modal': ConfirmationModalV,\n draggable\n }\n})\nexport default class ChartEditorV extends Vue {\n @Prop() panel!: ChartPanel;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n edited = false;\n\n chartConfigs = [] as Array;\n modalEditor = {} as typeof highed.ModalEditor;\n\n mounted(): void {\n // attach highcharts modal editor to summoner node\n highed.ready(() => {\n this.modalEditor = highed.ModalEditor(\n 'modal-btn',\n {\n allowDone: true,\n features: 'import templates customize done',\n importer: {\n options: 'plugins csv json'\n }\n },\n (chart: Highchart) => {\n this.createNewChart(chart.toString());\n }\n );\n });\n\n // load charts from existing storylines product\n if (this.panel.charts !== undefined && this.panel.charts.length) {\n this.chartConfigs = this.panel.charts.map((chart: ChartConfig) => {\n let chartName = '';\n // extract chart name\n if (chart.options && chart.options.title) {\n chartName = chart.options.title;\n } else {\n const path = chart.src.match(/.*\\/(.*)$/);\n chartName = path ? path[1].replace(/\\.[^/.]+$/, '').replace(/\\./g, ' ') : chart.src;\n }\n return {\n name: chartName,\n ...chart\n };\n });\n }\n }\n\n clearEditor(): void {\n // reset to clear modal editor options\n this.modalEditor.editor.chart.options.setAll({\n title: {\n text: `Chart ${this.chartConfigs.length + 1}`\n },\n subtitle: {\n text: ''\n },\n credits: {\n enabled: false\n }\n });\n\n // resets and clears datatable section\n const defaultTableData = `\"Column 1\";\"Column 2\"\\n\" \"\";\" \"`;\n this.modalEditor.editor.dataTable.loadCSV({ csv: defaultTableData });\n }\n\n createNewChart(chartInfo: string): void {\n const chart = JSON.parse(chartInfo);\n // prevent duplicate chart names (alternative is to assign a unique ID for each chart)\n if (this.chartConfigs.some((chartConfig) => chartConfig.name === chart.title.text)) {\n alert('Existing chart already has the same chart name.');\n } else {\n const chartSrc = `${this.configFileStructure.uuid}/charts/${this.lang}/${chart.title.text}.json`;\n const chartConfig = {\n name: chart.title.text,\n src: chartSrc\n };\n\n if (this.sourceCounts[chartSrc]) {\n this.sourceCounts[chartSrc] += 1;\n } else {\n this.sourceCounts[chartSrc] = 1;\n }\n\n // Add chart config to ZIP file.\n this.configFileStructure.charts[this.lang].file(`${chart.title.text}.json`, JSON.stringify(chart, null, 4));\n\n this.chartConfigs.push(chartConfig);\n }\n this.onChartsEdited();\n }\n\n editChart(chartInfo: { oldChart: ChartConfig; newChart: ChartConfig }): void {\n const idx = this.chartConfigs.findIndex((chartFile: ChartConfig) => chartFile.name === chartInfo.oldChart.name);\n if (idx !== -1) {\n // Remove old chart config from ZIP file and add in new one.\n const oldName = `${this.configFileStructure.uuid}/charts/${this.lang}/${chartInfo.oldChart.name}.json`;\n this.sourceCounts[oldName] -= 1;\n if (this.sourceCounts[oldName] === 0) {\n this.configFileStructure.charts[this.lang].remove(`${chartInfo.oldChart.name}.json`);\n }\n\n const newName = `${this.configFileStructure.uuid}/charts/${this.lang}/${chartInfo.newChart.name}.json`;\n if (this.sourceCounts[newName]) {\n this.sourceCounts[newName] += 1;\n } else {\n this.sourceCounts[newName] = 1;\n }\n this.configFileStructure.charts[this.lang].file(\n `${chartInfo.newChart.name}.json`,\n JSON.stringify(chartInfo.newChart.config, null, 4)\n );\n\n chartInfo.newChart.src = `${this.configFileStructure.uuid}/charts/${this.lang}/${chartInfo.newChart.name}.json`;\n this.chartConfigs[idx] = {\n name: chartInfo.newChart.name,\n src: chartInfo.newChart.src\n };\n }\n this.onChartsEdited();\n }\n\n deleteChart(chart: ChartConfig): void {\n const idx = this.chartConfigs.findIndex((chartFile: ChartConfig) => chartFile.name === chart.name);\n if (idx !== -1) {\n // Remove the chart from the config file.\n this.sourceCounts[`${this.configFileStructure.uuid}/charts/${this.lang}/${chart.name}.json`] -= 1;\n if (this.sourceCounts[`${this.configFileStructure.uuid}/charts/${this.lang}/${chart.name}.json`] === 0) {\n this.configFileStructure.charts[this.lang].remove(`${chart.name}.json`);\n }\n this.chartConfigs.splice(idx, 1);\n }\n this.onChartsEdited();\n }\n\n saveChanges(): void {\n if (this.edited) {\n this.panel.charts = this.chartConfigs; // option to delete config property as is redundant\n }\n this.edited = false;\n }\n\n onChartsEdited(): void {\n this.edited = true;\n this.$emit('slide-edit');\n }\n}\n","import { render } from \"./chart-editor.vue?vue&type=template&id=1bea39b8&ts=true\"\nimport script from \"./chart-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./chart-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./chart-editor.vue?vue&type=style&index=0&id=1bea39b8&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, vShow as _vShow, withDirectives as _withDirectives, vModelText as _vModelText, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-56f26618\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"block\" }\nconst _hoisted_2 = { class: \"flex drag-label cursor-pointer\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block pr-4\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"48\",\n height: \"48\",\n viewBox: \"0 0 24 24\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M14 9l-2.519 4-2.481-1.96-5 6.96h16l-6-9zm8-5v16h-20v-16h20zm2-2h-24v20h24v-20zm-20 6c0-1.104.896-2 2-2s2 .896 2 2c0 1.105-.896 2-2 2s-2-.895-2-2z\" })\n ])\n], -1))\nconst _hoisted_4 = { class: \"align-middle inline-block\" }\nconst _hoisted_5 = { class: \"text-blue-400 font-bold\" }\nconst _hoisted_6 = { class: \"flex justify-center\" }\nconst _hoisted_7 = { class: \"flex mt-4 items-center w-full text-left\" }\nconst _hoisted_8 = { class: \"text-label\" }\nconst _hoisted_9 = [\"onUpdate:modelValue\"]\nconst _hoisted_10 = { class: \"flex mt-4 items-center w-full text-left\" }\nconst _hoisted_11 = { class: \"text-label\" }\nconst _hoisted_12 = [\"onUpdate:modelValue\"]\nconst _hoisted_13 = { class: \"flex items-center w-full text-left\" }\nconst _hoisted_14 = { class: \"text-label\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ImagePreview = _resolveComponent(\"ImagePreview\")!\n const _component_draggable = _resolveComponent(\"draggable\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"upload-image text-center m-5 p-12 bg-blue-100 border-4 border-dashed border-blue-300\", { dragging: _ctx.isDragging }]),\n onDragover: _cache[1] || (_cache[1] = _withModifiers(() => (_ctx.dragging = true), [\"prevent\"])),\n onDragleave: _cache[2] || (_cache[2] = _withModifiers(() => (_ctx.dragging = false), [\"prevent\"])),\n onDrop: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.dropImages($event)), [\"prevent\"]))\n }, [\n _createElementVNode(\"label\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.$t('editor.image.label.drag')), 1),\n _createElementVNode(\"div\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('editor.image.label.or')) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t('editor.image.label.browse')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('editor.image.label.upload')), 1)\n ])\n ]),\n _createElementVNode(\"input\", {\n type: \"file\",\n class: \"cursor-pointer\",\n onChange: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onFileChange && _ctx.onFileChange(...args))),\n multiple: \"multiple\"\n }, null, 32)\n ])\n ])\n ], 34),\n _withDirectives(_createElementVNode(\"span\", _hoisted_6, [\n _createElementVNode(\"i\", null, _toDisplayString(_ctx.$t('editor.image.reorder')), 1)\n ], 512), [\n [_vShow, !_ctx.imagePreviewsLoading && _ctx.imagePreviews.length]\n ]),\n _withDirectives(_createVNode(_component_draggable, {\n modelValue: _ctx.imagePreviews,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.imagePreviews) = $event)),\n class: \"flex flex-wrap list-none border my-4\",\n onUpdate: _ctx.onImagesEdited,\n \"item-key\": \"id\"\n }, {\n item: _withCtx(({ element, index }) => [\n (_openBlock(), _createBlock(_component_ImagePreview, {\n key: `${element.id}-${index}`,\n imageFile: element,\n onDelete: _ctx.deleteImage\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('editor.image.altTag')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"w-4/5\",\n type: \"text\",\n \"onUpdate:modelValue\": ($event: any) => ((element.altText) = $event),\n onChange: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.onImagesEdited && _ctx.onImagesEdited(...args)))\n }, null, 40, _hoisted_9), [\n [_vModelText, element.altText]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('editor.image.label.caption')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"w-4/5\",\n type: \"text\",\n \"onUpdate:modelValue\": ($event: any) => ((element.caption) = $event),\n onChange: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.onImagesEdited && _ctx.onImagesEdited(...args)))\n }, null, 40, _hoisted_12), [\n [_vModelText, element.caption]\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"imageFile\", \"onDelete\"]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate\"]), [\n [_vShow, !_ctx.imagePreviewsLoading && _ctx.imagePreviews.length]\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"label\", _hoisted_14, _toDisplayString(_ctx.$t('editor.image.slideshowCaption')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"w-3/5\",\n type: \"text\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.slideshowCaption) = $event)),\n onChange: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.onImagesEdited && _ctx.onImagesEdited(...args)))\n }, null, 544), [\n [_vModelText, _ctx.slideshowCaption]\n ])\n ], 512), [\n [_vShow, _ctx.imagePreviews.length > 1]\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, renderSlot as _renderSlot, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5bdf84fc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"image-item items-center my-8 mx-4 overflow-hidden\" }\nconst _hoisted_2 = { class: \"relative items-center justify-center text-center w-full grabbable\" }\nconst _hoisted_3 = [\"content\"]\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n height: \"24px\",\n width: \"24px\",\n viewBox: \"0 0 352 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\" })\n], -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = { class: \"flex-grow image-container\" }\nconst _hoisted_7 = [\"title\", \"src\", \"alt\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n class: \"bg-white absolute h-6 w-6 leading-5 rounded-full top-0 right-0 p-0 cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = () => _ctx.$emit('delete', _ctx.imageFile)),\n content: _ctx.$t('editor.image.delete')\n }, _hoisted_5, 8, _hoisted_3)), [\n [_directive_tippy, { placement: 'top', hideOnClick: false, animateFill: true }]\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"img\", {\n class: \"image-file object-cover\",\n title: _ctx.imageFile.id,\n src: _ctx.imageFile.src,\n alt: _ctx.imageFile.altText\n }, null, 8, _hoisted_7)\n ])\n ]),\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ]))\n}","\nimport { Prop, Vue } from 'vue-property-decorator';\nimport { ImageFile } from '@/definitions';\n\nexport default class ImagePreviewV extends Vue {\n @Prop() imageFile!: ImageFile;\n}\n","import { render } from \"./image-preview.vue?vue&type=template&id=5bdf84fc&scoped=true&ts=true\"\nimport script from \"./image-preview.vue?vue&type=script&lang=ts\"\nexport * from \"./image-preview.vue?vue&type=script&lang=ts\"\n\nimport \"./image-preview.vue?vue&type=style&index=0&id=5bdf84fc&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5bdf84fc\"]])\n\nexport default __exports__","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { ConfigFileStructure, ImageFile, ImagePanel, PanelType, SlideshowPanel, SourceCounts } from '@/definitions';\nimport draggable from 'vuedraggable';\nimport ImagePreviewV from '@/components/editor/helpers/image-preview.vue';\n\n@Options({\n components: {\n ImagePreview: ImagePreviewV,\n draggable\n }\n})\nexport default class ImageEditorV extends Vue {\n @Prop() panel!: SlideshowPanel;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n dragging = false;\n edited = false;\n\n imagePreviewsLoading = false;\n imagePreviewPromises = [] as Array>;\n imagePreviews = [] as Array;\n slideshowCaption = '';\n\n get isDragging(): boolean {\n return this.dragging;\n }\n\n mounted(): void {\n if (this.panel.images !== undefined && this.panel.images.length) {\n // Set images as loading until they are all loaded and resolve.\n this.imagePreviewsLoading = true;\n\n // Process each existing image.\n this.panel.images.map((image: ImagePanel) => {\n // Check if the config file exists in the ZIP folder first.\n const assetSrc = `${image.src.substring(image.src.indexOf('/') + 1)}`;\n const filename = image.src.replace(/^.*[\\\\/]/, '');\n\n const assetFile = this.configFileStructure.zip.file(assetSrc);\n if (assetFile) {\n this.imagePreviewPromises.push(\n assetFile.async('blob').then((res: Blob) => {\n return {\n ...image,\n id: filename ? filename : image.src,\n src: URL.createObjectURL(res)\n } as ImageFile;\n })\n );\n }\n });\n\n // Once all images have been retrieved, display them.\n Promise.all(this.imagePreviewPromises).then((res) => {\n this.imagePreviews = res;\n this.imagePreviewsLoading = false;\n });\n\n this.slideshowCaption = this.panel.caption as string;\n }\n }\n\n onFileChange(e: Event): void {\n // create object URL(s) to display image(s)\n const filelist = Array.from((e.target as HTMLInputElement).files as ArrayLike);\n this.imagePreviews.push(\n ...filelist.map((file: File) => {\n // Add the uploaded images to the product ZIP file.\n const uploadSource = `${this.configFileStructure.uuid}/assets/${this.lang}/${file.name}`;\n this.configFileStructure.assets[this.lang].file(file.name, file);\n\n if (this.sourceCounts[uploadSource]) {\n this.sourceCounts[uploadSource] += 1;\n } else {\n this.sourceCounts[uploadSource] = 1;\n }\n\n let imageSrc = URL.createObjectURL(file);\n return {\n id: file.name,\n altText: '',\n caption: '',\n src: imageSrc\n };\n })\n );\n this.onImagesEdited();\n }\n\n dropImages(e: DragEvent): void {\n if (e.dataTransfer !== null) {\n const files = [...e.dataTransfer.files];\n this.imagePreviews.push(\n ...files.map((file: File) => {\n // Add the uploaded images to the product ZIP file.\n const uploadSource = `${this.configFileStructure.uuid}/assets/${this.lang}/${file.name}`;\n this.configFileStructure.assets[this.lang].file(file.name, file);\n\n if (this.sourceCounts[uploadSource]) {\n this.sourceCounts[uploadSource] += 1;\n } else {\n this.sourceCounts[uploadSource] = 1;\n }\n\n let imageSrc = URL.createObjectURL(file);\n return {\n id: file.name,\n altText: '',\n caption: '',\n src: imageSrc\n };\n })\n );\n this.dragging = false;\n }\n this.onImagesEdited();\n }\n\n deleteImage(img: ImageFile): void {\n const idx = this.imagePreviews.findIndex((file: ImageFile) => file.id === img.id);\n if (idx !== -1) {\n const fileSource = `${this.configFileStructure.uuid}/assets/${this.lang}/${this.imagePreviews[idx].id}`;\n\n // Remove the image from the product ZIP file.\n this.sourceCounts[fileSource] -= 1;\n if (this.sourceCounts[fileSource] === 0) {\n this.configFileStructure.assets[this.lang].remove(this.imagePreviews[idx].id);\n URL.revokeObjectURL(this.imagePreviews[idx].src);\n }\n this.imagePreviews.splice(idx, 1);\n }\n this.onImagesEdited();\n }\n\n saveChanges(): void {\n if (this.edited) {\n this.panel.images = this.imagePreviews.map((imageFile: ImageFile) => {\n return {\n ...imageFile,\n src: `${this.configFileStructure.uuid}/assets/${this.lang}/${imageFile.id}`,\n type: PanelType.Image\n };\n });\n this.panel.caption = this.slideshowCaption ?? undefined;\n }\n this.edited = false;\n }\n\n onImagesEdited(): void {\n this.edited = true;\n this.$emit('slide-edit');\n }\n}\n","import { render } from \"./image-editor.vue?vue&type=template&id=56f26618&scoped=true&ts=true\"\nimport script from \"./image-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./image-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./image-editor.vue?vue&type=style&index=0&id=56f26618&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-56f26618\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b0fb221e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex flex-col mt-4\" }\nconst _hoisted_2 = { class: \"text-left\" }\nconst _hoisted_3 = { class: \"text-left mt-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_v_md_editor = _resolveComponent(\"v-md-editor\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", _hoisted_2, _toDisplayString(_ctx.$t('editor.slides.panel.title')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.panel.title) = $event))\n }, null, 512), [\n [_vModelText, _ctx.panel.title]\n ]),\n _createElementVNode(\"label\", _hoisted_3, _toDisplayString(_ctx.$t('editor.slides.panel.body')) + \":\", 1),\n _createVNode(_component_v_md_editor, {\n modelValue: _ctx.panel.content,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.panel.content) = $event)),\n height: \"400px\",\n \"left-toolbar\": \"undo redo clear | h bold italic strikethrough quote subsuper | ul ol table hr | addLink image code | save\",\n toolbar: _ctx.toolbar\n }, null, 8, [\"modelValue\", \"toolbar\"])\n ]))\n}","\nimport { Prop, Vue } from 'vue-property-decorator';\nimport { TextPanel } from '@/definitions';\n\ninterface MDEditor {\n insert(callback: (selected: string) => { text: string; selected: string }): void;\n}\n\nexport default class TextEditorV extends Vue {\n @Prop() panel!: TextPanel;\n\n toolbar = {\n subsuper: {\n title: 'Superscript/Subscript',\n text: 'T',\n menus: [\n {\n name: 'Superscript',\n text: 'Superscript',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `${content}`,\n selected: selected\n };\n });\n }\n },\n {\n name: 'Subscript',\n text: 'Subscript',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `${content}`,\n selected: selected\n };\n });\n }\n }\n ]\n },\n addLink: {\n title: 'Insert Link',\n icon: 'v-md-icon-link',\n menus: [\n {\n name: 'Add External Link (New Tab)',\n text: 'Add External Link (New Tab)',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `[${content}](http://)`,\n selected: selected\n };\n });\n }\n },\n {\n name: 'Add External Link (Same Tab)',\n text: 'Add External Link (Same Tab)',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `${content}`,\n selected: selected\n };\n });\n }\n },\n {\n name: 'Add Dynamic Link',\n text: 'Add Dynamic Link',\n action(editor: MDEditor): void {\n editor.insert((selected: string) => {\n const content = selected || ``;\n\n return {\n text: `${content}`,\n selected: selected\n };\n });\n }\n }\n ]\n }\n };\n}\n","import { render } from \"./text-editor.vue?vue&type=template&id=b0fb221e&scoped=true&ts=true\"\nimport script from \"./text-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./text-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./text-editor.vue?vue&type=style&index=0&id=b0fb221e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b0fb221e\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, vModelCheckbox as _vModelCheckbox, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-681c9c6b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex flex-col\" }\nconst _hoisted_2 = { class: \"text-left\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"mt-6\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-6\" }, null, -1))\nconst _hoisted_6 = { class: \"mt-6\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"mx-4\" }, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_9 = {\n key: 1,\n class: \"mb-4\"\n}\nconst _hoisted_10 = { class: \"flex justify-between mb-4\" }\nconst _hoisted_11 = { class: \"mt-2\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"iframe\", {\n src: \"scripts/ramp-editor/samples/fgpv-author.html\",\n style: {\"width\":\"70vw\",\"height\":\"100vh\"},\n id: \"RAMPeditorframe\"\n}, null, -1))\nconst _hoisted_13 = { key: 1 }\nconst _hoisted_14 = { class: \"text-left mt-2\" }\nconst _hoisted_15 = { class: \"flex flex-row items-center\" }\nconst _hoisted_16 = {\n key: 0,\n class: \"flex flex-wrap list-none justify-center\"\n}\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"add-map\" }, null, -1))\nconst _hoisted_18 = { key: 2 }\nconst _hoisted_19 = { class: \"text-left mt-2\" }\nconst _hoisted_20 = { class: \"flex flex-wrap list-none justify-center\" }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"edit-map\" }, null, -1))\nconst _hoisted_22 = {\n slot: \"header\",\n class: \"text-lg font-bold\"\n}\nconst _hoisted_23 = { class: \"w-full flex justify-end\" }\nconst _hoisted_24 = [\"disabled\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_time_slider_editor = _resolveComponent(\"time-slider-editor\")!\n const _component_vue_final_modal = _resolveComponent(\"vue-final-modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", _hoisted_2, _toDisplayString(_ctx.$t('editor.map.title')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.panel.title) = $event))\n }, null, 512), [\n [_vModelText, _ctx.panel.title]\n ]),\n (_ctx.status === 'editing')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"label\", _hoisted_4, _toDisplayString(_ctx.$t('editor.map.scrollguard.enable')) + \":\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n onChange: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.saveScrollguard && _ctx.saveScrollguard(...args))),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.panel.scrollguard) = $event))\n }, null, 544), [\n [_vModelCheckbox, _ctx.panel.scrollguard]\n ]),\n _hoisted_5,\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('editor.map.timeslider.enable')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n onChange: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.saveTimeSlider && _ctx.saveTimeSlider(...args))),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.usingTimeSlider) = $event))\n }, null, 544), [\n [_vModelCheckbox, _ctx.usingTimeSlider]\n ]),\n _hoisted_7,\n (_ctx.usingTimeSlider)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$vfm.open('time-slider-edit-modal'))),\n class: \"bg-black text-white hover:bg-gray-800 mt-3\"\n }, _toDisplayString(_ctx.$t('editor.map.timeslider.edit')), 1))\n : _createCommentVNode(\"\", true),\n _hoisted_8,\n (_ctx.usingTimeSlider)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('editor.map.edit')) + \":\", 1),\n _createElementVNode(\"button\", {\n class: \"border border-black hover:bg-gray-100\",\n onClick: _cache[6] || (_cache[6] = \n () => {\n _ctx.status = 'default';\n }\n )\n }, _toDisplayString(_ctx.$t('editor.map.edit.cancel')), 1)\n ]),\n _hoisted_12\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.status === 'creating')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"label\", _hoisted_14, _toDisplayString(_ctx.$t('editor.map.label.name')) + \"*:\", 1),\n _createElementVNode(\"div\", _hoisted_15, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.newFileName) = $event))\n }, null, 512), [\n [_vModelText, _ctx.newFileName]\n ]),\n _createTextVNode(\".json\")\n ]),\n (_ctx.newFileName != '')\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_16, [\n _createElementVNode(\"li\", {\n class: \"map-item items-center my-8 mx-5 overflow-hidden\",\n onClick: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.createNewConfig && _ctx.createNewConfig(...args)))\n }, [\n _hoisted_17,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('editor.map.label.create')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.status === 'default')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _createElementVNode(\"label\", _hoisted_19, _toDisplayString(_ctx.$t('editor.map.edit')) + \":\", 1),\n _createElementVNode(\"ul\", _hoisted_20, [\n _createElementVNode(\"li\", {\n class: \"map-item items-center my-8 mx-5 overflow-hidden\",\n onClick: _cache[9] || (_cache[9] = \n//@ts-ignore\n(...args) => (_ctx.openEditor && _ctx.openEditor(...args)))\n }, [\n _hoisted_21,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('editor.map.label.edit')), 1)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_vue_final_modal, {\n modalId: \"time-slider-edit-modal\",\n \"content-class\": \"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2\",\n class: \"flex justify-center items-center\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_22, _toDisplayString(_ctx.$t('editor.map.timeslider.edit')), 1),\n _createVNode(_component_time_slider_editor, {\n config: _ctx.timeSliderConf,\n error: _ctx.timeSliderError,\n onTimeSliderChanged: _ctx.onTimeSliderInput\n }, null, 8, [\"config\", \"error\", \"onTimeSliderChanged\"]),\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"button\", {\n class: _normalizeClass(_ctx.timeSliderError ? '' : 'bg-black text-white hover:bg-gray-800'),\n disabled: _ctx.timeSliderError,\n onClick: _cache[10] || (_cache[10] = \n//@ts-ignore\n(...args) => (_ctx.saveTimeSlider && _ctx.saveTimeSlider(...args)))\n }, \" Done \", 10, _hoisted_24)\n ])\n ]),\n _: 1\n })\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6923af36\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"px-5\" }\nconst _hoisted_2 = { class: \"flex items-center\" }\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = { class: \"mx-3\" }\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_7 = { class: \"flex items-center\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"mx-3\" }\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_12 = {\n key: 0,\n class: \"border-black border-2 p-3 w-2/3\"\n}\nconst _hoisted_13 = { class: \"w-full\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_15 = { class: \"list-disc my-2 ml-8\" }\nconst _hoisted_16 = { key: 1 }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_20 = [\"value\"]\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.range')), 1),\n _createElementVNode(\"input\", {\n type: \"number\",\n value: _ctx.config.range[0],\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('time-slider-changed', 'range', 0, $event.target.value)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('editor.map.timeslider.to')), 1),\n _createElementVNode(\"input\", {\n type: \"number\",\n value: _ctx.config.range[1],\n onInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('time-slider-changed', 'range', 1, $event.target.value)))\n }, null, 40, _hoisted_5)\n ]),\n _hoisted_6,\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.start')), 1),\n _createElementVNode(\"input\", {\n class: \"ml-3\",\n type: \"number\",\n value: _ctx.config.start[0],\n onInput: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('time-slider-changed', 'start', 0, $event.target.value)))\n }, null, 40, _hoisted_8),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('editor.map.timeslider.to')), 1),\n _createElementVNode(\"input\", {\n type: \"number\",\n value: _ctx.config.start[1],\n onInput: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('time-slider-changed', 'start', 1, $event.target.value)))\n }, null, 40, _hoisted_10)\n ]),\n _hoisted_11,\n (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('editor.map.timeslider.warning')), 1),\n _hoisted_14,\n _createElementVNode(\"ul\", _hoisted_15, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.warning.bullet1')), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.warning.bullet2')), 1)\n ]),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.warning.end')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"br\", _hoisted_16))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.attribute')), 1),\n _createElementVNode(\"input\", {\n value: _ctx.config.attribute,\n onInput: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('time-slider-changed', 'attribute', undefined, $event.target.value)))\n }, null, 40, _hoisted_17)\n ]),\n _hoisted_18,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.map.timeslider.layers')), 1),\n _hoisted_19,\n _createElementVNode(\"input\", {\n class: \"w-full\",\n value: _ctx.config.layers || '',\n onInput: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('time-slider-changed', 'layers', undefined, $event.target.value)))\n }, null, 40, _hoisted_20)\n ]),\n _hoisted_21,\n _hoisted_22\n ]))\n}","\nimport { TimeSliderConfig } from '@/definitions';\nimport { Prop, Vue } from 'vue-property-decorator';\n\nexport default class TimeSliderEditorV extends Vue {\n @Prop() config!: TimeSliderConfig;\n @Prop() error!: boolean;\n}\n","import { render } from \"./time-slider-editor.vue?vue&type=template&id=6923af36&scoped=true&ts=true\"\nimport script from \"./time-slider-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./time-slider-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./time-slider-editor.vue?vue&type=style&index=0&id=6923af36&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6923af36\"]])\n\nexport default __exports__","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { ConfigFileStructure, MapPanel, SourceCounts, TimeSliderConfig } from '@/definitions';\nimport { VueFinalModal } from 'vue-final-modal';\nimport defaultConfigEn from '../../../public/scripts/ramp-editor/samples/map_en.json';\nimport defaultConfigFr from '../../../public/scripts/ramp-editor/samples/map_fr.json';\nimport TimeSliderEditorV from './helpers/time-slider-editor.vue';\n\n@Options({\n components: {\n 'time-slider-editor': TimeSliderEditorV,\n 'vue-final-modal': VueFinalModal\n }\n})\nexport default class MapEditorV extends Vue {\n @Prop() panel!: MapPanel;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n // For creating new files.\n newFileName = '';\n\n // TimeSlider\n usingTimeSlider = !!this.panel.timeSlider;\n timeSliderError = false;\n timeSliderConf: TimeSliderConfig = { range: [], start: [], attribute: '' };\n status = this.panel.config !== '' ? 'default' : 'creating';\n strippedFileName = this.panel.config !== '' ? this.panel.config.split('/')[3].split('.')[0] : '';\n\n mounted(): void {\n // If a message is received, it means the map save button was pressed.\n window.addEventListener('message', this.saveEditor);\n this.timeSliderConf = JSON.parse(\n JSON.stringify({\n range: this.panel.timeSlider?.range ?? [1000, new Date().getFullYear()],\n start: this.panel.timeSlider?.start ?? [1000, new Date().getFullYear()],\n attribute: this.panel.timeSlider?.attribute ?? ''\n })\n );\n this.validateTimeSlider();\n }\n\n beforeDestroy(): void {\n window.removeEventListener('message', this.saveEditor);\n }\n\n createNewConfig(): void {\n // Update the path to the new file.\n // TODO: ensure that this is not a name already in use?\n this.panel.config = `${this.configFileStructure.uuid}/ramp-config/${this.lang}/${this.newFileName}.json`;\n this.strippedFileName = this.panel.config.split('/')[3].split('.')[0];\n\n if (this.sourceCounts[this.panel.config]) {\n this.sourceCounts[this.panel.config] += 1;\n } else {\n this.sourceCounts[this.panel.config] = 1;\n }\n\n // Create the new map configuration file in the ZIP folder. Copies the `config-default.json` file from the `ramp-editor` folder and renames it.\n this.configFileStructure.rampConfig[this.lang].file(\n `${this.strippedFileName}.json`,\n JSON.stringify(this.lang === 'en' ? defaultConfigEn : defaultConfigFr, null, 4)\n );\n\n // Display the normal edit page now.\n this.status = 'default';\n }\n\n openEditor(): void {\n if (this.panel.config === '') {\n return;\n }\n // Fetch the map configuration and load it into the editor.\n this.status = 'editing';\n\n if (this.panel.config) {\n // Check if the config file exists in the ZIP folder first.\n const assetSrc = `${this.panel.config.substring(this.panel.config.indexOf('/') + 1)}`;\n const configFile = this.configFileStructure.zip.file(assetSrc);\n\n if (configFile) {\n configFile.async('string').then((res: string) => {\n window.config = res;\n const iframe = document.getElementById('RAMPeditorframe') as HTMLIFrameElement;\n if (iframe.contentWindow) {\n iframe.contentWindow.config = res;\n iframe.contentWindow.configname = this.strippedFileName;\n }\n });\n } else {\n // If it does not exist in the ZIP folder, try and fetch from server.\n fetch(this.panel.config).then((data) => {\n data.json().then((res) => {\n let stringResponse = JSON.stringify(res);\n\n window.config = stringResponse;\n const iframe = document.getElementById('RAMPeditorframe') as HTMLIFrameElement;\n if (iframe.contentWindow) {\n iframe.contentWindow.config = stringResponse;\n iframe.contentWindow.configname = this.strippedFileName;\n }\n });\n });\n }\n }\n }\n\n saveScrollguard($event: Event): void {\n this.panel.scrollguard = ($event.target as HTMLInputElement).checked;\n }\n\n saveTimeSlider(): void {\n if (!this.timeSliderError || !this.usingTimeSlider) {\n this.panel.timeSlider = this.usingTimeSlider ? this.timeSliderConf : undefined;\n }\n this.$emit('slide-edit');\n this.$vfm.close('time-slider-edit-modal');\n }\n\n saveEditor(e: MessageEvent): void {\n if (e.data === 'mapSaved') {\n this.status = 'default';\n\n // Add chart config to ZIP file.\n this.configFileStructure.rampConfig[this.lang].file(\n `${this.strippedFileName}.json`,\n JSON.stringify(JSON.parse(localStorage.RAMPconfig), null, 4)\n );\n\n this.$emit('slide-edit');\n }\n }\n\n onTimeSliderInput(property: 'range' | 'start' | 'attribute' | 'layers', index: number, value: string): void {\n if (property === 'layers') {\n if (!value || value === '') {\n delete this.timeSliderConf['layers'];\n } else {\n this.timeSliderConf['layers'] = value.split(',').map((layerId) => {\n return layerId.trim();\n });\n }\n } else {\n property === 'attribute'\n ? (this.timeSliderConf[property] = value)\n : (this.timeSliderConf[property][index] = Number(value));\n }\n this.validateTimeSlider();\n }\n\n validateTimeSlider(): void {\n this.timeSliderError =\n this.timeSliderConf.range.some((val) => val < 0 || !Number.isInteger(val)) ||\n this.timeSliderConf.start.some((val) => val < 0 || !Number.isInteger(val)) ||\n this.timeSliderConf.range[1] < this.timeSliderConf.range[0] ||\n this.timeSliderConf.start[1] < this.timeSliderConf.start[0];\n }\n}\n","import { render } from \"./map-editor.vue?vue&type=template&id=681c9c6b&scoped=true&ts=true\"\nimport script from \"./map-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./map-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./map-editor.vue?vue&type=style&index=0&id=681c9c6b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-681c9c6b\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"block py-20 align-middle text-center h-full\",\n style: {\"margin\":\"0 auto\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_spinner = _resolveComponent(\"spinner\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_spinner, {\n size: \"120px\",\n color: \"#009cd1\",\n style: {\"margin\":\"0 auto\"}\n })\n ]))\n}","\nimport { Options, Vue } from 'vue-property-decorator';\nimport { VueSpinnerOval } from 'vue3-spinners';\n\n@Options({\n components: {\n spinner: VueSpinnerOval\n }\n})\nexport default class LoadingPageV extends Vue {}\n","import { render } from \"./loading-page.vue?vue&type=template&id=f992d808&ts=true\"\nimport script from \"./loading-page.vue?vue&type=script&lang=ts\"\nexport * from \"./loading-page.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, vModelSelect as _vModelSelect } from \"vue\"\n\nconst _hoisted_1 = { class: \"block\" }\nconst _hoisted_2 = { class: \"flex\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = { class: \"w-2/3 mt-5\" }\nconst _hoisted_6 = { class: \"table-header\" }\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { class: \"table-add-row\" }\nconst _hoisted_10 = { class: \"flex flex-col items-center\" }\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { key: 0 }\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_17 = { class: \"font-bold text-xl\" }\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = () => _ctx.changePanel('text')),\n class: _normalizeClass([\"border hover:bg-gray-100\", _ctx.editingStatus === 'text' ? 'border-black' : 'border-gray-300'])\n }, _toDisplayString(_ctx.$t('dynamic.textSection')), 3),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = () => _ctx.changePanel('panels')),\n class: _normalizeClass([\"border hover:bg-gray-100\", _ctx.editingStatus !== 'text' ? 'border-black' : 'border-gray-300'])\n }, _toDisplayString(_ctx.$t('dynamic.panel.collection')), 3)\n ]),\n (_ctx.editingStatus === 'text')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(), _createBlock(_resolveDynamicComponent('text-editor'), {\n key: \"text\",\n panel: _ctx.panel,\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.lang\n }, null, 8, [\"panel\", \"configFileStructure\", \"lang\"]))\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.editingStatus === 'panels')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"table\", _hoisted_5, [\n _createElementVNode(\"tr\", _hoisted_6, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('dynamic.panel.id')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('dynamic.panel.type')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('dynamic.panel.actions')), 1)\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.panel.children, (item, idx) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n class: \"table-contents\",\n key: idx\n }, [\n _createElementVNode(\"td\", null, _toDisplayString(item.id), 1),\n _createElementVNode(\"td\", null, _toDisplayString(item.panel.type), 1),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", {\n onClick: () => _ctx.switchSlide(idx)\n }, _toDisplayString(_ctx.$t('editor.chart.label.edit')), 9, _hoisted_7),\n _createTextVNode(\" | \"),\n _createElementVNode(\"span\", {\n onClick: () => _ctx.removeSlide(idx)\n }, _toDisplayString(_ctx.$t('editor.remove')), 9, _hoisted_8)\n ])\n ]))\n }), 128)),\n _createElementVNode(\"tr\", _hoisted_9, [\n _createElementVNode(\"th\", _hoisted_10, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n placeholder: \"Enter Panel ID\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.newSlideName) = $event))\n }, null, 512), [\n [_vModelText, _ctx.newSlideName]\n ]),\n (_ctx.idUsed)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('dynamic.panel.idTaken')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"th\", null, [\n _withDirectives(_createElementVNode(\"select\", {\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.newSlideType) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_ctx.editors).filter((editor) => editor !== 'image'), (thing) => {\n return (_openBlock(), _createElementBlock(\"option\", { key: thing }, _toDisplayString(thing), 1))\n }), 128))\n ], 512), [\n [_vModelSelect, _ctx.newSlideType]\n ])\n ]),\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.createNewSlide && _ctx.createNewSlide(...args))),\n disabled: _ctx.idUsed\n }, \"Add New\", 8, _hoisted_12)\n ])\n ])\n ]),\n (_ctx.editingSlide !== -1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _hoisted_14,\n _hoisted_15,\n _hoisted_16,\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('dynamic.panel.editor')), 1),\n _hoisted_18,\n (_openBlock(), _createBlock(_resolveDynamicComponent(\n _ctx.editors[\n _ctx.panel.children[_ctx.editingSlide].panel.type === 'image'\n ? 'slideshow'\n : _ctx.panel.children[_ctx.editingSlide].panel.type\n ]\n ), {\n ref: \"slide\",\n key: _ctx.editingSlide + _ctx.panel.children[_ctx.editingSlide].panel.type,\n panel: _ctx.panel.children[_ctx.editingSlide].panel,\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.lang,\n sourceCounts: _ctx.sourceCounts\n }, null, 8, [\"panel\", \"configFileStructure\", \"lang\", \"sourceCounts\"]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport {\n ChartConfig,\n ChartPanel,\n ConfigFileStructure,\n DefaultConfigs,\n DynamicChildItem,\n DynamicPanel,\n ImagePanel,\n MapPanel,\n PanelType,\n SlideshowPanel,\n SourceCounts\n} from '@/definitions';\n\nimport ChartEditorV from './chart-editor.vue';\nimport ImageEditorV from './image-editor.vue';\nimport TextEditorV from './text-editor.vue';\nimport MapEditorV from './map-editor.vue';\n\n@Options({\n components: {\n 'chart-editor': ChartEditorV,\n 'image-editor': ImageEditorV,\n 'text-editor': TextEditorV,\n 'dynamic-editor': DynamicEditorV,\n 'map-editor': MapEditorV\n }\n})\nexport default class DynamicEditorV extends Vue {\n @Prop() panel!: DynamicPanel;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n editors: Record = {\n text: 'text-editor',\n image: 'image-editor',\n slideshow: 'image-editor',\n chart: 'chart-editor',\n map: 'map-editor'\n };\n\n startingConfig: DefaultConfigs = {\n text: {\n type: PanelType.Text,\n title: '',\n content: ''\n },\n dynamic: {\n type: PanelType.Dynamic,\n title: '',\n titleTag: '',\n content: '',\n children: []\n },\n slideshow: {\n type: PanelType.Slideshow,\n images: []\n },\n chart: {\n type: PanelType.Chart,\n charts: []\n },\n map: {\n type: PanelType.Map,\n config: '',\n title: '',\n scrollguard: false\n }\n };\n\n editingStatus = 'text';\n editingSlide = -1;\n\n newSlideName = '';\n newSlideType = 'text';\n\n get idUsed(): boolean {\n return this.panel.children.some((ch: DynamicChildItem) => ch.id === this.newSlideName);\n }\n\n changePanel(target: string): void {\n this.saveChanges();\n this.editingStatus = target;\n }\n\n switchSlide(idx: number): void {\n // Save slide changes if neccessary and switch to the newly selected slide.\n this.saveChanges();\n this.editingSlide = idx;\n\n // Image Panel to Slideshow Panel Conversion\n if (this.panel.children[this.editingSlide].panel.type === 'image') {\n (this.panel.children[this.editingSlide].panel as SlideshowPanel) = {\n type: PanelType.Slideshow,\n images: [this.panel.children[this.editingSlide].panel as ImagePanel]\n };\n }\n }\n\n removeSlide(item: number): void {\n const panel = this.panel.children.find((panel: DynamicChildItem, idx: number) => idx === item)?.panel;\n\n // Update source counts based on which panel is removed.\n switch (panel?.type) {\n case 'map': {\n const mapPanel = panel as MapPanel;\n this.sourceCounts[mapPanel.config] -= 1;\n if (this.sourceCounts[mapPanel.config] === 0) {\n this.configFileStructure.zip.remove(\n `${mapPanel.config.substring(mapPanel.config.indexOf('/') + 1)}`\n );\n }\n break;\n }\n\n case 'chart': {\n const chartPanel = panel as ChartPanel;\n chartPanel.charts.forEach((chart: ChartConfig) => {\n this.sourceCounts[chart.src] -= 1;\n if (this.sourceCounts[chart.src] === 0) {\n this.configFileStructure.zip.remove(`${chart.src.substring(chart.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'slideshow': {\n const slideshowPanel = panel as SlideshowPanel;\n slideshowPanel.images.forEach((image: ImagePanel) => {\n this.sourceCounts[image.src] -= 1;\n if (this.sourceCounts[image.src] === 0) {\n this.configFileStructure.zip.remove(`${image.src.substring(image.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n }\n\n // Remove the panel itself.\n this.panel.children = this.panel.children.filter((panel: DynamicChildItem, idx: number) => idx !== item);\n\n // If the slide being removed is the currently selected slide, unselect it.\n if (this.editingSlide === item) {\n this.editingSlide = -1;\n }\n }\n\n createNewSlide(): void {\n if (!this.newSlideName) return;\n\n const newConfig = {\n id: this.newSlideName,\n panel: JSON.parse(JSON.stringify(this.startingConfig[this.newSlideType as keyof DefaultConfigs]))\n };\n\n this.newSlideName = '';\n this.panel.children.push(newConfig);\n }\n\n saveChanges(): void {\n this.$nextTick(() => {\n if (\n this.$refs.slide !== undefined &&\n typeof (this.$refs.slide as ImageEditorV | ChartEditorV).saveChanges === 'function'\n ) {\n (this.$refs.slide as ImageEditorV | ChartEditorV).saveChanges();\n }\n });\n }\n}\n","import { render } from \"./dynamic-editor.vue?vue&type=template&id=2385e538&ts=true\"\nimport script from \"./dynamic-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./dynamic-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./dynamic-editor.vue?vue&type=style&index=0&id=2385e538&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { Options, Prop, Vue, Watch } from 'vue-property-decorator';\nimport {\n BasePanel,\n ChartConfig,\n ChartPanel,\n ConfigFileStructure,\n DefaultConfigs,\n DynamicChildItem,\n DynamicPanel,\n ImagePanel,\n MapPanel,\n PanelType,\n Slide,\n SlideshowPanel,\n SourceCounts,\n StoryRampConfig,\n TextPanel\n} from '@/definitions';\n\nimport ChartEditorV from './chart-editor.vue';\nimport ImageEditorV from './image-editor.vue';\nimport TextEditorV from './text-editor.vue';\nimport MapEditorV from './map-editor.vue';\nimport LoadingPageV from './helpers/loading-page.vue';\nimport DynamicEditorV from './dynamic-editor.vue';\nimport ConfirmationModalV from './helpers/confirmation-modal.vue';\n\n@Options({\n components: {\n 'chart-editor': ChartEditorV,\n 'image-editor': ImageEditorV,\n 'text-editor': TextEditorV,\n 'map-editor': MapEditorV,\n 'loading-page': LoadingPageV,\n 'dynamic-editor': DynamicEditorV,\n 'confirmation-modal': ConfirmationModalV\n }\n})\nexport default class SlideEditorV extends Vue {\n config: StoryRampConfig | undefined = undefined;\n @Prop() currentSlide!: Slide;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() uid!: string;\n @Prop() slideIndex!: number;\n @Prop() isLast!: boolean;\n @Prop() sourceCounts!: SourceCounts;\n\n panelIndex = 0;\n newType = '';\n rightOnly = false;\n\n editors: Record = {\n text: 'text-editor',\n image: 'image-editor',\n slideshow: 'image-editor',\n chart: 'chart-editor',\n map: 'map-editor',\n loading: 'loading-page',\n dynamic: 'dynamic-editor'\n };\n\n @Watch('currentSlide', { deep: true })\n onSlideChange(): void {\n this.currentSlide ? (this.rightOnly = this.currentSlide.panel.length === 1) : false;\n }\n\n changePanelType(prevType: string, newType: string): void {\n const startingConfig: DefaultConfigs = {\n text: {\n type: PanelType.Text,\n title: '',\n content: ''\n },\n dynamic: {\n type: PanelType.Dynamic,\n title:\n this.currentSlide.panel[0] && prevType === 'text'\n ? (this.currentSlide.panel[0] as TextPanel).title\n : '',\n titleTag: '',\n content:\n this.currentSlide.panel[0] && prevType === 'text'\n ? (this.currentSlide.panel[0] as TextPanel).content\n : '',\n children: []\n },\n slideshow: {\n type: PanelType.Slideshow,\n images: []\n },\n chart: {\n type: PanelType.Chart,\n charts: []\n },\n map: {\n type: PanelType.Map,\n config: '',\n title: '',\n scrollguard: false\n }\n };\n\n // Before swapping panel type, update sources from the to-be-deleted config.\n this.currentSlide.panel.forEach((panel: BasePanel) => this.removeSourceCounts(panel));\n\n // When switching to a dynamic panel, remove the secondary panel.\n if (newType === 'dynamic') {\n this.panelIndex = 0;\n this.currentSlide['panel'] = [startingConfig[newType as keyof DefaultConfigs]];\n } else {\n // Switching panel type when dynamic panels are not involved.\n this.currentSlide.panel[this.panelIndex] = startingConfig[newType as keyof DefaultConfigs];\n }\n }\n\n removeSourceCounts(panel: BasePanel): void {\n // The provided panel is being removed. Update source counts accordingly.\n switch (panel.type) {\n case 'map': {\n const mapPanel = panel as MapPanel;\n this.sourceCounts[mapPanel.config] -= 1;\n if (this.sourceCounts[mapPanel.config] === 0) {\n this.configFileStructure.zip.remove(\n `${mapPanel.config.substring(mapPanel.config.indexOf('/') + 1)}`\n );\n }\n break;\n }\n\n case 'chart': {\n const chartPanel = panel as ChartPanel;\n chartPanel.charts.forEach((chart: ChartConfig) => {\n this.sourceCounts[chart.src] -= 1;\n if (this.sourceCounts[chart.src] === 0) {\n this.configFileStructure.zip.remove(`${chart.src.substring(chart.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'slideshow': {\n const slideshowPanel = panel as SlideshowPanel;\n slideshowPanel.images.forEach((image: ImagePanel) => {\n this.sourceCounts[image.src] -= 1;\n if (this.sourceCounts[image.src] === 0) {\n this.configFileStructure.zip.remove(`${image.src.substring(image.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'dynamic': {\n const dynamicPanel = panel as DynamicPanel;\n dynamicPanel.children.forEach((subPanel: DynamicChildItem) => {\n this.removeSourceCounts(subPanel.panel);\n });\n break;\n }\n }\n }\n\n saveChanges(): void {\n this.$nextTick(() => {\n if (\n this.$refs.editor !== undefined &&\n typeof (this.$refs.editor as ImageEditorV | ChartEditorV).saveChanges === 'function'\n ) {\n (this.$refs.editor as ImageEditorV | ChartEditorV).saveChanges();\n }\n });\n }\n\n selectSlide(index: number): void {\n this.$emit('slide-change', index);\n }\n\n cancelTypeChange(): void {\n (this.$refs.typeSelector as HTMLSelectElement).value = this.currentSlide.panel[this.panelIndex].type;\n }\n\n toggleRightOnly(): void {\n this.saveChanges();\n if (this.rightOnly) {\n this.panelIndex = 0;\n this.currentSlide['panel'] = [this.currentSlide.panel[1]];\n } else {\n this.currentSlide['panel'] = [\n Object.assign(\n {},\n {\n type: PanelType.Text,\n title: '',\n content: ''\n }\n ),\n Object.assign({}, this.currentSlide.panel[0])\n ];\n }\n }\n}\n","import { render } from \"./slide-editor.vue?vue&type=template&id=ecc4f964&scoped=true&ts=true\"\nimport script from \"./slide-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./slide-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./slide-editor.vue?vue&type=style&index=0&id=ecc4f964&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ecc4f964\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, resolveDirective as _resolveDirective, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-50ad0d19\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex toc-header p-2 mt-10\" }\nconst _hoisted_2 = { class: \"flex items-center justify-center font-bold\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"flex-1\" }, null, -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-auto\" }, null, -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block px-1\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\",\n viewBox: \"0 0 24 24\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M24 10h-10v-10h-4v10h-10v4h10v10h4v-10h10z\" })\n ])\n], -1))\nconst _hoisted_6 = { class: \"align-middle inline-block\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"24\",\n width: \"24\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z\" })\n], -1))\nconst _hoisted_8 = [\n _hoisted_7\n]\nconst _hoisted_9 = {\n slot: \"header\",\n class: \"text-xl font-bold\"\n}\nconst _hoisted_10 = { class: \"flex flex-col\" }\nconst _hoisted_11 = { class: \"text-lg font-bold my-6\" }\nconst _hoisted_12 = { class: \"flex\" }\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = [\"onClick\"]\nconst _hoisted_15 = { class: \"self-center overflow-ellipsis whitespace-nowrap overflow-hidden flex-grow ml-2\" }\nconst _hoisted_16 = { class: \"font-bold overflow-hidden\" }\nconst _hoisted_17 = { class: \"flex\" }\nconst _hoisted_18 = { class: \"flex flex-col\" }\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 24 24\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M3 6l3 18h12l3-18h-18zm19-4v2h-20v-2h5.711c.9 0 1.631-1.099 1.631-2h5.316c0 .901.73 2 1.631 2h5.711z\" })\n], -1))\nconst _hoisted_21 = [\n _hoisted_20\n]\nconst _hoisted_22 = [\"onClick\"]\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"24\",\n width: \"24\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z\" })\n], -1))\nconst _hoisted_24 = [\n _hoisted_23\n]\nconst _hoisted_25 = { class: \"flex flex-col mr-2 ml-1 my-1\" }\nconst _hoisted_26 = [\"onClick\", \"disabled\"]\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"fill-current\",\n height: \"20\",\n width: \"20\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"m2 16 8-12 8 12Z\" })\n], -1))\nconst _hoisted_28 = [\n _hoisted_27\n]\nconst _hoisted_29 = [\"onClick\", \"disabled\"]\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"fill-current\",\n height: \"20\",\n width: \"20\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"m2 16 8-12 8 12Z\" })\n], -1))\nconst _hoisted_31 = [\n _hoisted_30\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_vue_final_modal = _resolveComponent(\"vue-final-modal\")!\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n const _component_draggable = _resolveComponent(\"draggable\")!\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.$t('editor.slides.title')), 1),\n _hoisted_3,\n _hoisted_4,\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.addNewSlide && _ctx.addNewSlide(...args)))\n }, [\n _hoisted_5,\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_ctx.$t('editor.slides.addSlide')), 1)\n ]),\n _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$vfm.open(`copy-from-other-lang`)), [\"stop\"]))\n }, _hoisted_8)), [\n [_directive_tippy, {\n delay: '200',\n placement: 'right',\n content: _ctx.$t('editor.slides.copyFromLang'),\n animateFill: true\n }]\n ]),\n _createVNode(_component_vue_final_modal, {\n modalId: \"copy-from-other-lang\",\n \"content-class\": \"flex flex-col max-w-xl mx-4 p-4 bg-white border rounded-lg space-y-2\",\n class: \"flex justify-center items-center\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_9, _toDisplayString(_ctx.$t('editor.slides.copyFromLang')), 1),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"button\", {\n class: \"w-32 h-12 ml-0\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.copyAllFromOtherLang(_ctx.configFileStructure.configs[_ctx.lang === 'en' ? 'fr' : 'en'].slides)))\n }, _toDisplayString(_ctx.$t('editor.slides.copyAll')), 1),\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('editor.image.label.or')), 1),\n _createElementVNode(\"div\", _hoisted_12, [\n _withDirectives(_createElementVNode(\"select\", {\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.selectedForCopying) = $event)),\n class: \"overflow-ellipsis copy-select\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.configFileStructure.configs[_ctx.lang === 'en' ? 'fr' : 'en']\n .slides, (slide, index) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: index,\n key: slide.title + index\n }, _toDisplayString(_ctx.$t('editor.slides.slide')) + \" \" + _toDisplayString(index + ': ' + slide.title), 9, _hoisted_13))\n }), 128))\n ], 512), [\n [_vModelSelect, _ctx.selectedForCopying]\n ]),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (\n _ctx.copyFromOtherLang(\n _ctx.configFileStructure.configs[_ctx.lang === 'en' ? 'fr' : 'en'].slides[_ctx.selectedForCopying]\n )\n ))\n }, _toDisplayString(_ctx.$t('editor.slides.copy')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"ul\", null, [\n _createVNode(_component_draggable, {\n modelValue: _ctx.slides,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.slides) = $event)),\n onUpdate: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('slides-updated', _ctx.slides))),\n \"item-key\": \"title\"\n }, {\n item: _withCtx(({ element, index }) => [\n _withDirectives((_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"toc-slide border-t flex px-2 cursor-pointer hover:bg-gray-100\", _ctx.currentSlide === element ? 'bg-gray-100' : '']),\n onClick: ($event: any) => (_ctx.selectSlide(index)),\n key: element.title + index\n }, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('editor.slides.slide')) + \" \" + _toDisplayString(index + 1) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(element.title || 'Add a title'), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"button\", {\n onClick: _withModifiers(($event: any) => (_ctx.$vfm.open(`delete-slide-${index}`)), [\"stop\"])\n }, _hoisted_21, 8, _hoisted_19),\n _createElementVNode(\"button\", {\n onClick: _withModifiers(($event: any) => (_ctx.copySlide(index)), [\"stop\"])\n }, _hoisted_24, 8, _hoisted_22)\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"button\", {\n class: _normalizeClass(index == 0 ? 'text-gray-500 cursor-not-allowed' : ''),\n onClick: _withModifiers(($event: any) => (_ctx.moveUp(index)), [\"stop\"]),\n disabled: index == 0\n }, _hoisted_28, 10, _hoisted_26),\n _createElementVNode(\"button\", {\n class: _normalizeClass([\"rotate-180 transform\", index == _ctx.slides.length - 1 ? 'text-gray-500 cursor-not-allowed' : '']),\n onClick: _withModifiers(($event: any) => (_ctx.moveDown(index)), [\"stop\"]),\n disabled: index == _ctx.slides.length - 1\n }, _hoisted_31, 10, _hoisted_29)\n ])\n ]),\n _createVNode(_component_confirmation_modal, {\n name: `delete-slide-${index}`,\n message: _ctx.$t('editor.slides.deleteSlide.confirm', { title: element.title }),\n onOk: ($event: any) => (_ctx.removeSlide(index))\n }, null, 8, [\"name\", \"message\", \"onOk\"])\n ], 10, _hoisted_14)), [\n [_directive_tippy, {\n delay: '200',\n placement: 'right',\n content: element.title,\n animateFill: true\n }]\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]))\n}","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport {\n BasePanel,\n ChartConfig,\n ChartPanel,\n ConfigFileStructure,\n DynamicChildItem,\n DynamicPanel,\n ImagePanel,\n MapPanel,\n Slide,\n SlideshowPanel,\n SourceCounts,\n TextPanel\n} from '@/definitions';\nimport { VueFinalModal } from 'vue-final-modal';\nimport cloneDeep from 'clone-deep';\nimport draggable from 'vuedraggable';\n\nimport SlideEditorV from './slide-editor.vue';\nimport ConfirmationModalV from './helpers/confirmation-modal.vue';\n\n@Options({\n components: {\n 'slide-editor': SlideEditorV,\n 'confirmation-modal': ConfirmationModalV,\n 'vue-final-modal': VueFinalModal,\n draggable\n }\n})\nexport default class SlideTocV extends Vue {\n @Prop() slides!: Slide[];\n @Prop() currentSlide!: Slide | string;\n @Prop() slideIndex!: number;\n @Prop() configFileStructure!: ConfigFileStructure;\n @Prop() lang!: string;\n @Prop() sourceCounts!: SourceCounts;\n\n selectedForCopying = 0;\n\n selectSlide(index: number): void {\n this.$emit('slide-change', index);\n }\n\n addNewSlide(): void {\n this.slides.push({\n title: '',\n panel: [\n {\n type: 'text',\n title: '',\n content: ''\n } as TextPanel,\n {\n type: 'text',\n title: '',\n content: ''\n } as TextPanel\n ]\n });\n this.selectSlide(this.slides.length - 1);\n this.$emit('slides-updated', this.slides);\n }\n\n copyFromOtherLang(slide: Slide | undefined): void {\n if (slide) {\n this.slides.splice(this.slides.length, 0, cloneDeep(slide));\n this.$emit('slides-updated', this.slides);\n }\n }\n\n copyAllFromOtherLang(slides: Slide[] | undefined): void {\n if (slides) {\n this.slides.splice(this.slides.length, 0, ...slides.map((slide) => cloneDeep(slide)));\n this.$emit('slides-updated', this.slides);\n }\n }\n\n copySlide(index: number): void {\n this.slides.splice(index + 1, 0, cloneDeep(this.slides[index]));\n this.$emit('slides-updated', this.slides);\n }\n\n removeSlide(index: number): void {\n if (index === this.slideIndex) {\n this.$emit('slide-change', -1);\n }\n\n // Before removing the slide, updated the sources for the panels.\n this.removeSourceCounts(index);\n\n this.slides.splice(index, 1);\n this.$emit('slides-updated', this.slides);\n }\n\n removeSourceCounts(deletedIndex: number): void {\n const panel = this.slides.find((slide: Slide, idx: number) => idx === deletedIndex)?.panel;\n panel?.forEach((p: BasePanel) => this.removeSourceHelper(p));\n }\n\n removeSourceHelper(panel: BasePanel): void {\n // The provided panel is being removed. Update source counts accordingly.\n switch (panel.type) {\n case 'map': {\n const mapPanel = panel as MapPanel;\n this.sourceCounts[mapPanel.config] -= 1;\n if (this.sourceCounts[mapPanel.config] === 0) {\n this.configFileStructure.zip.remove(\n `${mapPanel.config.substring(mapPanel.config.indexOf('/') + 1)}`\n );\n }\n break;\n }\n\n case 'chart': {\n const chartPanel = panel as ChartPanel;\n chartPanel.charts.forEach((chart: ChartConfig) => {\n this.sourceCounts[chart.src] -= 1;\n if (this.sourceCounts[chart.src] === 0) {\n this.configFileStructure.zip.remove(`${chart.src.substring(chart.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'slideshow': {\n const slideshowPanel = panel as SlideshowPanel;\n slideshowPanel.images.forEach((image: ImagePanel) => {\n this.sourceCounts[image.src] -= 1;\n if (this.sourceCounts[image.src] === 0) {\n this.configFileStructure.zip.remove(`${image.src.substring(image.src.indexOf('/') + 1)}`);\n }\n });\n break;\n }\n\n case 'dynamic': {\n const dynamicPanel = panel as DynamicPanel;\n dynamicPanel.children.forEach((subPanel: DynamicChildItem) => {\n this.removeSourceHelper(subPanel.panel);\n });\n break;\n }\n }\n }\n\n moveUp(index: number): void {\n this.moveDown(index - 1);\n }\n\n moveDown(index: number): void {\n this.slides.splice(index + 1, 0, this.slides.splice(index, 1)[0]);\n this.$emit('slides-updated', this.slides);\n }\n}\n","import { render } from \"./slide-toc.vue?vue&type=template&id=50ad0d19&scoped=true&ts=true\"\nimport script from \"./slide-toc.vue?vue&type=script&lang=ts\"\nexport * from \"./slide-toc.vue?vue&type=script&lang=ts\"\n\nimport \"./slide-toc.vue?vue&type=style&index=0&id=50ad0d19&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-50ad0d19\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"mb-5\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_4 = { class: \"mb-5\" }\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = { class: \"mb-5\" }\nconst _hoisted_7 = [\"value\"]\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = [\"src\"]\nconst _hoisted_11 = {\n key: 1,\n class: \"image-preview\"\n}\nconst _hoisted_12 = { class: \"mb-5\" }\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_15 = [\"value\"]\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"mb-5\" }, null, -1)\nconst _hoisted_18 = { class: \"inline-block\" }\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_20 = [\"value\"]\nconst _hoisted_21 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"mb-5\" }, null, -1)\nconst _hoisted_23 = { class: \"inline-block\" }\nconst _hoisted_24 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_25 = [\"value\"]\nconst _hoisted_26 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"mb-5\" }, null, -1)\nconst _hoisted_28 = { class: \"inline-block\" }\nconst _hoisted_29 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_30 = { class: \"mb-5\" }\nconst _hoisted_31 = [\"value\"]\nconst _hoisted_32 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_33 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"label\", _hoisted_1, _toDisplayString(_ctx.$t('editor.title')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"title\",\n value: _ctx.metadata.title,\n onChange: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-1/3\"\n }, null, 40, _hoisted_2),\n _hoisted_3,\n _createElementVNode(\"label\", _hoisted_4, _toDisplayString(_ctx.$t('editor.slides.title')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"introTitle\",\n value: _ctx.metadata.introTitle,\n onChange: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-1/4\"\n }, null, 40, _hoisted_5),\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('editor.slides.intro')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"introSubtitle\",\n value: _ctx.metadata.introSubtitle,\n onChange: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-1/4\"\n }, null, 40, _hoisted_7),\n _hoisted_8,\n (!!_ctx.metadata.logoPreview)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.logoPreview')) + \":\", 1),\n (!!_ctx.metadata.logoPreview && _ctx.metadata.logoPreview != 'error')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _ctx.metadata.logoPreview,\n class: \"image-preview\"\n }, null, 8, _hoisted_10))\n : _createCommentVNode(\"\", true),\n (_ctx.metadata.logoPreview == 'error')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('editor.image.loadingError')), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"label\", _hoisted_12, _toDisplayString(_ctx.$t('editor.logo')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n onChange: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('logo-source-changed', $event))),\n value: _ctx.metadata.logoName,\n class: \"w-1/4\"\n }, null, 40, _hoisted_13),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.openFileSelector && _ctx.openFileSelector(...args)), [\"stop\"])),\n class: \"bg-black text-white hover:bg-gray-800\"\n }, _toDisplayString(_ctx.$t('editor.browse')), 1),\n (_ctx.metadata.logoName || _ctx.metadata.logoPreview)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[5] || (_cache[5] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.removeLogo && _ctx.removeLogo(...args)), [\"stop\"])),\n class: \"border border-black\"\n }, _toDisplayString(_ctx.$t('editor.remove')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"input\", {\n type: \"file\",\n id: \"logoUpload\",\n onChange: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('logo-changed', $event))),\n class: \"w-1/4\",\n style: {\"display\":\"none\"}\n }, null, 32),\n _hoisted_14,\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.logoAltText')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"logoAltText\",\n value: _ctx.metadata.logoAltText,\n onChange: _cache[7] || (_cache[7] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-2/3\"\n }, null, 40, _hoisted_15),\n _hoisted_16,\n _hoisted_17,\n _createElementVNode(\"p\", _hoisted_18, [\n _createElementVNode(\"i\", null, _toDisplayString(_ctx.$t('editor.logoAltText.desc')), 1)\n ]),\n _hoisted_19,\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.contextLink')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"contextLink\",\n value: _ctx.metadata.contextLink,\n onChange: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-2/3\"\n }, null, 40, _hoisted_20),\n _hoisted_21,\n _hoisted_22,\n _createElementVNode(\"p\", _hoisted_23, [\n _createElementVNode(\"i\", null, _toDisplayString(_ctx.$t('editor.contextLink.info')), 1)\n ]),\n _hoisted_24,\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('editor.contextLabel')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"text\",\n name: \"contextLabel\",\n value: _ctx.metadata.contextLabel,\n onChange: _cache[9] || (_cache[9] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args))),\n class: \"w-2/3\"\n }, null, 40, _hoisted_25),\n _hoisted_26,\n _hoisted_27,\n _createElementVNode(\"p\", _hoisted_28, [\n _createElementVNode(\"i\", null, _toDisplayString(_ctx.$t('editor.contextLabel.info')), 1)\n ]),\n _hoisted_29,\n _createElementVNode(\"label\", _hoisted_30, _toDisplayString(_ctx.$t('editor.dateModified')) + \":\", 1),\n _createElementVNode(\"input\", {\n type: \"date\",\n name: \"dateModified\",\n value: _ctx.metadata.dateModified,\n onChange: _cache[10] || (_cache[10] = \n//@ts-ignore\n(...args) => (_ctx.metadataChanged && _ctx.metadataChanged(...args)))\n }, null, 40, _hoisted_31),\n _hoisted_32,\n _hoisted_33\n ]))\n}","\nimport { Prop, Vue } from 'vue-property-decorator';\n\nexport default class MetadataEditorV extends Vue {\n @Prop() metadata!: {\n title: string;\n introTitle: string;\n introSubtitle: string;\n logoName: string;\n logoPreview: string;\n logoAltText: string;\n contextLink: string;\n contextLabel: string;\n dateModified: string;\n };\n\n openFileSelector(): void {\n document.getElementById('logoUpload')?.click();\n }\n\n metadataChanged(event: Event): void {\n this.$emit(\n 'metadata-changed',\n (event.target as HTMLInputElement).name,\n (event.target as HTMLInputElement).value\n );\n }\n\n removeLogo(): void {\n this.metadata.logoName = '';\n this.metadata.logoPreview = '';\n }\n}\n","import { render } from \"./metadata-content.vue?vue&type=template&id=44a21107&ts=true\"\nimport script from \"./metadata-content.vue?vue&type=script&lang=ts\"\nexport * from \"./metadata-content.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, resolveDirective as _resolveDirective, withCtx as _withCtx, createBlock as _createBlock, withDirectives as _withDirectives, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, Transition as _Transition, createVNode as _createVNode, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, renderSlot as _renderSlot, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7d7fb887\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"editor-container\" }\nconst _hoisted_2 = { class: \"editor-header sticky flex items-center border-b border-black bg-gray-200 py-2 px-2 z-10\" }\nconst _hoisted_3 = { class: \"mx-1\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"18\",\n height: \"18.001\",\n viewBox: \"0 0 18 18.001\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n id: \"logout-Icon-SVG-098767893\",\n d: \"M5.808,13.782v1.406A2.816,2.816,0,0,0,8.621,18h7.067A2.816,2.816,0,0,0,18.5,15.188V2.813A2.816,2.816,0,0,0,15.687,0H8.621A2.816,2.816,0,0,0,5.808,2.813V4.219a.7.7,0,0,0,1.406,0V2.813A1.408,1.408,0,0,1,8.621,1.406h7.067a1.408,1.408,0,0,1,1.406,1.406V15.188a1.408,1.408,0,0,1-1.406,1.406H8.621a1.408,1.408,0,0,1-1.406-1.406V13.782a.7.7,0,0,0-1.406,0ZM1.014,7.793,2.589,6.218a.7.7,0,0,1,.994.994l-1.12,1.12h8.443a.7.7,0,1,1,0,1.406H2.463l1.12,1.12a.7.7,0,1,1-.994.994L1.014,10.279A1.76,1.76,0,0,1,1.014,7.793Zm0,0\",\n transform: \"translate(-0.5)\"\n })\n], -1))\nconst _hoisted_5 = { class: \"ml-3 flex flex-col\" }\nconst _hoisted_6 = { class: \"font-semibold text-lg\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-auto\" }, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n class: \"inline\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"18px\",\n height: \"18px\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M 2 2 L 4.9394531 4.9394531 C 3.1262684 6.7482143 2 9.2427079 2 12 C 2 17.514 6.486 22 12 22 C 17.514 22 22 17.514 22 12 C 22 6.486 17.514 2 12 2 L 12 4 C 16.411 4 20 7.589 20 12 C 20 16.411 16.411 20 12 20 C 7.589 20 4 16.411 4 12 C 4 9.7940092 4.9004767 7.7972757 6.3496094 6.3496094 L 9 9 L 9 2 L 2 2 z\" })\n], -1))\nconst _hoisted_9 = { class: \"font-normal ml-1\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"border-2 border-red-700 text-red-700 rounded p-1 mr-2\"\n}\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block mr-1 pb-1 fill-current\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n \"clip-rule\": \"evenodd\",\n \"fill-rule\": \"evenodd\",\n class: \"fill-red-600\",\n width: \"18\",\n height: \"18\",\n \"stroke-linejoin\": \"round\",\n \"stroke-miterlimit\": \"2\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"m12.002 21.534c5.518 0 9.998-4.48 9.998-9.998s-4.48-9.997-9.998-9.997c-5.517 0-9.997 4.479-9.997 9.997s4.48 9.998 9.997 9.998zm0-1.5c-4.69 0-8.497-3.808-8.497-8.498s3.807-8.497 8.497-8.497 8.498 3.807 8.498 8.497-3.808 8.498-8.498 8.498zm0-6.5c-.414 0-.75-.336-.75-.75v-5.5c0-.414.336-.75.75-.75s.75.336.75.75v5.5c0 .414-.336.75-.75.75zm-.002 3c.552 0 1-.448 1-1s-.448-1-1-1-1 .448-1 1 .448 1 1 1z\",\n \"fill-rule\": \"nonzero\"\n })\n ])\n], -1))\nconst _hoisted_12 = { class: \"align-center inline-block select-none\" }\nconst _hoisted_13 = [\"disabled\"]\nconst _hoisted_14 = { class: \"inline-block\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"align-middle inline-block px-1\"\n}\nconst _hoisted_16 = { class: \"flex\" }\nconst _hoisted_17 = { class: \"w-80 flex-shrink-0 border-r border-black editor-toc\" }\nconst _hoisted_18 = { class: \"flex items-center justify-center border-b p-2\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"align-middle inline-block px-1\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n \"clip-rule\": \"evenodd\",\n \"fill-rule\": \"evenodd\",\n width: \"16\",\n height: \"16\",\n \"stroke-linejoin\": \"round\",\n \"stroke-miterlimit\": \"2\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"m4.481 15.659c-1.334 3.916-1.48 4.232-1.48 4.587 0 .528.46.749.749.749.352 0 .668-.137 4.574-1.492zm1.06-1.061 3.846 3.846 11.321-11.311c.195-.195.293-.45.293-.707 0-.255-.098-.51-.293-.706-.692-.691-1.742-1.74-2.435-2.432-.195-.195-.451-.293-.707-.293-.254 0-.51.098-.706.293z\",\n \"fill-rule\": \"nonzero\"\n })\n ])\n], -1))\nconst _hoisted_20 = { class: \"align-middle inline-block\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_spinner = _resolveComponent(\"spinner\")!\n const _component_slide_toc = _resolveComponent(\"slide-toc\")!\n const _component_slide_editor = _resolveComponent(\"slide-editor\")!\n const _component_confirmation_modal = _resolveComponent(\"confirmation-modal\")!\n const _directive_tippy = _resolveDirective(\"tippy\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, [\n _withDirectives((_openBlock(), _createBlock(_component_router_link, {\n to: { name: 'home' },\n class: \"mt-1 flex justify-center h-full w-full\",\n target: \"\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n })), [\n [_directive_tippy, {\n delay: '200',\n placement: 'right',\n content: _ctx.$t('editor.returnToLanding'),\n animateFill: true\n }]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_ctx.metadata.title), 1),\n _createElementVNode(\"span\", {\n class: _normalizeClass(_ctx.metadata.title ? 'text-xs' : '')\n }, \"UUID: \" + _toDisplayString(_ctx.uuid), 3)\n ]),\n _hoisted_7,\n (_ctx.unsavedChanges)\n ? _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$vfm.open(`reload-config`))),\n class: \"border-2 border-red-700 text-red-700 rounded p-1 mr-2\"\n }, [\n _hoisted_8,\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('editor.resetChanges')), 1)\n ])), [\n [_directive_tippy, {\n delay: '200',\n placement: 'bottom',\n content: _ctx.$t('editor.resetChanges'),\n animateFill: true\n }]\n ])\n : _createCommentVNode(\"\", true),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_ctx.unsavedChanges)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [\n _hoisted_11,\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('editor.unsavedChanges')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _renderSlot(_ctx.$slots, \"langModal\", _normalizeProps(_guardReactiveProps({ unsavedChanges: _ctx.unsavedChanges })), undefined, true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.preview && _ctx.preview(...args))),\n class: \"bg-white border border-black hover:bg-gray-100\"\n }, _toDisplayString(_ctx.$t('editor.preview')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.saveChanges && _ctx.saveChanges(...args))),\n class: \"bg-black text-white hover:bg-gray-900\",\n disabled: _ctx.saving\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.saving ? _ctx.$t('editor.savingChanges') : _ctx.$t('editor.saveChanges')), 1),\n (_ctx.saving)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_15, [\n _createVNode(_component_spinner, {\n size: \"16px\",\n color: \"#009cd1\",\n class: \"ml-1 mb-1\"\n })\n ]))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_13)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$vfm.open('metadata-edit-modal')), [\"stop\"]))\n }, [\n _hoisted_19,\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('editor.editMetadata')), 1)\n ])\n ]),\n _createVNode(_component_slide_toc, {\n slides: _ctx.slides,\n currentSlide: _ctx.currentSlide,\n slideIndex: _ctx.slideIndex,\n onSlideChange: _ctx.selectSlide,\n onSlidesUpdated: _ctx.updateSlides,\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.configLang,\n sourceCounts: _ctx.sourceCounts\n }, null, 8, [\"slides\", \"currentSlide\", \"slideIndex\", \"onSlideChange\", \"onSlidesUpdated\", \"configFileStructure\", \"lang\", \"sourceCounts\"])\n ]),\n _createVNode(_component_slide_editor, {\n ref: \"slide\",\n configFileStructure: _ctx.configFileStructure,\n currentSlide: _ctx.currentSlide,\n lang: _ctx.configLang,\n slideIndex: _ctx.slideIndex,\n isLast: _ctx.slideIndex === _ctx.slides.length - 1,\n uid: _ctx.uuid,\n onSlideChange: _ctx.selectSlide,\n onSlideEdit: _ctx.onSlidesEdited,\n sourceCounts: _ctx.sourceCounts\n }, null, 8, [\"configFileStructure\", \"currentSlide\", \"lang\", \"slideIndex\", \"isLast\", \"uid\", \"onSlideChange\", \"onSlideEdit\", \"sourceCounts\"])\n ]),\n _renderSlot(_ctx.$slots, \"metadataModal\", {}, undefined, true),\n _createVNode(_component_confirmation_modal, {\n name: `reload-config`,\n message: _ctx.$t('editor.refreshChanges.modal'),\n onOk: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('refresh-config')))\n }, null, 8, [\"message\"])\n ]))\n}","\nimport { Options, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { ConfigFileStructure, MetadataContent, Slide, SourceCounts, StoryRampConfig } from '@/definitions';\n\nimport { VueSpinnerOval } from 'vue3-spinners';\nimport SlideEditorV from './slide-editor.vue';\nimport SlideTocV from './slide-toc.vue';\nimport MetadataContentV from './helpers/metadata-content.vue';\nimport ConfirmationModalV from './helpers/confirmation-modal.vue';\n\n@Options({\n components: {\n 'metadata-content': MetadataContentV,\n 'confirmation-modal': ConfirmationModalV,\n spinner: VueSpinnerOval,\n 'slide-editor': SlideEditorV,\n 'slide-toc': SlideTocV\n }\n})\nexport default class EditorV extends Vue {\n @Prop() configs!: {\n [key: string]: StoryRampConfig | undefined;\n };\n @Prop() configFileStructure!: ConfigFileStructure | undefined;\n @Prop() sourceCounts!: SourceCounts;\n @Prop() metadata!: MetadataContent;\n @Prop() slides!: Slide[];\n @Prop() configLang!: string;\n @Prop() saving!: boolean;\n @Prop() unsavedChanges!: boolean;\n\n // Form properties.\n uuid = '';\n logoImage: undefined | File = undefined;\n loadSlides: undefined | Slide[] = undefined;\n currentSlide: Slide | string = '';\n slideIndex = -1;\n\n @Watch('slides', { deep: true })\n onSlidesEdited(): void {\n this.$emit('save-status', true);\n }\n\n @Watch('metadata', { deep: true })\n onMetadataEdited(): void {\n this.$emit('save-status', true);\n }\n\n created(): void {\n this.loadSlides = this.slides;\n this.uuid = this.$route.params.uid as string;\n window.addEventListener('beforeunload', this.beforeWindowUnload);\n }\n\n mounted(): void {\n // from https://css-tricks.com/how-to-detect-when-a-sticky-element-gets-pinned/\n const observer = new IntersectionObserver(([e]) => e.target.classList.toggle('z-40', e.intersectionRatio < 1), {\n threshold: [1]\n });\n\n observer.observe(document.querySelector('.editor-header') as Element);\n }\n\n beforeDestroy(): void {\n window.removeEventListener('beforeunload', this.beforeWindowUnload);\n }\n\n /**\n * Change current slide to selected slide.\n */\n selectSlide(index: number): void {\n // save changes to current slide before changing slides\n if (this.$refs.slide !== undefined) {\n this.$nextTick(() => {\n (this.$refs.slide as SlideEditorV).saveChanges();\n });\n }\n\n // Quickly swap to loading page, and then swap to new slide. Allows Vue to re-draw page correctly.\n this.currentSlide = {\n title: '',\n panel: [{ type: 'loading-page' }, { type: 'loading-page' }]\n };\n\n setTimeout(() => {\n this.currentSlide = index === -1 ? '' : (this.loadSlides as Slide[])[index];\n this.slideIndex = index;\n (this.$refs.slide as SlideEditorV).panelIndex = 0;\n window.scrollTo(0, 0);\n }, 5);\n }\n\n /**\n * Updates slides after adding, removing, or reordering.\n */\n updateSlides(slides: Slide[]): void {\n this.loadSlides = slides;\n this.slideIndex = this.loadSlides.indexOf(this.currentSlide as Slide);\n }\n\n /**\n * Open current editor config as a new Storylines product in new tab.\n */\n preview(): void {\n // save current slide final changes before previewing product\n if (this.$refs.slide !== undefined) {\n (this.$refs.slide as SlideEditorV).saveChanges();\n }\n const routeData = this.$router.resolve({ name: 'preview' });\n const previewTab = window.open(routeData.href, '_blank');\n (previewTab as Window).props = {\n config: JSON.parse(JSON.stringify(this.configs[this.configLang])),\n configFileStructure: this.configFileStructure\n };\n }\n\n saveChanges(): void {\n // save current slide final changes before generating config file\n if (this.$refs.slide !== undefined) {\n this.$nextTick(() => {\n (this.$refs.slide as SlideEditorV).saveChanges();\n });\n }\n\n // emit save changes event\n this.$emit('save-changes');\n }\n\n beforeWindowUnload(e: BeforeUnloadEvent): void {\n // show popup if when leaving page with unsaved changes\n if (this.unsavedChanges && !window.confirm()) {\n e.preventDefault();\n e.returnValue = '';\n }\n }\n}\n","import { render } from \"./editor.vue?vue&type=template&id=7d7fb887&scoped=true&ts=true\"\nimport script from \"./editor.vue?vue&type=script&lang=ts\"\nexport * from \"./editor.vue?vue&type=script&lang=ts\"\n\nimport \"./editor.vue?vue&type=style&index=0&id=7d7fb887&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d7fb887\"]])\n\nexport default __exports__","\nimport { Options, Prop, Vue } from 'vue-property-decorator';\nimport { RouteLocationNormalized } from 'vue-router';\nimport { AxiosResponse } from 'axios';\nimport {\n AudioPanel,\n BasePanel,\n ChartConfig,\n ChartPanel,\n ConfigFileStructure,\n DynamicChildItem,\n DynamicPanel,\n ImagePanel,\n MapPanel,\n MetadataContent,\n Slide,\n SlideshowPanel,\n SourceCounts,\n StoryRampConfig\n} from '@/definitions';\nimport { VueSpinnerOval } from 'vue3-spinners';\nimport { VueFinalModal } from 'vue-final-modal';\n\nconst JSZip = require('jszip');\nconst axios = require('axios').default;\nconst { v4: uuidv4 } = require('uuid');\n\nimport Message from 'vue-m-message';\nimport SlideEditorV from './slide-editor.vue';\nimport SlideTocV from './slide-toc.vue';\nimport MetadataContentV from './helpers/metadata-content.vue';\nimport ConfirmationModalV from './helpers/confirmation-modal.vue';\nimport EditorV from './editor.vue';\n\nimport cloneDeep from 'clone-deep';\n\ninterface RouteParams {\n uid: string;\n configLang: string;\n configs: {\n [key: string]: StoryRampConfig | undefined;\n };\n configFileStructure: ConfigFileStructure;\n metadata: MetadataContent;\n slides: Slide[];\n sourceCounts: SourceCounts;\n existing: boolean;\n}\n\n@Options({\n components: {\n Editor: EditorV,\n 'confirmation-modal': ConfirmationModalV,\n 'metadata-content': MetadataContentV,\n spinner: VueSpinnerOval,\n 'slide-editor': SlideEditorV,\n 'slide-toc': SlideTocV,\n 'vue-final-modal': VueFinalModal\n }\n})\nexport default class MetadataEditorV extends Vue {\n @Prop({ default: true }) editExisting!: boolean; // true if editing existing storylines product, false if new product\n\n configs: {\n [key: string]: StoryRampConfig | undefined;\n } = { en: undefined, fr: undefined };\n configFileStructure: ConfigFileStructure | undefined = undefined;\n loadExisting = false;\n reloadExisting = false;\n loadStatus = 'waiting';\n loadEditor = false;\n error = false; // whether an error has occurred\n warning = false; // used for duplicate uuid warning\n configLang = 'en';\n\n // Saving properties.\n saving = false;\n unsavedChanges = false;\n\n // Form properties.\n uuid = '';\n logoImage: undefined | File = undefined;\n metadata: MetadataContent = {\n title: '',\n introTitle: '',\n introSubtitle: '',\n logoPreview: '',\n logoName: '',\n logoAltText: '',\n contextLink: '',\n contextLabel: '',\n dateModified: ''\n };\n // add more required metadata fields to here as needed\n reqFields: { uuid: boolean } = {\n uuid: true\n };\n slides: Slide[] = [];\n sourceCounts: SourceCounts = {};\n\n created(): void {\n this.loadExisting = this.editExisting;\n\n // Generate UUID for new product\n this.uuid = (this.$route.params.uid as string) ?? (this.loadExisting ? undefined : uuidv4());\n this.configLang = this.$route.params.configLang ? (this.$route.params.configLang as string) : 'en';\n\n // Initialize Storylines config and the configuration structure.\n this.configs = { en: undefined, fr: undefined };\n this.configFileStructure = undefined;\n\n // set any metadata default values for creating new product\n if (!this.loadExisting) {\n // set current date as default\n const curDate = new Date();\n const year = curDate.getFullYear();\n const month = (curDate.getMonth() + 1).toString().padStart(2, '0');\n const day = curDate.getDate().toString().padStart(2, '0');\n this.metadata.dateModified = `${year}-${month}-${day}`;\n }\n\n // Find which view to render based on route\n if (this.$route.name === 'editor') {\n this.loadEditor = true;\n const props = this.$route.meta.data as RouteParams;\n\n // Properties already passed in props, load editor view (could use a refactor to clean up this workflow process)\n if (props && props.configs && props.configFileStructure) {\n this.configs = props.configs;\n this.configFileStructure = props.configFileStructure;\n this.metadata = props.metadata;\n this.slides = props.slides;\n this.sourceCounts = props.sourceCounts;\n this.loadExisting = props.existing;\n // Load product logo (if provided).\n const logo = this.configs[this.configLang]?.introSlide.logo?.src;\n const logoSrc = `assets/${this.configLang}/${this.metadata.logoName}`;\n\n if (logo) {\n const logoFile = this.configFileStructure?.zip.file(logoSrc);\n if (logoFile) {\n logoFile.async('blob').then((img: Blob) => {\n this.logoImage = new File([img], this.metadata.logoName);\n this.metadata.logoPreview = URL.createObjectURL(img);\n this.loadStatus = 'loaded';\n });\n } else {\n // Fill in the field with this value whether it exists or not.\n this.metadata.logoName = logo;\n\n // If it doesn't exist, maybe it's a remote file?\n fetch(logo).then((data: Response) => {\n if (data.status !== 404) {\n data.blob().then((blob: Blob) => {\n this.logoImage = new File([blob], this.metadata.logoName);\n this.metadata.logoPreview = logo;\n this.loadStatus = 'loaded';\n });\n }\n });\n }\n } else {\n // No logo to load.\n this.loadStatus = 'loaded';\n }\n\n return;\n }\n }\n\n // If a product UUID is provided, fetch the contents from the server.\n if (this.$route.params.uid) {\n this.generateRemoteConfig();\n }\n }\n\n /**\n * Generates a new product file for brand new products.\n */\n generateNewConfig(): void {\n const configZip = new JSZip();\n\n // Generate a new configuration file and populate required fields.\n this.configs[this.configLang] = this.configHelper();\n const config = this.configs[this.configLang] as StoryRampConfig;\n\n // Set the source of the product logo\n if (!this.metadata.logoName) {\n config.introSlide.logo.src = '';\n } else if (!this.metadata.logoName.includes('http')) {\n config.introSlide.logo.src = `${this.uuid}/assets/${this.configLang}/${this.logoImage?.name}`;\n } else {\n config.introSlide.logo.src = this.metadata.logoName;\n }\n config.slides = [];\n\n const otherLang = this.configLang === 'en' ? 'fr' : 'en';\n this.configs[otherLang] = cloneDeep(config);\n (this.configs[otherLang] as StoryRampConfig).lang = otherLang;\n const formattedOtherLangConfig = JSON.stringify(this.configs[otherLang], null, 4);\n\n // Add the newly generated Storylines configuration file to the ZIP file.\n const fileName = `${this.uuid}_${this.configLang}.json`;\n const formattedConfigFile = JSON.stringify(config, null, 4);\n\n configZip.file(fileName, formattedConfigFile);\n configZip.file(`${this.uuid}_${otherLang}.json`, formattedOtherLangConfig);\n\n // Generate the file structure, defer uploading the image until the structure is created.\n this.configFileStructureHelper(configZip, this.logoImage);\n }\n\n configHelper(): StoryRampConfig {\n return {\n title: this.metadata.title,\n lang: this.configLang,\n introSlide: {\n logo: {\n src: ''\n },\n title: this.metadata.introTitle,\n subtitle: this.metadata.introSubtitle\n },\n slides: [],\n contextLabel: this.metadata.contextLabel,\n contextLink: this.metadata.contextLink,\n dateModified: this.metadata.dateModified\n };\n }\n\n /**\n * Provided with a UID, retrieve the project contents from the file server.\n */\n generateRemoteConfig(): void {\n this.loadStatus = 'loading';\n // Attempt to fetch the project from the server.\n fetch(`http://localhost:6040/retrieve/${this.uuid}`)\n .then((res: Response) => {\n if (res.status === 404) {\n // Product not found.\n Message.error(`The requested UUID '${this.uuid ?? ''}' does not exist.`);\n this.error = true;\n this.loadStatus = 'waiting';\n this.clearConfig();\n } else {\n const configZip = new JSZip();\n // Files retrieved. Convert them into a JSZip object.\n res.blob().then((file: Blob) => {\n configZip.loadAsync(file).then(() => {\n this.configFileStructureHelper(configZip);\n });\n });\n }\n })\n .catch(() => {\n Message.error(`Failed to load product, no response from server`);\n this.loadStatus = 'loaded';\n });\n }\n\n findSources(configs: { [key: string]: StoryRampConfig | undefined }): void {\n ['en', 'fr'].forEach((lang) => {\n if (configs[lang]?.introSlide.logo?.src) {\n this.incrementSourceCount((configs[lang] as StoryRampConfig).introSlide.logo.src);\n }\n\n configs[lang]?.slides.forEach((slide) => {\n slide.panel.forEach((panel) => {\n this.panelSourceHelper(panel);\n });\n });\n });\n }\n\n panelSourceHelper(panel: BasePanel): void {\n switch (panel.type) {\n case 'dynamic':\n (panel as DynamicPanel).children.forEach((subPanel: DynamicChildItem) => {\n this.panelSourceHelper(subPanel.panel);\n });\n break;\n case 'slideshow':\n (panel as SlideshowPanel).images.forEach((image: ImagePanel) => {\n this.incrementSourceCount(image.src);\n });\n break;\n case 'chart':\n (panel as ChartPanel).charts.forEach((chart: ChartConfig) => {\n this.incrementSourceCount(chart.src);\n });\n break;\n case 'image':\n case 'video':\n case 'audio':\n this.incrementSourceCount((panel as AudioPanel).src);\n break;\n case 'map':\n this.incrementSourceCount((panel as MapPanel).config);\n break;\n default:\n break;\n }\n }\n\n incrementSourceCount(src: string): void {\n if (this.sourceCounts[src]) {\n this.sourceCounts[src] += 1;\n } else {\n this.sourceCounts[src] = 1;\n }\n }\n\n /**\n * Generates or loads a ZIP file and creates required project folders if needed.\n * Returns an object that makes it easy to access any specific folder.\n */\n configFileStructureHelper(configZip: typeof JSZip, uploadLogo?: File | undefined): void {\n const assetsFolder = configZip.folder('assets');\n const chartsFolder = configZip.folder('charts');\n const rampConfigFolder = configZip.folder('ramp-config');\n\n this.configFileStructure = {\n uuid: this.uuid,\n zip: configZip,\n configs: this.configs as unknown as { [key: string]: StoryRampConfig },\n assets: {\n en: assetsFolder.folder('en'),\n fr: assetsFolder.folder('fr')\n },\n charts: {\n en: chartsFolder.folder('en'),\n fr: chartsFolder.folder('fr')\n },\n rampConfig: {\n en: rampConfigFolder.folder('en'),\n fr: rampConfigFolder.folder('fr')\n }\n };\n\n // If uploadLogo is set, upload the logo to the directory.\n if (uploadLogo !== undefined) {\n this.configFileStructure.assets[this.configLang].file(uploadLogo?.name, uploadLogo);\n }\n\n this.loadConfig();\n }\n\n /**\n * Loads a configuration file from the product folder, and sets application data\n * as needed.\n */\n async loadConfig(config?: StoryRampConfig): Promise {\n if (config) {\n this.useConfig(config);\n return;\n }\n\n try {\n const enFile = this.configFileStructure?.zip.file(`${this.uuid}_en.json`);\n const frFile = this.configFileStructure?.zip.file(`${this.uuid}_fr.json`);\n await enFile?.async('string').then((res: string) => {\n this.configs['en'] = JSON.parse(res);\n });\n await frFile?.async('string').then((res: string) => {\n this.configs['fr'] = JSON.parse(res);\n });\n } catch {\n Message.error(`The requested product '${this.uuid ?? ''}' is malformed.`);\n this.loadStatus = 'waiting';\n this.clearConfig();\n return;\n }\n\n if (this.loadExisting) {\n this.loadStatus = 'waiting';\n Message.success('Successfully loaded storyline!');\n } else {\n this.loadStatus = 'loaded';\n }\n\n // Load in project data.\n if (this.configs[this.configLang]) {\n this.useConfig(this.configs[this.configLang] as StoryRampConfig);\n this.findSources(this.configs);\n // Update router path\n if (this.reloadExisting) {\n this.loadEditor = true;\n this.generateConfig();\n this.updateEditorPath();\n } else if (!this.loadExisting) {\n this.loadEditor = true;\n this.updateEditorPath();\n }\n }\n }\n\n useConfig(config: StoryRampConfig): void {\n this.metadata.title = config.title;\n this.metadata.introTitle = config.introSlide.title;\n this.metadata.introSubtitle = config.introSlide.subtitle;\n this.metadata.contextLink = config.contextLink;\n this.metadata.contextLabel = config.contextLabel;\n this.metadata.dateModified = config.dateModified;\n\n // Conversion for individual image panels to slideshow for gallery display\n this.slides = config.slides;\n this.slides.forEach((slide: Slide) => {\n if (slide.panel.length === 2 && slide.panel[1].type === 'image') {\n const newSlide = {\n type: 'slideshow',\n images: [slide.panel[1]]\n };\n slide.panel[1] = newSlide;\n }\n });\n\n const logo = config.introSlide.logo?.src;\n if (logo) {\n // Set the alt text for the logo.\n this.metadata.logoAltText = config.introSlide.logo?.altText ? config.introSlide.logo.altText : '';\n\n // Fetch the logo from the folder (if it exists).\n const logoSrc = `${logo.substring(logo.indexOf('/') + 1)}`;\n const logoName = `${logo.split('/')[logo.split('/').length - 1]}`;\n const logoFile = this.configFileStructure?.zip.file(logoSrc);\n\n if (logoFile) {\n logoFile.async('blob').then((img: Blob) => {\n this.logoImage = new File([img], logoName);\n this.metadata.logoPreview = URL.createObjectURL(img);\n this.metadata.logoName = logoName;\n this.loadStatus = 'loaded';\n });\n } else {\n // Fill in the field with this value whether it exists or not.\n this.metadata.logoName = logo;\n\n // If it doesn't exist, maybe it's a remote file?\n fetch(logo).then((data: Response) => {\n if (data.status !== 404) {\n data.blob().then((blob: Blob) => {\n this.logoImage = new File([blob], logoName);\n this.metadata.logoPreview = logo;\n this.loadStatus = 'loaded';\n });\n }\n });\n }\n }\n }\n\n /**\n * Called when `Save Changes` is pressed. Re-generates the Storylines configuration file\n * with the new changes, then generates and submits the product file to the server.\n */\n generateConfig(): ConfigFileStructure {\n this.saving = true;\n\n // Update the configuration file.\n const fileName = `${this.uuid}_${this.configLang}.json`;\n const formattedConfigFile = JSON.stringify(this.configs[this.configLang], null, 4);\n\n this.configFileStructure?.zip.file(fileName, formattedConfigFile);\n\n // Upload the ZIP file.\n this.configFileStructure?.zip.generateAsync({ type: 'blob' }).then((content: Blob) => {\n const formData = new FormData();\n formData.append('data', content, `${this.uuid}.zip`);\n const headers = { 'Content-Type': 'multipart/form-data' };\n\n axios\n .post('http://localhost:6040/upload', formData, { headers })\n .then((res: AxiosResponse) => {\n res.data.files; // binary representation of the file\n res.status; // HTTP status\n this.unsavedChanges = false;\n this.loadExisting = true; // if editExisting was false, we can now set it to true\n Message.success('Successfully saved changes!');\n })\n .catch(() => {\n Message.error('Failed to save changes.');\n })\n .finally(() => {\n // padding to prevent save button from being clicked rapidly\n setTimeout(() => {\n this.saving = false;\n }, 500);\n });\n });\n\n return this.configFileStructure as ConfigFileStructure;\n }\n\n updateMetadata(\n key: 'title' | 'introTitle' | 'introSubtitle' | 'contextLink' | 'contextLabel' | 'dateModified',\n value: string\n ): void {\n this.metadata[key] = value;\n this.unsavedChanges = true;\n }\n\n /**\n * Called when `Save Changes` is pressed on metadata page. Save metadata content fields\n * to config file. If `publish` is set to true, publish to server as well.\n */\n saveMetadata(publish = false): void {\n // update metadata content to existing config only if it has been successfully loaded\n const config = this.configs[this.configLang];\n if (config !== undefined) {\n config.title = this.metadata.title;\n config.introSlide.title = this.metadata.introTitle;\n config.introSlide.subtitle = this.metadata.introSubtitle;\n config.contextLink = this.metadata.contextLink;\n config.contextLabel = this.metadata.contextLabel;\n config.dateModified = this.metadata.dateModified;\n\n // If the logo section is missing, create it here before overwriting values.\n if (config.introSlide.logo === undefined) {\n config.introSlide.logo = { src: '', altText: '' };\n }\n\n config.introSlide.logo.altText = this.metadata.logoAltText;\n\n // If the logo doesn't include HTTP, assume it's a local file.\n if (!this.metadata.logoName) {\n config.introSlide.logo.src = '';\n } else if (!this.metadata.logoName.includes('http')) {\n config.introSlide.logo.src = `${this.uuid}/assets/${this.configLang}/${this.logoImage?.name}`;\n this.configFileStructure?.assets[this.configLang].file(\n this.logoImage?.name as string,\n this.logoImage as File\n );\n } else {\n config.introSlide.logo.src = this.metadata.logoName;\n }\n\n if (publish) {\n this.generateConfig();\n }\n }\n this.$vfm.close('metadata-edit-modal');\n }\n\n /**\n * Called when loading a nonexistant or invalid UUID. Clears all previously populated\n * metadata fields, configs, and slide content.\n */\n clearConfig(): void {\n this.metadata = {\n title: '',\n introTitle: '',\n introSubtitle: '',\n contextLink: '',\n contextLabel: '',\n dateModified: '',\n logoPreview: '',\n logoName: '',\n logoAltText: ''\n };\n this.configs = { en: undefined, fr: undefined };\n this.slides = [];\n }\n\n /**\n * Language toggle.\n */\n swapLang(): void {\n this.configLang = this.configLang === 'en' ? 'fr' : 'en';\n if (!this.configs[this.configLang]) {\n return;\n }\n this.loadConfig(this.configs[this.configLang]);\n\n if (this.loadEditor) {\n (this.$refs.mainEditor as EditorV).updateSlides(this.slides);\n this.$nextTick(() => {\n (this.$refs.mainEditor as EditorV).selectSlide(-1);\n });\n }\n }\n\n checkUuid(): void {\n if (!this.loadExisting) {\n fetch(`http://localhost:6040/retrieve/${this.uuid}`).then((res: Response) => {\n if (res.status !== 404) {\n this.warning = true;\n }\n });\n }\n this.warning = false;\n }\n\n /**\n * React to param changes in URL.\n */\n beforeRouteUpdate(to: RouteLocationNormalized, from: RouteLocationNormalized, next: () => void): void {\n this.uuid = to.params.uid as string;\n this.$i18n.locale = to.params.lang as string;\n\n next();\n }\n\n onLogoSourceInput(e: InputEvent): void {\n const isImgUrl = (url: string) => {\n const img = new Image();\n img.src = url;\n return new Promise((resolve) => {\n img.onerror = () => resolve(false);\n img.onload = () => resolve(true);\n });\n };\n\n this.metadata.logoName = (e.target as HTMLInputElement).value;\n\n isImgUrl(this.metadata.logoName).then((res) => {\n if (res) {\n this.metadata.logoPreview = this.metadata.logoName;\n Message.success('Successfully loaded logo image.');\n } else {\n this.metadata.logoPreview = 'error';\n Message.error('Failed to load logo image.');\n }\n });\n }\n\n onFileChange(e: Event): void {\n // Retrieve the uploaded file.\n const uploadedFile = ((e.target as HTMLInputElement).files as ArrayLike)[0];\n this.logoImage = uploadedFile;\n\n // Generate an image preview.\n this.metadata.logoPreview = URL.createObjectURL(uploadedFile);\n this.metadata.logoName = uploadedFile.name;\n }\n\n updateEditorPath(): void {\n if (this.$route.name !== 'editor') {\n this.$router.beforeEach((to: RouteLocationNormalized) => {\n if (to.name === 'editor') {\n to.meta.data = {\n configLang: this.configLang,\n configs: this.configs,\n configFileStructure: this.configFileStructure,\n sourceCounts: this.sourceCounts,\n metadata: this.metadata,\n slides: this.slides,\n existing: this.editExisting\n };\n }\n });\n\n this.$router.push({ name: 'editor', params: { uid: this.uuid } });\n }\n }\n\n checkRequiredFields(): boolean {\n // check if all required metadata fields are non-empty\n this.reqFields.uuid = !!this.uuid;\n if (Object.values(this.reqFields).some((field: boolean) => !field)) {\n Message.error(`Please fill out the required fields before proceeding.`);\n return false;\n }\n return true;\n }\n\n /**\n * Called when 'next' button is pressed on metadata page to continue to main editor.\n */\n continueToEditor(): void {\n if (!this.checkRequiredFields()) {\n return;\n }\n if (this.loadExisting) {\n if (this.configs[this.configLang] !== undefined && this.uuid === this.configFileStructure?.uuid) {\n this.loadEditor = true;\n this.updateEditorPath();\n } else {\n Message.error('No config exists for storylines product.');\n }\n } else if (!this.uuid) {\n Message.error('Missing required field: UUID');\n this.error = true;\n } else {\n this.generateNewConfig();\n }\n }\n\n /**\n * Update the unsaved changes value to the payload.\n */\n updateSaveStatus(payload: boolean): void {\n this.unsavedChanges = payload;\n }\n\n refreshConfig(): void {\n // Re-fetch the product from the server.\n if (this.loadExisting) {\n this.reloadExisting = true;\n this.loadExisting = false;\n this.generateRemoteConfig();\n } else {\n this.reloadExisting = false;\n this.generateNewConfig();\n }\n }\n\n beforeRouteLeave(to: RouteLocationNormalized, from: RouteLocationNormalized, next: (cont?: boolean) => void): void {\n const curEditor = this.$route.name === 'editor';\n const confirmationMessage = 'Leave the page? Changes made may not be saved.';\n if (this.unsavedChanges && curEditor && !window.confirm(confirmationMessage)) {\n next(false);\n } else {\n next();\n }\n }\n}\n","import { render } from \"./metadata-editor.vue?vue&type=template&id=0c6bdccf&ts=true\"\nimport script from \"./metadata-editor.vue?vue&type=script&lang=ts\"\nexport * from \"./metadata-editor.vue?vue&type=script&lang=ts\"\n\nimport \"./metadata-editor.vue?vue&type=style&index=0&id=0c6bdccf&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = {\n class: \"block py-20 align-middle text-center h-full\",\n style: {\"margin\":\"0 auto\"}\n}\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = {\n key: 0,\n class: \"storyramp-app bg-white\"\n}\nconst _hoisted_5 = { class: \"sticky top-0 z-50 flex border-b border-black bg-gray-200 py-2 px-2 justify-between\" }\nconst _hoisted_6 = { class: \"w-mobile-full truncate\" }\nconst _hoisted_7 = { class: \"font-semibold text-lg m-1\" }\nconst _hoisted_8 = {\n class: \"w-full mx-auto pb-10\",\n id: \"story\"\n}\nconst _hoisted_9 = { class: \"p-8 pt-2 text-right text-sm\" }\nconst _hoisted_10 = [\"href\"]\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://github.com/ramp4-pcar4/storylines-editor\",\n target: \"_NEW\",\n class: \"font-semibold text-blue-700\"\n}, \"ramp4-pcar4/storylines-editor\", -1)\nconst _hoisted_12 = {\n key: 0,\n class: \"storyramp-modified\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_spinner = _resolveComponent(\"spinner\")!\n const _component_storylines_intro = _resolveComponent(\"storylines-intro\")!\n const _component_storylines_content = _resolveComponent(\"storylines-content\")!\n\n return (_ctx.loadStatus === 'loading')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_spinner, {\n size: \"120px\",\n color: \"#009cd1\",\n style: {\"margin\":\"0 auto\"}\n })\n ])\n ]))\n : (_ctx.loadStatus === 'loaded')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_ctx.config !== undefined)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"header\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.config.title), 1)\n ])\n ]),\n _createVNode(_component_storylines_intro, {\n config: _ctx.config.introSlide,\n configFileStructure: _ctx.configFileStructure\n }, null, 8, [\"config\", \"configFileStructure\"]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_storylines_content, {\n config: _ctx.config,\n configFileStructure: _ctx.configFileStructure,\n lang: _ctx.lang,\n plugin: true,\n onStep: _ctx.updateActiveIndex\n }, null, 8, [\"config\", \"configFileStructure\", \"lang\", \"onStep\"])\n ]),\n _createElementVNode(\"footer\", _hoisted_9, [\n _createTextVNode(\" Context: \"),\n _createElementVNode(\"a\", {\n class: \"text-blue-700 font-semibold\",\n href: _ctx.config.contextLink,\n target: \"_NEW\"\n }, _toDisplayString(_ctx.config.contextLabel), 9, _hoisted_10),\n _createTextVNode(\" | \"),\n _hoisted_11\n ]),\n (_ctx.config.dateModified)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, _toDisplayString(_ctx.$t('story.date')) + \" \" + _toDisplayString(_ctx.config.dateModified), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { Options, Vue } from 'vue-property-decorator';\nimport { ConfigFileStructure, StoryRampConfig } from '@/definitions';\nimport { VueSpinnerOval } from 'vue3-spinners';\n\n@Options({\n components: {\n spinner: VueSpinnerOval\n }\n})\nexport default class StoryPreviewV extends Vue {\n config: StoryRampConfig | undefined = undefined;\n configFileStructure: ConfigFileStructure | undefined = undefined;\n savedProduct = false;\n loadStatus = 'loading';\n activeChapterIndex = -1;\n lang = 'en';\n uid = '';\n\n created(): void {\n const uid = this.$route.params.uid as string;\n const lang = this.$route.params.lang as string;\n if (uid) {\n this.savedProduct = true;\n // attempt to fetch saved config file from the server (TODO: setup as express route?)\n fetch(`http://localhost:6040/retrieve/${uid}/${lang}`).then((res: Response) => {\n if (res.status === 404) {\n console.error(`There does not exist a saved product with UID ${uid}.`);\n // redirect to canada.ca 404 page on invalid URL params\n // window.location.href = 'https://www.canada.ca/errors/404.html';\n } else {\n res.json().then((config: StoryRampConfig) => {\n this.config = config;\n this.loadStatus = 'loaded';\n document.title = this.config.title + ' - Canada.ca';\n });\n }\n });\n } else {\n this.config = window.props.config;\n this.configFileStructure = window.props.configFileStructure;\n this.loadStatus = 'loaded';\n }\n\n // set page lang\n const html = document.documentElement;\n html.setAttribute('lang', this.lang);\n this.$i18n.locale = this.lang;\n }\n\n updateActiveIndex(idx: number): void {\n this.activeChapterIndex = idx;\n }\n}\n","import { render } from \"./preview.vue?vue&type=template&id=c0d876e0&ts=true\"\nimport script from \"./preview.vue?vue&type=script&lang=ts\"\nexport * from \"./preview.vue?vue&type=script&lang=ts\"\n\nimport \"./preview.vue?vue&type=style&index=0&id=c0d876e0&lang=scss\"\n\nimport exportComponent from \"/home/runner/work/storylines-editor/storylines-editor/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import LandingV from '@/components/editor/landing.vue';\nimport MetadataEditorV from '@/components/editor/metadata-editor.vue';\nimport StoryPreviewV from '@/components/editor/preview.vue';\nimport { createRouter, createWebHashHistory, RouteLocationNormalized } from 'vue-router';\n\nconst routes = [\n {\n path: '/:lang/editor',\n name: 'home',\n component: LandingV,\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor/:uid',\n redirect: '/:lang/editor-metadata/:uid'\n },\n {\n path: '/:lang/editor-metadata',\n name: 'metadataExisting',\n component: MetadataEditorV,\n props: { editExisting: true },\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor-metadata',\n name: 'metadataNew',\n component: MetadataEditorV,\n props: { editExisting: false },\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor-metadata/:uid',\n component: MetadataEditorV,\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor-main/:uid',\n name: 'editor',\n component: MetadataEditorV,\n props: true,\n meta: { title: 'editor.window.title' }\n },\n {\n path: '/:lang/editor-preview',\n component: StoryPreviewV,\n name: 'preview',\n props: true,\n meta: { title: 'story.window.title' }\n },\n {\n path: '/:lang/editor-preview/:uid',\n component: StoryPreviewV,\n meta: { title: 'story.window.title' }\n }\n];\n\nconst router = createRouter({\n routes: routes,\n // TODO: change to history mode for nicer URLs (eliminating middle hash) see #100\n history: createWebHashHistory(),\n scrollBehavior: function (to: RouteLocationNormalized) {\n if (to.hash) {\n return {\n selector: decodeURIComponent(to.hash),\n behavior: 'smooth'\n };\n }\n }\n});\n\nexport default router;\n","import { createI18n } from 'vue-i18n';\n\ntype csvRows = { key: string; enValue: string; frValue: string }[];\ninterface LocaleMessages {\n [key: string]: { [name: string]: string };\n}\n\nconst rows = require('./lang.csv');\n\nconst lang = document.documentElement.getAttribute('lang');\n\n/**\n * Fold the imported CSV file in the form of `{ key: string, enValue: string, frValue: string }[]` to the form understood by VueI18n: `{ en: { [name: string]: string }, fr: { [name: string]: string } }`.\n *\n * @param {csvRows} rows\n * @returns {LocaleMessages}\n */\nfunction fold(rows: csvRows): LocaleMessages {\n return rows.reduce(\n (map, item) => {\n map.en[item.key] = item.enValue;\n map.fr[item.key] = item.frValue;\n return map;\n },\n { en: {}, fr: {} } as LocaleMessages\n );\n}\n\nconst i18n = createI18n({\n legacy: false,\n locale: lang || undefined,\n fallbackLocale: 'en',\n globalInjection: true,\n messages: fold(rows)\n});\n\nexport { i18n };\n","import { createApp } from 'vue';\nimport App from './app.vue';\n\nimport './router/componentHooks';\nimport router from './router';\nimport './style.css';\nimport { i18n } from './lang';\n\nimport VueMarkdownEditor from '@kangc/v-md-editor';\nimport '@kangc/v-md-editor/lib/style/base-editor.css';\nimport githubTheme from '@kangc/v-md-editor/lib/theme/github.js';\nimport '@kangc/v-md-editor/lib/theme/style/github.css';\nimport enUS from '@kangc/v-md-editor/lib/lang/en-US';\nimport hljs from 'highlight.js';\n\nVueMarkdownEditor.lang.use('en-US', enUS);\nVueMarkdownEditor.use(githubTheme, {\n Hljs: hljs\n});\n\nimport { createVfm } from 'vue-final-modal';\nconst vfm = createVfm();\nimport 'vue-final-modal/dist/style.css';\n\nimport VueTippy from 'vue-tippy';\nimport 'tippy.js/dist/tippy.css';\nimport 'tippy.js/dist/backdrop.css';\n\nimport HighchartsVue from 'highcharts-vue';\nimport Message from 'vue-m-message';\nimport 'vue-m-message/dist/style.css';\n\nimport StorylinesViewer from 'ramp-storylines';\nimport 'ramp-storylines/dist/storylines-viewer.css';\n\nconst app = createApp(App);\n\napp.use(router)\n .use(i18n)\n .use(VueTippy, {\n directive: 'tippy',\n component: 'tippy'\n })\n .use(HighchartsVue)\n .use(Message)\n .use(StorylinesViewer)\n .use(VueMarkdownEditor)\n .use(vfm);\n\napp.mount('#app');\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./time-slider-editor.vue?vue&type=style&index=0&id=6923af36&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./slide-toc.vue?vue&type=style&index=0&id=50ad0d19&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./slide-editor.vue?vue&type=style&index=0&id=ecc4f964&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file