diff --git a/dist/build.js b/dist/build.js index 68bf61de..8cdb2d33 100644 --- a/dist/build.js +++ b/dist/build.js @@ -1,2 +1,2 @@ -(()=>{var e,t,i,s,o,r={60069:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,'body{font-family:"Roboto",sans-serif;height:100vh}body::-webkit-scrollbar{display:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background-clip:padding-box;background-color:#9e9e9e;border-radius:8px}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:#2c3e4e;border-radius:8px}.v-application--wrap{flex-direction:row}.theme--light.v-application{color:#2c3e4e}.theme--light.v-icon{color:inherit !important}.theme--dark.v-label{color:#fff}.v-toolbar__content{display:flex;align-items:center;justify-content:space-between;height:100% !important;width:100%}.v-input__icon>i{font-size:14px !important;margin-right:10px}.v-navigation-drawer--fixed{z-index:200}.v-btn.primary>span{color:#2c3e4e !important}.v-snack__wrapper{margin:20px}.v-snack__content{color:#2c3e4e !important}.snackbar-error>.v-snack__wrapper{border-bottom:5px solid #e42626 !important}.snackbar-warning>.v-snack__wrapper{border-bottom:5px solid #ff7b30 !important}.snackbar-positive>.v-snack__wrapper{border-bottom:5px solid #4caf50 !important}.v-card__subtitle,.v-card__text,.v-card__title{padding:0}.v-card__title{line-height:normal}.mapboxgl-ctrl-bottom-right{right:10px;bottom:10px}.mapboxgl-popup-content{padding:10px;color:#fff;background-color:#2c3e4e}.mapboxgl-popup-tip{border-bottom-color:#2c3e4e !important;border-top-color:#2c3e4e !important}.mapboxgl-popup-close-button{right:20px;top:20px;font-size:1.5em}.mapboxgl-ctrl-attrib-inner>a{color:#2c3e4e !important}.view{padding:20px;height:calc(100% - 50px);width:100%;display:flex}.card{background-color:#fff;border-radius:5px;box-shadow:0px 5px 10px rgba(0,0,0,.05);padding:20px}.card-hover:hover{box-shadow:0px 5px 10px rgba(0,0,0,.1)}.list-enter-active,.list-leave-active{transition:all 1s}.list-enter,.list-leave-to{opacity:0;transform:translateX(300px)}.fade-leave-active{display:none !important}.fade-enter-active,.fade-leave-active{transition:opacity .5s}.fade-enter,.fade-leave-to{opacity:0 !important}',"",{version:3,sources:["webpack://./src/scss/generic.scss","webpack://./src/scss/variables.scss","webpack://./src/scss/vuetify.scss","webpack://./src/scss/mapboxgl.scss","webpack://./src/scss/util.scss","webpack://./src/scss/animations.scss"],names:[],mappings:"AAAA,KACE,+BAAA,CACA,YAAA,CAEF,wBACE,YAAA,CAEF,oBACE,SAAA,CAEF,0BACE,2BAAA,CACA,wBCJkB,CDKlB,iBAAA,CAEF,0BACE,2BAAA,CACA,wBCfkB,CDgBlB,iBAAA,CElBF,qBACE,kBAAA,CAEF,4BACE,aDFkB,CCIpB,qBACE,wBAAA,CAEF,qBACE,UAAA,CAEF,oBACE,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,sBAAA,CACA,UAAA,CAEF,iBACE,yBAAA,CACA,iBAAA,CAEF,4BACE,WAAA,CAEF,oBACE,wBAAA,CAEF,kBACE,WAAA,CAEF,kBACE,wBAAA,CAEF,kCACE,0CAAA,CAEF,oCACE,0CAAA,CAEF,qCACE,0CAAA,CAEF,+CACE,SAAA,CAEF,eACE,kBAAA,CChDF,4BACE,UAAA,CACA,WAAA,CAEF,wBACE,YAAA,CACA,UAAA,CACA,wBFLkB,CEOpB,oBACE,sCAAA,CACA,mCAAA,CAEF,6BACE,UAAA,CACA,QAAA,CACA,eAAA,CAEF,8BACE,wBAAA,CCnBF,MACE,YAAA,CACA,wBAAA,CACA,UAAA,CACA,YAAA,CAEF,MACE,qBAAA,CACA,iBAAA,CACA,uCAAA,CACA,YAAA,CAEF,kBACE,sCAAA,CCbF,sCACE,iBAAA,CAEF,2BACE,SAAA,CACA,2BAAA,CAEF,mBACE,uBAAA,CAEF,sCACE,sBAAA,CAEF,2BACE,oBAAA",sourcesContent:["body {\n font-family: 'Roboto', sans-serif;\n height: 100vh;\n}\nbody::-webkit-scrollbar {\n display: none;\n}\n::-webkit-scrollbar {\n width: 8px;\n}\n::-webkit-scrollbar-track {\n background-clip: padding-box;\n background-color: $grey-medium;\n border-radius: 8px;\n}\n::-webkit-scrollbar-thumb {\n background-clip: padding-box;\n background-color: $secondary;\n border-radius: 8px;\n}\n","$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;",".v-application--wrap {\n flex-direction: row;\n}\n.theme--light.v-application {\n color: $secondary;\n}\n.theme--light.v-icon {\n color: inherit !important;\n}\n.theme--dark.v-label {\n color: white;\n}\n.v-toolbar__content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 100% !important;\n width: 100%;\n}\n.v-input__icon > i {\n font-size: 14px !important;\n margin-right: 10px;\n}\n.v-navigation-drawer--fixed {\n z-index: 200;\n}\n.v-btn.primary > span {\n color: $secondary !important;\n}\n.v-snack__wrapper {\n margin: 20px;\n}\n.v-snack__content {\n color: $secondary !important;\n}\n.snackbar-error > .v-snack__wrapper {\n border-bottom: 5px solid $negative !important;\n}\n.snackbar-warning > .v-snack__wrapper {\n border-bottom: 5px solid $warning !important;\n}\n.snackbar-positive > .v-snack__wrapper {\n border-bottom: 5px solid $positive !important;\n}\n.v-card__subtitle, .v-card__text, .v-card__title {\n padding: 0;\n}\n.v-card__title {\n line-height: normal;\n}\n",".mapboxgl-ctrl-bottom-right {\n right: 10px;\n bottom: 10px;\n}\n.mapboxgl-popup-content {\n padding: 10px;\n color: white;\n background-color: $secondary;\n}\n.mapboxgl-popup-tip {\n border-bottom-color: $secondary !important;\n border-top-color: $secondary !important;\n}\n.mapboxgl-popup-close-button {\n right: 20px;\n top: 20px;\n font-size: 1.5em;\n}\n.mapboxgl-ctrl-attrib-inner > a {\n color: $secondary !important;\n}\n",".view {\n padding: 20px;\n height: calc(100% - 50px);\n width: 100%;\n display: flex;\n}\n.card {\n background-color: white;\n border-radius: 5px;\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.05);\n padding: 20px;\n}\n.card-hover:hover {\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.10);\n}\n",".list-enter-active, .list-leave-active {\n transition: all 1s;\n}\n.list-enter, .list-leave-to {\n opacity: 0;\n transform: translateX(300px);\n}\n.fade-leave-active {\n display: none !important;\n}\n.fade-enter-active, .fade-leave-active {\n transition: opacity 0.5s;\n}\n.fade-enter, .fade-leave-to {\n opacity: 0 !important;\n}\n"],sourceRoot:""}]);const a=n},28787:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".app[data-v-610ce914]{background-color:#f5f5f5 !important;width:100%;height:100%;overflow:hidden}.snackbar-text[data-v-610ce914]{color:var(--v-secondarydark-base)}.container[data-v-610ce914]{height:100%;margin-left:50px;width:calc(100% - 50px);max-width:calc(100% - 50px);padding:0}.container.login[data-v-610ce914]{margin-left:0;width:100%}","",{version:3,sources:["webpack://./src/App.vue"],names:[],mappings:"AAEA,sBACE,mCAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CAEF,gCACE,iCAAA,CAEF,4BACE,WAAA,CACA,gBAAA,CACA,uBAAA,CACA,2BAAA,CACA,SAAA,CAEF,kCACE,aAAA,CACA,UAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.app {\n background-color: $grey-ultralight !important;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n.snackbar-text{\n color:var(--v-secondarydark-base);\n}\n.container {\n height: 100%;\n margin-left: 50px;\n width: calc(100% - 50px);\n max-width: calc(100% - 50px);\n padding: 0;\n}\n.container.login {\n margin-left: 0;\n width: 100%;\n}\n'],sourceRoot:""}]);const a=n},56174:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".row[data-v-d3a53384]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding-bottom:30px;padding-top:18px}.container[data-v-d3a53384]{display:flex;flex-direction:row;justify-content:space-evenly;align-items:center;padding-left:2em;padding-right:2em}.type-icon[data-v-d3a53384]{padding-right:.2em}.element[data-v-d3a53384]{margin-left:auto}.check-icon[data-v-d3a53384]{padding-left:1em}.subtitle[data-v-d3a53384]{flex:2;font-size:1.5em;font-weight:bold}","",{version:3,sources:["webpack://./src/components/import/FileLoader.vue"],names:[],mappings:"AAGA,sBACE,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,mBAAA,CACA,gBAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,4BAAA,CACA,kBAAA,CACA,gBAAA,CACA,iBAAA,CAGF,4BACE,kBAAA,CAEF,0BACE,gBAAA,CAEF,6BACE,gBAAA,CAEF,2BACE,MAAA,CACA,eAAA,CACA,gBAAA",sourcesContent:['@import "@scss/variables.scss";\n\n\n.row{\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding-bottom: 30px;\n padding-top:18px;\n\n}\n.container{\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n align-items: center;\n padding-left: 2em;\n padding-right: 2em;\n\n}\n.type-icon{\n padding-right: 0.2em;\n}\n.element{\n margin-left: auto;\n}\n.check-icon{\n padding-left: 1em;\n}\n.subtitle {\n flex:2;\n font-size: 1.5em;\n font-weight: bold;\n}\n'],sourceRoot:""}]);const a=n},77697:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".files-container[data-v-e186d29a]{height:17rem;border-radius:5px;background:var(--v-background-lighten4);display:flex;margin:10px 0px 0px 0px;flex-direction:column}.title-box[data-v-e186d29a]{display:flex;flex-direction:row;background:var(--v-background-lighten3);border-radius:5px 5px 0px 0px;padding:.5rem .5rem .5rem 1rem}.title[data-v-e186d29a]{font-size:2em !important;font-weight:bold}.upload-button[data-v-e186d29a]{margin-left:auto;margin-right:.75rem}.list-button[data-v-e186d29a]{margin-left:auto;margin-right:1rem}.list-icon[data-v-e186d29a]{margin-left:.5rem}.list[data-v-e186d29a]{font-size:1em;font-weight:bold;overflow-y:auto;padding-left:1rem;padding-top:.5rem}.list li[data-v-e186d29a]{display:flex;align-items:center}","",{version:3,sources:["webpack://./src/components/import/FilesList.vue"],names:[],mappings:"AAEA,kCACE,YAAA,CACA,iBAAA,CACA,uCAAA,CACA,YAAA,CACA,uBAAA,CACA,qBAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,uCAAA,CAEA,6BAAA,CACA,8BAAA,CAGF,wBACE,wBAAA,CACA,gBAAA,CAEF,gCACE,gBAAA,CACA,mBAAA,CAEF,8BACE,gBAAA,CACA,iBAAA,CAEF,4BACE,iBAAA,CAEF,uBACE,aAAA,CACA,gBAAA,CAEA,eAAA,CACA,iBAAA,CACA,iBAAA,CAEF,0BAEE,YAAA,CACA,kBAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.files-container{\n height: 17rem;\n border-radius: 5px;\n background:var(--v-background-lighten4);\n display: flex;\n margin: 10px 0px 0px 00px;\n flex-direction: column;\n\n}\n.title-box {\n display: flex;\n flex-direction: row;\n background:var(--v-background-lighten3);\n\n border-radius: 5px 5px 0px 0px;\n padding: 0.5rem 0.5rem 0.5rem 1rem;\n\n}\n.title{\n font-size: 2em !important;\n font-weight: bold;\n}\n.upload-button {\n margin-left: auto;\n margin-right:0.75rem\n}\n.list-button{\n margin-left:auto;\n margin-right:1rem\n}\n.list-icon{\n margin-left:0.5rem\n}\n.list {\n font-size: 1em;\n font-weight: bold;\n //border: 1px solid red;\n overflow-y: auto;\n padding-left: 1rem;\n padding-top:0.5rem\n}\n.list li {\n /* Add individual list item styles here */\n display: flex; /* Use flexbox layout for each list item */\n align-items: center; /* Align button vertically in the list item */\n}\n\n'],sourceRoot:""}]);const a=n},5576:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".drawer[data-v-5b138161]{background-color:var(--v-secondary-base) !important}.drawer-header[data-v-5b138161]{width:100%;height:50px;border-bottom:1px solid #fff;background-color:var(--v-secondary-base);color:#fff;display:flex;align-items:center;padding-left:18px;cursor:pointer}.drawer-list[data-v-5b138161]{height:calc(100% - 50px);display:flex;flex-direction:column;padding:20px 0}.drawer-list-item[data-v-5b138161]{padding:0 13px !important;justify-content:flex-start !important;color:#fff;flex:0;transition:.3s}.version-number[data-v-5b138161]{justify-content:flex-start;color:#fff !important;margin-bottom:-1rem;flex:0}.drawer-list-item-icon[data-v-5b138161]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}.drawer-list-item-icon-disabled[data-v-5b138161]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;opacity:.4}.drawer-list-item-selected[data-v-5b138161]{background-color:var(--v-secondarydarkfix-base)}.drawer-list-item[data-v-5b138161]:hover{background-color:var(--v-secondary-base)}","",{version:3,sources:["webpack://./src/components/layout/NavigationDrawer.vue"],names:[],mappings:"AAEA,yBACE,mDAAA,CAEF,gCACE,UAAA,CACA,WAAA,CACA,4BAAA,CACA,wCAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,cAAA,CAEF,8BACE,wBAAA,CACA,YAAA,CAEA,qBAAA,CACA,cAAA,CAEF,mCACE,yBAAA,CACA,qCAAA,CACA,UAAA,CACA,MAAA,CACA,cAAA,CAEF,iCACE,0BAAA,CACA,qBAAA,CACA,mBAAA,CACA,MAAA,CAEF,wCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,iDACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,4CACE,+CAAA,CAEF,yCACE,wCAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.drawer {\n background-color: var(--v-secondary-base) !important;\n}\n.drawer-header {\n width: 100%;\n height: 50px;\n border-bottom: 1px solid white;\n background-color: var(--v-secondary-base);\n color: white;\n display: flex;\n align-items: center;\n padding-left: 18px;\n cursor: pointer;\n}\n.drawer-list {\n height: calc(100% - 50px);\n display: flex;\n\n flex-direction: column;\n padding: 20px 0;\n}\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n color:white ;\n flex: 0;\n transition: 0.3s;\n}\n.version-number {\n justify-content: flex-start ;\n color:white !important;\n margin-bottom:-1rem;\n flex: 0;\n}\n.drawer-list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n.drawer-list-item-icon-disabled {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n opacity: 0.4;\n}\n.drawer-list-item-selected {\n background-color: var(--v-secondarydarkfix-base);\n}\n.drawer-list-item:hover {\n background-color: var(--v-secondary-base);\n}\n'],sourceRoot:""}]);const a=n},35496:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".title[data-v-dad7c1ea]{font-size:1.2em;padding-left:1.2rem;color:var(--v-secondarydark-base)}.is-active[data-v-dad7c1ea]{opacity:1;background-color:var(--v-primary-base)}","",{version:3,sources:["webpack://./src/components/layout/ScenariosExplorer.vue"],names:[],mappings:"AAEA,wBACE,eAAA,CACA,mBAAA,CACA,iCAAA,CAEF,4BACE,SAAA,CACA,sCAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.title {\n font-size: 1.2em;\n padding-left: 1.2rem;\n color:var(--v-secondarydark-base);\n}\n.is-active{\n opacity:1;\n background-color:var(--v-primary-base);\n\n}\n'],sourceRoot:""}]);const a=n},56050:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".app-toolbar[data-v-4d444598]{z-index:100;height:50px !important;display:flex;color:#2c3e4e !important;position:relative}.login[data-v-4d444598]{padding-left:50px}.project-name[data-v-4d444598]{font-size:1.3em}.app-name[data-v-4d444598]{font-size:1.2em;padding-left:1.2rem;color:var(--v-secondarydark-base)}.copyright[data-v-4d444598]{font-size:.9rem;padding-left:5px;padding-top:1rem;color:var(--v-secondarydark-base)}.languages-container[data-v-4d444598]{display:flex}.switch[data-v-4d444598]{display:flex;padding-top:1rem;padding-left:1rem;align-items:center;justify-content:center;color:#e3e3e3;cursor:pointer}.language[data-v-4d444598]{width:50px;display:flex;align-items:center;justify-content:center;color:#e3e3e3;cursor:pointer;transition:.3s}.language.active[data-v-4d444598],.language[data-v-4d444598]:hover{color:var(--v-secondarydark-base)}.language[data-v-4d444598]:last-child{border-right:0}","",{version:3,sources:["webpack://./src/components/layout/Toolbar.vue","webpack://./src/scss/variables.scss"],names:[],mappings:"AAEA,8BACE,WAAA,CACA,sBAAA,CACA,YAAA,CACA,wBAAA,CACA,iBAAA,CAEF,wBACE,iBAAA,CAEF,+BACE,eAAA,CAEF,2BACE,eAAA,CACA,mBAAA,CACA,iCAAA,CAEF,4BACE,eAAA,CACA,gBAAA,CACA,gBAAA,CACA,iCAAA,CAEF,sCACE,YAAA,CAEF,yBACE,YAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,aC5BkB,CD6BlB,cAAA,CAEF,2BACE,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,aCpCkB,CDqClB,cAAA,CACA,cAAA,CAEF,mEACE,iCAAA,CAEF,sCACE,cAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.app-toolbar {\n z-index: 100;\n height: 50px !important;\n display: flex;\n color: $secondary !important;\n position: relative;\n}\n.login {\n padding-left: 50px;\n}\n.project-name {\n font-size: 1.3em;\n}\n.app-name {\n font-size: 1.2em;\n padding-left: 1.2rem;\n color:var(--v-secondarydark-base);\n}\n.copyright {\n font-size: 0.9rem;\n padding-left: 5px;\n padding-top: 1rem;\n color:var(--v-secondarydark-base);\n}\n.languages-container {\n display: flex;\n}\n.switch {\n display: flex;\n padding-top: 1rem;\n padding-left:1rem;\n align-items: center;\n justify-content: center;\n color: $grey-light;\n cursor: pointer;\n}\n.language {\n width: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $grey-light;\n cursor: pointer;\n transition: 0.3s;\n}\n.language.active, .language:hover {\n color:var(--v-secondarydark-base);\n}\n.language:last-child {\n border-right: 0;\n}\n',"$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;"],sourceRoot:""}]);const a=n},67308:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".left-panel[data-v-61e624f6]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-61e624f6]{transition:.3s}.left-panel-content[data-v-61e624f6]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-61e624f6]{padding:0}.left-panel-toggle-btn[data-v-61e624f6]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-61e624f6]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-61e624f6]{height:height;padding-left:20px}.scrollable[data-v-61e624f6]{overflow-y:scroll}.drawer-list-item[data-v-61e624f6]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-61e624f6]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}.custom-tooltip[data-v-61e624f6]{opacity:1 !important;background:var(--v-tooltip-bg, rgb(97, 97, 97)) !important}","",{version:3,sources:["webpack://./src/components/map/LinksSidePanel.vue","webpack://./src/scss/variables.scss"],names:[],mappings:"AAGA,6BACE,WAAA,CACA,wBCJkB,CDKlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC/BkB,CDgClB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,iCACI,oBAAA,CACA,0DAAA",sourcesContent:['@import "@scss/variables.scss";\n\n@import "src/scss/variables.scss";\n.left-panel {\n height: 100%;\n background-color: $primary-dark;\n transition: 0.3s;\n position: absolute;\n display:flex;\n z-index: 20;\n\n}\n.left-panel-close {\ntransition:0.3s\n}\n.left-panel-content {\n display:inline-block;\n width : 100%;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n //resize: horizontal;\n overflow: auto;\n\n}\n.v-list__tile {\n padding: 0\n}\n.left-panel-toggle-btn {\n left: 100%;\n width: 25px;\n z-index: 1;\n background-color: $primary-dark;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n height: 50px;\n transition: 0.3s;\n cursor: pointer;\n}\n.left-panel-title {\n height: 50px;\n line-height: 55px;\n padding-left: 20px;\n font-size: 1.1em;\n margin-bottom: 10px;\n}\n.trip-list {\n height: height;\n padding-left:20px\n}\n\n.scrollable {\n overflow-y:scroll;\n\n}\n\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n flex: 0;\n transition: 0.3s;\n}\n\n.list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n.custom-tooltip {\n opacity: 1!important;\n background: var(--v-tooltip-bg, rgba(97, 97, 97, 1)) !important;\n}\n\n',"$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;"],sourceRoot:""}]);const a=n},76278:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".map-view[data-v-66748ace]{width:100%}.my-custom-dialog[data-v-66748ace]{position:absolute !important;top:10px !important;right:20px !important}","",{version:3,sources:["webpack://./src/components/map/Map.vue"],names:[],mappings:"AAEA,2BACE,UAAA,CAGF,mCACE,4BAAA,CACA,mBAAA,CACA,qBAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.map-view {\n width: 100%;\n\n}\n.my-custom-dialog {\n position: absolute !important;\n top: 10px !important;\n right: 20px !important;\n}\n'],sourceRoot:""}]);const a=n},55271:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".left-panel[data-v-56780b52]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-56780b52]{transition:.3s}.left-panel-content[data-v-56780b52]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-56780b52]{padding:0}.left-panel-toggle-btn[data-v-56780b52]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-56780b52]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-56780b52]{height:height;padding-left:20px}.scrollable[data-v-56780b52]{overflow-y:scroll}.drawer-list-item[data-v-56780b52]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-56780b52]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}","",{version:3,sources:["webpack://./src/components/map/ODSidePanel.vue","webpack://./src/scss/variables.scss"],names:[],mappings:"AAEA,6BACE,WAAA,CACA,wBCHkB,CDIlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC9BkB,CD+BlB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.left-panel {\n height: 100%;\n background-color: $primary-dark;\n transition: 0.3s;\n position: absolute;\n display:flex;\n z-index: 20;\n\n}\n.left-panel-close {\ntransition:0.3s\n}\n.left-panel-content {\n display:inline-block;\n width : 100%;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n //resize: horizontal;\n overflow: auto;\n\n}\n.v-list__tile {\n padding: 0\n}\n.left-panel-toggle-btn {\n left: 100%;\n width: 25px;\n z-index: 1;\n background-color: $primary-dark;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n height: 50px;\n transition: 0.3s;\n cursor: pointer;\n}\n.left-panel-title {\n height: 50px;\n line-height: 55px;\n padding-left: 20px;\n font-size: 1.1em;\n margin-bottom: 10px;\n}\n.trip-list {\n height: height;\n padding-left:20px\n}\n\n.scrollable {\n overflow-y:scroll;\n\n}\n\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n flex: 0;\n transition: 0.3s;\n}\n\n.list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n\n',"$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;"],sourceRoot:""}]);const a=n},82215:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".left-panel[data-v-0e528228]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-0e528228]{transition:.3s}.left-panel-content[data-v-0e528228]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-0e528228]{padding:0}.left-panel-toggle-btn[data-v-0e528228]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-0e528228]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-0e528228]{height:height;padding-left:20px}.scrollable[data-v-0e528228]{overflow-y:scroll}.drawer-list-item[data-v-0e528228]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-0e528228]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}","",{version:3,sources:["webpack://./src/components/map/RoadSidePanel.vue","webpack://./src/scss/variables.scss"],names:[],mappings:"AAEA,6BACE,WAAA,CACA,wBCHkB,CDIlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC9BkB,CD+BlB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.left-panel {\n height: 100%;\n background-color: $primary-dark;\n transition: 0.3s;\n position: absolute;\n display:flex;\n z-index: 20;\n\n}\n.left-panel-close {\ntransition:0.3s\n}\n.left-panel-content {\n display:inline-block;\n width : 100%;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n //resize: horizontal;\n overflow: auto;\n\n}\n.v-list__tile {\n padding: 0\n}\n.left-panel-toggle-btn {\n left: 100%;\n width: 25px;\n z-index: 1;\n background-color: $primary-dark;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n height: 50px;\n transition: 0.3s;\n cursor: pointer;\n}\n.left-panel-title {\n height: 50px;\n line-height: 55px;\n padding-left: 20px;\n font-size: 1.1em;\n margin-bottom: 10px;\n}\n.trip-list {\n height: height;\n padding-left:20px\n}\n\n.scrollable {\n overflow-y:scroll;\n\n}\n\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n flex: 0;\n transition: 0.3s;\n}\n\n.list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n\n',"$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;"],sourceRoot:""}]);const a=n},5236:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".setting[data-v-6c428464]{position:absolute;top:10px;right:20px}.layout[data-v-6c428464]{position:absolute;width:100%;height:calc(100% - 50px);display:flex;flex-flow:row;justify-content:center;align-items:center}.layout-overlay[data-v-6c428464]{height:100%;width:100%;background-color:rgba(0,0,0,.5);position:absolute}.card[data-v-6c428464]{width:500px;overflow-y:auto;padding:40px}.title[data-v-6c428464]{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3.5em;color:#b5e0d6 !important;font-weight:bold}.subtitle[data-v-6c428464]{font-size:2em;color:var(--v-secondarydark-base) !important;font-weight:bold;padding:1rem}.card button[data-v-6c428464]{margin-top:40px}.shake[data-v-6c428464]{animation:shake-6c428464 .5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;transform:translate3d(0, 0, 0)}@keyframes shake-6c428464{10%,90%{transform:translate3d(-1px, 0, 0)}20%,80%{transform:translate3d(2px, 0, 0)}30%,50%,70%{transform:translate3d(-4px, 0, 0)}40%,60%{transform:translate3d(4px, 0, 0)}}","",{version:3,sources:["webpack://./src/components/map/Settings.vue"],names:[],mappings:"AAEA,0BACE,iBAAA,CACA,QAAA,CACA,UAAA,CAGF,yBACE,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,YAAA,CACA,aAAA,CACA,sBAAA,CACA,kBAAA,CAEF,iCACE,WAAA,CACA,UAAA,CACA,+BAAA,CACA,iBAAA,CAEF,uBACE,WAAA,CACA,eAAA,CACA,YAAA,CAEF,wBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CAEF,2BACE,aAAA,CACA,4CAAA,CACA,gBAAA,CACA,YAAA,CAGF,8BACE,eAAA,CAEF,wBACE,sEAAA,CACA,8BAAA,CAEF,0BACE,QACE,iCAAA,CAEF,QACE,gCAAA,CAEF,YACE,iCAAA,CAEF,QACE,gCAAA,CAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.setting {\n position: absolute;\n top: 10px;\n right: 20px;\n}\n\n.layout {\n position: absolute;\n width: calc(100%);\n height: calc(100% - 50px);\n display: flex;\n flex-flow: row;\n justify-content: center;\n align-items: center;\n}\n.layout-overlay {\n height: 100%;\n width: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n position: absolute;\n}\n.card {\n width: 500px;\n overflow-y: auto;\n padding: 40px;\n}\n.title {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 3.5em;\n color: $primary !important;\n font-weight: bold;\n}\n.subtitle {\n font-size: 2em;\n color: var(--v-secondarydark-base) !important;\n font-weight: bold;\n padding:1rem\n\n}\n.card button {\n margin-top: 40px;\n}\n.shake {\n animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;\n transform: translate3d(0, 0, 0);\n}\n@keyframes shake {\n 10%, 90% {\n transform: translate3d(-1px, 0, 0);\n }\n 20%, 80% {\n transform: translate3d(2px, 0, 0);\n }\n 30%, 50%, 70% {\n transform: translate3d(-4px, 0, 0);\n }\n 40%, 60% {\n transform: translate3d(4px, 0, 0);\n }\n}\n'],sourceRoot:""}]);const a=n},13719:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".left-panel[data-v-5064ebfe]{height:100%;background-color:var(--v-primarydark-base);transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-5064ebfe]{transition:.3s}.left-panel-content[data-v-5064ebfe]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-5064ebfe]{padding:0}.left-panel-toggle-btn[data-v-5064ebfe]{left:100%;width:25px;z-index:1;background-color:var(--v-primarydark-base);display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-5064ebfe]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-5064ebfe]{height:height;padding-left:20px}.scrollable[data-v-5064ebfe]{overflow-y:scroll}.drawer-list-item[data-v-5064ebfe]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-5064ebfe]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}","",{version:3,sources:["webpack://./src/components/map/SidePanel.vue"],names:[],mappings:"AAEA,6BACE,WAAA,CACA,0CAAA,CACA,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,0CAAA,CACA,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.left-panel {\n height: 100%;\n background-color:var(--v-primarydark-base);\n transition: 0.3s;\n position: absolute;\n display:flex;\n z-index: 20;\n\n}\n.left-panel-close {\ntransition:0.3s\n}\n.left-panel-content {\n display:inline-block;\n width : 100%;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n //resize: horizontal;\n overflow: auto;\n\n}\n.v-list__tile {\n padding: 0\n}\n.left-panel-toggle-btn {\n left: 100%;\n width: 25px;\n z-index: 1;\n background-color: var(--v-primarydark-base);\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n height: 50px;\n transition: 0.3s;\n cursor: pointer;\n}\n.left-panel-title {\n height: 50px;\n line-height: 55px;\n padding-left: 20px;\n font-size: 1.1em;\n margin-bottom: 10px;\n}\n.trip-list {\n height: height;\n padding-left:20px\n}\n\n.scrollable {\n overflow-y:scroll;\n\n}\n\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n flex: 0;\n transition: 0.3s;\n}\n\n.list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n\n'],sourceRoot:""}]);const a=n},93380:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".layer-button[data-v-9ae88e1e]{position:absolute;top:60px;right:20px}.card[data-v-9ae88e1e]{width:500px;overflow-y:auto;padding:40px}.subtitle[data-v-9ae88e1e]{font-size:1.5em;color:var(--v-secondarydark-base) !important;font-weight:bold;padding:1rem}.title[data-v-9ae88e1e]{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3.5em;color:#b5e0d6 !important;font-weight:bold}.custom-tooltip[data-v-9ae88e1e]{opacity:1 !important;background:var(--v-tooltip-bg, rgb(97, 97, 97)) !important}","",{version:3,sources:["webpack://./src/components/utils/LayerSelector.vue"],names:[],mappings:"AAEA,+BACE,iBAAA,CACA,QAAA,CACA,UAAA,CAEF,uBACE,WAAA,CACA,eAAA,CACA,YAAA,CAEF,2BACE,eAAA,CACA,4CAAA,CACA,gBAAA,CACA,YAAA,CAGF,wBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CAEF,iCACI,oBAAA,CACA,0DAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.layer-button {\n position: absolute;\n top: 60px;\n right: 20px;\n}\n.card {\n width: 500px;\n overflow-y: auto;\n padding: 40px;\n}\n.subtitle {\n font-size: 1.5em;\n color: var(--v-secondarydark-base) !important;\n font-weight: bold;\n padding:1rem\n\n}\n.title {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 3.5em;\n color: $primary !important;\n font-weight: bold;\n}\n.custom-tooltip {\n opacity: 1!important;\n background: var(--v-tooltip-bg, rgba(97, 97, 97, 1)) !important;\n}\n'],sourceRoot:""}]);const a=n},37858:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".gradient[data-v-0de46ea8]{width:85%;white-space:nowrap;position:relative;display:inline-block;padding-top:20px;padding-bottom:15px}.gradient .domain-title[data-v-0de46ea8]{position:absolute;right:25%;left:25%;text-align:center;font-size:11px;top:6px}.gradient .domain-min[data-v-0de46ea8]{position:absolute;left:0;font-size:11px;bottom:5px}.gradient .domain-med[data-v-0de46ea8]{position:absolute;right:25%;left:25%;text-align:center;font-size:11px;bottom:5px}.gradient .domain-max[data-v-0de46ea8]{position:absolute;right:0;font-size:11px;bottom:5px}.grad-step[data-v-0de46ea8]{display:inline-block;height:20px;width:1%}.legend[data-v-0de46ea8]{width:160px;z-index:3;display:flex;position:relative;align-items:center;justify-content:center;transition:.3s;height:50px;background-color:var(--v-white-base);border:thin solid var(--v-mediumgrey-base)}","",{version:3,sources:["webpack://./src/components/utils/MapLegend.vue"],names:[],mappings:"AAGA,2BACI,SAAA,CACA,kBAAA,CACA,iBAAA,CACA,oBAAA,CACA,gBAAA,CACA,mBAAA,CAIJ,yCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CACA,cAAA,CACA,OAAA,CAIJ,uCACI,iBAAA,CACA,MAAA,CACA,cAAA,CACA,UAAA,CAEJ,uCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CACA,cAAA,CACA,UAAA,CAEJ,uCACI,iBAAA,CACA,OAAA,CACA,cAAA,CACA,UAAA,CAGJ,4BACI,oBAAA,CACA,WAAA,CACA,QAAA,CAGJ,yBACE,WAAA,CACA,SAAA,CACA,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,WAAA,CACA,oCAAA,CACA,0CAAA",sourcesContent:['@import "@scss/variables.scss";\n\n\n.gradient {\n width: 85%;\n white-space: nowrap;\n position: relative;\n display: inline-block;\n padding-top: 20px;\n padding-bottom: 15px;\n\n}\n\n.gradient .domain-title {\n position: absolute;\n right: 25%;\n left: 25%;\n text-align: center;\n font-size: 11px;\n top: 6px;\n\n}\n\n.gradient .domain-min {\n position: absolute;\n left: 0;\n font-size: 11px;\n bottom: 5px;\n}\n.gradient .domain-med {\n position: absolute;\n right: 25%;\n left: 25%;\n text-align: center;\n font-size: 11px;\n bottom: 5px;\n}\n.gradient .domain-max {\n position: absolute;\n right: 0;\n font-size: 11px;\n bottom: 5px;\n}\n\n.grad-step {\n display: inline-block;\n height: 20px;\n width: 1%;\n}\n\n.legend {\n width: 160px;\n z-index: 3;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n transition: 0.3s;\n height: 50px;\n background-color: var(--v-white-base);\n border: thin solid var(--v-mediumgrey-base);\n}\n\n'],sourceRoot:""}]);const a=n},79922:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".is-active[data-v-e63b0890]{opacity:1;background-color:var(--v-primary-base)}","",{version:3,sources:["webpack://./src/components/utils/MenuSelector.vue"],names:[],mappings:"AAEA,4BACE,SAAA,CACA,sCAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.is-active{\n opacity:1;\n background-color:var(--v-primary-base);\n\n}\n'],sourceRoot:""}]);const a=n},98210:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".map-legend[data-v-7dc7a5bf]{height:100%;position:absolute}","",{version:3,sources:["webpack://./src/components/utils/StaticLayer.vue"],names:[],mappings:"AAEA,6BACE,WAAA,CACA,iBAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.map-legend {\n height: 100%;\n position: absolute;\n}\n'],sourceRoot:""}]);const a=n},8043:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".map-view[data-v-00b02151]{height:calc(100% - 50px);width:100%;display:flex}","",{version:3,sources:["webpack://./src/pages/Home.vue"],names:[],mappings:"AAEA,2BACE,wBAAA,CACA,UAAA,CACA,YAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.map-view {\n height: calc(100% - 50px);\n width: 100%;\n display: flex;\n}\n\n'],sourceRoot:""}]);const a=n},58141:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".layout[data-v-020024f7]{position:absolute;width:100%;height:calc(100% - 50px);display:flex;flex-flow:row;justify-content:center;align-items:center}.layout-overlay[data-v-020024f7]{height:100%;width:100%;background-color:var(--v-background-base);position:absolute}.card[data-v-020024f7]{width:80rem;overflow-y:hidden;padding:20px}.button-question[data-v-020024f7]{display:flex;align-items:center}.title[data-v-020024f7]{display:flex;align-items:center;justify-content:center;font-size:2em !important;color:var(--v-primary-base);font-weight:bold;margin-top:18px}.subtitle[data-v-020024f7]{font-size:1.5em;font-weight:bold;margin:20px}.card button[data-v-020024f7]{margin:.5rem}.animate-login[data-v-020024f7]{transform:translateY(-185%);transition:1s}.animate-layer[data-v-020024f7]{opacity:0;transition:1s}.button-row[data-v-020024f7]{display:flex;align-items:center;justify-content:center;margin-top:1rem;padding-top:.5rem;border-top:1px solid var(--v-lightgrey-base)}","",{version:3,sources:["webpack://./src/pages/Import.vue"],names:[],mappings:"AAEA,yBACE,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,YAAA,CACA,aAAA,CACA,sBAAA,CACA,kBAAA,CAGF,iCACE,WAAA,CACA,UAAA,CACA,yCAAA,CAEA,iBAAA,CAEF,uBACE,WAAA,CACA,iBAAA,CACA,YAAA,CAEF,kCACE,YAAA,CACA,kBAAA,CAGF,wBACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,wBAAA,CACA,2BAAA,CACA,gBAAA,CACA,eAAA,CAEF,2BACE,eAAA,CACA,gBAAA,CACA,WAAA,CAEF,8BACE,YAAA,CAEF,gCACE,2BAAA,CACA,aAAA,CAEF,gCACE,SAAA,CACA,aAAA,CAEF,6BACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CACA,4CAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.layout {\n position: absolute;\n width: calc(100%);\n height: calc(100% - 50px);\n display: flex;\n flex-flow: row;\n justify-content: center;\n align-items: center;\n}\n\n.layout-overlay {\n height: 100%;\n width: 100%;\n background-color:var(--v-background-base);\n\n position: absolute;\n}\n.card {\n width:80rem;\n overflow-y:hidden;\n padding: 20px;\n}\n.button-question{\n display: flex;\n align-items: center ;\n\n}\n.title {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2em !important;\n color: var(--v-primary-base);\n font-weight: bold;\n margin-top:18px;\n}\n.subtitle {\n font-size: 1.5em;\n font-weight: bold;\n margin: 20px;\n}\n.card button {\n margin: 0.5rem;\n}\n.animate-login {\n transform: translateY(-185%);\n transition: 1s;\n}\n.animate-layer {\n opacity: 0;\n transition: 1s;\n}\n.button-row{\n display: flex;\n align-items: center;\n justify-content:center;\n margin-top : 1rem;\n padding-top:0.5rem;\n border-top: 1px solid var(--v-lightgrey-base);\n}\n\n'],sourceRoot:""}]);const a=n},75997:(e,t,i)=>{"use strict";i.d(t,{Z:()=>s});const s={type:"FeatureCollection",crs:{type:"name",properties:{name:"urn:ogc:def:crs:OGC:1.3:CRS84"}},features:[]}},34221:(e,t,i)=>{"use strict";i.d(t,{Z:()=>s});const s={type:"FeatureCollection",crs:{type:"name",properties:{name:"urn:ogc:def:crs:OGC:1.3:CRS84"}},features:[]}},25286:(e,t,i)=>{"use strict";i.d(t,{Z:()=>y});var s=function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:!isNaN(e.displaySettings.minVal)&&!isNaN(e.displaySettings.minVal),expression:"!isNaN(displaySettings.minVal) && !isNaN(displaySettings.minVal)"}],staticClass:"legend elevation-4",style:{top:`${e.windowHeight}px`,left:`${e.leftOffset}px !important`}},[t("div",{staticClass:"gradient"},[e._l(e.colorScale,(function(e,i){return t("span",{key:i,staticClass:"grad-step",style:{backgroundColor:e}})})),e._v(" "),t("span",{staticClass:"domain-title"},[e._v(e._s(e.displaySettings.selectedFeature))]),e._v(" "),t("span",{staticClass:"domain-min"},[e._v(e._s(Math.round(e.displaySettings.minVal)))]),e._v(" "),t("span",{staticClass:"domain-med"},[e._v(e._s(Math.round((e.displaySettings.maxVal+e.displaySettings.minVal)/2)))]),e._v(" "),t("span",{staticClass:"domain-max"},[e._v(e._s(Math.round(e.displaySettings.maxVal)))])],2)])};s._withStripped=!0;const o={name:"MapLegend",components:{},props:{colorScale:{type:Array,default:()=>[]},displaySettings:{type:Object,default:()=>{}},baseOffset:{type:Number,default:()=>300},order:{type:Number,default:()=>0}},data:()=>({}),computed:{windowHeight(){return this.$store.getters.windowHeight-70},leftOffset(){return this.$store.getters.showLeftPanel?50+180*this.order+this.baseOffset:50+180*this.order}}};var r=i(93379),n=i.n(r),a=i(7795),l=i.n(a),c=i(90569),d=i.n(c),p=i(3565),u=i.n(p),h=i(19216),m=i.n(h),g=i(44589),f=i.n(g),A=i(37858),v={};v.styleTagTransform=f(),v.setAttributes=u(),v.insert=d().bind(null,"head"),v.domAPI=l(),v.insertStyleElement=m(),n()(A.Z,v),A.Z&&A.Z.locals&&A.Z.locals;const y=(0,i(51900).Z)(o,s,[],!1,null,"0de46ea8",null).exports},60887:(e,t,i)=>{"use strict";i.d(t,{Z:()=>u});var s=i(75720),o=i(98690),r=i.n(o),n=i(55733),a=i.n(n),l=i(93162),c=i.n(l);const d="ca-central-1";r().config.region=d;const p=new(r().S3)({apiVersion:"2006-03-01",signatureVersion:"v4",params:{region:d}}),u={s3:p,async login(){r().config.region=d,r().config.credentials=new(r().CognitoIdentityCredentials)({IdentityPoolId:"ca-central-1:b6298c0d-1089-4287-8770-4e9803847671",Logins:{[`cognito-idp.${d}.amazonaws.com/ca-central-1_eUXoawQ4Q`]:s.h.getters.idToken}}),p.config.credentials=r().config.credentials,await this.getBucketList()},getScenario:async function(e){const t={Bucket:e};let i=!0;const o=[];try{for(;i;){const{Contents:e,IsTruncated:s,NextContinuationToken:r}=await p.listObjectsV2(t).promise();o.push(...e),i=s,t.ContinuationToken=r}}catch(e){return[]}const r=Array.from(new Set(o.map((e=>e.Key.split("/")[0])))),n=[];for(const t of r){const i=o.filter((e=>e.Key.startsWith(t))),r=i.filter((e=>e.Key.startsWith(t+"/.lock"))).length>0||"base"===t,a=i.reduce(((e,t)=>e.LastModified>t.LastModified?e:t),[]),l=a.LastModified.toLocaleDateString()+" "+a.LastModified.toLocaleTimeString();let c;try{const t=await p.headObject({Bucket:e,Key:a.Key}).promise();c=t.Metadata.user_email?t.Metadata.user_email:"idns-canada@systra.com"}catch(e){s.h.commit("changeAlert",e)}n.push({model:e,scenario:t,lastModified:l,userEmail:c,protected:r})}return n},readJson:async function(e,t){const i={Bucket:e,Key:t,ResponseCacheControl:"no-cache"},s=await p.getObject(i).promise();return JSON.parse(new TextDecoder("utf-8").decode(s.Body).trim())},readBytes:async function(e,t){const i={Bucket:e,Key:t,ResponseCacheControl:"no-cache"};return(await p.getObject(i).promise()).Body},getBucketList:async function(){try{const e=await this.readJson("quetzal-config","cognito_group_access.json");s.h.commit("setBucketList",e[s.h.getters.cognitoGroup])}catch(e){s.h.commit("changeAlert",e)}},listFiles:async function(e,t){if(Array.isArray(t)){const i=[];return t.forEach((async s=>{const o={Bucket:e,Prefix:t},r=await p.listObjectsV2(o).promise();i.push(...r.Contents.map((e=>e.Key)))})),i}{const i={Bucket:e,Prefix:t};return(await p.listObjectsV2(i).promise()).Contents.map((e=>e.Key))}},copyFolder:async function(e,t,i){const s={Bucket:e,Prefix:t},o=await p.listObjectsV2(s).promise();if(o.Contents=o.Contents.filter((e=>e.Key!==t+"/.lock")),0===o.Contents.length)throw new Error("no params.json in base scenario");for(const t of o.Contents){let s=t.Key.split("/");s[0]=i,s=s.join("/");let o=t.Key.split("/");o[0]=encodeURIComponent(o[0]),o=o.join("/");const r={Bucket:e,CopySource:e+"/"+o,Key:s};p.copyObject(r,(function(e,t){if(e)return e}))}},deleteFolder:async function(e,t){const i={Bucket:e,Prefix:t},s=await p.listObjectsV2(i).promise(),o=[];if(s.Contents.length>0){s.Contents.forEach((e=>o.push({Key:e.Key})));const t={Bucket:e,Delete:{Objects:o}};return p.deleteObjects(t).promise()}},createFolder:async function(e,t){"/"!==t.slice(-1)&&(t+="/");const i={Bucket:e,Key:t,Body:""};p.upload(i,(function(e,t){e?s.h.commit("changeAlert",e):console.log("Successfully created a folder on S3")}))},putObject:async function(e,t,i=""){const o={Bucket:e,Key:t,Body:i,Metadata:{user_email:s.h.getters.cognitoInfo.email},ContentType:" application/json"};return await p.putObject(o).promise()},putBytes:async function(e,t,i=""){const o={Bucket:e,Key:t,Body:i,Metadata:{user_email:s.h.getters.cognitoInfo.email}};return await p.putObject(o).promise()},getImagesURL:async function(e,t){return p.getSignedUrl("getObject",{Bucket:e,Key:t,Expires:100})},downloadFolder:async function(e,t){const i=new(a()),s={Bucket:e,Prefix:t},o=await p.listObjectsV2(s).promise();if(0===o.Contents.length)throw new Error("no params.json in base scenario");for(const t of o.Contents){const s=t.Key.split("/").slice(-1)[0],o={Bucket:e,Key:t.Key,ResponseCacheControl:"no-cache"},r=await p.getObject(o).promise();i.file(s,r.Body)}i.generateAsync({type:"blob"}).then((function(e){c()(e,"example.zip")}))},newScenario:async function(e,t,i){const s=[t+"/inputs/params.json",t+"/styles.json",t+"/attributesChoices.json"],o={Bucket:e,Prefix:t},r=await p.listObjectsV2(o).promise();if(r.Contents=r.Contents.filter((e=>s.includes(e.Key))),0===r.Contents.length)throw new Error("Nothing to copy in base scenario (params.json at least)");for(const t of r.Contents){let s=t.Key.split("/");s[0]=i,s=s.join("/");let o=t.Key.split("/");o[0]=encodeURIComponent(o[0]),o=o.join("/");const r={Bucket:e,CopySource:e+"/"+o,Key:s};p.copyObject(r,(function(e,t){if(e)return e}))}}}},36648:(e,t,i)=>{"use strict";i.d(t,{Z:()=>d});var s=i(24084),o=i(4644),r=i(75720),n=i(96245);const a="ca-central-1:b6298c0d-1089-4287-8770-4e9803847671",l=new s.BZ({ClientId:"4ogc4cfai1flu81djcmgf08n0c",AppWebDomain:"quetzal.auth.ca-central-1.amazoncognito.com",TokenScopesArray:["openid"],RedirectUriSignIn:"https://systragroup.github.io/quetzal-network-editor/callback",RedirectUriSignOut:"https://systragroup.github.io/quetzal-network-editor/signout",UserPoolId:"ca-central-1_eUXoawQ4Q"});l.userhandler={onSuccess:function(e){const t=e.getIdToken().jwtToken,i=(0,n.Z)(t);r.h.commit("setIdToken",t),r.h.commit("setAccessToken",e.accessToken),r.h.commit("setCognitoInfo",i),r.h.commit("setLoggedIn",!0),Object.keys(i).includes("cognito:groups")&&r.h.commit("setCognitoGroup",i["cognito:groups"][0])},onFailure:function(e){r.h.commit("setLoggedOut"),alert("Login failed due to "+e),o.Z.go({path:"/error",query:{message:"Login failed due to "+e}})}};const c=(new s.c4).getStorage(),d={auth:l,login(){l.getSession()},logout(){console.log(l.isUserSignedIn()),l.isUserSignedIn()?(this.getCognitoStorageKey().forEach((e=>c.removeItem(e))),l.signOut()):l.signOut()},getCognitoStorageKey:function(){const e="CognitoIdentityServiceProvider."+l.getClientId(),t=l.signInUserSession.getAccessToken().getUsername(),i=[".userInfo",".tokenScopesString",".accessToken",".idToken",".refreshToken"].map((i=>e+"."+t+i));return i.push(e+".LastAuthUser"),i.push(`aws.cognito.identity-id.${a}`),i.push(`aws.cognito.identity-providers.${a}`),i}}},72055:(e,t,i)=>{"use strict";i.d(t,{H:()=>o,U:()=>r});var s=i(52861);const o={client:null,login(e){this.client=s.Z.create({baseURL:"https://z0i1paj50k.execute-api.ca-central-1.amazonaws.com/dev",withCredentials:!1,headers:{Accept:"*/*","Content-Type":"text/plain",Authorization:e}})}},r={loginAll(e){o.login(e)}}},82069:(e,t,i)=>{"use strict";i.d(t,{GM:()=>o,My:()=>n,_2:()=>r});const s=e=>e;function o(e,t,i=null,o=!1){if(0===e.features.length){const e=new Error(t+s(" is empty"));throw e.name="ImportError",e}if(!["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.crs?.properties.name)){const e=new Error(s(" invalid CRS. Import aborted. use CRS84 / EPSG:4326 in ")+t);throw e.name="ImportError",e}const r=e.features[0].geometry.type;if(r!==i&&null!==i){const e=new Error(r+s(" imported, Expected ")+i+s(". Import aborted in ")+t);throw e.name="ImportError",e}if(!Object.keys(e.features[0].properties).includes("index")&&!o){const e=new Error(s("there is no index in the File. you need unique index. Import aborted in ")+t);throw e.name="ImportError",e}return e}function r(e){if(!Array.isArray(e)){const e=new Error(s("params.json should be an array of object [{category: , params: }, ...]"));throw e.name="ImportError",e}const t=e.filter((e=>!e?.info)),i=new Set(["category","params"]);return t.forEach((e=>{if(t=new Set(Object.keys(e)),o=i,![...o].every((e=>t.has(e)))){const e=new Error(s("params.json should be an array of object [{category: , params: }, ...]"));throw e.name="ImportError",e}var t,o})),e.forEach((e=>{Object.keys(e).includes("model")||(e.model="default")})),e}function n(e){if(!Array.isArray(e)){const e=new Error(s("styles.json should be an array of object with at least [{name:,layer:}]"));throw e.name="ImportError",e}return e.forEach((e=>{if(!Object.keys(e).includes("name")||!Object.keys(e).includes("layer")){const e=new Error(s("styles.json should be an array of object with at least [{name:,layer:}]"));throw e.name="ImportError",e}})),e}},76955:(e,t,i)=>{"use strict";i.d(t,{Bq:()=>a,JO:()=>u,Ri:()=>p,Vh:()=>c,Xy:()=>n,ci:()=>d,sV:()=>l});var s=i(55733),o=i.n(s);i(75720);const r=e=>e;function n(e){return new Promise(((t,i)=>{const s=new FileReader;s.onload=function(e){t(e.target.result)},s.onerror=function(e){i(e.target.error)},s.readAsText(e)}))}function a(e){return new Promise(((t,i)=>{const s=new FileReader;s.onload=function(e){const i=new Uint8Array(e.target.result);t(i)},s.onerror=function(e){i(e.target.error)},s.readAsArrayBuffer(e)}))}async function l(e){const t=new(o()),i=await t.loadAsync(e);let s=Object.keys(i.files);s=s.filter((e=>!e.match(/^__MACOSX\//))),s=s.filter((e=>!e.endsWith("/"))),function(e){if(0===e.filter((e=>e.startsWith("inputs/")||e.startsWith("outputs/"))).length){const t=new Error(r(" root folders should be inputs/ and outputs/. not: ")+e[0]);throw t.name="ImportError",t}}(s);const n=[];for(let e=0;e{const o=new Set(e.map((e=>e.properties[t])));s[t]={value:o.size>1?"":[...o][0],disabled:i.includes(t),placeholder:o.size>1}})),s}function d(e,t){const i=new Set(e.features.map((e=>e.properties.index))),s=new Set(t.features.map((e=>e.properties.index)));return new Set([...i,...s]).size===i.size+s.size}async function p(e){const t=new(o()),i=await t.loadAsync(e),s=Object.keys(i.files),r=await i.file(s[0]).async("string");return JSON.parse(r)}function u(e){let t=(new TextDecoder).decode(e).split("\n");t=t.filter((e=>e.length>0));const i=[],s=t[0].split(",");for(let e=1;e{"use strict";i.d(t,{$z:()=>s,GL:()=>r,r5:()=>o});const s=["motorway","motorway_link","trunk","trunk_link","primary","primary_link","secondary","secondary_link","tertiary","tertiary_link","residential","living_street","service","unclassified","cycleway","pedestrian"],o={motorway:"E892A2",motorway_link:"E892A2",trunk:"E892A2",trunk_link:"E892A2",primary:"FCD6A4",primary_link:"FCD6A4",secondary:"F7F9BE",secondary_link:"F7F9BE",tertiary:"808080",tertiary_link:"808080",residential:"808080",living_street:"808080",service:"808080",unclassified:"808080",cycleway:"1D8621",pedestrian:"1D8621"},r={motorway:4,motorway_link:4,trunk:4,trunk_link:4,primary:4,primary_link:4,secondary:3,secondary_link:3,tertiary:2,tertiary_link:2,residential:2,living_street:2,service:2,unclassified:2,cycleway:2,pedestrian:2}},40114:(e,t,i)=>{"use strict";i(56831),i(67718),i(72679);var s=i(93379),o=i.n(s),r=i(7795),n=i.n(r),a=i(90569),l=i.n(a),c=i(3565),d=i.n(c),p=i(19216),u=i.n(p),h=i(44589),m=i.n(h),g=i(60069),f={};f.styleTagTransform=m(),f.setAttributes=d(),f.insert=l().bind(null,"head"),f.domAPI=n(),f.insertStyleElement=u(),o()(g.Z,f),g.Z&&g.Z.locals&&g.Z.locals;var A=i(70538),v=i(22192),y=i.n(v),C=i(75720),b=i(4644),k=i(55464),w=i.n(k),x=(i(6726),i(83256)),_=i(93485),E=i(74331),S=i(79278),L=i(66217);const I=JSON.parse('{"de":{"_ctx":"_ctx","%{s}":"%{s}","Abort":"Abbrechen","action":"Aktion","add field":"Feld hinzufügen","apply":"Anwenden","cancel":"Abbrechen","Cancel":"Abbrechen","Cannot filter by this field. There is more than 500 groups":"Filtern nicht möglich. Es existieren mehr als 500 Gruppen.","Click on the map to start drawing":"Für Zeichenmodus Karte anklicken","Close":"Schließen","Confirm":"Bestätigen","Could not apply modification. Trip_id already exist":"Modifikation nicht anwendbar. Trip_id existiert bereits","Create new Line":"Neue Linie erstelen","Cut After Node":"Unterbrechen nach Knoten","Cut Before Node":"Unterbrechen vor Knoten","Delete":"Löschen","Delete Group":"Gruppe löschen","Delete Line":"Linie löschen","Delete Stop":"Haltepunkt löschen","do not add .zip to the end":".zip nicht ans Ende stellen","Edit Group Properties":"Gruppeneigenschaften bearbeiten","Edit Line":"Linie bearbeiten","Edit Line geometry":"Liniengeometrie bearbeiten","Edit Line Properties":"Linieneigenschaften bearbeiten","Edit Node Info":"Knoteninformation bearbeiten","Edit Properties":"Eigenschaften bearbeiten","Edit Visibles Properties":"Sichtbare Eigenschaften bearbeiten","Export":"Exportieren","Export All":"Alle exportieren","Export name":"Name exportieren","Export Only Visible":"Nur sichtbare exportieren","Hide All":"Alle ausblenden","Hold left click to drag":"Klicken und halten, um zu bewegen","Import":"Importieren","item":"Element","Left click to add a stop":"Haltepunkt mit Linksklick einfügen","Left click to add an anchor point, right click to delete":"Linksklick, um Ankerpunkt zu setzen. Rechtsklick, um Ankerpunkt zu löschen","Lines":"Linien","Link field to display when hovering a trip on the map":"Anzeigen bei Mouseover über einer Route auf der Karte.","Links":"Verbindungen","Map":"Karte","modification aborted":"Modifikation abgebrochen","modification applied":"Modifikation angewandt","multiple Values":"Mehrere Werte","name":"Name","No":"Nein","Nodes":"Knoten","Overwrite current Project ?":"Aktuelles Projekt überschreiben?","Required":"Erforderlich","Right click for context menu":"Rechtsklicken für Menü","Right click to edit properties":"Rechtsklicken für Eigenschaften","Save":"Speichern","Save Changes?":"Änderungen speichern?","Settings":"Einstellungen","should be larger than 0":"Wert muss größer 0 sein","Show All":"Alles anzeigen","Speed used to calculate travel time when a link is drawn, extend or a node is moved":"Die Fahrtzeit wird mittels der Geschwindigkeit berechnet, wenn eine Verbindung gezeichnet, erweitert oder ein Knoten bewegt wird. ","the name of the exported zip file":"Name der exportierten .zip Datei","undefined":"Undefiniert","value":"Wert","Yes":"Ja"},"es":{"%{s}":"%{s}","Abort":"Anular","action":"acción","Cancel":"Cancelar","Click on the map to start drawing":"Dar clic en el mapa para comenzar a dibujar","Close":"Cerrar","Confirm":"Confirmar","Create new Line":"Crear nueva línea","Delete":"Eliminar ","Delete Group":"Eliminar grupo","Delete Line":"Eliminar línea","Delete Stop":"Eliminar parada","Edit Group Properties":"Editar propiedades","Edit Line":"Editar línea","Edit Line Properties":"Editar propiedades de la línea","Edit Node Info":"Editar información de nodo","Edit Properties":"Editar propiedades","Export":"Exportar","Export All":"Exportar todo","Export Only Visible":"Exportar lo visible","Hide All":"Esconder todo","Hold left click to drag":"Clic izquierdo sostenido para arrastrar","Import":"Importar","item":"ítem","Left click to add a stop":"Clic izquierdo para agregar una parada","Lines":"Líneas","Links":"Enlaces","Map":"Mapa","modification aborted":"modificación abortada","modification applied":"modificación aplicada","No":"No","Nodes":"Nodos","Overwrite current Project ?":"¿Sobrescribir proyecto actual?","Right click for context menu":"Clic derecho para el menú contextual","Right click to edit properties":"Clic derecho para editar propiedades","Save":"Guardar","Save Changes?":"¿Guardar cambios?","Show All":"Mostrar Todo","Yes":"Sí"},"fr":{" imported, Expected ":" importé. Attendue: "," invalid CRS. Import aborted. use CRS84 / EPSG:4326 in ":"CRS invalide, utiliser CRS84 / EPSG:4326"," is empty":" est vide"," minutes remaining":" minutes restantes"," root folders should be inputs/ and outputs/. not: ":" Les dossiers à la racines devraient être inputs/ et outputs/. non: "," there is duplicated index, ":" il y a des index en double, ",". Import aborted in ":". Importation interrompue dans ","%{s}":"%{s}","0 - Regularly scheduled drop off.\\n 1 - No drop off available.\\n 2 - Must phone agency to arrange drop off.\\n 3 - Must coordinate with driver to arrange drop off.":"Indique si un usager peut descendre librement du véhicule.\\n 0 - descente libre le long du parcours.\\n 1 - pas de descente.\\n 2 - doit appeler l\'Agence pour céduler l\'arrêt.\\n 3 - doit se coordonner avec le conducteur pour céduler l\'Arrêt.","0 - Regularly scheduled pickup.\\n 1 - No pickup available.\\n 2 - Must phone agency to arrange pickup.\\n 3 - Must coordinate with driver to arrange pickup":"Indique les possibilités de montée à bord.\\n 0 - les usagers peuvent monter à bord aux horaires standards.\\n 1 - les usagers ne peuvent pas monter à bord..\\n 2 - les usagers doivent téléphoner à l\'agence pour pouvoir monter à bord.\\n 3 - doit se coordonner avec le conducteur pour monter à bord.","Abort":"Annuler","Abort Simulation":"Abandonner la simulation","add field":"ajouter un champ","Add GTFS files. When its done uploading press Convert":"Ajouter des fichiers GTFS. Lorsque le téléversement est terminé, cliquer Convertir.","An error occur fetching example on github":"Une erreur s\'est produite lors de la récupération de l\'exemple sur github","An error occured":"Une erreur s\'est produite","apply":"appliquer","Apply":"appliquer","back to default":"Valeurs par défaut","Calibration Results":"Résultats de Calibration","cancel":"Annuler","Cancel":"Annuler","cannot add empty field":"impossible d\'ajouter un champ vide","Cannot delete anymore":"Nombre de point minimum. Impossible de supprimer d\'avantage","cannot delete first point of polygon":"Le premier point du polygone ne peut pas être supprimé","Cannot filter by this field. There is more than 500 groups":"Impossible de filtrer par ce champ. Il y a plus de 500 groupes","Click on the map to start drawing":"Cliquer sur la carte pour commencer","Click to add points. Right click de remove":"Clique pour ajouter un point, clique droit pour supprimer","Clickable element in green":"Éléments cliquables en vert","Close":"Fermer","cmap to use":"palette de couleur à utiliser","Collapse all":"Réduire tout","color map":"palette de couleur","color to display on the map (i.e. FFFFFF)":"couleur à afficher sur la carte (ex: FFFFFF)","Confirm":"Valider","Continue Without Project":"Continuer sans Projet","convert":"convertir","copy":"copier","Could not apply modification. Trip_id already exist":"Les modifications n\'ont pas pu être appliquées. Le trip_id existe déjà","create a new user in your user group. Please shared the temporary password with him/her as the invitation email could be blocked by the organization":"Créer un nouvel utilisateur dans le groupe. S\'il vous plait, partager le mot de passe temporaire puisque le couriel d\'invitation pourrait être bloqué par l\'organisation.","Create new Line":"Créer une nouvelle ligne","Create or modify preset":"Créer ou modifier un préréglage","create user":"Créer un utilisateur","Create User":"Créer un utilisateur","custom scale":"échelle personnalisée","customize to inputs values":"personnaliser l\'échelle","Cut After Node":"Couper après l\'arrêt","Cut Before Node":"Couper avant l\'arrêt","Data fetch from":"Données récupérées de","Data not found: ":"Données introuvables: ","delete":"Supprimer ","Delete":"Supprimer ","Delete ":"Supprimer ","delete all":"effacer tout ","Delete all network and start from scratch":"Créer un réseau à partir de zéro","Delete Group":"Supprimer le groupe","Delete Line":"Supprimer","Delete OD":"Supprimer ","Delete rLink":"Supprimer","Delete Stop":"Supprimer l\'arrêt","delete User":"Supprimer l\'utilisateur ","direction of travel for a trip. used to separate trips by directions.\\n ex: 0 - Travel in one direction. 1 - Travel in the opposite direction.":"Sens de déplacement pour un voyage. Utilisé pour séparer les trajets par directions.\\n ex: 0 - voyage dans une direction. 1 - voyage dans la direction opposé direction.","do not add .zip to the end":"n\'ajouté pas de .zip à la fin","Download":"Télécharger","Duplicate":"Dupliquer","Duplicate and reverse":"Dupliquer et inverser","Edit Group Properties":"Modifier les propriétés du groupe","Edit Line":"Modifier la ligne","Edit Line geometry":"Modifier La géométrie de la ligne","Edit Line Properties":"Modifier les propriétés","Edit Node Info":"Modifier les infos","Edit OD Info":"Modifier les infos","Edit Properties":"Modifier","Edit rLink Info":"Modifier les infos","Edit Visibles Properties":"Modifier les propriétés des visibles","email address":"adresse courriel","Expand all":"Étendre tout","Export":"Exporter","Export All":"Exporter tout","Export name":"Nom du fichier","Export Only Visible":"Exporter les visibles","fetch available GTFS":"rafraîchir la liste","Field added":"Champ ajouté","field already exist":"Le champ existe déjà","Field deleted":"Champ ajouté","file is not a zip":"le fichier n\'est pas un zip","File(s) added":"Fichier(s) ajouté(s)","filter":"filtre","filter does not exist. use default one":"Le filtre n\'existe pas. valeur par défaut utilisé","first name":"prénom","from":"de","Full name of a route.This name is generally more descriptive than the route_short_name and often includes the roudefaultAttributeste\'s destination or stop":"Nom complet d\'un itinéraire. Ce nom est généralement plus descriptif que route_short_name et inclut souvent la destination ou l\'arrêt de l\'itinéraire","Go!":"Aller!","gtfs imported successfully!":"GTFS importés avec succès","GTFS importer":"GTFS importer","Hide All":"Cacher Tout","Hide NaN on map and color map":"Masquer les NaN sur la carte et la légende","Hold left click to drag":"Click gauche pour glisser","Identifies a route. Often a string":"Identifie une route. Souvent un String","if the road contain a bike path in the opposite direction. either yes, no or shared. a road can be a oneway and have cycleway on both side.":"si la route contient une piste cyclable en sens inverse. soit oui, non ou partagé. une route peut être à sens unique et avoir une piste cyclable des deux côtés.","if the road contain a bike path. either yes, no or shared":"si la route contient une piste cyclable. soit oui, non ou partagé","Import":"Importer","import GTFS from local computer":"importer des GTFS depuis votre ordinateur (.zip)","Import OSM network in bounding box":"importer le réseau OSM dans la sélection","Indicates the type of transportation used on a route.\\n subway, metro, rail, bus, ferry, tram, etc":"Indique le type de transport utilisé sur un itinéraire.\\n subway, metro, rail, bus, ferry, tram, etc","invalid date time":"date invalide","invalid email address":"adresse courriel invalide","item":"item","last name":"nom","Left click to add a stop":"Clique gauche ajouter un arrêt","Left click to add an anchor point, right click to delete":"Clique gauche pour ajouter une ancre, clique droit pour supprimer","Left side driving":"Conduite à gauche","less than 1":"moins que 1","Line (or trip) identifier (i.e. 100 Est).\\n Links are group by trip_id in Quetzal-network-editor.":" Ligne (ou trip) (i.e. 100 est). \\n Les liens sont groupé par trip_id dans Quetzal-network_editor","Lines":"Lignes","Link field to display when hovering a trip on the map":"Propriété des liens TC à afficher lorsqu\'on survole sur la carte","Link field to display when hovering road link on the map":"Propriété des routes à afficher lorsqu\'on survole sur la carte","link Properties":"Modifier","Links":"Liens","links geometry linestring length (meters)":"longueur de la géometrie (lineString) du liens (mètres)","Load Example":"Charger l\'exemple","Load Scenario?":"Changer le scénario?","Load Zip":"Charger un Zip","Load Zip File":"fichier Zip","Log in and select an existing project or create a new project from project navigation menu":"Connectez-vous et sélectionnez un projet existant ou créez un nouveau projet à partir du menu de navigation","login / signin":"connexion / inscription","logout":"déconnexion","Main identifier or any kind of road, street or path. ex: (motorway, residential, primary)":"Identifiant principal du type de rue, route. ex: (motorway, residential, primary)","Map":"Carte","Matrix Road Caster executed successfully!":"Matrix Road Caster exécutée avec succès!","maximum value on the color Map":"valeur maximal sur la palette de couleur","maxWidth":"Largeur max","Microservices":"Microservices","mininum value on the color Map":"Valeur minimal sur la palette de couleur","minWidth":"Largeur min","ML Matrix Road Caster":"ML Matrix Road Caster","modification aborted":"Modification annulée","modification applied":"Modification Appliquée","more":"plus","multiple Values":"Valeurs multiples","name":"nom","Need the same number of links and nodes files.":"Besoin du même nombre de fichiers de liens et de noeuds","Need the same number of road_links and road_nodes files.":"Besoin du même nombre de fichiers de liens et de noeuds routiers","new field name":"nouveau champ","New name":"Nouveau nom","New road links Highway property name":"Type de route (Highway) des nouveux liens routiers","new scenario":"Nouveau scénario","New Scenario":"Nouveau Scénario","No":"Non","Nodes":"Noeuds","Nothing to display":"Rien à afficher","numStep":"nombre de pas ","ok":"ok","opacity":"opacité","OR":"OU","Origin - Destination":"Origine - Destination","OSM network imported successfully!":"Réseau OSM importé avec succès","Other Inputs":"Autres Intrants","Outputs":"Extrants","Overwrite current Project ?":"Écraser le projet en cours ?","Overwrite current road network ?":"Écraser le projet en cours ?","Parameters":"Paramètres","Parameters and Run":"Parametres et execution","params.json should be an array of object [{category: , params: }, ...]":"params.json devrait être un array d\'object [{category: , params: }, ...]","Preset deleted":"Préréglage supprimé","Preset Layer does not exist":"La couche du préréglage n\'existe pas","Preset Saved":"Préréglage sauvegardé","Presets":"Préréglages","project overwrited":"Projet écrasée","Projects":"Projets","PT":"TC","PT & Road":"TC et Routes","PT Network":"Réseau TC","PT Popup Content":"Contenu du Popup TC","PT speed":"Vitesse TC","PT, Road, Zones, OD & Results":"TC, Routes, Zones, OD et Résultats","Redirect":"Redirigé","Replace file inplace":"Remplacer le fichier en place","Required":"Requis","Result Table":"Table des Résultats","Results are not synchronized with latest modifications. Please relauch simulation to update results.":"Les résultats ne sont pas syncronisés avec les dernières modification.SVP, executer la simulation pour mettre à jour les résultats.","Results Map":"Carte des Résultats","Results Pictures":"images des Résultats","reverse color":"inverser les couleurs","reverse color scale":"inverse la palette de couleur","Right click for context menu":"Clique droit pour modifier","Right click to edit properties":"Clique droit pour modifier","Road":"Routes","Road Highway name":"Category Highway des nouvelles routes","Road links applied!":"Liens routiers appliqués!","Road Network":"Réseau Routier","Road Popup Content":"Contenu du Popup routier","Road speed":"Vitesse route","Roads":"Routes","Run":"Exécuter","Run Simulation":"Executer la simulation","save":"Sauv...","Save":"Sauvegarder","Save Changes?":"Sauvegarder ?","scale":"Échelle","scale max":"Échelle","scale min":"Échelle","Scenario created":"Scénario créé","Scenario deleted":"Scénario supprimé","Scenario saved":"Scénario sauvegardé","Scenario Settings":"Paramètres de simulation","Scenario Simulation":"Simulation du scénario","Scenario successfully copied":"Scénario copié avec succès","Select a Project":"Sélectionner un Projet","Select which side of the road the links are display":"Sélectionner de quel coté les liens sont affichés","selected date":"date sélectionné","selectedFeature":"champ sélectionné","Service ended with an execution error or have been aborted. Please retry. If the problem persist, contact us.":"La simulation s\'est terminée avec une erreur d\'execution ou a été abadonnée.SVP, executer la simulation de nouveau. Si le problème persiste, veuillez nous contacter.","Settings":"Paramètres","Short name of a route. This will often be a short,\\n abstract identifier like \\"32\\", \\"100X\\", or \\"Green\\"":"nom court d\'une route. Souvent un identifiant abstrait\\n et court comme \\"32\\", \\"100X\\", or \\"verte\\"","should be larger or equal to 0":"devrait être plus grand que 0","should be larger than 0":"devrait être plus grand que 0","Show All":"Montrer Tout","Show Cycleway direction instead of road":"Montrer la direction des pistes cyclables au lieu des routes","show NaN":"montrer les NaN","sign out":"déconnecté","Simulation ended with an execution error or have been aborted. Please relauch simulation. If the problem persist, contact us.":"La simulation s\'est terminée avec une erreur d\'execution ou a été abadonnée.SVP, executer la simulation de nouveau. Si le problème persiste, veuillez nous contacter.","simulation executed successfully!":"simulation exécutée avec succès!","speed on the link (Km/h)":"vitesse sur le lien (Km/h)","Speed used to calculate road travel time when a link is drawn":"Vitesse utilisé pour calculer le temps de parcours lorsqu\'un lien est ajouté, allongé ou déplacé","Speed used to calculate travel time when a link is drawn, extend or a node is moved":"Vitesse utilisé pour calculer le temps de parcours lorsqu\'un lien est ajouté, allongé ou déplacé","Start importing files individually or start with an empty project":"Commencez à importer des fichiers individuellement ou avec un projet vide","Static Layers":"Couches Statiques","Style presets":"Préréglages de style","styles.json should be an array of object with at least [{name:,layer:}]":"styles.json devrait être un array d\'object avec au moins [{name:,layer:}]","Team":"Équipe","temporary password":"mot de passe temporaire","the name of the exported zip file":"Le nom du fichier .zip à l\'export.","The scenario will be permanently deleted":"Le scénario sera supprimé définitivement","There as been an error while importing OSM network. Please try again. If the problem persist, contact us.":"La simulation s\'est terminée avec une erreur d\'execution ou a été abadonnée.SVP, executer la simulation de nouveau. Si le problème persiste, veuillez nous contacter.","there is no index in the File. you need unique index. Import aborted in ":"il y a des index de liens ou de noeds en double. Importation interrompue","This action will delete properties on every links (and reversed one for two-way roads)":"Cette action supprimera les propriétés sur tous les liens (et les inverses pour les routes à double sens)","This scenario is protected. You can not run simulation.":"Ce scénario est protégé. L\'execution de la simulation est bloquée.","This will ERASE the current project":"Le projet en cours sera ÉCRASÉ","This will permanently delete the user account.":"le compte utilisateur sera supprimé définitivement","Time between departures in seconds":"Temps entre chaque départ en secondes","to":"à","transit brand or transit agency":"marque de transport en commun ou agence de transport en commun","Travel time on the link. set as length / speed when a link is created or edited (seconds)":"Temps de parcours sur le lien. Défini comme distance / vitesse quand un lien est créé ou modifier (secondes)","undefined":"indéfini","upload GTFS":"téléverser des GTFS","Uploaded":"Téléversé","User created! please share the temporary password":"Utilisateur créé! partager le mot de passe temporaire","User permanently delete":"Utilisateur supprimé définitivement","username":"nom d\'utilisateur","value":"valeur","Viewable in results":"Affichable dans les résultats","width to display on the map":"Largeur à afficher sur la carte","Yes":"Oui","your session has expired. please refresh the page or sign in again":"Votre session est expiré. Veuillez rafraichir la page ou vous reconnecter. "},"pt":{"_ctx":"_ctx","%{s}":"%{s}"}}');var $=function(){var e=this,t=e._self._c;return t("v-app",{staticClass:"app"},[t("NavigationDrawer"),e._v(" "),t("div",{directives:[{name:"resize",rawName:"v-resize",value:e.onResize,expression:"onResize"}],ref:"container",staticClass:"container"},[t("Toolbar"),e._v(" "),t("transition",{attrs:{name:"fade"}},[t("router-view")],1)],1),e._v(" "),t("v-overlay",{attrs:{value:e.loading}},[t("v-progress-circular",{attrs:{indeterminate:"",size:"64"}})],1),e._v(" "),t("v-snackbar",{class:`snackbar-${e.notification.type}`,attrs:{timeout:e.notification.autoClose?3e3:-1,transition:"slide-y-reverse-transition",color:e.notification.color?e.notification.color:"white"},scopedSlots:e._u([{key:"action",fn:function({attrs:i}){return[t("v-btn",e._b({attrs:{small:"",color:"secondarydark",text:""},on:{click:e.closeSnackbar}},"v-btn",i,!1),[e._v("\n "+e._s(e.$gettext("Close"))+"\n ")])]}}]),model:{value:e.snackbar,callback:function(t){e.snackbar=t},expression:"snackbar"}},[t("span",{staticClass:"snackbar-text"},[e._v("\n "+e._s(e.$gettext(e.notification.text))+"\n ")])]),e._v(" "),t("Alert")],1)};$._withStripped=!0;var N=function(){var e=this,t=e._self._c;return t("v-toolbar",{class:"app-toolbar elevation-4",attrs:{dense:""}},[t("v-img",{attrs:{src:i(76215),contain:"","max-width":"6rem"}}),e._v(" "),t("span",{staticClass:"copyright"},[e._v("©")]),e._v(" "),t("div",{staticClass:"app-name"},[e._v("\n Quetzal Network Editor\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("div",[t("ScenariosExplorer")],1),e._v(" "),t("v-spacer"),e._v(" "),t("div",[t("v-tooltip",{attrs:{bottom:""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({attrs:{icon:"",href:"https://github.com/systragroup/quetzal-network-editor",target:"_blank"}},"v-btn",s,!1),i),[t("v-icon",[e._v("\n fab fa-github\n ")])],1)]}}])},[e._v(" "),t("span",[e._v("GitHub")])])],1),e._v(" "),t("div",{staticClass:"switch"},[t("v-switch",{attrs:{"append-icon":"fas fa-moon"},model:{value:e.$vuetify.theme.dark,callback:function(t){e.$set(e.$vuetify.theme,"dark",t)},expression:"$vuetify.theme.dark"}})],1),e._v(" "),t("div",[t("v-menu",{attrs:{"offset-y":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"language active",attrs:{text:""}},"v-btn",s,!1),i),[e._v("\n "+e._s(e.$language.current)+"\n ")])]}}])},[e._v(" "),t("v-list",e._l(e.$language.available,(function(i,s){return t("v-list-item",{key:s,class:i,on:{click:()=>e.handleChangeLanguage(s)}},[e._v("\n "+e._s(i.toUpperCase())+"\n ")])})),1)],1)],1),e._v(" "),t("div",[t("Profile")],1)],1)};N._withStripped=!0;var F=function(){var e=this,t=e._self._c;return t("section",[e.loggedIn?t("v-menu",{attrs:{"close-on-content-click":!1,"nudge-width":200,"offset-x":"","offset-y":""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-avatar",e._g(e._b({attrs:{size:"34",color:"primary"}},"v-avatar",s,!1),i),[t("span",{staticClass:"white--text text-h6"},[e._v(e._s(e.initial))])])]}}],null,!1,3256803526),model:{value:e.menu,callback:function(t){e.menu=t},expression:"menu"}},[e._v(" "),t("v-card",[t("v-list",[t("v-list-item",[t("v-list-item-content",[t("v-list-item-title",[e._v(e._s(e.cognitoInfo.given_name+" "+e.cognitoInfo.family_name))]),e._v(" "),t("v-list-item-subtitle",[e._v(e._s(e.cognitoInfo.email))])],1)],1)],1),e._v(" "),t("v-divider"),e._v(" "),e._l(e.bucketList,(function(i){return t("v-list-item",{key:i},[e._v("\n "+e._s(i)+"\n ")])})),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"primary",text:""},on:{click:e.logout}},[e._v("\n "+e._s(e.$gettext("logout"))+"\n ")])],1)],2)],1):t("v-tooltip",{attrs:{bottom:"","open-delay":"250"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({attrs:{icon:""},on:{click:e.login}},"v-btn",s,!1),i),[t("v-icon",[e._v("\n fas fa-sign-in-alt\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("login / signin")))])]),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"350"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.applyDialog.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:(()=>e.showDialog=!1).apply(null,arguments)}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h4"},[e._v("\n "+e._s(e.$gettext("Redirect"))+"\n ")]),e._v(" "),t("v-card-text",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$gettext("This will ERASE the current project"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:()=>e.showDialog=!e.showDialog}},[e._v("\n "+e._s(e.$gettext("No"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:e.applyDialog}},[e._v("\n "+e._s(e.$gettext("Yes"))+"\n ")])],1)],1)],1)],1)};F._withStripped=!0;var B=i(36648);const M={name:"Profile",components:{},props:[],events:["logout"],data:()=>({menu:!1,showDialog:!1,action:"login"}),computed:{projectIsEmpty(){return this.$store.getters.projectIsEmpty},loggedIn(){return this.$store.getters.loggedIn},cognitoInfo(){return this.$store.getters.cognitoInfo},bucketList(){return this.$store.getters.bucketList},initial(){return(this.cognitoInfo?.given_name[0]+this.cognitoInfo?.family_name[0]).toUpperCase()}},watch:{},methods:{login(){this.projectIsEmpty?B.Z.login():(this.action="login",this.showDialog=!0)},logout(){this.projectIsEmpty?(this.menu=!1,B.Z.logout()):(this.action="logout",this.showDialog=!0)},applyDialog(){this.menu=!1,this.showDialog=!1,"login"===this.action&&B.Z.login(),"logout"===this.action&&B.Z.logout()}}};var j=i(51900);const D=(0,j.Z)(M,F,[],!1,null,"81b79092",null).exports;var O=function(){var e=this,t=e._self._c;return e.loggedIn&&e.modelsList.length>0?t("section",[t("v-menu",{attrs:{"close-on-click":!e.showDialog&&!e.deleteDialog&&!e.copyDialog,"close-on-content-click":!1,"max-width":"460px","max-height":e.windowHeight,"offset-y":""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("div",e._g(e._b({staticClass:"title"},"div",s,!1),i),[e._v("\n "+e._s(e.scenario?e.model+"/"+e.scenario:e.$gettext("Projects"))+"\n ")])]}}],null,!1,2682127123),model:{value:e.menu,callback:function(t){e.menu=t},expression:"menu"}},[e._v(" "),t("v-card",[t("v-tabs",{attrs:{"show-arrows":"","fixed-tabs":""},model:{value:e.localModel,callback:function(t){e.localModel=t},expression:"localModel"}},e._l(e.modelsList,(function(i){return t("v-tab",{key:i,attrs:{href:"#"+i}},[e._v("\n "+e._s(i.slice(8))+"\n ")])})),1),e._v(" "),e._l(e.scenariosList,(function(i){return t("v-list-item",{key:i.model+i.scenario,class:{"is-active":e.modelScen===i.model+i.scenario},attrs:{value:i.model+i.scenario,"two-line":""},on:{click:function(t){return e.selectScenario(i)}}},[t("v-list-item-content",[t("v-list-item-title",[e._v(e._s(i.scenario))]),e._v(" "),t("v-list-item-subtitle",[e._v(e._s(i.lastModified))]),e._v(" "),t("v-list-item-subtitle",[e._v(e._s(i.userEmail))])],1),e._v(" "),t("v-btn",{staticClass:"ma-1",attrs:{icon:""},on:{click:function(t){return t.stopPropagation(),(()=>{e.copyDialog=!0,e.selectedScenario=i.scenario,e.input=i.scenario+" copy"}).apply(null,arguments)}}},[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-copy\n ")])],1),e._v(" "),t("v-btn",{staticClass:"ma-1",attrs:{icon:"",disabled:i.model+i.scenario===e.modelScen||i.protected},on:{click:function(t){return t.stopPropagation(),(()=>{e.deleteDialog=!0,e.scenarioToDelete=i.scenario}).apply(null,arguments)}}},[t("v-icon",{attrs:{small:"",color:"grey"}},[e._v("\n "+e._s(i.protected?"fas fa-lock":"fas fa-trash")+"\n ")])],1)],1)})),e._v(" "),t("v-list-item",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}]},[t("v-spacer"),e._v(" "),t("v-progress-circular",{attrs:{color:"primary",indeterminate:""}}),e._v(" "),t("v-spacer")],1),e._v(" "),t("v-divider"),e._v(" "),t("v-list-item",[t("v-btn",{attrs:{text:""},on:{click:()=>{e.copyDialog=!0,e.selectedScenario=null,e.input=""}}},[e._v("\n "+e._s(e.$gettext("new scenario"))+"\n ")])],1)],2)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"350"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.applyDialog.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancelDialog.apply(null,arguments)}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h4"},[e._v("\n "+e._s(e.$gettext("Load Scenario?"))+"\n ")]),e._v(" "),t("v-card-text",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$gettext("This will ERASE the current project"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:e.cancelDialog}},[e._v("\n "+e._s(e.$gettext("No"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:e.applyDialog}},[e._v("\n "+e._s(e.$gettext("Yes"))+"\n ")])],1)],1)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"350"},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:(()=>e.deleteDialog=!1).apply(null,arguments)}},model:{value:e.deleteDialog,callback:function(t){e.deleteDialog=t},expression:"deleteDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h4"},[e._v("\n "+e._s(e.$gettext("Delete ")+e.scenarioToDelete+" ?")+"\n ")]),e._v(" "),t("v-card-text",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$gettext("The scenario will be permanently deleted"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:()=>e.deleteDialog=!1}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"error"},on:{click:e.deleteScenario}},[e._v("\n "+e._s(e.$gettext("Delete"))+"\n ")])],1)],1)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"290"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.createProject.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancel.apply(null,arguments)}]},model:{value:e.copyDialog,callback:function(t){e.copyDialog=t},expression:"copyDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h5"},[e._v("\n "+e._s(e.selectedScenario?e.$gettext("copy")+" "+e.selectedScenario:e.$gettext("New Scenario"))+"\n ")]),e._v(" "),t("v-card-text",[t("v-container",[t("v-col",{attrs:{cols:"12"}},[t("v-text-field",{attrs:{autofocus:"",label:e.$gettext("name")},model:{value:e.input,callback:function(t){e.input=t},expression:"input"}})],1)],1)],1),e._v(" "),t("v-card-text",{style:{textAlign:"center",color:"red"}},[e._v("\n "+e._s(e.errorMessage)+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"grey",text:""},on:{click:e.closeCopy}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"green darken-1",text:""},on:{click:e.createProject}},[e._v("\n "+e._s(e.$gettext("ok"))+"\n ")])],1)],1)],1)],1):e._e()};O._withStripped=!0;var P=i(60887);const T={name:"ScenariosExplorer",components:{},props:[],events:[],data:()=>({menu:!1,showDialog:!1,modelScen:"",localModel:"",localScen:"",errorMessage:"",copyDialog:!1,selectedScenario:null,scenarioToDelete:null,input:"",deleteDialog:!1,loading:!1,protected:!1}),computed:{windowHeight(){return this.$store.getters.windowHeight},projectIsEmpty(){return this.$store.getters.projectIsEmpty},loggedIn(){return this.$store.getters.loggedIn},scenariosList(){return this.$store.getters.scenariosList.sort(((e,t)=>e.protected===t.protected?e.scenario.localeCompare(t.scenario,void 0,{sensitivity:"base"}):e.protected?-1:1))},modelsList(){return this.$store.getters.bucketList},model(){return this.$store.getters.model},scenario(){return this.$store.getters.scenario}},watch:{async menu(e){e&&(this.$store.dispatch("isTokenExpired"),this.loading=!0,await this.$store.dispatch("getScenario",{model:this.localModel}),this.loading=!1)},async localModel(e){this.$store.commit("setScenariosList",[]),this.loading=!0,await this.$store.dispatch("getScenario",{model:e}),this.loading=!1},async modelsList(){this.localModel=this.modelsList[0],await this.$store.dispatch("getScenario",{model:this.localModel})},scenario(e){e!==this.localScen&&(this.localScen="",this.modelScen="")}},mounted(){this.localModel=this.modelsList[0]},methods:{selectScenario(e){this.modelScen=e.model+e.scenario,this.localScen=e.scenario,this.protected=e.protected,e.scenario&&(this.projectIsEmpty?this.loadProject():this.showDialog=!0)},async loadProject(){this.$store.commit("run/cleanRun"),this.$store.commit("setModel",this.localModel),this.$store.commit("setScenario",{scenario:this.localScen,protected:this.protected}),this.$router.push({name:"Import",query:{s3Path:this.localModel}}),this.menu=!1},applyDialog(){this.menu=!1,this.showDialog=!1,this.loadProject()},cancelDialog(){this.modelScen=this.model+this.scenario,this.localScen=this.scenario,this.showDialog=!1,this.menu=!1},deleteScenario(){this.deleteDialog=!1,P.Z.deleteFolder(this.localModel,this.scenarioToDelete+"/").then((e=>{this.deleteDialog=!1,this.$store.dispatch("getScenario",{model:this.localModel}),this.$store.commit("changeNotification",{text:"Scenario deleted",autoClose:!0,color:"success"})})).catch((e=>{this.deleteDialog=!1,console.error(e),this.$store.commit("changeNotification",{text:"An error occured",autoClose:!0,color:"error"})}))},async createProject(){if(""===this.input)this.errorMessage="Please enter a name";else if(this.input.includes("/"))this.errorMessage="cannot have / in name";else if(this.scenariosList.map((e=>e.scenario)).includes(this.input))this.errorMessage="project already exist";else{try{if(this.selectedScenario)await P.Z.copyFolder(this.localModel,this.selectedScenario,this.input),this.$store.commit("changeNotification",{text:"Scenario successfully copied",autoClose:!0,color:"success"});else{const e=this.scenariosList[0].scenario;await P.Z.newScenario(this.localModel,e,this.input),this.$store.commit("changeNotification",{text:"Scenario created",autoClose:!0,color:"success"})}}catch(e){this.$store.commit("changeAlert",e),this.selectedScenario=null}this.closeCopy(),this.loading=!0,setTimeout((()=>{this.$store.dispatch("getScenario",{model:this.localModel}).then((()=>{this.loading=!1})).catch((e=>{this.$store.commit("changeAlert",e),this.loading=!1}))}),500)}},closeCopy(){this.copyDialog=!1,this.input="",this.selectedScenario=null,this.errorMessage=""}}};var z=i(35496),R={};R.styleTagTransform=m(),R.setAttributes=d(),R.insert=l().bind(null,"head"),R.domAPI=n(),R.insertStyleElement=u(),o()(z.Z,R),z.Z&&z.Z.locals&&z.Z.locals;const Z={name:"Toolbar",components:{Profile:D,ScenariosExplorer:(0,j.Z)(T,O,[],!1,null,"dad7c1ea",null).exports},data:()=>({dialog:!0}),watch:{"$vuetify.theme.dark"(e){this.$store.commit("changeDarkMode",e)}},methods:{handleChangeLanguage(e){this.$vuetify.lang.current=e,this.$language.current=e}}};var H=i(56050),G={};G.styleTagTransform=m(),G.setAttributes=d(),G.insert=l().bind(null,"head"),G.domAPI=n(),G.insertStyleElement=u(),o()(H.Z,G),H.Z&&H.Z.locals&&H.Z.locals;const V=(0,j.Z)(Z,N,[],!1,null,"4d444598",null).exports;var q=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"fade"}},[t("v-navigation-drawer",{staticClass:"drawer elevation-4",attrs:{app:"",stateless:"",temporary:!e.mini,"mini-variant":e.mini,"mini-variant-width":50},on:{"update:miniVariant":function(t){e.mini=t},"update:mini-variant":function(t){e.mini=t}},model:{value:e.drawer,callback:function(t){e.drawer=t},expression:"drawer"}},[t("div",{staticClass:"drawer-header",on:{click:function(t){e.mini=!e.mini}}},[t("v-icon",{attrs:{small:""}},[e._v("\n "+e._s(e.mini?"fa fa-bars":"fas fa-angle-left")+"\n ")])],1),e._v(" "),t("v-list",{staticClass:"drawer-list",attrs:{dense:""}},[e._l(e.getDisplayedRoutes(),(function(i,s){return t("v-list-item",{key:s,staticClass:"drawer-list-item",class:[e.$route.name===i.name?"drawer-list-item-selected":""],style:{marginTop:i.margin},attrs:{disabled:"Save"===i.name&&(!e.$store.getters.scenario||e.isProtected)},on:{click:function(t){return e.handleClickMenuItem(i)}},nativeOn:{click:function(e){e.stopPropagation()}}},[t("v-list-item-action",{class:"Save"!==i.name||e.$store.getters.scenario&&!e.isProtected?"drawer-list-item-icon":"drawer-list-item-icon-disabled"},["Run"===i.name&&e.running?t("v-badge",{attrs:{"offset-x":"12px","offset-y":"10px",color:""},scopedSlots:e._u([{key:"badge",fn:function(){return[t("v-progress-circular",{attrs:{size:"18",width:"4",color:"primary",indeterminate:""}})]},proxy:!0}],null,!0)},[e._v(" "),t("v-icon",{attrs:{small:"",title:e.$gettext(i.title)}},[e._v("\n "+e._s(i.icon)+"\n ")])],1):"Run"===i.name&&e.runWarning?t("v-badge",{attrs:{"offset-x":"6px","offset-y":"11px",color:e.runError?"error":"warning",icon:"fa-solid fa-exclamation"}},[t("v-icon",{attrs:{small:"",title:e.$gettext(i.title)}},[e._v("\n "+e._s(i.icon)+"\n ")])],1):"Save"===i.name&&e.saving?t("v-badge",{attrs:{"offset-x":"12px","offset-y":"10px",color:""},scopedSlots:e._u([{key:"badge",fn:function(){return[t("v-progress-circular",{attrs:{size:"18",width:"4",color:"primary",indeterminate:""}})]},proxy:!0}],null,!0)},[e._v(" "),t("v-icon",{attrs:{small:"",title:e.$gettext(i.title)}},[e._v("\n "+e._s(i.icon)+"\n ")])],1):t("v-icon",{attrs:{small:"",title:e.$gettext(i.title)}},[e._v("\n "+e._s(i.icon)+"\n ")])],1),e._v(" "),t("v-list-item-content",[t("v-list-item-title",{style:{marginLeft:"20px",color:"white"}},[e._v("\n "+e._s(e.$gettext(i.title))+"\n ")])],1)],1)})),e._v(" "),t("v-list-item",{staticClass:"version-number",style:{fontSize:24-2*e.version.length+"px"}},[t("span",[e._v(e._s(e.version))])])],2)],1)],1)};q._withStripped=!0;const U=i(4147).i8,J={name:"NavigationDrawer",data:()=>({leftSidenav:!1,drawer:!0,mini:!0,menuItems:[],version:U,saving:!1}),computed:{running(){return this.$store.getters["run/running"]},runError(){return this.$store.getters["run/error"]},runSychronized(){return this.$store.getters["run/synchronized"]},runWarning(){return this.runError||!this.runSychronized},isProtected(){return this.$store.getters.protected}},created(){this.menuItems=b.Z.options.routes.concat({name:"Save",icon:"fa-solid fa-save",margin:"auto",title:this.$gettext("Save")}),this.menuItems=this.menuItems.concat({name:"Export",icon:"fa-solid fa-download",title:this.$gettext("Export")})},methods:{getDisplayedRoutes(){return this.menuItems.filter((e=>e.icon))},getRouteTitle(e){const t=this.$gettext("%{s}");return this.$gettextInterpolate(t,{s:e.title})},handleClickMenuItem(e){switch(e.name){case"Export":this.$store.dispatch("exportFiles","all");break;case"Save":this.saving=!0,this.$store.dispatch("exportToS3").then((()=>{this.saving=!1,this.$store.commit("changeNotification",{text:this.$gettext("Scenario saved"),autoClose:!0,color:"success"})})).catch((e=>{this.saving=!1,this.$store.commit("changeAlert",e)}));break;default:this.$router.push(e.path).catch((()=>{})),this.mini=!0}}}};var W=i(5576),Y={};Y.styleTagTransform=m(),Y.setAttributes=d(),Y.insert=l().bind(null,"head"),Y.domAPI=n(),Y.insertStyleElement=u(),o()(W.Z,Y),W.Z&&W.Z.locals&&W.Z.locals;const K=(0,j.Z)(J,q,[],!1,null,"5b138161",null).exports;var Q=function(){var e=this,t=e._self._c;return t("div",{staticClass:"text-center"},[t("v-bottom-sheet",{attrs:{persistent:""},model:{value:e.sheet,callback:function(t){e.sheet=t},expression:"sheet"}},[t("v-sheet",{staticClass:"text-center"},[t("div",[t("v-alert",{attrs:{prominent:"",type:"error"}},[t("v-row",[t("v-col",{staticClass:"grow"},[t("h2",[e._v("\n ERROR: "+e._s(e.err.name)+"\n ")]),e._v(" "),t("p",[e._v("\n "+e._s(e.err.message)+"\n ")])]),e._v(" "),t("v-col",{staticClass:"shrink"},[t("v-btn",{attrs:{icon:""},on:{click:e.close}},[t("v-icon",[e._v("\n fas fa-times\n ")])],1)],1)],1)],1)],1)])],1)],1)};Q._withStripped=!0;const X={name:"Alert",components:{},props:[],events:[],data:()=>({sheet:!1}),computed:{err(){return this.$store.getters.alert}},watch:{err(e){e.name&&(this.sheet=!0,console.error(e))}},methods:{close(){this.$store.commit("changeAlert",{}),this.sheet=!this.sheet}}},ee=(0,j.Z)(X,Q,[],!1,null,"785f7271",null).exports;var te=i(72055);const ie={name:"App",components:{Toolbar:V,NavigationDrawer:K,Alert:ee},data:()=>({snackbar:!1}),computed:{notification(){return this.$store.getters.notification},loading(){return this.$store.getters.loading}},watch:{notification(){this.snackbar=!!this.notification.text}},async created(){this.$store.commit("initNetworks"),this.$store.commit("changeDarkMode",this.$vuetify.theme.dark),B.Z.auth.isUserSignedIn()&&(await B.Z.login(),await P.Z.login(),te.U.loginAll(this.$store.getters.idToken))},methods:{closeSnackbar(){this.snackbar=!1,this.$store.notification={}},onResize(){this.$store.commit("changeWindowHeight",this.$refs.container.clientHeight-50)}}};var se=i(28787),oe={};oe.styleTagTransform=m(),oe.setAttributes=d(),oe.insert=l().bind(null,"head"),oe.domAPI=n(),oe.insertStyleElement=u(),o()(se.Z,oe),se.Z&&se.Z.locals&&se.Z.locals;const re=(0,j.Z)(ie,$,[],!1,null,"610ce914",null).exports;console.assert("pk.eyJ1Ijoic2JvaXZpbiIsImEiOiJja3BlMm41cm4xa2QyMnZwZTBqdGx4bHI0In0.11oH2-B2g9J6LarDnoqQfQ");const ne={methods:{$selectBestLanguage(e,t){if(e.length){for(const i of e){const e=i.toLowerCase().split("-");e.length>1&&(e[1]=e[1].toUpperCase());const s=e.join("-");if(t.includes(s))return s;if(e.length>1&&t.includes(e[0]))return e[0]}return t[0]}return t[0]}}},ae=ne.methods.$selectBestLanguage(navigator.languages,["en","fr","es","de","pt"]),le=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;A.default.use(w()),A.default.use(y(),{autoAddKeyAttributes:!0,availableLanguages:{en:"English",fr:"Français",es:"Español",de:"Deutsch",pt:"Português"},defaultLanguage:ae,translations:I,silent:!0}),A.default.config.productionTip=!1,A.default.config.devtools=!1,A.default.config.performance=!1;const ce=new(w())({theme:{dark:!!le,options:{customProperties:!0},themes:{light:{primary:"#B5E0D6",primarydark:"#7EBAAC",secondary:"#2C3E4E",secondarydark:"#1A242C",secondarydarkfix:"#1A242C",secondarylight:"#334453",background:"#808080",lightgrey:"#E3E4E6",white:"#fff",black:"#000000",mediumgrey:"#9E9E9E",darkgrey:"#5B5B5C",accent:"#2C3E4E",linksprimary:"#7EBAAC",linkssecondary:"#B5E0D6",chart:{lightgreen:"#CDDC39",darkgreen:"#4CAF50",lightblue:"#00BCD4",darkblue:"#2196F3",purple:"#673AB7",pink:"#E91E63",orange:"#FF7B30",yellow:"#FFC107"}},dark:{primary:"#2196F3",primarydark:"#191919",secondary:"#263238",secondarydark:"#fff",secondarydarkfix:"#1A242C",lightgrey:"#403f3f",mediumgrey:"#575757",darkgrey:"#d9d9db",background:"#000000",white:"#000000",black:"#fff",success:"#2196F3",accent:"#d3c1b1",linksprimary:"#2196F3",linkssecondary:"#90CAF9",chart:{lightgreen:"#CDDC39",darkgreen:"#4CAF50",lightblue:"#00BCD4",darkblue:"#2196F3",purple:"#673AB7",pink:"#E91E63",orange:"#FF7B30",yellow:"#FFC107"}}}},icons:{iconfont:"fa"},lang:{locales:{fr:x.Z,en:_.Z,es:S.Z,de:E.Z,pt:L.Z},current:ae}});A.default.mixin(ne),A.default.mixin({methods:{$flatEdges(e,t=!1){let i=e;if(e.edges&&(i=e.edges.map((e=>e.node))),t)for(const t in e)null!==e[t]&&"object"==typeof e[t]&&(e[t]=this.$flatEdges(e[t],!0));return i}}}),new A.default({router:b.Z,store:C.h,vuetify:ce,render:e=>e(re),template:""}).$mount("#app")},4644:(e,t,i)=>{"use strict";i.d(t,{Z:()=>mt});var s=i(70538),o=i(78345),r=function(){var e=this,t=e._self._c;return t("section",[t("input",{ref:"zipInput",staticStyle:{display:"none"},attrs:{id:"zip-input",type:"file",accept:".zip"},on:{change:e.readZip}}),e._v(" "),t("div",{staticClass:"layout"},[t("div",{staticClass:"layout-overlay",class:{"animate-layer":e.loggedIn}}),e._v(" "),t("v-card",{staticClass:"card",class:{"animate-login":e.loggedIn}},[t("v-row",[t("v-col",[t("v-card-text",{style:{textAlign:"center"}},[t("div",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Select a Project"))+"\n ")]),e._v(" "),t("div",[e._v("\n "+e._s(e.$gettext("Log in and select an existing project or create a new project from project navigation menu"))+"\n ")]),e._v(" "),t("div",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("OR"))+"\n ")]),e._v(" "),t("div",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Continue Without Project"))+"\n ")]),e._v(" "),t("div",[e._v("\n "+e._s(e.$gettext("Start importing files individually or start with an empty project"))+"\n ")]),e._v(" "),t("div",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("OR"))+"\n ")]),e._v(" "),t("div",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Load Zip"))+"\n "),t("InfoZip")],1),e._v(" "),t("div",[t("v-btn",{style:{"margin-right":"auto"},attrs:{color:"normal"},on:{click:function(t){return e.buttonHandle("zip")}}},[t("v-icon",{attrs:{small:"",left:""}},[e._v("\n fas fa-file-archive\n ")]),e._v("\n "+e._s(e.$gettext("Load Zip File"))+"\n ")],1)],1),e._v(" "),t("div",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("OR"))+"\n ")]),e._v(" "),t("div",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Load Example"))+"\n ")]),e._v(" "),t("v-menu",{attrs:{"offset-y":"","nudge-left":"70","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({style:{"margin-bottom":"2rem"}},"v-btn",s,!1),i),[e._v("\n "+e._s(e.$gettext("Load Example"))+"\n ")])]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:""},on:{click:()=>e.buttonHandle("example1")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("PT & Road"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:""},on:{click:()=>e.buttonHandle("example2")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("PT, Road, Zones, OD & Results"))+"\n ")])],1)],1)],1)],1)],1),e._v(" "),t("v-divider",{attrs:{vertical:""}}),e._v(" "),t("v-col",[t("FileLoader",{on:{FilesLoaded:t=>e.loadNetwork(t)}})],1),e._v(" "),t("v-divider",{attrs:{vertical:""}}),e._v(" "),t("v-col",[t("FilesList",{on:{FilesLoaded:t=>e.loadNetwork(t)}})],1)],1),e._v(" "),t("div",{staticClass:"button-row"},[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({on:{click:function(t){return e.buttonHandle("newProject")}}},"v-btn",s,!1),i),[e._v("\n "+e._s(e.$gettext("New Project"))+"\n ")])]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete all network and start from scratch")))])]),e._v(" "),t("v-btn",{attrs:{disabled:!e.filesAdded,color:"primary"},on:{click:function(t){return e.login()}}},[e._v("\n "+e._s(e.$gettext("Go!"))+"\n ")])],1)],1)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"350"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.applyDialog.apply(null,arguments)},function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;e.showDialog=!1}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h5"},[e._v("\n "+e._s(e.$gettext("Overwrite current Project ?"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:function(t){e.showDialog=!e.showDialog}}},[e._v("\n "+e._s(e.$gettext("No"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:e.applyDialog}},[e._v("\n "+e._s(e.$gettext("Yes"))+"\n ")])],1)],1)],1)],1)};r._withStripped=!0;var n=i(60887),a=i(76955),l=function(){var e=this,t=e._self._c;return t("div",[t("input",{ref:"fileInput",staticStyle:{display:"none"},attrs:{id:"file-input",type:"file",accept:".geojson"},on:{change:e.readFile}}),e._v(" "),t("input",{ref:"paramsInput",staticStyle:{display:"none"},attrs:{id:"params-input",type:"file",accept:".json"},on:{change:e.readParams}}),e._v(" "),t("input",{ref:"stylesInput",staticStyle:{display:"none"},attrs:{id:"styles-input",type:"file",accept:".json"},on:{change:e.readStyles}}),e._v(" "),t("div",{staticClass:"row"},[t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.linksIsEmpty?"0.50":"1"}},[e._v("\n fas fa-project-diagram\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.linksIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("PT Network"))+"\n "),e.linksIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-menu",{attrs:{"offset-y":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({attrs:{icon:"",outlined:""}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:"",disabled:"road"==e.loadedType||e.localLinksLoaded},on:{click:()=>e.buttonHandle("PT links")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Links"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:"",disabled:"road"==e.loadedType||e.localNodesLoaded},on:{click:()=>e.buttonHandle("PT nodes")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Nodes"))+"\n ")])],1)],1)],1)],1)],1),e._v(" "),t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.rlinksIsEmpty?"0.50":"1"}},[e._v("\n fas fa-project-diagram\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.rlinksIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("Road Network"))+"\n "),e.rlinksIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-menu",{attrs:{"offset-y":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({attrs:{icon:"",outlined:""}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:"",disabled:"PT"==e.loadedType||e.localLinksLoaded},on:{click:()=>e.buttonHandle("road links")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Links"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:"",disabled:"PT"==e.loadedType||e.localNodesLoaded},on:{click:()=>e.buttonHandle("road nodes")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Nodes"))+"\n ")])],1)],1)],1)],1)],1),e._v(" "),t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.ODIsEmpty?"0.50":"1"}},[e._v("\n fas fa-exchange-alt\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.ODIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("Origin - Destination"))+"\n "),e.ODIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("od")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)],1)]),e._v(" "),t("v-divider"),e._v(" "),t("div",{staticClass:"row"},[t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.paramsIsEmpty?"0.50":"1"}},[e._v("\n fas fa-cog\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.paramsIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("Parameters"))+"\n "),e.paramsIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("parameters")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)],1),e._v(" "),t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.stylesIsEmpty?"0.50":"1"}},[e._v("\n fas fa-palette\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.stylesIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("Style presets"))+"\n "),e.stylesIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("styles")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)],1)])],1)};l._withStripped=!0;var c=i(82069);const d={name:"FileLoader",events:["FilesLoaded"],data:()=>({loadedLinks:{},loadedNodes:{},loadedType:"",choice:""}),computed:{rlinksIsEmpty(){return this.$store.getters.rlinksIsEmpty},linksIsEmpty(){return this.$store.getters.linksIsEmpty},ODIsEmpty(){return this.$store.getters["od/layerIsEmpty"]},paramsIsEmpty(){return this.$store.getters["run/parametersIsEmpty"]},stylesIsEmpty(){return 0===this.$store.getters.styles.length},localLinksLoaded(){return 0!==Object.keys(this.loadedLinks).length},localNodesLoaded(){return 0!==Object.keys(this.loadedNodes).length},localFilesAreLoaded(){return this.localLinksLoaded&&this.localNodesLoaded}},watch:{localFilesAreLoaded(e){if(e){let e=[];e="PT"===this.loadedType?[{path:"inputs/pt/links.geojson",content:this.loadedLinks},{path:"inputs/pt/nodes.geojson",content:this.loadedNodes}]:[{path:"inputs/road/links.geojson",content:this.loadedLinks},{path:"inputs/road/nodes.geojson",content:this.loadedNodes}],this.$emit("FilesLoaded",e),this.loadedLinks={},this.loadedNodes={},this.loadedType=""}}},methods:{buttonHandle(e){this.choice=e,"parameters"===this.choice?(this.$refs.paramsInput.click(),document.getElementById("params-input").value=""):"styles"===this.choice?(this.$refs.stylesInput.click(),document.getElementById("styles-input").value=""):["PT links","PT nodes","road links","road nodes","od"].includes(this.choice)&&(this.$refs.fileInput.click(),document.getElementById("file-input").value="")},async readParams(e){this.$store.commit("changeLoading",!0);const t=e.target.files;try{let e=await(0,a.Xy)(t[0]);e=JSON.parse(e),this.$emit("FilesLoaded",[{path:"inputs/params.json",content:e}]),this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}},async readStyles(e){this.$store.commit("changeLoading",!0);const t=e.target.files;try{let e=await(0,a.Xy)(t[0]);e=JSON.parse(e),this.$emit("FilesLoaded",[{path:"styles.json",content:e}]),this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}},async readFile(e){this.$store.commit("changeLoading",!0);const t=e.target.files;if("geojson"!==t[0].name.slice(-7))return this.$store.commit("changeLoading",!1),void this.$store.commit("changeAlert",{name:"ImportError",message:"File must be a geojson"});const i=t[0].name;try{let e=await(0,a.Xy)(t[0]);switch(e=JSON.parse(e),this.choice){case"PT links":this.loadedLinks=(0,c.GM)(e,i,"LineString"),this.loadedType="PT";break;case"PT nodes":this.loadedNodes=(0,c.GM)(e,i,"Point"),this.loadedType="PT";break;case"road links":this.loadedLinks=(0,c.GM)(e,i,"LineString"),this.loadedType="road";break;case"road nodes":this.loadedNodes=(0,c.GM)(e,i,"Point"),this.loadedType="road";break;case"od":this.$emit("FilesLoaded",[{path:"inputs/od/od.geojson",content:e}]);break;default:console.log("autre")}this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}}}};var p=i(93379),u=i.n(p),h=i(7795),m=i.n(h),g=i(90569),f=i.n(g),A=i(3565),v=i.n(A),y=i(19216),C=i.n(y),b=i(44589),k=i.n(b),w=i(56174),x={};x.styleTagTransform=k(),x.setAttributes=v(),x.insert=f().bind(null,"head"),x.domAPI=m(),x.insertStyleElement=C(),u()(w.Z,x),w.Z&&w.Z.locals&&w.Z.locals;var _=i(51900);const E=(0,_.Z)(d,l,[],!1,null,"d3a53384",null).exports;var S=function(){var e=this,t=e._self._c;return t("div",[t("input",{ref:"otherInputs",staticStyle:{display:"none"},attrs:{id:"other-inputs",type:"file",multiple:"multiple"},on:{change:e.readOtherInputs}}),e._v(" "),t("input",{ref:"otherOutputs",staticStyle:{display:"none"},attrs:{id:"other-outputs",type:"file",multiple:"multiple"},on:{change:e.readOtherOutputs}}),e._v(" "),t("div",{staticClass:"files-container"},[t("div",{staticClass:"title-box"},[t("h1",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Other Inputs"))+"\n ")]),e._v(" "),t("div",{staticClass:"upload-button"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("inputs")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)]),e._v(" "),t("div",{staticClass:"list"},e._l(e.inputFiles,(function(i,s){return t("li",{key:s},[e._v("\n "+e._s(i)+"\n "),t("v-tooltip",{attrs:{top:"","open-delay":"250"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"list-button",attrs:{icon:""},on:{click:()=>e.buttonHandle(i)}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Replace file inplace")))])])],1)})),0)]),e._v(" "),t("div",{staticClass:"files-container"},[t("div",{staticClass:"title-box"},[t("h1",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Outputs"))+"\n ")]),e._v(" "),t("div",{staticClass:"upload-button"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("outputs")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)]),e._v(" "),t("div",{staticClass:"list"},[e._l(e.outputFiles,(function(i){return t("li",{key:i},[e._v("\n "+e._s(i)+"\n ")])})),e._v(" "),e._l(e.layers,(function(i){return t("li",{key:i},[e._v("\n "+e._s(i)+"\n "),t("v-tooltip",{attrs:{top:"","open-delay":"250"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-icon",e._g(e._b({staticClass:"list-icon",attrs:{small:""}},"v-icon",s,!1),i),[e._v("\n fa-solid fa-layer-group\n ")])]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Viewable in results")))])])],1)}))],2)])])};S._withStripped=!0;const L={name:"FilesList",events:["FilesLoaded"],data:()=>({filesPanel:[0,1]}),computed:{loadedFiles(){return this.$store.getters.otherFiles.map((e=>e.path))},inputFiles(){return this.loadedFiles.filter((e=>e.startsWith("input")))},outputFiles(){return this.loadedFiles.filter((e=>e.startsWith("output")))},layers(){const e=this.$store.getters.availableLayers.filter((e=>e.startsWith("outputs/"))),t=[];for(const i of e)t.push(i+".geojson"),this.$store.getters[`${i}/hasOD`]&&t.push(i+".json");return t}},mounted(){},methods:{buttonHandle(e){this.choice=e,"outputs"===this.choice?(this.$refs.otherOutputs.click(),document.getElementById("other-outputs").value=""):this.choice.startsWith("inputs")&&(this.$refs.otherInputs.click(),document.getElementById("other-inputs").value="")},async readOtherInputs(e){this.$store.commit("changeLoading",!0);const t=[],i=e.target.files;for(const e of i){let i="inputs/"+e.name;"inputs"!==this.choice&&(i=this.choice);try{const s=await(0,a.Bq)(e);t.push({content:s,path:i}),this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}}this.$store.commit("changeLoading",!1),this.$emit("FilesLoaded",t)},async readOtherOutputs(e){this.$store.commit("changeLoading",!0);const t=[],i=e.target.files;for(const e of i){const i="outputs/"+e.name;try{if(e.name.endsWith(".geojson")||e.name.endsWith(".json")){let s=await(0,a.Xy)(e);s=JSON.parse(s),t.push({content:s,path:i})}else{const s=await(0,a.Bq)(e);t.push({content:s,path:i})}this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}}this.$store.commit("changeLoading",!1),this.$emit("FilesLoaded",t)}}};var I=i(77697),$={};$.styleTagTransform=k(),$.setAttributes=v(),$.insert=f().bind(null,"head"),$.domAPI=m(),$.insertStyleElement=C(),u()(I.Z,$),I.Z&&I.Z.locals&&I.Z.locals;const N=(0,_.Z)(L,S,[],!1,null,"e186d29a",null).exports;var F=function(){var e=this,t=e._self._c;return t("div",{style:{"margin-left":"10px"}},[t("v-btn",{attrs:{icon:"",small:""},on:{click:e.show}},[t("v-icon",[e._v("far fa-question-circle small")])],1),e._v(" "),t("v-dialog",{attrs:{height:e.height,width:e.width},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-img",{attrs:{src:e.url,contain:"",height:e.height,width:e.width,alt:"image"}})],1)],1)};F._withStripped=!0;const B={name:"InfoZip",data:()=>({showDialog:!1,url:"https://raw.githubusercontent.com/systragroup/quetzal-network-editor/master/example/zip_schematic.jpg",width:1300,height:900}),watch:{},methods:{show(){if(this.showDialog=!this.showDialog,!0===this.showDialog){const e=new Image;e.onload=()=>{this.width=e.width>this.width?this.width:e.width,this.height=e.height>this.height?this.height:e.height},e.src=this.url}}}},M={name:"Import",components:{FileLoader:E,InfoZip:(0,_.Z)(B,F,[],!1,null,"1b5fbd9c",null).exports,FilesList:N},data:()=>({loggedIn:!1,choice:null,showDialog:!1,filesAdded:!1}),computed:{projectIsEmpty(){return this.$store.getters.projectIsEmpty},s3Path(){return this.$route.query.s3Path}},watch:{s3Path(e){e&&this.loadFilesFromS3(e)}},mounted(){this.$store.commit("changeNotification",""),this.s3Path&&this.loadFilesFromS3(this.s3Path)},methods:{login(){setTimeout((()=>{this.$router.push("/Home").catch((()=>{}))}),300)},buttonHandle(e){switch(this.choice=e,this.choice){case"zip":this.$refs.zipInput.click(),document.getElementById("zip-input").value="";break;case"example1":this.projectIsEmpty?this.loadExample(["PT","road"]):this.showDialog=!0;break;case"example2":this.projectIsEmpty?this.loadExample(["PT","road","loaded","zones"]):this.showDialog=!0;break;case"newProject":this.projectIsEmpty?this.newProject():this.showDialog=!0}},applyDialog(){this.$store.commit("initNetworks"),this.$store.commit("unloadLayers"),this.$store.commit("unloadProject"),this.$store.commit("run/cleanRun"),"example1"===this.choice?this.loadExample(["PT","road"]):"example2"===this.choice?this.loadExample(["PT","road","loaded","zones"]):"newProject"===this.choice&&this.newProject(),this.showDialog=!this.showDialog},newProject(){this.$store.commit("initNetworks"),this.$store.commit("unloadLayers"),this.$store.commit("unloadProject"),this.$store.commit("run/cleanRun"),this.$store.commit("changeNotification",{text:"project overwrited",autoClose:!0,color:"success"})},loadNetwork(e){this.$store.commit("loadFiles",e),this.filesAdded=!0,this.$store.commit("changeLoading",!1)},async readZip(e){try{this.$store.commit("changeLoading",!0);const t=e.target.files;if(!t.length)return void this.$store.commit("changeLoading",!1);if("zip"!==t[0].name.slice(-3))return this.$store.commit("changeLoading",!1),void this.$store.commit("changeAlert",{name:"ImportError",message:"file is not a zip"});const i=await(0,a.sV)(t[0]);this.loadNetwork(i)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}},async loadFilesFromS3(){this.projectIsEmpty||(this.$store.commit("initNetworks"),this.$store.commit("unloadLayers"),this.$store.commit("run/cleanRun")),this.$store.commit("changeLoading",!0),this.$router.replace({query:null});const e=this.$store.getters.model,t=this.$store.getters.scenario+"/",i=[];try{let s=await n.Z.listFiles(e,t);s=s.filter((e=>!e.endsWith("/")));for(const o of s){const s=o.slice(t.length);if(s.startsWith("outputs/")||s.startsWith("inputs/"))if(o.endsWith(".json")||o.endsWith(".geojson")){const t=await n.Z.readJson(e,o);i.push({path:s,content:t})}else i.push({path:s,content:null});else{if("styles.json"===s){const t=await n.Z.readJson(e,o);i.push({path:s,content:t})}if("attributesChoices.json"===s){const t=await n.Z.readJson(e,o);i.push({path:s,content:t})}}}this.loadNetwork(i)}catch(e){this.$store.commit("changeAlert",e),this.$store.commit("changeLoading",!1)}},async loadExample(e){this.$store.commit("changeLoading",!0);const t="https://raw.githubusercontent.com/systragroup/quetzal-network-editor/master/example/",i=[];let s={};try{e.includes("PT")&&(s=await fetch(t+"links_exemple.geojson").then((e=>e.json())),i.push({path:"inputs/pt/links.geojson",content:s}),s=await fetch(t+"nodes_exemple.geojson").then((e=>e.json())),i.push({path:"inputs/pt/nodes.geojson",content:s})),e.includes("road")&&(s=await fetch(t+"road_links_exemple.geojson").then((e=>e.json())),i.push({path:"inputs/road/links.geojson",content:s}),s=await fetch(t+"road_nodes_exemple.geojson").then((e=>e.json())),i.push({path:"inputs/road/nodes.geojson",content:s})),e.includes("loaded")&&(s=await fetch(t+"loaded_links.geojson").then((e=>e.json())),i.push({path:"outputs/loaded_links.geojson",content:s}),s=await fetch(t+"loaded_nodes.geojson").then((e=>e.json())),i.push({path:"outputs/loaded_nodes.geojson",content:s})),e.includes("zones")&&(s=await fetch(t+"zones.geojson").then((e=>e.json())),i.push({path:"outputs/zones.geojson",content:s}),s=await fetch(t+"zones.zip").then((e=>(0,a.Ri)(e.blob()))),i.push({path:"outputs/zones.json",content:s})),this.loadNetwork(i)}catch{this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",{name:"ImportError",message:"An error occur fetching example on github"})}}}};var j=i(58141),D={};D.styleTagTransform=k(),D.setAttributes=v(),D.insert=f().bind(null,"head"),D.domAPI=m(),D.insertStyleElement=C(),u()(j.Z,D),j.Z&&j.Z.locals&&j.Z.locals;const O=(0,_.Z)(M,r,[],!1,null,"020024f7",null).exports;var P=i(36648),T=function(){var e=this,t=e._self._c;return t("section",{staticClass:"map-view"},[t("v-dialog",{attrs:{scrollable:"",persistent:"","max-width":e.numLinks>1?"40rem":"20rem"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.applyAction.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancelAction.apply(null,arguments)}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",{attrs:{"max-height":"55rem"}},[t("v-card-title",{staticClass:"text-h5"},[e._v("\n "+e._s(["deleteTrip","deleterGroup"].includes(e.action)?e.$gettext("Delete")+" "+e.message+"?":e.$gettext("Edit Properties"))+"\n ")]),e._v(" "),t("v-divider"),e._v(" "),e.editForm?t("v-card-text",[t("v-row",e._l(e.numLinks,(function(i,s){return t("v-col",{key:s},[t("v-list",[e.numLinks>1?t("v-list-item",[t("v-icon",{style:{"align-items":"center","justify-content":"center",transform:"rotate("+e.linkDir[s]+"deg)"}},[e._v("\n fas fa-long-arrow-alt-up\n ")])],1):e._e(),e._v(" "),e._l(e.orderedForm(s),(function(i,s){return t("v-text-field",{key:s,attrs:{label:s,hint:e.showHint?e.$gettext(e.hints[s]):"","persistent-hint":e.showHint,filled:!i.disabled,type:e.$store.getters.attributeType(s),placeholder:i.placeholder?e.$gettext("multiple Values"):"","persistent-placeholder":!!i.placeholder,disabled:i.disabled},on:{wheel:function(e){return e.target.blur()}},scopedSlots:e._u(["route_color"===s?{key:"append",fn:function(){return[t("color-picker",{model:{value:i.value,callback:function(t){e.$set(i,"value",t)},expression:"value['value']"}})]},proxy:!0}:Object.keys(e.attributesChoices).includes(s)?{key:"append",fn:function(){return[t("MenuSelector",{attrs:{items:e.attributesChoices[s]},model:{value:i.value,callback:function(t){e.$set(i,"value",t)},expression:"value['value']"}})]},proxy:!0}:null,e.showDeleteOption?{key:"prepend",fn:function(){return[t("v-btn",{attrs:{icon:"","x-small":"",disabled:e.attributeNonDeletable(s),color:"error"},on:{click:()=>e.deleteField(s)}},[t("v-icon",[e._v("fas fa-trash small")])],1)]},proxy:!0}:null],null,!0),model:{value:i.value,callback:function(t){e.$set(i,"value",t)},expression:"value['value']"}})}))],2)],1)})),1),e._v(" "),t("v-row",[t("v-text-field",{attrs:{label:e.$gettext("add field"),placeholder:e.$gettext("new field name"),filled:"",rules:e.rules.newField},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.stopPropagation(),e.addField.apply(null,arguments))},wheel:function(e){return e.target.blur()}},scopedSlots:e._u([{key:"append-outer",fn:function(){return[t("v-btn",{staticClass:"text--primary",attrs:{color:"primary",fab:"","x-small":""},on:{click:e.addField}},[t("v-icon",[e._v("fas fa-plus")])],1)]},proxy:!0}],null,!1,941361224),model:{value:e.newFieldName,callback:function(t){e.newFieldName=t},expression:"newFieldName"}})],1)],1):e._e(),e._v(" "),["cloneTrip"].includes(e.action)?t("v-card-text",[t("v-text-field",{attrs:{label:e.$gettext("New name")},model:{value:e.cloneName,callback:function(t){e.cloneName=t},expression:"cloneName"}})],1):e._e(),e._v(" "),t("v-divider"),e._v(" "),t("v-card-actions",[e.editForm?t("v-btn",{attrs:{icon:"","x-small":""},on:{click:()=>e.showHint=!e.showHint}},[t("v-icon",[e._v("far fa-question-circle small")])],1):e._e(),e._v(" "),e.editForm?t("v-btn",{attrs:{icon:"","x-small":""},on:{click:e.ToggleDeleteOption}},[e.showDeleteOption?t("v-icon",[e._v("\n fas fa-minus-circle fa-rotate-90\n ")]):t("v-icon",[e._v("\n fas fa-minus-circle\n ")])],1):e._e(),e._v(" "),t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"grey",text:""},on:{click:e.cancelAction}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"success",text:""},on:{click:e.applyAction}},[e._v("\n "+e._s(e.$gettext("Save"))+"\n ")])],1)],1)],1),e._v(" "),t("v-dialog",{attrs:{"max-width":"300"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.duplicate()},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancelClone.apply(null,arguments)}]},model:{value:e.cloneDialog,callback:function(t){e.cloneDialog=t},expression:"cloneDialog"}},[t("v-card",[t("v-card-title",[t("span",{staticClass:"text-h5"},[e._v(e._s(e.$gettext("Duplicate and reverse")))]),e._v(" "),t("span",{staticClass:"text-h5"},[e._v(e._s(e.message+" ?"))])]),e._v(" "),t("v-card-text",[t("v-text-field",{attrs:{label:e.$gettext("New name")},model:{value:e.cloneName,callback:function(t){e.cloneName=t},expression:"cloneName"}})],1),e._v(" "),t("v-card-text",{style:{textAlign:"center",color:"red"}},[e._v("\n "+e._s(e.errorMessage)+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"grey",text:""},on:{click:e.cancelClone}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"green darken-1",text:""},on:{click:function(t){return e.duplicate()}}},[e._v("\n "+e._s(e.$gettext("Save"))+"\n ")])],1)],1)],1),e._v(" "),t("SidePanel",{attrs:{"selected-trips":e.selectedTrips,"selectedr-group":e.selectedrGroup},on:{"update-tripList":e.updateSelectedTrips,confirmChanges:e.confirmChanges,abortChanges:e.abortChanges,deleteButton:e.deleteButton,cloneButton:e.cloneButton,propertiesButton:e.actionClick,"change-mode":t=>e.mode=t}}),e._v(" "),t("Map",{ref:"mapref",attrs:{"selected-trips":e.selectedTrips,mode:e.mode},on:{clickFeature:e.actionClick}})],1)};T._withStripped=!0;var z=function(){var e=this,t=e._self._c;return t("section",{class:e.showLeftPanel?"left-panel elevation-4":"left-panel-close",style:{width:e.showLeftPanel?"400px":"0px"}},[t("div",{staticClass:"left-panel-toggle-btn elevation-4",on:{click:function(t){return e.$store.commit("changeLeftPanel")}}},[t("v-icon",{attrs:{small:"",color:"secondary"}},[e._v("\n "+e._s(e.showLeftPanel?"fas fa-chevron-left":"fas fa-chevron-right")+"\n ")])],1),e._v(" "),t("transition",{attrs:{name:"fade"}},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.showLeftPanelContent,expression:"showLeftPanelContent"}],ref:"leftPanel",staticClass:"left-panel-content",attrs:{id:"left-panel"}},[t("div",[t("div",{style:{"margin-top":"20px","margin-bottom":"20px","margin-right":"20px"}},[t("v-tabs",{attrs:{"background-color":"secondary",dark:"",grow:""},model:{value:e.tab,callback:function(t){e.tab=t},expression:"tab"}},[t("v-tab",[e._v(e._s(e.$gettext("PT")))]),e._v(" "),t("v-tab",[e._v(e._s(e.$gettext("Road")))]),e._v(" "),t("v-tab",[e._v(e._s(e.$gettext("OD")))])],1),e._v(" "),t("LinksSidePanel",{directives:[{name:"show",rawName:"v-show",value:0===e.tab,expression:"tab===0"}],attrs:{height:e.windowHeight,"selected-trips":e.selectedTrips},on:{"update-tripList":t=>e.$emit("update-tripList",{type:"links",data:t}),confirmChanges:t=>e.$emit("confirmChanges",t),abortChanges:t=>e.$emit("abortChanges",t),cloneButton:t=>e.$emit("cloneButton",t),deleteButton:t=>e.$emit("deleteButton",t),propertiesButton:t=>e.$emit("propertiesButton",t)}}),e._v(" "),t("RoadSidePanel",{directives:[{name:"show",rawName:"v-show",value:1===e.tab,expression:"tab===1"}],attrs:{height:e.windowHeight,"selectedr-goup":e.selectedrGroup},on:{"update-tripList":t=>e.$emit("update-tripList",{type:"rlinks",data:t}),deleteButton:t=>e.$emit("deleteButton",t),propertiesButton:t=>e.$emit("propertiesButton",t)}}),e._v(" "),t("ODSidePanel",{directives:[{name:"show",rawName:"v-show",value:2===e.tab,expression:"tab===2"}],attrs:{height:e.windowHeight},on:{deleteButton:t=>e.$emit("deleteButton",t),propertiesButton:t=>e.$emit("propertiesButton",t)}})],1)])])])],1)};z._withStripped=!0;var R=function(){var e=this,t=e._self._c;return t("section",[t("v-card-title",{staticClass:"white--text secondary"},[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:""},on:{click:function(t){return e.showAll()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n "+e._s(e.tripList==e.tripId?"fa-eye fa":"fa-eye-slash fa")+"\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.tripList==e.tripId?e.$gettext("Hide All"):e.$gettext("Show All")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",disabled:0===e.tripList.length},on:{click:function(t){return e.propertiesButton(e.tripList)}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n fas fa-list\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Visibles Properties")))])]),e._v(" "),t("v-spacer"),e._v(" "),t("span",{style:{color:"white"}},[e._v("\n "+e._s(e.$gettext("Lines"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-spacer"),e._v(" "),t("v-menu",{attrs:{"offset-y":"","open-on-hover":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",dark:""}},"v-btn",s,!1),i),[t("v-icon",[e._v("fa-solid fa-download")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export All"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","visibles")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export Only Visible"))+"\n ")])],1)],1)],1)],1),e._v(" "),t("v-card",{staticClass:"mx-auto scrollable",attrs:{"max-width":"100%","min-width":"100%",height:e.height}},[t("v-list-item",[t("v-select",{attrs:{items:e.filterChoices,"prepend-icon":"fas fa-filter",label:e.$gettext("filter"),"item-color":"secondarydark",color:"secondarydark"},model:{value:e.vmodelSelectedFilter,callback:function(t){e.vmodelSelectedFilter=t},expression:"vmodelSelectedFilter"}})],1),e._v(" "),e._l(e.classifiedTripId,(function(i,s){return t("v-list-group",{key:String(i.name)+String(s),attrs:{color:"secondarydark",value:!1,"no-action":""},scopedSlots:e._u([{key:"activator",fn:function(){return[t("v-list-item-action",[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({attrs:{icon:""},on:{click:function(t){return t.stopPropagation(),e.showGroup(i.tripId)}}},"v-btn",o,!1),s),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n "+e._s(i.tripId.some((t=>e.tripList.includes(t)))?"fa-eye fa":"fa-eye-slash fa")+"\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v("\n "+e._s(i.tripId.some((t=>e.tripList.includes(t)))?e.$gettext("Hide All"):e.$gettext("Show All"))+"\n ")])])],1),e._v(" "),t("v-list-item-content",[t("v-list-item-title",[t("strong",[e._v("\n "+e._s("undefined"==i.name?e.$gettext(i.name):i.name)+"\n ")])])],1),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:null!=e.editorTrip},on:{click:function(t){return t.stopPropagation(),e.propertiesButton(i.tripId)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fas fa-list\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Group Properties")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!e.editorTrip},on:{click:function(t){return t.stopPropagation(),e.deleteButton({trip:i.tripId,message:i.name,action:"deleteTrip"})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-trash\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete Group")))])])]},proxy:!0}],null,!0)},[e._v(" "),t("v-virtual-scroll",{attrs:{items:i.tripId,"item-height":45,height:Math.min(e.height-220,45*i.tripId.length+3)},scopedSlots:e._u([{key:"default",fn:function({item:i}){return[t("v-list-item",{key:i,staticClass:"pl-2"},[t("v-list-item-action",[t("v-checkbox",{staticClass:"pl-2",attrs:{"on-icon":"fa-eye fa","off-icon":"fa-eye-slash fa",color:"primary",value:i,size:"10","hide-details":""},model:{value:e.tripList,callback:function(t){e.tripList=t},expression:"tripList"}})],1),e._v(" "),t("v-tooltip",{attrs:{right:"","open-delay":"300","content-class":"custom-tooltip"},scopedSlots:e._u([{key:"activator",fn:function({on:s}){return[i==e.editorTrip?t("v-list-item-title",e._g({},s),[t("strong",[e._v(e._s(i))])]):t("v-list-item-title",e._g({},s),[e._v("\n "+e._s(i)+"\n ")])]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(i))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!(i!=e.editorTrip&null!=e.editorTrip)},on:{click:function(t){return e.editButton(i)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:(e.editorTrip,"regular")}},[e._v("\n fas fa-pen\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Line")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!(i!=e.editorTrip&null!=e.editorTrip)},on:{click:function(t){return e.propertiesButton(i)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:(e.editorTrip,"regular")}},[e._v("\n fas fa-list\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Line Properties")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!(i!=e.editorTrip&null!=e.editorTrip)},on:{click:function(t){return e.cloneButton({trip:i,message:i})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:(e.editorTrip,"regular")}},[e._v("\n fas fa-clone\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Duplicate")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!e.editorTrip},on:{click:function(t){return e.deleteButton({trip:i,message:i,action:"deleteTrip"})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-trash\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete Line")))])])],1)]}}],null,!0)})],1)})),e._v(" "),t("v-divider")],2),e._v(" "),t("v-card",{staticClass:"mx-auto"},[e.editorTrip?t("v-list-item",[t("v-tooltip",{attrs:{right:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"mx-2",attrs:{color:e.$store.getters.anchorMode?"grey":"regular"},on:{click:function(t){return e.$store.commit("changeAnchorMode")}}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fas fa-anchor\n ")])],1)]}}],null,!1,3833012906)},[e._v(" "),t("span",[e._v(" "+e._s(e.$gettext("Edit Line geometry"))+" "),t("b",[e._v("(CTRL)")])])]),e._v(" "),t("v-btn",{on:{click:function(t){return e.$emit("abortChanges")}}},[t("v-icon",{attrs:{small:"",left:""}},[e._v("\n fas fa-times-circle\n ")]),e._v("\n "+e._s(e.$gettext("Abort"))+"\n ")],1),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:function(t){return e.$emit("confirmChanges")}}},[t("v-icon",{attrs:{small:"",left:""}},[e._v("\n fas fa-save\n ")]),e._v("\n "+e._s(e.$gettext("Confirm"))+"\n ")],1)],1):e._e(),e._v(" "),t("v-list-item",{directives:[{name:"show",rawName:"v-show",value:!e.editorTrip,expression:"editorTrip ? false: true"}]},[t("v-spacer"),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"text--primary",attrs:{color:"primary",fab:"",small:""},on:{click:e.createNewLine}},"v-btn",s,!1),i),[t("v-icon",[e._v("fas fa-plus")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Create new Line")))])])],1)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"290"},on:{keydown:[function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.$emit("confirmChanges"),e.showDialog=!e.showDialog},function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;e.showDialog=!1}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h5"},[e._v("\n "+e._s(e.$gettext("Save Changes?"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-btn",{attrs:{color:"regular",left:""},on:{click:function(t){e.showDialog=!1}}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:function(t){e.$emit("abortChanges"),e.showDialog=!e.showDialog}}},[e._v("\n "+e._s(e.$gettext("No"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:function(t){e.$emit("confirmChanges"),e.showDialog=!e.showDialog}}},[e._v("\n "+e._s(e.$gettext("Yes"))+"\n ")])],1)],1)],1)],1)};R._withStripped=!0;const Z=i(7597),H={name:"LinksSidePanel",components:{},props:["selectedTrips","height"],events:["selectEditorTrip","confirmChanges","abortChanges","cloneButton","deleteButton","propertiesButton","newLine"],data:()=>({showDialog:!1,tripList:[],selectedFilter:"",vmodelSelectedFilter:""}),computed:{filterChoices(){return this.$store.getters.lineAttributes},editorTrip(){return this.$store.getters.editorTrip},tripId(){return this.$store.getters.tripId},arrayUniqueTripId(){return[...new Map(this.$store.getters.links.features.map((e=>[e.properties.trip_id,e.properties]))).values()]},filteredCat(){return Array.from(new Set(this.arrayUniqueTripId.map((e=>e[this.selectedFilter]))))},classifiedTripId(){const e=[],t={name:"undefined",tripId:[]};return this.filteredCat.forEach((i=>{const s=this.arrayUniqueTripId.filter((e=>e[this.selectedFilter]===i)).map((e=>e.trip_id)).sort();null===i|""===i|void 0===i?t.tripId.push(...s):e.push({name:i,tripId:s})})),t.tripId.length>0&&e.push(t),e}},watch:{tripList(e){this.$emit("update-tripList",e)},tripId(e,t){if(e.lengthe.includes(t)));else if(e.length>t.length){const i=e.filter((e=>!t.includes(e)))[0];this.tripList.push(i)}else{const i={};t.forEach((function(t,s){i[t]=e[s]})),this.tripList=this.tripList.map((e=>i[e]))}},vmodelSelectedFilter(e,t){this.selectedFilter=e,this.filteredCat.length>500&&(this.selectedFilter=t,this.$store.commit("changeNotification",{text:"Cannot filter by this field. There is more than 500 groups",autoClose:!0,color:"red darken-2"}),this.$nextTick((()=>this.vmodelSelectedFilter=t)))}},created(){this.tripList=this.selectedTrips,this.selectedFilter="route_type",this.vmodelSelectedFilter=this.selectedFilter},methods:{editButton(e){this.editorTrip===e?this.showDialog=!0:(this.$store.commit("setEditorTrip",{tripId:e,changeBounds:!0}),this.$store.commit("changeNotification",{text:"",autoClose:!0}))},propertiesButton(e){"object"==typeof e?this.$emit("propertiesButton",{action:"Edit Group Info",lingering:!1,tripIds:e}):this.editorTrip?(this.$emit("propertiesButton",{action:"Edit Line Info",lingering:!0}),this.$store.commit("changeNotification",{text:"",autoClose:!0})):(this.$store.commit("setEditorTrip",{tripId:e,changeBounds:!1}),this.$emit("propertiesButton",{action:"Edit Line Info",lingering:!1}))},createNewLine(){const e="trip_"+Z.generate();this.$store.commit("setEditorTrip",{tripId:e,changeBounds:!1}),this.$emit("propertiesButton",{action:"Edit Line Info",lingering:!0})},cloneButton(e){this.$emit("cloneButton",e)},deleteButton(e){this.$emit("deleteButton",e)},showAll(){this.tripList===this.tripId?this.tripList=[]:this.tripList=this.tripId},showGroup(e){e.some((e=>this.tripList.includes(e)))?this.tripList=this.tripList.filter((t=>!e.includes(t))):this.tripList=Array.from(new Set([...this.tripList,...e]))}}};var G=i(67308),V={};V.styleTagTransform=k(),V.setAttributes=v(),V.insert=f().bind(null,"head"),V.domAPI=m(),V.insertStyleElement=C(),u()(G.Z,V),G.Z&&G.Z.locals&&G.Z.locals;const q=(0,_.Z)(H,R,[],!1,null,"61e624f6",null).exports;var U=function(){var e=this,t=e._self._c;return t("section",[t("v-card-title",{staticClass:"white--text secondary"},[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:""},on:{click:function(t){return e.showAll()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n "+e._s(e.tripList.length>0?"fa-eye fa":"fa-eye-slash fa")+"\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.tripList.length>0?e.$gettext("Hide All"):e.$gettext("Show All")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",disabled:0===e.tripList.length},on:{click:function(t){return e.editVisible()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n fas fa-list\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Visibles Properties")))])]),e._v(" "),t("v-spacer"),e._v(" "),t("span",{style:{color:"white"}},[e._v("\n "+e._s(e.$gettext("Roads"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-spacer"),e._v(" "),t("v-menu",{attrs:{"offset-y":"","open-on-hover":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",dark:""}},"v-btn",s,!1),i),[t("v-icon",[e._v("fa-solid fa-download")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","all")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export All"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","visible")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export Only Visible"))+"\n ")])],1)],1)],1)],1),e._v(" "),t("v-card",{staticClass:"mx-auto scrollable",attrs:{"max-width":"100%","min-width":"100%",height:e.height}},[t("v-list-item",[t("v-select",{attrs:{items:e.filterChoices,"prepend-icon":"fas fa-filter",label:e.$gettext("filter"),"item-color":"secondarydark",color:"secondarydark"},model:{value:e.vmodelSelectedFilter,callback:function(t){e.vmodelSelectedFilter=t},expression:"vmodelSelectedFilter"}})],1),e._v(" "),t("v-virtual-scroll",{attrs:{items:e.filteredCat,"item-height":45,height:e.height-71},scopedSlots:e._u([{key:"default",fn:function({item:i}){return[t("v-list-item",{key:e.vmodelSelectedFilter.concat(i),staticClass:"pl-2"},[t("v-list-item-action",[t("v-checkbox",{staticClass:"pl-2",attrs:{"on-icon":"fa-eye fa","off-icon":"fa-eye-slash fa",color:"primary",value:i,size:"10","hide-details":""},model:{value:e.tripList,callback:function(t){e.tripList=t},expression:"tripList"}})],1),e._v(" "),t("v-list-item-title",[e._v("\n "+e._s(i)+"\n ")]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!1},on:{click:function(t){return e.propertiesButton(i)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fas fa-list\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Line Properties")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!1},on:{click:function(t){return e.deleteButton({trip:i,group:e.selectedFilter,message:i,action:"deleterGroup"})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-trash\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete Line")))])])],1)]}}])}),e._v(" "),t("v-divider")],1),e._v(" "),t("v-card",{staticClass:"mx-auto"},[t("v-list-item",[t("v-tooltip",{attrs:{right:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"mx-2",attrs:{color:e.$store.getters.anchorMode?"grey":"regular"},on:{click:function(t){return e.$store.commit("changeAnchorMode")}}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fas fa-anchor\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(" "+e._s(e.$gettext("Edit Line geometry"))+" "),t("b",[e._v("(CTRL)")])])]),e._v(" "),t("v-tooltip",{attrs:{right:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"mx-2",attrs:{disabled:!e.$store.getters.hasCycleway,color:e.$store.getters.cyclewayMode?"green":"regular"},on:{click:function(t){return e.$store.commit("changeCyclewayMode")}}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fas fa-biking\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(" "+e._s(e.$gettext("Show Cycleway direction instead of road")))])]),e._v(" "),t("v-spacer")],1)],1)],1)};U._withStripped=!0;const J={name:"RoadSidePanel",components:{},props:["selectedrGoup","height"],events:["deleteButton","propertiesButton","update-tripList"],data(){return{tripList:this.selectedrGoup,selectedFilter:"",vmodelSelectedFilter:""}},computed:{filterChoices(){return this.$store.getters.rlineAttributes},filteredCat(){return this.$store.getters.filteredrCategory}},watch:{tripList(e,t){let i="",s="add";e===this.filteredCat?(i=e,s="showAll"):0===e.length?(i=[],s="hideAll"):e.length!e.includes(t))),s="remove"):e.length>t.length&&(i=e.filter((e=>!t.includes(e))),s="add"),""!==i&&this.$emit("update-tripList",{category:this.vmodelSelectedFilter,data:i,method:s})},selectedrGoup(e){const t=new Set(e),i=new Set(this.tripList);t.size===i.size&&new Set([...t,...i]).size===t.size||(this.tripList=structuredClone(e))},vmodelSelectedFilter(e,t){this.selectedFilter=e,this.$store.commit("changeSelectedrFilter",this.selectedFilter),t&&(this.tripList=[])}},mounted(){this.tripList=this.selectedrGoup,this.selectedFilter=this.$store.getters.selectedrFilter,this.vmodelSelectedFilter=this.selectedFilter,this.$store.commit("changeSelectedrFilter",this.selectedFilter),0!==this.$store.getters.links.features.length||this.$store.getters.projectIsEmpty||0!==this.selectedrGoup.length||this.showAll()},methods:{propertiesButton(e){this.$emit("propertiesButton",{action:"Edit Road Group Info",lingering:!1,category:this.vmodelSelectedFilter,group:e})},editVisible(){this.$emit("propertiesButton",{action:"Edit Visible Road Info",lingering:!1})},deleteButton(e){this.$emit("deleteButton",e)},showAll(){this.tripList.length===this.filteredCat.length?this.tripList=[]:this.tripList=this.filteredCat},showGroup(e){this.tripList=Array.from(new Set([...this.tripList,...e]))}}};var W=i(82215),Y={};Y.styleTagTransform=k(),Y.setAttributes=v(),Y.insert=f().bind(null,"head"),Y.domAPI=m(),Y.insertStyleElement=C(),u()(W.Z,Y),W.Z&&W.Z.locals&&W.Z.locals;const K=(0,_.Z)(J,U,[],!1,null,"0e528228",null).exports;var Q=function(){var e=this,t=e._self._c;return t("section",[t("v-card-title",{staticClass:"white--text secondary"},[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:""},on:{click:function(t){return e.showAll()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n "+e._s(e.vmodelSelectedCat.length>0?"fa-eye fa":"fa-eye-slash fa")+"\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.vmodelSelectedCat.length>0?e.$gettext("Hide All"):e.$gettext("Show All")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",disabled:0===e.vmodelSelectedCat.length},on:{click:function(t){return e.editVisible()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n fas fa-list\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Visibles Properties")))])]),e._v(" "),t("v-spacer"),e._v(" "),t("span",{style:{color:"white"}},[e._v("\n "+e._s(e.$gettext("OD"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-spacer"),e._v(" "),t("v-menu",{attrs:{"offset-y":"","open-on-hover":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",dark:""}},"v-btn",s,!1),i),[t("v-icon",[e._v("fa-solid fa-download")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","all")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export All"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","visible")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export Only Visible"))+"\n ")])],1)],1)],1)],1),e._v(" "),t("v-card",{staticClass:"mx-auto scrollable",attrs:{"max-width":"100%","min-width":"100%",height:e.height}},[t("v-list-item",[t("v-select",{attrs:{items:e.filterChoices,"prepend-icon":"fas fa-filter",label:e.$gettext("filter"),"item-color":"secondarydark",color:"secondarydark"},model:{value:e.vmodelSelectedFilter,callback:function(t){e.vmodelSelectedFilter=t},expression:"vmodelSelectedFilter"}})],1),e._v(" "),t("v-virtual-scroll",{attrs:{items:e.filteredCat,"item-height":45,height:e.height-71},scopedSlots:e._u([{key:"default",fn:function({item:i}){return[t("v-list-item",{key:e.vmodelSelectedFilter.concat(i),staticClass:"pl-2"},[t("v-list-item-action",[t("v-checkbox",{staticClass:"pl-2",attrs:{"on-icon":"fa-eye fa","off-icon":"fa-eye-slash fa",color:"primary",value:i,size:"10","hide-details":""},model:{value:e.vmodelSelectedCat,callback:function(t){e.vmodelSelectedCat=t},expression:"vmodelSelectedCat"}})],1),e._v(" "),t("v-list-item-title",[e._v("\n "+e._s(i)+"\n ")]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!1},on:{click:function(t){return e.propertiesButton(i)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fas fa-list\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Line Properties")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!1},on:{click:function(t){return e.deleteButton({trip:i,group:e.selectedFilter,message:i,action:"deleteODGroup"})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-trash\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete Line")))])])],1)]}}])}),e._v(" "),t("v-divider")],1),e._v(" "),t("v-card",{staticClass:"mx-auto"},[t("v-list-item",[t("v-spacer")],1)],1)],1)};Q._withStripped=!0;const X={name:"RoadSidePanel",components:{},props:["height"],events:["deleteButton","propertiesButton"],data:()=>({vmodelSelectedFilter:"cycleway",vmodelSelectedCat:[]}),computed:{layer(){return this.$store.getters["od/layer"]},filterChoices(){return this.$store.getters["od/layerAttributes"]},selectedFilter(){return this.$store.getters["od/selectedFilter"]},selectedCat(){return this.$store.getters["od/selectedCategory"]},filteredCat(){return this.$store.getters["od/filteredCategory"]}},watch:{vmodelSelectedCat(e){this.$store.commit("od/changeSelectedCategory",e)},vmodelSelectedFilter(e){this.$store.commit("od/changeSelectedFilter",e),this.vmodelSelectedCat=[]}},mounted(){this.vmodelSelectedCat=this.selectedCat,this.vmodelSelectedFilter=this.selectedFilter},methods:{propertiesButton(e){this.$emit("propertiesButton",{action:"Edit OD Group Info",lingering:!1,category:this.vmodelSelectedFilter,group:e})},editVisible(){this.$emit("propertiesButton",{action:"Edit Visible OD Info",lingering:!1})},deleteButton(e){this.$emit("deleteButton",e)},showAll(){this.vmodelSelectedCat.length===this.filteredCat.length?this.vmodelSelectedCat=[]:this.vmodelSelectedCat=this.filteredCat},showGroup(e){this.tripList=Array.from(new Set([...this.tripList,...e]))}}};var ee=i(55271),te={};te.styleTagTransform=k(),te.setAttributes=v(),te.insert=f().bind(null,"head"),te.domAPI=m(),te.insertStyleElement=C(),u()(ee.Z,te),ee.Z&&ee.Z.locals&&ee.Z.locals;const ie={name:"SidePanel",components:{LinksSidePanel:q,RoadSidePanel:K,ODSidePanel:(0,_.Z)(X,Q,[],!1,null,"56780b52",null).exports},props:["selectedTrips","selectedrGroup"],events:["selectEditorTrip","confirmChanges","abortChanges","cloneButton","deleteButton","propertiesButton","change-mode"],data:()=>({showLeftPanelContent:!0,tab:0,mode:"pt"}),computed:{showLeftPanel(){return this.$store.getters.showLeftPanel},windowHeight(){return this.$store.getters.windowHeight-200}},watch:{showLeftPanel(e){e?setTimeout((()=>{this.showLeftPanelContent=!0}),500):this.showLeftPanelContent=!1},tab(e){this.mode=0===e?"pt":1===e?"road":"od",this.$emit("change-mode",this.mode)}},created(){0!==this.$store.getters.links.features.length||this.$store.getters.projectIsEmpty||(this.tab=1)}};var se=i(13719),oe={};oe.styleTagTransform=k(),oe.setAttributes=v(),oe.insert=f().bind(null,"head"),oe.domAPI=m(),oe.insertStyleElement=C(),u()(se.Z,oe),se.Z&&se.Z.locals&&se.Z.locals;const re=(0,_.Z)(ie,z,[],!1,null,"5064ebfe",null).exports;var ne=function(){var e=this,t=e._self._c;return t("MglMap",{key:e.mapStyle,style:{width:"100%"},attrs:{"access-token":e.mapboxPublicKey,"map-style":e.mapStyle,center:e.$store.getters.mapCenter,zoom:e.$store.getters.mapZoom},on:{load:e.onMapLoaded,mousemove:e.draw,mouseout:function(t){return e.resetDraw()},click:e.addPoint,mouseup:e.rightClickMap}},[e.mapIsLoaded?[t("Settings")]:e._e(),e._v(" "),e.mapIsLoaded&e.rasterFiles.length>0?[t("LayerSelector",{attrs:{choices:e.rasterFiles,"available-layers":e.availableLayers}})]:e._e(),e._v(" "),t("MglScaleControl",{attrs:{position:"bottom-right"}}),e._v(" "),t("MglNavigationControl",{attrs:{position:"bottom-right"}}),e._v(" "),e._l(e.rasterFiles,(function(i){return t("div",{key:i.name},[e.mapIsLoaded&&e.visibleRasters.includes(i.name)&&e.availableLayers.includes(i.layer)?[t("StaticLayer",{attrs:{preset:i,map:e.map,order:e.visibleRasters.indexOf(i.name)}})]:e._e()],2)})),e._v(" "),e.mapIsLoaded?[t("RoadLinks",e._g({ref:"roadref",attrs:{map:e.map,"is-editor-mode":e.isEditorMode,"is-road-mode":"road"===e.mode,"anchor-mode":e.anchorMode}},e.isEditorMode?{}:e.anchorMode?{clickFeature:e.clickFeature}:{onHover:e.onHoverRoad,offHover:e.offHover,clickFeature:e.clickFeature}))]:e._e(),e._v(" "),e.mapIsLoaded?[t("StaticLinks",{attrs:{map:e.map,"showed-trips":e.selectedTrips,"is-editor-mode":e.isEditorMode},on:{rightClick:t=>e.$emit("clickFeature",t)}})]:e._e(),e._v(" "),e.mapIsLoaded?[t("EditorLinks",e._g({attrs:{map:e.map,"anchor-mode":e.anchorMode}},e.anchorMode?{clickFeature:e.clickFeature}:{onHover:e.onHover,offHover:e.offHover,clickFeature:e.clickFeature}))]:e._e(),e._v(" "),e.mapIsLoaded?[t("ODMap",{attrs:{map:e.map,"is-editor-mode":e.isEditorMode,"is-o-d-mode":"od"===e.mode},on:{clickFeature:e.clickFeature}})]:e._e(),e._v(" "),e.mapIsLoaded?[e.drawMode?t("MglGeojsonLayer",{attrs:{"source-id":"drawLink",source:{type:"geojson",data:e.drawLink,buffer:0,generateId:!0},"layer-id":"drawLink",layer:{type:"line",minzoom:2,paint:{"line-opacity":1,"line-color":e.$vuetify.theme.currentTheme.linksprimary,"line-width":["case",["boolean",e.connectedDrawLink,!1],5,3],"line-dasharray":["case",["boolean",e.connectedDrawLink,!1],["literal",[]],["literal",[0,2,4]]]}}}}):e._e()]:e._e()],2)};ne._withStripped=!0;var ae=i(6158),le=i.n(ae),ce=i(1963),de=i(22317),pe=i(59903),ue=i.n(pe),he=function(){var e=this,t=e._self._c;return t("v-menu",{attrs:{"close-on-content-click":!1,"close-on-click":!1,origin:"top right",transition:"scale-transition","position-y":30,"nudge-width":200,"offset-x":"","offset-y":""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"setting",attrs:{fab:"",small:""}},"v-btn",s,!1),i),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fa-solid fa-cog\n ")])],1)]}}]),model:{value:e.show,callback:function(t){e.show=t},expression:"show"}},[e._v(" "),t("v-card",{class:{shake:e.shake},attrs:{"max-width":300},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.submit.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancel.apply(null,arguments)}]}},[t("v-card-title",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("Settings"))+"\n ")]),e._v(" "),t("v-card-text",[t("v-form",{ref:"form",attrs:{"lazy-validation":""}},[t("v-container",[t("v-col",[t("v-text-field",{attrs:{type:e.linkSpeed.type,label:e.$gettext(e.linkSpeed.name),suffix:e.linkSpeed.units,hint:e.showHint?e.$gettext(e.linkSpeed.hint):"","persistent-hint":e.showHint,rules:e.rules,required:""},on:{wheel:()=>{}},model:{value:e.linkSpeed.value,callback:function(t){e.$set(e.linkSpeed,"value",t)},expression:"linkSpeed.value"}}),e._v(" "),t("v-text-field",{attrs:{type:e.roadSpeed.type,label:e.$gettext(e.roadSpeed.name),suffix:e.roadSpeed.units,hint:e.showHint?e.$gettext(e.roadSpeed.hint):"","persistent-hint":e.showHint,rules:e.rules,required:""},on:{wheel:()=>{}},model:{value:e.roadSpeed.value,callback:function(t){e.$set(e.roadSpeed,"value",t)},expression:"roadSpeed.value"}}),e._v(" "),t("v-select",{attrs:{items:e.linksPopupContent.choices,label:e.$gettext(e.linksPopupContent.name),hint:e.showHint?e.$gettext(e.linksPopupContent.hint):"","persistent-hint":e.showHint,"menu-props":{top:!0,offsetY:!0},chips:"",multiple:""},model:{value:e.linksPopupContent.value,callback:function(t){e.$set(e.linksPopupContent,"value",t)},expression:"linksPopupContent.value"}}),e._v(" "),t("v-select",{attrs:{items:e.roadsPopupContent.choices,label:e.$gettext(e.roadsPopupContent.name),hint:e.showHint?e.$gettext(e.roadsPopupContent.hint):"","persistent-hint":e.showHint,"menu-props":{top:!0,offsetY:!0},chips:"",multiple:""},model:{value:e.roadsPopupContent.value,callback:function(t){e.$set(e.roadsPopupContent,"value",t)},expression:"roadsPopupContent.value"}}),e._v(" "),t("v-text-field",{attrs:{type:e.defaultHighway.type,label:e.$gettext(e.defaultHighway.name),suffix:e.defaultHighway.units,hint:e.showHint?e.$gettext(e.defaultHighway.hint):"","persistent-hint":e.showHint,rules:e.zipRules,required:""},model:{value:e.defaultHighway.value,callback:function(t){e.$set(e.defaultHighway,"value",t)},expression:"defaultHighway.value"}}),e._v(" "),t("v-text-field",{attrs:{type:e.outputName.type,label:e.$gettext(e.outputName.name),suffix:e.outputName.units,hint:e.showHint?e.$gettext(e.outputName.hint):"","persistent-hint":e.showHint,rules:e.zipRules,required:""},model:{value:e.outputName.value,callback:function(t){e.$set(e.outputName,"value",t)},expression:"outputName.value"}})],1)],1)],1)],1),e._v(" "),t("v-card-actions",[t("v-btn",{attrs:{color:"grey",text:""},on:{click:e.cancel}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"green darken-1",text:""},on:{click:e.submit}},[e._v("\n "+e._s(e.$gettext("Save"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-btn",{attrs:{icon:"",small:""},on:{click:function(t){e.showHint=!e.showHint}}},[t("v-icon",[e._v("far fa-question-circle small")])],1)],1)],1)],1)};he._withStripped=!0;const me={name:"Settings",events:["submit"],data:()=>({show:!1,linkSpeed:{name:"PT speed",type:"Number",value:0,units:"km/h",hint:"Speed used to calculate travel time when a link is drawn, extend or a node is moved"},roadSpeed:{name:"Road speed",type:"Number",value:0,units:"km/h",hint:"Speed used to calculate road travel time when a link is drawn"},linksPopupContent:{name:"PT Popup Content",type:"String",choices:[],value:"",hint:"Link field to display when hovering a trip on the map"},roadsPopupContent:{name:"Road Popup Content",type:"String",choices:[],value:"",hint:"Link field to display when hovering road link on the map"},defaultHighway:{name:"Road Highway name",type:"String",value:"",hint:"New road links Highway property name"},outputName:{name:"Export name",type:"String",value:"",units:".zip",hint:"the name of the exported zip file"},errorMessage:null,showHint:!1,shake:!1,rules:[e=>!!e||"Required",e=>e>=0||"should be larger than 0"],zipRules:[e=>".zip"!==e.slice(-4)||"do not add .zip to the end"],showDialog:!0}),watch:{show(){this.fetch()}},created(){this.localShow=this.show,this.fetch()},methods:{fetch(){this.linkSpeed.value=this.$store.getters.linkSpeed,this.roadSpeed.value=this.$store.getters.roadSpeed,this.linksPopupContent.choices=this.$store.getters.lineAttributes,this.linksPopupContent.value=this.$store.getters.linksPopupContent,this.roadsPopupContent.choices=this.$store.getters.rlineAttributes,this.roadsPopupContent.value=this.$store.getters.roadsPopupContent,this.defaultHighway.value=this.$store.getters.defaultHighway,this.outputName.value=this.$store.getters.outputName},submit(){if(this.$refs.form.validate()){const e={linkSpeed:this.linkSpeed.value,roadSpeed:this.roadSpeed.value,linksPopupContent:this.linksPopupContent.value,roadsPopupContent:this.roadsPopupContent.value,outputName:this.outputName.value,defaultHighway:this.defaultHighway.value};this.$store.commit("applySettings",e),this.$emit("submit",!0),this.show=!1,this.$store.commit("changeNotification",{text:"modification applied",autoClose:!0,color:"success"})}else this.shake=!0,setTimeout((()=>{this.shake=!1}),500)},cancel(){this.$emit("submit",!1),this.show=!1}}};var ge=i(5236),fe={};fe.styleTagTransform=k(),fe.setAttributes=v(),fe.insert=f().bind(null,"head"),fe.domAPI=m(),fe.insertStyleElement=C(),u()(ge.Z,fe),ge.Z&&ge.Z.locals&&ge.Z.locals;const Ae=(0,_.Z)(me,he,[],!1,null,"6c428464",null).exports;var ve=function(){var e=this,t=e._self._c;return t("section",[t("MglGeojsonLayer",e._g({attrs:{"source-id":"links",source:{type:"geojson",data:e.visibleLinks,buffer:0,promoteId:"index"},"layer-id":"links",layer:{interactive:!0,type:"line",minzoom:1,maxzoom:18,paint:{"line-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary],"line-opacity":["case",["boolean",e.isEditorMode,!1],.1,1],"line-width":["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],3],3]},layout:{"line-sort-key":["to-number",["get","route_width"]],"line-cap":"round"}}}},e.isEditorMode?{}:{mouseenter:e.enterLink,mouseleave:e.leaveLink,contextmenu:e.editLineProperties})),e._v(" "),t("MglGeojsonLayer",{attrs:{"source-id":"nodes",source:{type:"geojson",data:e.visibleNodes,buffer:0,promoteId:"index"},"layer-id":"nodes",layer:{interactive:!0,type:"circle",minzoom:12,maxzoom:18,paint:{"circle-color":["case",["boolean",e.isEditorMode,!1],e.$vuetify.theme.currentTheme.mediumgrey,e.$vuetify.theme.currentTheme.accent],"circle-stroke-color":e.$vuetify.theme.currentTheme.white,"circle-stroke-width":1,"circle-radius":["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],3],3]}}}})],1)};ve._withStripped=!0;const ye={name:"StaticLinks",components:{MglGeojsonLayer:ce.tf},props:["map","showedTrips","isEditorMode"],events:["rightClick"],data:()=>({visibleNodes:{},visibleLinks:{},selectedFeatures:[]}),computed:{selectedPopupContent(){return this.$store.getters.linksPopupContent},links(){return this.$store.getters.links},nodes(){return this.$store.getters.nodes}},watch:{showedTrips(e,t){this.setHiddenFeatures()},isEditorMode(e){e?this.map.off("dblclick",this.selectLine):this.map.on("dblclick",this.selectLine)}},created(){this.visibleLinks=structuredClone(this.$store.getters.linksHeader),this.visibleNodes=structuredClone(this.$store.getters.nodesHeader),this.setHiddenFeatures(),this.map.on("dblclick",this.selectLine)},methods:{enterLink(e){if(e.map.getCanvas().style.cursor="pointer",this.selectedFeatures=e.mapboxEvent.features,this.popup?.isOpen()&&this.popup.remove(),this.selectedPopupContent.length>0){let t=this.selectedPopupContent.map((e=>`${e}: ${this.selectedFeatures[0].properties[e]}`));t=t.join("
"),this.popup=new(le().Popup)({closeButton:!1}).setLngLat([e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat]).setHTML(t).addTo(e.map)}},leaveLink(e){this.selectedFeatures=[],this.popup?.isOpen()&&this.popup.remove(),e.map.getCanvas().style.cursor=""},setHiddenFeatures(){const e=new Set(this.showedTrips);this.visibleLinks.features=this.links.features.filter((t=>e.has(t.properties.trip_id)));const t=this.visibleLinks.features.map((e=>e.properties.a)),i=this.visibleLinks.features.map((e=>e.properties.b)),s=new Set([...t,...i]);this.visibleNodes.features=this.visibleNodes.features.filter((e=>s.has(e.properties.index)));const o=[...new Set(this.visibleLinks.features.map((e=>Number(e.properties.route_width))))],r={};o.forEach((e=>r[e]=new Set)),this.visibleLinks.features.map((e=>[e.properties.a,e.properties.b].forEach((t=>r[Number(e.properties.route_width)].add(t)))));let n=new Set;for(let e=0;e!n.has(e))))}o.forEach((e=>{const t=this.nodes.features.filter((t=>r[e].has(t.properties.index)));t.map((t=>t.properties.route_width=e)),this.visibleNodes.features.push(...t)}))},selectLine(e){if(e.preventDefault(),0===this.selectedFeatures.length){const t=[[e.point.x-5,e.point.y-5],[e.point.x+5,e.point.y+5]];this.selectedFeatures=this.map.queryRenderedFeatures(t,{layers:["links"]})}this.selectedFeatures.length>0&&(this.$store.commit("setEditorTrip",{tripId:this.selectedFeatures[0].properties.trip_id,changeBounds:!1}),this.$store.commit("changeNotification",{text:"",autoClose:!0}))},editLineProperties(e){this.$store.commit("setEditorTrip",{tripId:e.mapboxEvent.features[0].properties.trip_id,changeBounds:!1}),this.$emit("rightClick",{action:"Edit Line Info",lingering:!1})}}},Ce=(0,_.Z)(ye,ve,[],!1,null,"661f6889",null).exports;var be=function(){var e=this,t=e._self._c;return t("section",[t("MglGeojsonLayer",e._g({attrs:{"source-id":"editorLinks",source:{type:"geojson",data:e.$store.getters.editorLinks,buffer:0,promoteId:"index"},"layer-id":"editorLinks",layer:{type:"line",minzoom:2,paint:{"line-color":["case",["boolean",e.anchorMode,!1],e.$vuetify.theme.currentTheme.linkssecondary,e.$vuetify.theme.currentTheme.linksprimary],"line-width":["case",["boolean",["feature-state","hover"],!1],12,5],"line-blur":["case",["boolean",["feature-state","hover"],!1],6,0]}}},on:{click:e.selectClick,mouseover:e.onCursor,mouseleave:e.offCursor}},e.anchorMode?{}:{contextmenu:e.linkRightClick})),e._v(" "),t("MglImageLayer",{attrs:{"source-id":"editorLinks",type:"symbol",source:"editorLinks","layer-id":"arrow-layer",layer:{type:"symbol",minzoom:5,layout:{"symbol-placement":"line","symbol-spacing":30,"icon-ignore-placement":!0,"icon-image":"arrow","icon-size":.5,"icon-rotate":90},paint:{"icon-color":["case",["boolean",e.anchorMode,!1],e.$vuetify.theme.currentTheme.linkssecondary,e.$vuetify.theme.currentTheme.linksprimary]}}}}),e._v(" "),t("MglGeojsonLayer",e._g({attrs:{"source-id":"editorNodes",source:{type:"geojson",data:e.$store.getters.editorNodes,buffer:0,promoteId:"index"},"layer-id":"editorNodes",layer:{interactive:!0,type:"circle",minzoom:2,paint:{"circle-color":e.$vuetify.theme.currentTheme.accent,"circle-radius":["case",["boolean",["feature-state","hover"],!1],16,8],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0]}}},on:{mouseover:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode}},e.anchorMode?{}:{click:e.selectClick,contextmenu:e.contextMenuNode})),e._v(" "),t("MglGeojsonLayer",{attrs:{"source-id":"anchorNodes",source:{type:"geojson",data:e.anchorNodes,buffer:0,promoteId:"index"},"layer-id":"anchorNodes",layer:{interactive:!0,type:"circle",minzoom:2,paint:{"circle-color":"#ffffff","circle-opacity":.5,"circle-radius":["case",["boolean",["feature-state","hover"],!1],10,5],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0],"circle-stroke-color":"#2C3E4E","circle-stroke-width":2}}},on:{click:e.selectClick,mouseover:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode,contextmenu:e.contextMenuNode}}),e._v(" "),t("MglPopup",{attrs:{"close-button":!1,showed:e.popupEditor.showed,coordinates:e.popupEditor.coordinates},on:{close:function(t){e.popupEditor.showed=!1}}},[t("span",[t("h3",[e._v(e._s(e.popupEditor.content))]),e._v(" "),t("hr"),e._v("\n "+e._s("editorLinks"==e.hoveredStateId?.layerId?e.$gettext("Left click to add a stop"):e.$gettext("Hold left click to drag"))+"\n "),t("hr"),e._v("\n "+e._s("editorLinks"==e.hoveredStateId?.layerId?e.$gettext("Right click to edit properties"):e.$gettext("Right click for context menu"))+"\n ")])]),e._v(" "),t("MglPopup",{attrs:{"close-button":!1,showed:e.contextMenu.showed,coordinates:e.contextMenu.coordinates},on:{close:function(t){e.contextMenu.showed=!1}}},[t("span",{on:{mouseleave:function(t){e.contextMenu.showed=!1}}},[t("v-list",{attrs:{dense:"",flat:""}},[t("v-list-item-group",e._l(e.contextMenu.actions,(function(i){return t("v-list-item",{key:i.id},[t("v-list-item-content",[t("v-btn",{attrs:{outlined:"",small:""},on:{click:function(t){return e.actionClick({action:i,feature:e.contextMenu.feature,coordinates:e.contextMenu.coordinates})}}},[e._v("\n "+e._s(e.$gettext(i))+"\n ")])],1)],1)})),1)],1)],1)])],1)};be._withStripped=!0;const ke={name:"EditorLinks",components:{MglPopup:ce.eO,MglImageLayer:ce.vV,MglGeojsonLayer:ce.tf},props:["map","anchorMode"],events:["clickFeature","onHover","offHover"],data:()=>({selectedFeature:null,hoveredStateId:null,disablePopup:!1,keepHovering:!1,dragNode:!1,popupEditor:{coordinates:[0,0],showed:!1,content:null},contextMenu:{coordinates:[0,0],showed:!1,actions:[],feature:null,type:null}}),computed:{anchorNodes(){return this.anchorMode?this.$store.getters.anchorNodes:this.$store.getters.nodesHeader}},watch:{},created(){},methods:{selectClick(e){if(null!==this.hoveredStateId){const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);if(this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id))[0],null!==this.selectedFeature&&"editorLinks"===this.hoveredStateId.layerId){const t=this.anchorMode?"Add Anchor Inline":"Add Stop Inline",i={selectedFeature:this.selectedFeature,action:t,lngLat:e.mapboxEvent.lngLat};this.$emit("clickFeature",i)}}},onCursor(e){null!==this.hoveredStateId&&"editorLinks"!==this.hoveredStateId.layerId||(this.map.getCanvas().style.cursor="pointer",null!==this.hoveredStateId&&this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id},{hover:!1}),this.hoveredStateId={layerId:e.layerId,id:e.mapboxEvent.features[0].id},this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id},{hover:!0}),!this.disablePopup&!this.anchorMode&&(this.popupEditor.coordinates=[e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat],this.popupEditor.content=this.hoveredStateId.id,this.popupEditor.showed=!0)),this.$emit("onHover",{selectedId:this.hoveredStateId.id})},offCursor(e){null!==this.hoveredStateId&&(["editorNodes","anchorNodes"].includes(this.hoveredStateId.layerId)&&"editorLinks"===e?.layerId||(this.keepHovering?(this.dragNode=!0,this.contextMenu.showed=!1):(this.map.getCanvas().style.cursor="",this.popupEditor.showed=!1,this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id},{hover:!1}),this.hoveredStateId=null,this.$emit("offHover",e))))},contextMenuNode(e){if(this.popupEditor.showed&&"editorNodes"===this.hoveredStateId?.layerId){this.contextMenu.coordinates=[e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat],this.contextMenu.showed=!0,this.contextMenu.type="node";const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.contextMenu.feature=t.filter((e=>e.id===this.hoveredStateId.id))[0];const i=this.contextMenu.feature.properties.index;i===this.$store.getters.firstNodeId||i===this.$store.getters.lastNodeId?this.contextMenu.actions=["Edit Node Info","Delete Stop"]:this.contextMenu.actions=["Edit Node Info","Cut Before Node","Cut After Node","Delete Stop"]}else if("anchorNodes"===this.hoveredStateId?.layerId){const e=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=e.filter((e=>e.id===this.hoveredStateId.id));const t={selectedFeature:this.selectedFeature[0],action:"Delete Anchor",lngLat:null};this.$emit("clickFeature",t)}},linkRightClick(e){if("editorLinks"===this.hoveredStateId.layerId){const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id))[0];const i={selectedFeature:this.selectedFeature,action:"Edit Link Info",lngLat:e.mapboxEvent.lngLat,lingering:!0};this.$emit("clickFeature",i)}},actionClick(e){const t={selectedFeature:e.feature,action:e.action,lngLat:e.coordinates};this.$emit("clickFeature",t),this.contextMenu.showed=!1,this.contextMenu.type=null},moveNode(e){if(0===e.mapboxEvent.originalEvent.button&["editorNodes","anchorNodes"].includes(this.hoveredStateId.layerId)){e.mapboxEvent.preventDefault(),this.map.getCanvas().style.cursor="grab",this.keepHovering=!0;const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id))[0],this.disablePopup=!0,this.popupEditor.showed=!1,this.map.on("mousemove",this.onMove),this.map.on("mouseup",this.stopMovingNode)}},onMove(e){if(this.map.loaded()&&this.dragNode&&this.selectedFeature){const t={selectedFeature:this.selectedFeature,action:null,lngLat:Object.values(e.lngLat)};"anchorNodes"===this.hoveredStateId.layerId?(t.action="Move Anchor",this.$emit("clickFeature",t)):(t.action="Move Node",this.$emit("clickFeature",t))}},stopMovingNode(e){this.map.getCanvas().style.cursor="pointer",this.map.off("mousemove",this.onMove),this.keepHovering=!1,this.dragNode=!1,this.disablePopup=!1,this.offCursor(),this.map.off("mouseup",this.stopMovingNode)}}},we=(0,_.Z)(ke,be,[],!1,null,"02bf194d",null).exports;var xe=function(){var e=this,t=e._self._c;return t("section",[t("MglGeojsonLayer",e._g({attrs:{"source-id":"rlinks",source:{type:"geojson",data:e.isRoadMode?e.renderedrLinks:e.rlinks,buffer:0,promoteId:"index"},"layer-id":"rlinks",layer:{interactive:!0,type:"line",minzoom:e.minZoom.links,paint:{"line-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary],"line-opacity":["case",["boolean",e.isEditorMode,!1],.3,1],"line-width":["*",["case",["boolean",["feature-state","hover"],!1],3,1],["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]],"line-blur":["*",["case",["boolean",["feature-state","hover"],!1],1,0],["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]]},layout:{"line-sort-key":["to-number",["get","route_width"]]}}}},e.isEditorMode?{}:{mouseenter:e.onCursor,mouseleave:e.offCursor,click:e.selectClick,contextmenu:e.linkRightClick})),e._v(" "),t("MglImageLayer",{attrs:{"source-id":"rlinks",type:"symbol",source:"rlinks","layer-id":"arrow-rlinks",layer:{type:"symbol",minzoom:e.minZoom.rendered,layout:{"symbol-placement":"line","symbol-spacing":200,"icon-ignore-placement":!0,"icon-image":"arrow","icon-size":e.ArrowSizeCondition,"icon-rotate":e.ArrowDirCondition},paint:{"icon-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary]}}}}),e._v(" "),t("MglGeojsonLayer",e._g({attrs:{"source-id":"rnodes",source:{type:"geojson",data:e.isRoadMode?e.renderedrNodes:e.rnodes,buffer:0,promoteId:"index"},"layer-id":"rnodes",layer:{interactive:!0,type:"circle",minzoom:e.minZoom.rendered,paint:{"circle-color":["case",["boolean",e.isEditorMode,!1],e.$vuetify.theme.currentTheme.mediumgrey,e.$vuetify.theme.currentTheme.accent],"circle-stroke-color":e.$vuetify.theme.currentTheme.white,"circle-stroke-width":1,"circle-radius":["case",["boolean",["feature-state","hover"],!1],14,3],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0]}}}},e.isEditorMode?{}:{mouseenter:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode,contextmenu:e.contextMenuNode})),e._v(" "),t("MglGeojsonLayer",{attrs:{"source-id":"anchorrNodes",source:{type:"geojson",data:e.isRoadMode?e.renderedAnchorrNodes:e.$store.getters.rnodesHeader,buffer:0,promoteId:"index"},"layer-id":"anchorrNodes",layer:{interactive:!0,type:"circle",minzoom:e.minZoom.rendered,paint:{"circle-color":"#ffffff","circle-opacity":.5,"circle-radius":["case",["boolean",["feature-state","hover"],!1],10,5],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0],"circle-stroke-color":e.$vuetify.theme.currentTheme.darkgrey,"circle-stroke-width":2}}},on:{click:e.selectClick,mouseover:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode,contextmenu:e.contextMenuNode}}),e._v(" "),t("MglPopup",{attrs:{"close-button":!1,showed:e.contextMenu.showed,coordinates:e.contextMenu.coordinates},on:{close:function(t){e.contextMenu.showed=!1}}},[t("span",{on:{mouseleave:function(t){e.contextMenu.showed=!1}}},[t("v-list",{attrs:{dense:"",flat:""}},[t("v-list-item-group",e._l(e.contextMenu.actions,(function(i){return t("v-list-item",{key:i.id},[t("v-list-item-content",[t("v-btn",{attrs:{outlined:"",small:""},on:{click:function(t){return e.actionClick({action:i,feature:e.contextMenu.feature,coordinates:e.contextMenu.coordinates})}}},[e._v("\n "+e._s(e.$gettext(i))+"\n ")])],1)],1)})),1)],1)],1)])],1)};xe._withStripped=!0;var _e=i(95637),Ee=i(95);const Se={name:"StaticLinks",components:{MglGeojsonLayer:ce.tf,MglImageLayer:ce.vV,MglPopup:ce.eO},props:["map","isEditorMode","anchorMode","isRoadMode"],events:["clickFeature"],data:()=>({hoveredStateId:null,visibleNodes:{},visibleLinks:{},disablePopup:!1,editorRnodes:{},bbox:null,minZoom:{links:2,rendered:14},contextMenu:{coordinates:[0,0],showed:!1,actions:[],feature:null}}),computed:{selectedPopupContent(){return this.$store.getters.roadsPopupContent},selectedrGroup(){return this.$store.getters.selectedrGroup},cyclewayMode(){return this.$store.getters.cyclewayMode},rnodes(){return this.$store.getters.visiblerNodes},rlinks(){return this.$store.getters.visiblerLinks},renderedrLinks(){return this.$store.getters.renderedrLinks},renderedrNodes(){return this.$store.getters.renderedrNodes},renderedAnchorrNodes(){return this.anchorMode?this.$store.getters.anchorrNodes:this.$store.getters.rnodesHeader},ArrowSizeCondition(){const e=["case",["has","oneway"],["case",["to-boolean",["to-number",["get","oneway"]]],.15,0],.15],t=["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2];return this.cyclewayMode?["*",["case",["any",["all",["==",["get","cycleway"],"yes"],["==",["get","cycleway_reverse"],"yes"]],["all",["==",["get","cycleway"],"shared"],["==",["get","cycleway_reverse"],"shared"]],["all",["==",["get","cycleway"],"yes"],["==",["get","cycleway_reverse"],"shared"]],["all",["==",["get","cycleway"],"shared"],["==",["get","cycleway_reverse"],"yes"]]],0,["case",["all",["==",["get","cycleway"],"no"],["==",["get","cycleway_reverse"],"no"]],e,.15]],t]:["*",e,t]},ArrowDirCondition(){return this.cyclewayMode?["case",["any",["all",["==",["get","cycleway"],"no"],["==",["get","cycleway_reverse"],"yes"]],["all",["==",["get","cycleway"],"no"],["==",["get","cycleway_reverse"],"shared"]]],-90,90]:90}},watch:{selectedrGroup(e){this.getBounds()},isRoadMode(e){e?(this.map.on("dragend",this.getBounds),this.map.on("zoomend",this.getBounds)):(this.map.off("dragend",this.getBounds),this.map.off("zoomend",this.getBounds))}},created(){this.map.on("dragend",this.getBounds),this.map.on("zoomend",this.getBounds)},beforeDestroy(){this.map.removeLayer("arrow-rlinks")},methods:{getBounds(){const e=this.map.getBounds();this.bbox=(0,_e.Z)((0,Ee.Z)([e._sw.lng,e._sw.lat,e._ne.lng,e._ne.lat]),.2),this.map.getZoom()>this.minZoom.rendered?this.$store.commit("getRenderedrLinks",{bbox:this.bbox}):this.map.getZoom()>this.minZoom.links?this.$store.commit("setRenderedrLinks",{method:"visible"}):this.$store.commit("setRenderedrLinks",{method:"None"})},onCursor(e){if(this.isRoadMode&&(this.popup?.isOpen()&&this.popup.remove(),null===this.hoveredStateId||"rlinks"===this.hoveredStateId.layerId)){if(!this.disablePopup&&this.selectedPopupContent.length>0){const t=e.mapboxEvent.features[0];if("rnodes"!==t.layer.id){let i=this.selectedPopupContent.map((e=>`${e}: ${t.properties[e]}`));i=i.join("
"),this.popup=new(le().Popup)({closeButton:!1}).setLngLat([e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat]).setHTML(i).addTo(e.map)}}this.map.getCanvas().style.cursor="pointer",null!==this.hoveredStateId&&this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1});const t=[...new Set(e.mapboxEvent.features.map((e=>e.id)))];this.hoveredStateId={layerId:e.layerId,id:t},this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!0}),this.$emit("onHover",{layerId:this.hoveredStateId.layerId,selectedId:this.hoveredStateId.id})}},offCursor(e){this.isRoadMode&&(this.popup?.isOpen()&&this.popup.remove(),null!==this.hoveredStateId&&(["rnodes","anchorrNodes"].includes(this.hoveredStateId?.layerId)&&"rlinks"===e?.layerId||(this.keepHovering?this.dragNode=!0:(this.map.getCanvas().style.cursor="",this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1}),this.hoveredStateId=null,this.$emit("offHover",e)))))},selectClick(e){if(this.isRoadMode&&null!==this.hoveredStateId&&(this.selectedFeature=this.hoveredStateId.id,null!==this.selectedFeature&&"rlinks"===this.hoveredStateId.layerId)){const t=this.anchorMode?"Add Road Anchor Inline":"Add Road Node Inline",i={selectedIndex:this.selectedFeature,action:t,lngLat:e.mapboxEvent.lngLat};this.$emit("clickFeature",i)}},linkRightClick(e){this.isRoadMode&&"rlinks"===this.hoveredStateId.layerId&&(this.contextMenu.coordinates=[e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat],this.contextMenu.showed=!0,this.contextMenu.feature=this.hoveredStateId.id,this.contextMenu.actions=["Edit rLink Info","Delete rLink"])},actionClick(e){const t={selectedIndex:e.feature,action:e.action,lngLat:e.coordinates};this.$emit("clickFeature",t),this.contextMenu.showed=!1,this.contextMenu.type=null},contextMenuNode(e){if(this.isRoadMode){const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);if(this.selectedFeature=t.filter((e=>this.hoveredStateId.id.includes(e.id))),this.selectedFeature.length>0)if("rnodes"===this.hoveredStateId?.layerId){const t={selectedFeature:this.selectedFeature[0],action:"Edit rNode Info",lngLat:e.mapboxEvent.lngLat};this.$emit("clickFeature",t)}else if("anchorrNodes"===this.hoveredStateId?.layerId){const e={selectedFeature:this.selectedFeature[0],action:"Delete Road Anchor",lngLat:null};this.$emit("clickFeature",e)}}},moveNode(e){if(this.isRoadMode&&0===e.mapboxEvent.originalEvent.button&["rnodes","anchorrNodes"].includes(this.hoveredStateId.layerId)){e.mapboxEvent.preventDefault(),this.map.getCanvas().style.cursor="grab",this.keepHovering=!0;const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id[0]))[0],this.disablePopup=!0,"rnodes"===this.hoveredStateId.layerId&&this.$store.commit("getConnectedLinks",{selectedNode:this.selectedFeature}),this.map.on("mousemove",this.onMove),this.map.on("mouseup",this.stopMovingNode)}},onMove(e){if(this.dragNode&&this.selectedFeature){const t={selectedFeature:this.selectedFeature,action:null,lngLat:Object.values(e.lngLat)};"anchorrNodes"===this.hoveredStateId.layerId?(t.action="Move rAnchor",this.$emit("clickFeature",t)):(t.action="Move rNode",this.$emit("clickFeature",t))}},stopMovingNode(e){this.isRoadMode&&(this.map.getCanvas().style.cursor="pointer",this.map.off("mousemove",this.onMove),this.keepHovering=!1,this.dragNode=!1,this.disablePopup=!1,this.map.getCanvas().style.cursor="",this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1}),this.hoveredStateId=null,this.map.off("mouseup",this.stopMovingNode))}}},Le=(0,_.Z)(Se,xe,[],!1,null,"5bdbd7bc",null).exports;var Ie=function(){var e=this,t=e._self._c;return t("section",[t("div",{staticClass:"map-legend"},[t("MapLegend",{attrs:{"color-scale":e.colorScale,"display-settings":e.displaySettings,"base-offset":350,order:e.order}})],1),e._v(" "),["MultiPolygon","Polygon"].includes(e.type)?t("MglGeojsonLayer",{attrs:{"source-id":e.preset.name+"-layer",source:{type:"geojson",data:e.layer},"layer-id":e.preset.name+"-layer",layer:{interactive:!1,type:"fill",minzoom:5,paint:{"fill-color":["get","display_color"],"fill-opacity":e.opacity/100}}}}):e._e(),e._v(" "),"LineString"==e.type?t("MglGeojsonLayer",{attrs:{"source-id":e.preset.name+"-layer",source:{type:"geojson",data:e.layer,buffer:0,promoteId:"index"},"layer-id":e.preset.name+"-layer",layer:{interactive:!0,type:"line",minzoom:5,paint:{"line-color":["get","display_color"],"line-opacity":e.opacity/100,"line-offset":["*",.5*e.offsetValue,["to-number",["get","display_width"]]],"line-width":["get","display_width"]},layout:{"line-sort-key":["to-number",["get","display_width"]],"line-cap":"round"}}}}):e._e(),e._v(" "),"Point"==e.type?t("MglGeojsonLayer",{attrs:{"source-id":e.preset.name+"-layer",source:{type:"geojson",data:e.layer},"layer-id":e.preset.name+"-layer",layer:{interactive:!1,type:"circle",minzoom:5,paint:{"circle-color":["get","display_color"],"circle-radius":["get","display_width"],"circle-opacity":e.opacity/100},layout:{"circle-sort-key":["to-number",["get","display_width"]]}}}}):e._e()],1)};Ie._withStripped=!0;var $e=i(25286);const Ne={name:"StaticLayer",components:{MglGeojsonLayer:ce.tf,MapLegend:$e.Z},props:["preset","map","order"],data:()=>({type:"",layer:{},opacity:100,offsetValue:-1,displaySettings:{},colorScale:null}),watch:{},beforeDestroy(){this.map.getLayer(this.preset.name+"-layer")&&this.map.removeLayer(this.preset.name+"-layer")},mounted(){this.map.moveLayer(this.preset.name+"-layer","rlinks")},created(){this.opacity=this.preset.displaySettings.opacity,this.offsetValue=this.preset.displaySettings.offset?-1:1,this.changeLayer(this.preset.layer),Object.keys(this.preset).includes("selectedFilter")&&(this.$store.getters["results/lineAttributes"].includes(this.preset.selectedFilter)?(this.$store.commit("results/changeSelectedFilter",this.preset.selectedFilter),Object.keys(this.preset).includes("selectedCategory")&&(this.$store.commit("results/changeSelectedCategory",this.preset.selectedCategory),this.$store.commit("results/updateSelectedFeature"))):this.$store.commit("changeNotification",{text:this.preset.selectedFilter+" filter does not exist. use default one",autoClose:!0,color:"error"})),this.$store.commit("results/applySettings",this.preset.displaySettings),this.layer=structuredClone(this.$store.getters["results/displayLinks"]),this.type=structuredClone(this.$store.getters["results/type"]),this.colorScale=this.$store.getters["results/colorScale"],this.displaySettings=structuredClone(this.$store.getters["results/displaySettings"]),this.$store.commit("results/unload")},methods:{changeLayer(e){switch(this.selectedLayer=e,e){case"links":this.$store.commit("results/loadLinks",{geojson:this.$store.getters.links,type:"LineString",selectedFeature:"headway"});break;case"rlinks":this.$store.commit("results/loadLinks",{geojson:this.$store.getters.rlinks,type:"LineString",selectedFeature:"speed"});break;case"nodes":this.$store.commit("results/loadLinks",{geojson:this.$store.getters.nodes,type:"Point",selectedFeature:"boardings"});break;case"rnodes":this.$store.commit("results/loadLinks",{geojson:this.$store.getters.rnodes,type:"Point",selectedFeature:"boardings"});break;case"od":this.$store.commit("results/loadLinks",{geojson:this.$store.getters["od/layer"],type:"LineString",selectedFeature:"volume"});break;default:this.$store.commit("results/loadLinks",{geojson:this.$store.getters[`${e}/layer`],type:this.$store.getters[`${e}/type`]})}}}};var Fe=i(98210),Be={};Be.styleTagTransform=k(),Be.setAttributes=v(),Be.insert=f().bind(null,"head"),Be.domAPI=m(),Be.insertStyleElement=C(),u()(Fe.Z,Be),Fe.Z&&Fe.Z.locals&&Fe.Z.locals;const Me=(0,_.Z)(Ne,Ie,[],!1,null,"7dc7a5bf",null).exports;var je=function(){var e=this,t=e._self._c;return t("section",[t("v-menu",{attrs:{"close-on-content-click":!1,"close-on-click":!0,origin:"top right",transition:"scale-transition","position-y":30,"nudge-width":200,"offset-x":"","offset-y":""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"layer-button",attrs:{fab:"",small:""}},"v-btn",s,!1),i),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fas fa-layer-group\n ")])],1)]}}]),model:{value:e.show,callback:function(t){e.show=t},expression:"show"}},[e._v(" "),t("v-card",{attrs:{"max-width":300}},[t("v-card-title",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("Static Layers"))+"\n ")]),e._v(" "),e._l(e.choices,(function(i,s){return t("v-list-item",{key:s},[t("v-list-item-action",[t("v-checkbox",{attrs:{value:i.name,"off-icon":e.availableLayers.includes(i.layer)?"fa-eye-slash fa":"fas fa-exclamation-triangle","on-icon":"fa-eye fa",disabled:!e.availableLayers.includes(i.layer)},model:{value:e.selectedLayers,callback:function(t){e.selectedLayers=t},expression:"selectedLayers"}})],1),e._v(" "),t("v-tooltip",{attrs:{top:"","open-delay":"300","content-class":"custom-tooltip"},scopedSlots:e._u([{key:"activator",fn:function({on:s}){return[t("v-list-item-title",e._g({style:{cursor:"default"}},s),[e._v("\n "+e._s(i.name)+"\n ")])]}}],null,!0)},[e._v(" "),e.availableLayers.includes(i.layer)?t("span",[e._v(e._s(i.displaySettings.selectedFeature+" "+e.$gettext("from")+" "+i.layer))]):t("span",[e._v(e._s(e.$gettext("Data not found: ")+i.layer))])])],1)}))],2)],1)],1)};je._withStripped=!0;const De={name:"LayerSelector",components:{},props:{choices:{type:Array,default:()=>[]},availableLayers:{type:Array,default:()=>[]}},data:()=>({show:!1,selectedLayers:[],selectedOpacity:0}),watch:{selectedLayers(e){const t=[];e.forEach((e=>t.push(e))),this.$store.commit("setVisibleRasters",e)}},mounted(){this.selectedLayers=this.$store.getters.visibleRasters},methods:{}};var Oe=i(93380),Pe={};Pe.styleTagTransform=k(),Pe.setAttributes=v(),Pe.insert=f().bind(null,"head"),Pe.domAPI=m(),Pe.insertStyleElement=C(),u()(Oe.Z,Pe),Oe.Z&&Oe.Z.locals&&Oe.Z.locals;const Te=(0,_.Z)(De,je,[],!1,null,"9ae88e1e",null).exports;var ze=function(){var e=this,t=e._self._c;return t("section",[t("MglGeojsonLayer",{attrs:{"source-id":"od",source:{type:"geojson",data:e.layer,buffer:0,promoteId:"index"},"layer-id":"od",layer:{interactive:!0,type:"line",minzoom:1,maxzoom:18,paint:{"line-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary],"line-opacity":["case",["boolean",e.isEditorMode,!1],.3,1],"line-width":["*",["case",["boolean",["feature-state","hover"],!1],3,1],["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]],"line-blur":["*",["case",["boolean",["feature-state","hover"],!1],1,0],["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]]},layout:{"line-sort-key":["to-number",["get","route_width"]],"line-cap":"round"}}},on:{contextmenu:e.linkRightClick,mouseover:e.onCursor,mouseleave:e.offCursor}}),e._v(" "),t("MglGeojsonLayer",{attrs:{"source-id":"ODNodes",source:{type:"geojson",data:e.isODMode?e.nodes:e.$store.getters["od/layerHeader"],buffer:0,promoteId:"index"},"layer-id":"ODNodes",layer:{interactive:!0,type:"circle",paint:{"circle-color":"#ffffff","circle-opacity":.5,"circle-radius":["case",["boolean",["feature-state","hover"],!1],10,5],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0],"circle-stroke-color":e.$vuetify.theme.currentTheme.darkgrey,"circle-stroke-width":2}}},on:{mouseover:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode}}),e._v(" "),t("MglImageLayer",{attrs:{"source-id":"od",type:"symbol",source:"od","layer-id":"arrow-od",layer:{type:"symbol",layout:{"symbol-placement":"line","symbol-spacing":200,"icon-ignore-placement":!0,"icon-image":"arrow","icon-size":["*",.2,["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]],"icon-rotate":90},paint:{"icon-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary]}}}}),e._v(" "),t("MglPopup",{attrs:{"close-button":!1,showed:e.contextMenu.showed,coordinates:e.contextMenu.coordinates},on:{close:function(t){e.contextMenu.showed=!1}}},[t("span",{on:{mouseleave:function(t){e.contextMenu.showed=!1}}},[t("v-list",{attrs:{dense:"",flat:""}},[t("v-list-item-group",e._l(e.contextMenu.actions,(function(i){return t("v-list-item",{key:i.id},[t("v-list-item-content",[t("v-btn",{attrs:{outlined:"",small:""},on:{click:function(t){return e.actionClick({action:i,feature:e.contextMenu.feature,coordinates:e.contextMenu.coordinates})}}},[e._v("\n "+e._s(e.$gettext(i))+"\n ")])],1)],1)})),1)],1)],1)])],1)};ze._withStripped=!0;const Re=i(7597),Ze={name:"ODMap",components:{MglGeojsonLayer:ce.tf,MglImageLayer:ce.vV,MglPopup:ce.eO},props:["map","isODMode","isEditorMode"],events:[],data:()=>({hoveredStateId:null,keepHovering:!1,dragNode:!1,drawMode:!1,selectedFeature:null,contextMenu:{coordinates:[0,0],showed:!1,actions:[],feature:null}}),computed:{layer(){return this.$store.getters["od/visibleLayer"]},nodes(){return this.$store.getters["od/nodes"](this.layer)}},watch:{},created(){this.map.on("click",this.test)},methods:{test(e){if(this.isODMode)if(this.drawMode)this.drawMode=!1;else{const t="OD_"+Re.generate();this.$store.commit("od/createNewLink",{lngLat:Object.values(e.lngLat),index:t}),this.dragNode=!0,this.selectedFeature={properties:{linkIndex:t,coordinatedIndex:1}},this.drawMode=!0,this.map.on("mousemove",this.onMove),this.map.on("mouseup",this.stopMovingNode)}},onCursor(e){if(this.isODMode&&null===this.hoveredStateId){this.map.getCanvas().style.cursor="pointer";const t=[...new Set(e.mapboxEvent.features.map((e=>e.id)))];this.hoveredStateId={layerId:e.layerId,id:t},this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!0})}},offCursor(e){this.isODMode&&null!==this.hoveredStateId&&(this.keepHovering?this.dragNode=!0:(this.map.getCanvas().style.cursor="",this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1}),this.hoveredStateId=null))},moveNode(e){if(this.isODMode&&!this.drawMode&&"ODNodes"===this.hoveredStateId?.layerId&&0===e.mapboxEvent.originalEvent.button){e.mapboxEvent.preventDefault(),this.map.getCanvas().style.cursor="grab",this.keepHovering=!0;const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id[0]))[0],this.selectedFeature?.properties&&(this.map.on("mousemove",this.onMove),this.map.on("mouseup",this.stopMovingNode))}},onMove(e){if(this.dragNode&&this.selectedFeature){const t={selectedFeature:this.selectedFeature,lngLat:Object.values(e.lngLat)};this.$store.commit("od/moveNode",t)}},stopMovingNode(e){this.isODMode&&0===e.originalEvent.button&&(this.map.getCanvas().style.cursor="pointer",this.map.off("mousemove",this.onMove),this.keepHovering=!1,this.dragNode=!1,this.map.getCanvas().style.cursor="",this.hoveredStateId&&this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1}),this.hoveredStateId=null,this.map.off("mouseup",this.stopMovingNode))},linkRightClick(e){this.isODMode&&!this.drawMode&&(this.contextMenu.coordinates=[e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat],this.contextMenu.showed=!0,this.contextMenu.feature=this.hoveredStateId.id,this.contextMenu.actions=["Edit OD Info","Delete OD"])},actionClick(e){const t={selectedIndex:e.feature,action:e.action,lngLat:e.coordinates};this.$emit("clickFeature",t),this.contextMenu.showed=!1,this.contextMenu.type=null}}},He=(0,_.Z)(Ze,ze,[],!1,null,"af4e3bca",null).exports,Ge={name:"Map",components:{MglMap:ce.Q3,MglNavigationControl:ce.RV,MglScaleControl:ce.RQ,MglGeojsonLayer:ce.tf,LayerSelector:Te,StaticLayer:Me,StaticLinks:Ce,EditorLinks:we,RoadLinks:Le,Settings:Ae,ODMap:He},props:{selectedTrips:{type:Array,default:()=>[]},mode:{type:String,default:"pt"}},events:["clickFeature"],data:()=>({mapboxPublicKey:null,selectedFeature:null,isEditorMode:!1,mapIsLoaded:!1,drawMode:!1,hoverId:null,hoverLayer:null,mapDiv:null,drawLink:null,mouseout:!1,selectedNode:{id:null,layerId:null},connectedDrawLink:!1}),computed:{mapStyle(){return this.$store.getters.mapStyle},showLeftPanel(){return this.$store.getters.showLeftPanel},editorTrip(){return this.$store.getters.editorTrip},editorNodes(){return this.$store.getters.editorNodes},firstNode(){return this.$store.getters.firstNode},lastNode(){return this.$store.getters.lastNode},anchorMode(){return this.$store.getters.anchorMode},visibleRasters(){return this.$store.getters.visibleRasters},rasterFiles(){return this.$store.getters.styles},availableLayers(){return this.$store.getters.availableLayers}},watch:{showLeftPanel(){setTimeout((()=>this.map.resize()),250)},anchorMode(e){e?(this.drawMode=!1,this.$store.commit("changeNotification",{text:"Left click to add an anchor point, right click to delete",autoClose:!1})):this.$store.commit("changeNotification",{text:"",autoClose:!0})},mode(e){"pt"===e&&(this.drawMode=!1)},mapStyle(e){this.saveMapPosition()},editorNodes(e,t){if(this.$store.commit("setAnchorMode",!1),this.isEditorMode=e.features.length>0,this.isEditorMode&&this.$store.getters.changeBounds){const t=new(le().LngLatBounds);e.features.forEach((e=>{t.extend(e.geometry.coordinates)})),this.map.fitBounds(t,{padding:100})}},drawMode(e){this.map?.getStyle().layers.filter((e=>"drawLink"===e.id)).length>0&&(e?this.map.setLayoutProperty("drawLink","visibility","visible"):this.map.setLayoutProperty("drawLink","visibility","none"))},editorTrip(e){e&&(this.isEditorMode=!0,this.connectedDrawLink=!1)},isEditorMode(e){e&&this.editorNodes.features.length>0&&!this.anchorMode&&this.mapIsLoaded?this.drawMode=!0:this.drawMode=!1,!e&this.drawMode&&(this.drawMode=!1)},"firstNode.geometry.coordinates"(e){this.editorTrip&&(this.drawLink=ue()([e,e]),this.selectedNode.layerId="nodes",this.selectedNode.id=this.firstNode.properties.index)},"lastNode.geometry.coordinates"(e){this.editorTrip&&(this.drawLink=ue()([e,e]),this.selectedNode.layerId="nodes",this.selectedNode.id=this.lastNode.properties.index)}},created(){this.editorTrip&&(this.isEditorMode=!0),this.mapboxPublicKey="pk.eyJ1Ijoic2JvaXZpbiIsImEiOiJja3BlMm41cm4xa2QyMnZwZTBqdGx4bHI0In0.11oH2-B2g9J6LarDnoqQfQ",this.drawLink=structuredClone(this.$store.getters.linksHeader)},beforeDestroy(){this.saveMapPosition()},methods:{saveMapPosition(){const e=this.map.getCenter();this.$store.commit("saveMapPosition",{mapCenter:[e.lng,e.lat],mapZoom:this.map.getZoom()})},onMapLoaded(e){this.map&&(this.mapIsLoaded=!1);const t=new(le().LngLatBounds);this.$store.getters.links.features.length>0?this.$store.getters.links.features.forEach((e=>{t.extend([e.geometry.coordinates[0],e.geometry.coordinates[e.geometry.coordinates.length-1]])})):this.$store.getters.rlinks.features.forEach((e=>{t.extend([e.geometry.coordinates[0],e.geometry.coordinates[e.geometry.coordinates.length-1]])})),0!==Object.keys(t).length&&e.map.fitBounds(t,{padding:100}),e.map.loadImage(de,(function(t,i){t?console.error("err image",t):e.map.addImage("arrow",i,{sdf:!0})})),this.map=e.map,e.map.dragRotate.disable(),this.mapIsLoaded=!0},draw(e){if(!this.connectedDrawLink&&(this.drawMode&&this.mouseout&&(this.map.setLayoutProperty("drawLink","visibility","visible"),this.mouseout=!1),this.drawMode&&!this.anchorMode)){const t=[this.drawLink.geometry.coordinates[0],Object.values(e.mapboxEvent.lngLat)];this.drawLink=ue()(t)}},addPoint(e){if(this.drawMode){if("rnodes"===this.selectedNode.layerId){const t=Object.values(e.mapboxEvent.lngLat),i={nodeIdA:this.selectedNode.id,nodeIdB:this.hoverId,geom:t,layerId:this.hoverLayer};this.$store.commit("createrLink",i),this.drawMode=!1,this.onHoverRoad({layerId:"rnodes",selectedId:[i.nodeIdB]}),this.offHover()}else if(this.drawMode&!this.anchorMode&!this.hoverId){const t=this.selectedNode.id===this.$store.getters.lastNodeId?"Extend Line Upward":"Extend Line Downward",i=Object.values(e.mapboxEvent.lngLat);this.$store.commit("applyNewLink",{nodeId:this.selectedNode.id,geom:i,action:t})}}else 0===this.editorNodes.features.length&&this.editorTrip&&(this.$store.commit("createNewNode",Object.values(e.mapboxEvent.lngLat)),this.$store.commit("changeNotification",{text:"",autoClose:!0}))},resetDraw(e){this.drawMode&&(this.mouseout=!0,this.map.setLayoutProperty("drawLink","visibility","none"))},rightClickMap(e){2===e.mapboxEvent.originalEvent.button&!this.hoverId&&(this.drawMode=!1)},onHover(e){if(this.hoverId=e.selectedId,this.drawMode&&this.map.setLayoutProperty("drawLink","visibility","none"),[this.$store.getters.lastNodeId,this.$store.getters.firstNodeId].includes(this.hoverId)){const t=this.$store.getters.editorNodes.features.filter((t=>t.properties.index===e.selectedId));this.drawLink=ue()([t[0].geometry.coordinates,t[0].geometry.coordinates]),this.selectedNode.id=this.hoverId,this.selectedNode.layerId=e.layerId,this.drawMode=!0}},onHoverRoad(e){if("rnodes"===e?.layerId)if(this.hoverLayer=e.layerId,this.hoverId=e.selectedId[0],this.drawMode)this.connectedDrawLink=!0;else{this.connectedDrawLink=!1;const e=this.$store.getters.visiblerNodes.features.filter((e=>e.properties.index===this.hoverId));this.drawLink=ue()([e[0].geometry.coordinates,e[0].geometry.coordinates]),this.drawMode=!0,this.connectedDrawLink=!1,this.selectedNode.id=this.hoverId,this.selectedNode.layerId=this.hoverLayer}else"rlinks"===e?.layerId&&(this.hoverLayer=e.layerId,this.hoverId=e.selectedId)},offHover(e){this.hoverId=null,this.hoverLayer=null,this.drawMode&&(this.map.setLayoutProperty("drawLink","visibility","visible"),this.connectedDrawLink=!1)},clickFeature(e){["Move rNode","Delete rLink"].includes(e.action)&&(this.drawMode=!1),"Add Road Node Inline"===e.action&&this.drawMode||this.$emit("clickFeature",e)}}};var Ve=i(76278),qe={};qe.styleTagTransform=k(),qe.setAttributes=v(),qe.insert=f().bind(null,"head"),qe.domAPI=m(),qe.insertStyleElement=C(),u()(Ve.Z,qe),Ve.Z&&Ve.Z.locals&&Ve.Z.locals;const Ue=(0,_.Z)(Ge,ne,[],!1,null,"66748ace",null).exports;var Je=function(){var e=this,t=e._self._c;return t("v-menu",{attrs:{top:"","nudge-bottom":"105","nudge-left":"16","close-on-content-click":!1},scopedSlots:e._u([{key:"activator",fn:function({on:i}){return[t("div",e._g({style:e.swatchStyle},i))]}}]),model:{value:e.menu,callback:function(t){e.menu=t},expression:"menu"}},[e._v(" "),t("v-card",[t("v-card-text",{staticClass:"pa-0"},[t("v-color-picker",{attrs:{mode:"hexa",swatches:e.swatches,"show-swatches":"",flat:""},model:{value:e.color,callback:function(t){e.color=t},expression:"color"}})],1),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"grey",outlined:""},on:{click:e.cancel}},[e._v("\n "+e._s(e.$gettext("cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"green darken-1",outlined:""},on:{click:e.updateColor}},[e._v("\n "+e._s(e.$gettext("apply"))+"\n ")])],1)],1)],1)};Je._withStripped=!0;const We={name:"ColorPicker",components:{},model:{prop:"pcolor",event:"update-color"},props:["pcolor"],events:["update-color"],data:()=>({color:"$primary",menu:!1,swatches:[]}),computed:{swatchStyle(){const{color:e,menu:t}=this;return{backgroundColor:e,"border-style":"solid","border-width":"1px","border-color":"#868686",cursor:"pointer",height:"20px",width:"20px",borderRadius:t?"50%":"4px",transition:"border-radius 200ms ease-in-out"}}},watch:{pcolor(e){"#"!==this.pcolor[0]&&(this.color="#".concat(this.pcolor),this.$emit("update-color",this.pcolor.slice(0,6))),"#"===this.pcolor[0]&&this.$emit("update-color",this.pcolor.slice(1,7))}},mounted(){const e=Object.keys(this.$vuetify.theme.currentTheme.chart);let t=[];e.map((e=>{t.push(this.$vuetify.theme.currentTheme.chart[e]),2===t.length&&(this.swatches.push(t),t=[])})),[null,void 0,""].includes(this.pcolor)?this.color=this.$vuetify.theme.currentTheme.chart.lightblue:"#"!==this.pcolor[0]?this.color="#".concat(this.pcolor):this.color=this.pcolor},methods:{updateColor(){this.$emit("update-color",this.color),this.menu=!1},cancel(){this.color=this.pcolor,this.menu=!1}}},Ye=(0,_.Z)(We,Je,[],!1,null,"380a869c",null).exports;var Ke=function(){var e=this,t=e._self._c;return t("div",[t("v-menu",{attrs:{"close-delay":"100","offset-y":"",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i}){return[t("v-btn",e._g({attrs:{icon:"",color:"regular","x-small":""},on:{click:function(t){e.openMenu=!e.openMenu}}},i),[t("v-icon",[e._v("\n "+e._s(e.openMenu?"fas fa-chevron-left":"fas fa-chevron-down")+"\n ")])],1)]}}]),model:{value:e.openMenu,callback:function(t){e.openMenu=t},expression:"openMenu"}},[e._v(" "),t("v-list",e._l(e.items,(function(i,s){return t("v-list-item",{key:s,class:{"is-active":i===e.selectedVal},on:{click:()=>e.$emit("select",i)}},[t("v-list-item-title",[e._v("\n "+e._s(i)+"\n ")])],1)})),1)],1)],1)};Ke._withStripped=!0;const Qe={name:"MenuSelector",model:{prop:"selectedVal",event:"select"},props:{items:{type:Array,default:()=>[]},selectedVal:{default:()=>null}},events:["select"],data:()=>({selectedLayer:1,openMenu:!1}),computed:{},watch:{}};var Xe=i(79922),et={};et.styleTagTransform=k(),et.setAttributes=v(),et.insert=f().bind(null,"head"),et.domAPI=m(),et.insertStyleElement=C(),u()(Xe.Z,et),Xe.Z&&Xe.Z.locals&&Xe.Z.locals;const tt=(0,_.Z)(Qe,Ke,[],!1,null,"e63b0890",null).exports,it={agency_id:"transit brand or transit agency",direction_id:"direction of travel for a trip. used to separate trips by directions.\n ex: 0 - Travel in one direction. 1 - Travel in the opposite direction.",drop_off_type:"0 - Regularly scheduled drop off.\n 1 - No drop off available.\n 2 - Must phone agency to arrange drop off.\n 3 - Must coordinate with driver to arrange drop off.",headway:"Time between departures in seconds",pickup_type:"0 - Regularly scheduled pickup.\n 1 - No pickup available.\n 2 - Must phone agency to arrange pickup.\n 3 - Must coordinate with driver to arrange pickup",route_color:"color to display on the map (i.e. FFFFFF)",route_id:"Identifies a route. Often a string",route_long_name:"Full name of a route.This name is generally more descriptive than the route_short_name and often includes the roudefaultAttributeste's destination or stop",route_short_name:'Short name of a route. This will often be a short,\n abstract identifier like "32", "100X", or "Green"',route_type:"Indicates the type of transportation used on a route.\n subway, metro, rail, bus, ferry, tram, etc",route_width:"width to display on the map",time:"Travel time on the link. set as length / speed when a link is created or edited (seconds)",trip_id:"Line (or trip) identifier (i.e. 100 Est).\n Links are group by trip_id in Quetzal-network-editor.",length:"links geometry linestring length (meters)",highway:"Main identifier or any kind of road, street or path. ex: (motorway, residential, primary)",speed:"speed on the link (Km/h)",cycleway:"if the road contain a bike path. either yes, no or shared",cycleway_reverse:"if the road contain a bike path in the opposite direction. either yes, no or shared. a road can be a oneway and have cycleway on both side."},st={name:"Home",components:{Map:Ue,SidePanel:re,ColorPicker:Ye,MenuSelector:tt},data(){return{editorTrip:null,action:null,selectedNode:null,selectedLink:null,selectedIndex:null,showDialog:!1,cloneDialog:!1,editorForm:{},cursorPosition:[],tripToDelete:null,tripToClone:null,message:"",cloneName:null,errorMessage:null,lingering:!0,groupTripIds:[],mode:"pt",showHint:!1,showDeleteOption:!1,newFieldName:null,linkDir:[],rules:{newField:[e=>!Object.keys(this.editorForm).includes(e)||"field already exist",e=>""!==e||"cannot add empty field",e=>!e?.endsWith("_r")||"field cannot end with _r"]},hints:it}},computed:{selectedTrips(){return this.$store.getters.selectedTrips},selectedrGroup(){return this.$store.getters.selectedrGroup},numLinks(){return Array.isArray(this.editorForm)?this.editorForm.length:1},attributesChoices(){return["pt","road"].includes(this.mode)?this.$store.getters.attributesChoices[this.mode]:{}},editForm(){return["Edit Line Info","Edit Link Info","Edit Node Info","Edit Group Info","Edit rLink Info","Edit Road Group Info","Edit Visible Road Info","Edit OD Group Info","Edit Visible OD Info","Edit rNode Info","Edit OD Info"].includes(this.action)}},watch:{showDialog(e){e&&this.$store.commit("changeNotification",{text:"",autoClose:!0}),this.showHint=!1,this.showDeleteOption=!1}},created(){this.editorTrip=this.$store.getters.editorTrip,window.addEventListener("keydown",(e=>{"Control"!==e.key||this.showDialog||this.cloneDialog||this.$store.commit("changeAnchorMode")}))},methods:{orderedForm(e){let t=this.editorForm;t.length>=1&&(t=t[e]);const i=Object.keys(t).filter((e=>!t[e].disabled)).sort();return i.push(...Object.keys(t).filter((e=>t[e].disabled)).sort()),i.reduce(((e,i)=>(e[i]=t[i],e)),{})},updateSelectedTrips(e){"links"===e.type?this.$store.commit("changeSelectedTrips",e.data):"rlinks"===e.type&&this.$store.commit("changeVisibleRoads",e.data)},actionClick(e){if(this.action=e.action,"Edit Line Info"===this.action)this.editorForm=structuredClone(this.$store.getters.editorLineInfo),this.lingering=e.lingering,this.showDialog=!0;else if("Edit Group Info"===this.action){this.groupTripIds=e.tripIds;const t=["index","length","a","b","link_sequence","trip_id"],i=this.$store.getters.lineAttributes,s=structuredClone(this.$store.getters.links.features.filter((e=>this.groupTripIds.includes(e.properties.trip_id))));this.editorForm=(0,a.Vh)(s,i,t),this.lingering=e.lingering,this.showDialog=!0}else if("Edit Link Info"===this.action){this.selectedLink=e.selectedFeature.properties;const t=["a","b","index","link_sequence","trip_id"],i=this.$store.getters.lineAttributes,s=this.$store.getters.editorLinks.features.filter((e=>e.properties.index===this.selectedLink.index));this.editorForm=(0,a.Vh)(s,i,t),this.lingering=e.lingering,this.showDialog=!0}else if("Edit rLink Info"===this.action)this.selectedLink=e.selectedIndex,this.editorForm=this.selectedLink.map((e=>this.$store.getters.rlinksForm(e))),this.linkDir=this.$store.getters.rlinkDirection(this.selectedLink),e.selectedIndex.forEach((e=>{this.$store.getters.onewayIndex.has(e)&&(this.selectedLink.push(e),this.editorForm.push(this.$store.getters.reversedrLinksForm(e)),this.linkDir.push(this.$store.getters.rlinkDirection(this.selectedLink,!0)))})),this.showDialog=!0;else if("Edit OD Info"===this.action)this.selectedLink=e.selectedIndex[0],this.editorForm=this.$store.getters["od/linkForm"](this.selectedLink),this.showDialog=!0;else if("Edit Road Group Info"===this.action){const t=this.$store.getters.grouprLinks(e.category,e.group);this.selectedLinks=t;const i=this.$store.getters.rlineAttributes,s=["index","length","a","b"];this.editorForm=(0,a.Vh)(t,i,s),this.lingering=e.lingering,this.showDialog=!0}else if("Edit Visible Road Info"===this.action){const t=this.$store.getters.visiblerLinks.features;this.selectedLinks=t;const i=this.$store.getters.rlineAttributes,s=["index","length","a","b"];this.editorForm=(0,a.Vh)(t,i,s),this.lingering=e.lingering,this.showDialog=!0}else if("Edit OD Group Info"===this.action){const t=this.$store.getters["od/groupLayer"](e.category,e.group);this.selectedLinks=t;const i=this.$store.getters["od/layerAttributes"],s=["index"];this.editorForm=(0,a.Vh)(t,i,s),this.lingering=e.lingering,this.showDialog=!0}else if("Edit Visible OD Info"===this.action){const t=this.$store.getters["od/visibleLayer"].features;this.selectedLinks=t;const i=this.$store.getters["od/layerAttributes"],s=["index"];this.editorForm=(0,a.Vh)(t,i,s),this.lingering=e.lingering,this.showDialog=!0}else if(["Edit Node Info","Edit rNode Info"].includes(this.action)){this.selectedNode=e.selectedFeature.properties,"Edit Node Info"===this.action?this.editorForm=this.$store.getters.editorNodes.features.filter((e=>e.properties.index===this.selectedNode.index)):"Edit rNode Info"===this.action&&(this.editorForm=this.$store.getters.visiblerNodes.features.filter((e=>e.properties.index===this.selectedNode.index))),this.editorForm=this.editorForm[0].properties;const t=["index","route_width"],i=Object.keys(this.editorForm).reduce(((e,i)=>(e[i]={value:this.editorForm[i],disabled:t.includes(i),placeholder:!1},e)),{});this.editorForm=i,this.showDialog=!0}else["Cut Before Node","Cut After Node","Move Stop","Delete Stop","Delete Anchor","Delete Road Anchor"].includes(this.action)?(this.selectedNode=e.selectedFeature.properties,this.applyAction()):["Add Stop Inline","Add Anchor Inline"].includes(this.action)?(this.selectedLink=e.selectedFeature.properties,this.cursorPosition=e.lngLat,this.applyAction()):["Add Road Node Inline","Add Road Anchor Inline","Delete rLink"].includes(this.action)?(this.selectedIndex=e.selectedIndex,this.cursorPosition=e.lngLat,this.applyAction()):["Move Node","Move Anchor","Move rNode","Move rAnchor"].includes(this.action)?(this.selectedNode=e.selectedFeature,this.cursorPosition=e.lngLat,this.applyAction()):"Delete OD"===this.action&&(this.selectedIndex=e.selectedIndex,this.cursorPosition=e.lngLat,this.applyAction())},applyAction(){switch(this.showDialog=!1,this.action){case"Cut Before Node":this.$store.commit("cutLineAtNode",{selectedNode:this.selectedNode});break;case"Cut After Node":this.$store.commit("cutLineFromNode",{selectedNode:this.selectedNode});break;case"Delete Stop":this.$store.commit("deleteNode",{selectedNode:this.selectedNode});break;case"Edit Link Info":this.$store.commit("editLinkInfo",{selectedLinkId:this.selectedLink.index,info:this.editorForm});break;case"Edit Node Info":this.$store.commit("editNodeInfo",{selectedNodeId:this.selectedNode.index,info:this.editorForm});break;case"Edit Line Info":this.editorForm.trip_id.value!==this.$store.getters.editorTrip&&this.$store.getters.tripId.includes(this.editorForm.trip_id.value)&&(this.lingering=!0,this.editorTrip=null,this.$store.commit("setEditorTrip",{tripId:null,changeBounds:!1}),this.action=null,this.$store.commit("changeNotification",{text:"Could not apply modification. Trip_id already exist",autoClose:!0,color:"red darken-2"})),this.$store.commit("editLineInfo",this.editorForm),0===this.$store.getters.editorNodes.features.length&&this.$store.commit("changeNotification",{text:"Click on the map to start drawing",autoClose:!1});break;case"Edit Group Info":this.$store.commit("editGroupInfo",{groupTripIds:this.groupTripIds,info:this.editorForm});break;case"deleteTrip":this.$store.commit("deleteTrip",this.tripToDelete);break;case"Add Stop Inline":this.$store.commit("addNodeInline",{selectedLink:this.selectedLink,lngLat:this.cursorPosition,nodes:"editorNodes"});break;case"Add Anchor Inline":this.$store.commit("addNodeInline",{selectedLink:this.selectedLink,lngLat:this.cursorPosition,nodes:"anchorNodes"});break;case"Delete Anchor":this.$store.commit("deleteAnchorNode",{selectedNode:this.selectedNode});break;case"Edit rLink Info":this.$store.commit("editrLinkInfo",{selectedLinkId:this.selectedLink,info:this.editorForm});break;case"Edit Road Group Info":this.$store.commit("editrGroupInfo",{selectedLinks:this.selectedLinks,info:this.editorForm});break;case"Edit Visible Road Info":this.$store.commit("editrGroupInfo",{selectedLinks:this.$store.getters.visiblerLinks.features,info:this.editorForm});break;case"Edit OD Group Info":this.$store.commit("od/editGroupInfo",{selectedLinks:this.selectedLinks,info:this.editorForm});break;case"Edit Visible OD Info":this.$store.commit("od/editGroupInfo",{selectedLinks:this.$store.getters["od/visibleLayer"].features,info:this.editorForm});break;case"Edit rNode Info":this.$store.commit("editrNodeInfo",{selectedNodeId:this.selectedNode.index,info:this.editorForm});break;case"Edit OD Info":this.$store.commit("od/editLinkInfo",{selectedLinkId:this.selectedLink,info:this.editorForm});break;case"Add Road Node Inline":this.$store.commit("addRoadNodeInline",{selectedIndex:this.selectedIndex,lngLat:this.cursorPosition,nodes:"rnodes"});break;case"Add Road Anchor Inline":this.$store.commit("addRoadNodeInline",{selectedIndex:this.selectedIndex,lngLat:this.cursorPosition,nodes:"anchorrNodes"});break;case"Move Node":this.$store.commit("moveNode",{selectedNode:this.selectedNode,lngLat:this.cursorPosition});break;case"Move Anchor":this.$store.commit("moveAnchor",{selectedNode:this.selectedNode,lngLat:this.cursorPosition});break;case"Move rNode":this.$store.commit("moverNode",{selectedNode:this.selectedNode,lngLat:this.cursorPosition});break;case"Move rAnchor":this.$store.commit("moverAnchor",{selectedNode:this.selectedNode,lngLat:this.cursorPosition});break;case"Delete Road Anchor":this.$store.commit("deleteAnchorrNode",{selectedNode:this.selectedNode});break;case"Delete rLink":this.$store.commit("deleterLink",{selectedIndex:this.selectedIndex});break;case"deleterGroup":this.$store.commit("deleterGroup",this.tripToDelete);break;case"Delete OD":this.$store.commit("od/deleteOD",{selectedIndex:this.selectedIndex});break;case"deleteODGroup":this.$store.commit("od/deleteGroup",this.tripToDelete)}this.lingering||(this.confirmChanges(),this.lingering=!0)},cancelAction(){this.showDialog=!1,this.lingering||(this.abortChanges(),this.lingering=!0)},confirmChanges(){this.$store.commit("confirmChanges"),this.editorTrip=null,this.$store.commit("setEditorTrip",{tripId:null,changeBounds:!1}),this.action=null,this.$store.commit("changeNotification",{text:"modification applied",autoClose:!0,color:"success"})},abortChanges(){this.editorTrip=null,this.$store.commit("setEditorTrip",{tripId:null,changeBounds:!1}),this.action=null,this.$store.commit("changeNotification",{text:"modification aborted",autoClose:!0})},deleteButton(e){this.tripToDelete=e.trip,this.message=e.message,this.action=e.action,this.showDialog=!0},duplicate(){this.$store.getters.tripId.includes(this.cloneName)?this.errorMessage="already exist":(this.$store.commit("cloneTrip",{tripId:this.tripToClone,name:this.cloneName}),this.errorMessage="",this.cloneDialog=!1)},cloneButton(e){this.tripToClone=e.trip,this.message=e.message,this.cloneName=e.trip+" copy",this.cloneDialog=!0},cancelClone(){this.errorMessage="",this.cloneDialog=!1},addField(){let e={};if(e=Array.isArray(this.editorForm)?structuredClone(this.editorForm[0]):structuredClone(this.editorForm),Object.keys(e).includes(this.newFieldName)|""===this.newFieldName|!this.newFieldName|this.newFieldName?.endsWith("_r"))this.newFieldName="";else{if(Array.isArray(this.editorForm)){const e=structuredClone(this.editorForm);e.forEach((e=>{Object.keys(e)[0].endsWith("_r")?this.$store.getters.rcstAttributes.includes(this.newFieldName)||(e[this.newFieldName+"_r"]={disabled:!1,placeholder:!1,value:void 0}):e[this.newFieldName]={disabled:!1,placeholder:!1,value:void 0}})),this.editorForm=null,this.editorForm=e}else e[this.newFieldName]={disabled:!1,placeholder:!1,value:void 0},this.editorForm={},this.editorForm=e;["Edit Line Info","Edit Link Info","Edit Group Info"].includes(this.action)?this.$store.commit("addPropertie",{name:this.newFieldName,table:"links"}):["Edit rLink Info","Edit Road Group Info","Edit Visible Road Info"].includes(this.action)?this.$store.commit("addRoadPropertie",{name:this.newFieldName,table:"rlinks"}):"Edit Node Info"===this.action?this.$store.commit("addPropertie",{name:this.newFieldName,table:"nodes"}):"Edit rNode Info"===this.action?this.$store.commit("addRoadPropertie",{name:this.newFieldName,table:"rnodes"}):["Edit OD Group Info","Edit Visible OD Info"].includes(this.action)&&this.$store.commit("od/addPropertie",this.newFieldName),this.newFieldName=null,this.$store.commit("changeNotification",{text:"Field added",autoClose:!0,color:"success"})}},deleteField(e){let t=structuredClone(this.editorForm);Array.isArray(this.editorForm)?(e.endsWith("_r")&&(e=e.substr(0,e.length-2)),t=t.filter((t=>delete t[e])),t=t.filter((t=>delete t[e+"_r"]))):delete t[e],this.editorForm={},this.editorForm=t,["Edit Line Info","Edit Link Info","Edit Group Info"].includes(this.action)?this.$store.commit("deletePropertie",{name:e,table:"links"}):["Edit rLink Info","Edit Road Group Info","Edit Visible Road Info"].includes(this.action)?this.$store.commit("deleteRoadPropertie",{name:e,table:"rlinks"}):"Edit Node Info"===this.action?this.$store.commit("deletePropertie",{name:e,table:"nodes"}):"Edit rNode Info"===this.action?this.$store.commit("deleteRoadPropertie",{name:e,table:"rnodes"}):["Edit OD Group Info","Edit Visible OD Info"].includes(this.action)&&this.$store.commit("od/deletePropertie",{name:e}),this.$store.commit("changeNotification",{text:"Field deleted",autoClose:!0,color:"success"})},attributeNonDeletable(e){return["Edit Line Info","Edit Link Info","Edit Group Info","Edit Node Info"].includes(this.action)?this.$store.getters.defaultAttributesNames.includes(e):this.$store.getters.rundeletable.includes(e)},ToggleDeleteOption(){this.showDeleteOption=!this.showDeleteOption,this.showDeleteOption?this.$store.commit("changeNotification",{text:"This action will delete properties on every links (and reversed one for two-way roads)",autoClose:!1,color:"warning"}):this.$store.commit("changeNotification",{text:"",autoClose:!0})}}};var ot=i(8043),rt={};rt.styleTagTransform=k(),rt.setAttributes=v(),rt.insert=f().bind(null,"head"),rt.domAPI=m(),rt.insertStyleElement=C(),u()(ot.Z,rt),ot.Z&&ot.Z.locals&&ot.Z.locals;const nt=(0,_.Z)(st,T,[],!1,null,"00b02151",null).exports;var at=i(75720);const lt=()=>i.e(486).then(i.bind(i,75486)),ct=()=>i.e(106).then(i.bind(i,31480)),dt=()=>i.e(43).then(i.bind(i,17043)),pt=()=>i.e(363).then(i.bind(i,54363)),ut=()=>i.e(965).then(i.bind(i,55965));s.default.use(o.ZP);const ht=new o.ZP({linkExactActiveClass:"active",mode:"history",base:"/quetzal-network-editor/",routes:[{path:"/",name:O.name,component:O,icon:"fa-solid fa-upload",title:"Import"},{path:"/Microservices",name:lt.name,component:lt,icon:"fas fa-tachometer-alt",title:"Microservices",beforeEnter:(e,t,i)=>{at.h.getters.loggedIn?i():at.h.commit("changeNotification",{text:"Must be logged in",autoClose:!0,color:"error"})}},{path:"/Home",name:nt.name,component:nt,icon:"fa-solid fa-map",title:"Map"},{path:"/Run",name:dt.name,component:dt,icon:"fa-solid fa-play",title:"Parameters and Run",beforeEnter:(e,t,i)=>{at.h.getters["run/parametersIsEmpty"]?at.h.commit("changeNotification",{text:"you need parameters to enter this page",autoClose:!0,color:"error"}):i()}},{path:"/ResultMap",name:ct.name,component:ct,margin:"5rem",icon:"fa-solid fa-layer-group",title:"Results Map"},{path:"/ResultPicture",name:pt.name,component:pt,icon:"fas fa-images",title:"Results Pictures"},{path:"/ResultTable",name:ut.name,component:ut,icon:"fas fa-table",title:"Result Table"},{path:"/callback",name:"callback",beforeEnter:(e,t,i)=>{const s=window.location.href;P.Z.auth.parseCognitoWebResponse(s),i("/")}},{path:"/signout",name:"signout",beforeEnter:(e,t,i)=>{i("/")}}]});ht.beforeEach(((e,t,i)=>{!["Import","callback","signout"].includes(e.name)&&at.h.getters.projectIsUndefined?i({name:"Import"}):i()}));const mt=ht},75720:(e,t,i)=>{"use strict";i.d(t,{h:()=>G});var s=i(70538),o=i(20629),r=i(5776),n=i(50253),a=i(59903),l=i.n(a),c=i(23384),d=i.n(c),p=i(82069),u=i(76955);const h=i(7597),m={state:{links:{},editorTrip:null,editorNodes:{},editorLinks:{},editorLineInfo:{},nodes:{},nodesHeader:{},linksHeader:{},tripId:[],selectedTrips:[],newLink:{},newNode:{},changeBounds:!0,linkSpeed:20,linksDefaultColor:"2196F3",lineAttributes:[],nodeAttributes:[],defaultAttributes:[{name:"index",type:"String"},{name:"a",type:"String"},{name:"b",type:"String"},{name:"trip_id",type:"String"},{name:"route_id",type:"String"},{name:"agency_id",type:"String"},{name:"route_short_name",type:"String"},{name:"route_type",type:"String"},{name:"route_color",type:"String"},{name:"length",type:"Number"},{name:"time",type:"Number"},{name:"headway",type:"Number"},{name:"route_width",type:"Number"},{name:"pickup_type",type:"Number"},{name:"drop_off_type",type:"Number"},{name:"link_sequence",type:"Number"},{name:"direction_id",type:"Number"}]},mutations:{loadLinks(e,t){if(e.links=structuredClone(t),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.links.crs.properties.name)){const t={...e.links};t.features=[],e.linksHeader=t,e.editorLinks=t,e.links.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>e.map((e=>Math.round(1e6*Number(e))/1e6)))))),this.commit("applyPropertiesTypes"),this.commit("getTripId"),this.commit("changeSelectedTrips",e.tripId),this.commit("getLinksProperties")}else alert("invalid CRS. use CRS84 / EPSG:4326")},loadNodes(e,t){if(e.nodes=JSON.parse(JSON.stringify(t)),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.nodes.crs.properties.name)){const t={...e.nodes};t.features=[],e.nodesHeader=t,e.editorNodes=t,e.nodes.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>Math.round(1e6*Number(e))/1e6)))),this.commit("getNodesProperties")}else alert("invalid CRS. use CRS84 / EPSG:4326")},unloadFiles(e){e.links.features=[],e.nodes.features=[],e.editorTrip=null,e.tripId=[],e.selectedTrips=[]},loadPTFiles(e,t){for(const i of t){const t=i.content.features[0].geometry.type;if("LineString"===t){if(!(0,u.ci)(i.content,e.links)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("appendNewLinks",(0,p.GM)(i.content,i.path,t))}else if("Point"===t){if(!(0,u.ci)(i.content,e.nodes)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("appendNewNodes",(0,p.GM)(i.content,i.path,t))}}},appendNewLinks(e,t){t.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>e.map((e=>Math.round(1e6*Number(e))/1e6)))))),t.features.forEach((t=>e.links.features.push(t))),this.commit("applyPropertiesTypes"),this.commit("getLinksProperties"),this.commit("getTripId"),this.commit("changeSelectedTrips",e.tripId)},appendNewNodes(e,t){t.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>Math.round(1e6*Number(e))/1e6)))),t.features.forEach((t=>e.nodes.features.push(t))),this.commit("applyPropertiesTypes"),this.commit("getNodesProperties")},getLinksProperties(e){let t=new Set([]);e.links.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),e.defaultAttributes.map((e=>e.name)).forEach((e=>t.add(e))),t=Array.from(t),e.lineAttributes=t},getNodesProperties(e){let t=new Set([]);e.nodes.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),["index","stop_code","stop_name"].forEach((e=>t.add(e))),t=Array.from(t),e.nodeAttributes=t},addPropertie(e,t){"links"===t.table?(e.links.features.map((e=>e.properties[t.name]=null)),e.editorLinks.features.map((e=>e.properties[t.name]=null)),e.lineAttributes.push(t.name)):(e.nodes.features.map((e=>e.properties[t.name]=null)),e.editorNodes.features.map((e=>e.properties[t.name]=null)))},deletePropertie(e,t){"links"===t.table?(e.links.features.filter((e=>delete e.properties[t.name])),e.editorLinks.features.filter((e=>delete e.properties[t.name])),e.lineAttributes=e.lineAttributes.filter((e=>e!==t.name))):(e.nodes.features.filter((e=>delete e.properties[t.name])),e.editorNodes.features.filter((e=>delete e.properties[t.name])))},changeSelectedTrips(e,t){e.selectedTrips=t},setEditorTrip(e,t){e.editorTrip=t.tripId,e.changeBounds=t.changeBounds;const i=JSON.parse(JSON.stringify(e.links));i.features=i.features.filter((t=>t.properties.trip_id===e.editorTrip)),e.editorLinks=i,this.commit("getEditorNodes",{nodes:e.nodes}),this.commit("getEditorLineInfo")},cloneTrip(e,t){const i=structuredClone(e.links);i.features=i.features.filter((e=>e.properties.trip_id===t.tripId));let s=i.features.length;for(const e of i.features)e.properties.trip_id=t.name,e.geometry.coordinates.reverse(),e.properties.a=[e.properties.b,e.properties.b=e.properties.a][0],e.properties.link_sequence=s,s-=1,0===e.properties.direction_id?e.properties.direction_id=1:e.properties.direction_id=0,e.properties.index="link_"+h.generate();i.features.reverse(),e.links.features.push(...i.features),this.commit("getTripId")},getEditorNodes(e,t){const i=e.editorLinks.features.map((e=>e.properties.a)),s=e.editorLinks.features.map((e=>e.properties.b)),o=new Set([...i,...s]),r=JSON.parse(JSON.stringify(t.nodes));r.features=r.features.filter((e=>o.has(e.properties.index))),e.editorNodes=r},getEditorLineInfo(e){const t={},i=["index","length","a","b","link_sequence"];if(0===e.editorLinks.features.length){const s={route_id:"Q1",agency_id:"QUENEDI",route_short_name:"Q1",route_type:"quenedi",route_color:e.linksDefaultColor,route_width:3,headway:600,pickup_type:0,drop_off_type:0,direction_id:0};e.lineAttributes.forEach((e=>{t[e]={value:s[e],disabled:i.includes(e),placeholder:!1}})),t.trip_id={value:e.editorTrip,disabled:!1,placeholder:!1}}else{const s=e.editorLinks.features;e.lineAttributes.forEach((e=>{const o=new Set(s.map((t=>t.properties[e])));t[e]={value:o.size>1?"":[...o][0],disabled:i.includes(e),placeholder:o.size>1}}))}e.editorLineInfo=t},getTripId(e){e.tripId=Array.from(new Set(e.links.features.map((e=>e.properties.trip_id))))},setNewLink(e,t){const i={index:null,length:null,time:null,pickup_type:0,drop_off_type:0},s=structuredClone(e.editorLinks);if(0===s.features.length){const t={};Object.keys(e.editorLineInfo).forEach((i=>{t[i]=e.editorLineInfo[i].value}));const i={index:"link_"+h.generate(),a:e.editorNodes.features[0].properties.index,b:e.editorNodes.features[0].properties.index,length:null,time:null,pickup_type:0,drop_off_type:0,link_sequence:0};Object.keys(i).forEach((e=>{t[e]=i[e]}));const o={geometry:{coordinates:[e.editorNodes.features[0].geometry.coordinates,e.editorNodes.features[0].geometry.coordinates],type:"LineString"},properties:t,type:"Feature"};s.features=[o]}if("Extend Line Upward"===t.action){var o=s.features[s.features.length-1];Object.assign(o.properties,i),o.properties.link_sequence=o.properties.link_sequence+1,o.properties.a=o.properties.b,o.geometry.coordinates[0]=o.geometry.coordinates.slice(-1)[0],t.nodeCopyId=o.properties.a,this.commit("setNewNode",t),o.properties.b=e.newNode.features[0].properties.index,o.properties.index="link_"+h.generate()}else"Extend Line Downward"===t.action&&(o=s.features[0],Object.assign(o.properties,i),o.properties.link_sequence=o.properties.link_sequence-1,o.properties.b=o.properties.a,o.geometry.coordinates[1]=o.geometry.coordinates[0],t.nodeCopyId=o.properties.b,this.commit("setNewNode",t),o.properties.a=e.newNode.features[0].properties.index,o.properties.index="link_"+h.generate());s.features=[o],e.newLink=s,e.newLink.action=t.action},createNewNode(e,t){const i={};e.nodeAttributes.forEach((e=>{i[e]=null})),i.index="node_"+h.generate();const s={geometry:{coordinates:t,type:"Point"},properties:i,type:"Feature"};e.editorNodes.features=[s]},setNewNode(e,t){const{coordinates:i=[null,null]}=t,s={};e.nodeAttributes.forEach((e=>{s[e]=null}));const o=JSON.parse(JSON.stringify(e.editorNodes)),r=o.features.filter((e=>e.properties.index===t.nodeCopyId))[0];Object.assign(r.properties,s),r.properties.index="node_"+h.generate(),r.geometry.coordinates=i,o.features=[r],e.newNode=o},editNewLink(e,t){e.newNode.features[0].geometry.coordinates=t,"Extend Line Upward"===e.newLink.action?e.newLink.features[0].geometry.coordinates=[e.newLink.features[0].geometry.coordinates[0],t]:e.newLink.features[0].geometry.coordinates=[t,e.newLink.features[0].geometry.coordinates[1]]},applyNewLink(e,t){this.commit("setNewLink",{action:t.action}),this.commit("editNewLink",t.geom);const i=(0,r.Z)(e.newLink);e.newLink.features[0].properties.length=Number((1e3*i).toFixed(0));const s=i/e.linkSpeed*3600;e.newLink.features[0].properties.time=Number(s.toFixed(0));const o=e.newLink.action;"Extend Line Upward"===o?(e.editorLinks.features.push(e.newLink.features[0]),e.editorNodes.features.push(e.newNode.features[0])):"Extend Line Downward"===o&&(e.editorLinks.features.splice(0,0,e.newLink.features[0]),e.editorNodes.features.splice(0,0,e.newNode.features[0]),e.editorLinks.features.forEach((e=>e.properties.link_sequence+=1)))},deleteNode(e,t){const i=t.selectedNode.index;e.editorNodes.features=e.editorNodes.features.filter((e=>e.properties.index!==i));const s=e.editorLinks.features.filter((e=>e.properties.b===i))[0],o=e.editorLinks.features.filter((e=>e.properties.a===i))[0];if(s)if(o){s.geometry.coordinates=[...s.geometry.coordinates.slice(0,-1),...o.geometry.coordinates.slice(1)],s.properties.b=o.properties.b,s.properties.length=Number(s.properties.length)+Number(o.properties.length),s.properties.time=Number(s.properties.time)+Number(o.properties.time);const t=e.editorLinks.features.findIndex((e=>e.properties.index===o.properties.index));e.editorLinks.features.slice(t).forEach((e=>e.properties.link_sequence-=1)),e.editorLinks.features=e.editorLinks.features.filter((e=>e.properties.index!==o.properties.index))}else e.editorLinks.features=e.editorLinks.features.filter((e=>e.properties.index!==s.properties.index));else e.editorLinks.features=e.editorLinks.features.filter((e=>e.properties.index!==o.properties.index)),e.editorLinks.features.forEach((e=>e.properties.link_sequence-=1))},splitLink(e,t){const i=t.selectedLink.index,s=e.editorLinks.features.findIndex((e=>e.properties.index===i)),o=e.editorLinks.features[s],r=structuredClone(o),n=t.offset;o.properties.b=e.newNode.features[0].properties.index,o.geometry.coordinates=[...o.geometry.coordinates.slice(0,t.sliceIndex),e.newNode.features[0].geometry.coordinates],o.properties.index="link_"+h.generate(),o.properties.length=o.properties.length*n,o.properties.time=o.properties.time*n,r.properties.a=e.newNode.features[0].properties.index,r.geometry.coordinates=[e.newNode.features[0].geometry.coordinates,...r.geometry.coordinates.slice(t.sliceIndex)],r.properties.index="link_"+h.generate(),r.properties.length=r.properties.length*(1-n),r.properties.time=r.properties.time*(1-n),e.editorLinks.features.splice(s+1,0,r),e.editorNodes.features.push(e.newNode.features[0]);const a=o.properties.link_sequence;e.editorLinks.features.filter((e=>e.properties.link_sequence>a)).forEach((e=>e.properties.link_sequence+=1)),r.properties.link_sequence+=1},addNodeInline(e,t){let i=e.editorLinks.features.filter((e=>e.properties.index===t.selectedLink.index));const s=i[0].properties.a;i=l()(i[0].geometry.coordinates);const o=d()(Object.values(t.lngLat)),a=(0,n.Z)(i,o,{units:"kilometers"}),c=(0,r.Z)(i,{units:"kilometers"}),p=a.properties.index+1,u=a.properties.location/c;"editorNodes"===t.nodes?(this.commit("setNewNode",{coordinates:a.geometry.coordinates,nodeCopyId:s}),this.commit("splitLink",{selectedLink:t.selectedLink,offset:u,sliceIndex:p})):this.commit("addAnchorNode",{selectedLink:t.selectedLink,coordinates:a.geometry.coordinates,sliceIndex:p})},addAnchorNode(e,t){const i=t.selectedLink.index,s=e.editorLinks.features.findIndex((e=>e.properties.index===i));e.editorLinks.features[s].geometry.coordinates.splice(t.sliceIndex,0,t.coordinates)},deleteAnchorNode(e,t){const i=t.selectedNode.linkIndex,s=t.selectedNode.coordinatedIndex,o=e.editorLinks.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),...o.geometry.coordinates.slice(s+1)]},moveAnchor(e,t){const i=t.selectedNode.properties.linkIndex,s=t.selectedNode.properties.coordinatedIndex,o=e.editorLinks.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),t.lngLat,...o.geometry.coordinates.slice(s+1)];const n=(0,r.Z)(o);o.properties.length=Number((1e3*n).toFixed(0));const a=n/e.linkSpeed*3600;o.properties.time=Number(a.toFixed(0))},moveNode(e,t){const i=t.selectedNode.properties.index;e.editorNodes.features.filter((e=>e.properties.index===i))[0].geometry.coordinates=t.lngLat;const s=e.editorLinks.features.filter((e=>e.properties.b===i))[0],o=e.editorLinks.features.filter((e=>e.properties.a===i))[0];if(s){s.geometry.coordinates=[...s.geometry.coordinates.slice(0,-1),t.lngLat];const i=(0,r.Z)(s);s.properties.length=Number((1e3*i).toFixed(0));const o=i/e.linkSpeed*3600;s.properties.time=Number(o.toFixed(0))}if(o){o.geometry.coordinates=[t.lngLat,...o.geometry.coordinates.slice(1)];const i=(0,r.Z)(o);o.properties.length=Number((1e3*i).toFixed(0));const s=i/e.linkSpeed*3600;o.properties.time=Number(s.toFixed(0))}},cutLineFromNode(e,t){const i=t.selectedNode.index;e.editorLinks.features.sort(((e,t)=>e.properties.link_sequence-t.properties.link_sequence));let s=[];for(const[t,o]of e.editorLinks.features.entries())if(o.properties.b===i){s=e.editorLinks.features.slice(t+1);break}e.editorLinks.features=e.editorLinks.features.filter((e=>!s.includes(e))),this.commit("getEditorNodes",{nodes:e.editorNodes})},cutLineAtNode(e,t){const i=t.selectedNode.index;e.editorLinks.features.sort(((e,t)=>e.properties.link_sequence-t.properties.link_sequence));let s=[];for(const[t,o]of e.editorLinks.features.entries())if(o.properties.a===i){s=e.editorLinks.features.slice(0,t);break}e.editorLinks.features=e.editorLinks.features.filter((e=>!s.includes(e))),this.commit("getEditorNodes",{nodes:e.editorNodes})},editLineInfo(e,t){e.editorLineInfo=t;const i=Object.keys(t).filter((e=>!(""===t[e].value&&t[e].placeholder||t[e].disabled)));e.editorLinks.features.forEach((e=>i.forEach((i=>e.properties[i]=t[i].value))))},editLinkInfo(e,t){const{selectedLinkId:i,info:s}=t,o=Object.keys(s);e.editorLinks.features.filter((function(e){e.properties.index===i&&o.forEach((t=>e.properties[t]=s[t].value))})),this.commit("getEditorLineInfo")},editNodeInfo(e,t){const{selectedNodeId:i,info:s}=t,o=Object.keys(s);e.editorNodes.features.filter((function(e){e.properties.index===i&&o.forEach((t=>e.properties[t]=s[t].value))}))},editGroupInfo(e,t){const i=t.info,s=t.groupTripIds,o=Object.keys(i).filter((e=>""!==i[e].value||!i[e].placeholder));e.links.features.filter((e=>s.includes(e.properties.trip_id))).forEach((e=>o.forEach((t=>e.properties[t]=i[t].value)))),this.commit("getTripId")},deleteUnusedNodes(e){const t=e.links.features.map((e=>e.properties.a)),i=e.links.features.map((e=>e.properties.b)),s=new Set([...t,...i]);e.nodes.features=e.nodes.features.filter((e=>s.has(e.properties.index)))},confirmChanges(e){const t={...e.links};t.features=t.features.filter((t=>t.properties.trip_id===e.editorTrip));const i=t.features.filter((t=>!e.editorLinks.features.includes(t)));if(e.tripId.includes(e.editorTrip))var s=e.links.features.findIndex((t=>t.properties.trip_id===e.editorTrip));else s=0;e.links.features=e.links.features.filter((e=>!i.includes(e))),e.links.features.splice(s,0,...e.editorLinks.features);const o=e.nodes.features.map((e=>e.properties.index)),r={...e.editorNodes};r.features=r.features.filter((e=>!o.includes(e.properties.index))),e.nodes.features.push(...r.features),e.nodes.features.filter((function(t){e.editorNodes.features.forEach((function(e){t.properties.index===e.properties.index&&(t.properties=e.properties,t.geometry=e.geometry)}))})),this.commit("deleteUnusedNodes");const n=new Set(e.editorNodes.features.map((e=>e.properties.index)));e.links.features.filter((t=>t.properties.trip_id!==e.editorTrip)).filter((e=>n.has(e.properties.a))).forEach((t=>t.geometry.coordinates=[e.editorNodes.features.filter((e=>e.properties.index===t.properties.a))[0].geometry.coordinates,...t.geometry.coordinates.slice(1)])),e.links.features.filter((t=>t.properties.trip_id!==e.editorTrip)).filter((e=>n.has(e.properties.b))).forEach((t=>t.geometry.coordinates=[...t.geometry.coordinates.slice(0,-1),e.editorNodes.features.filter((e=>e.properties.index===t.properties.b))[0].geometry.coordinates])),e.newLink={},e.newNode={},this.commit("applyPropertiesTypes"),this.commit("getTripId"),this.commit("getLinksProperties")},deleteTrip(e,t){e.links.features="object"==typeof t?e.links.features.filter((e=>!t.includes(e.properties.trip_id))):e.links.features.filter((e=>e.properties.trip_id!==t)),this.commit("deleteUnusedNodes"),this.commit("getTripId")},applyPropertiesTypes(e){e.defaultAttributes.forEach((t=>{"String"===t.type?e.links.features.forEach((e=>e.properties[t.name]=String(e.properties[t.name]))):"Number"===t.type&&e.links.features.forEach((e=>e.properties[t.name]=Number(e.properties[t.name])))}))}},getters:{links:e=>e.links,nodes:e=>e.nodes,linkSpeed:e=>e.linkSpeed,linksIsEmpty:e=>0===e.links.features.length,route_id:e=>e.route_id,editorTrip:e=>e.editorTrip,editorLinks:e=>e.editorLinks,editorNodes:e=>e.editorNodes,tripId:e=>e.tripId,selectedTrips:e=>e.selectedTrips,editorLineInfo:e=>e.editorLineInfo,newLink:e=>e.newLink,newNode:e=>e.newNode,firstNodeId:e=>e.editorNodes.features.length>1?e.editorLinks.features[0].properties.a:e.editorNodes.features[0].properties.index,lastNodeId:e=>e.editorNodes.features.length>1?e.editorLinks.features.slice(-1)[0].properties.b:e.editorNodes.features[0].properties.index,firstNode:(e,t)=>e.editorTrip?e.editorNodes.features.filter((e=>e.properties.index===t.firstNodeId))[0]:null,lastNode:(e,t)=>e.editorTrip?e.editorNodes.features.filter((e=>e.properties.index===t.lastNodeId))[0]:null,lineAttributes:e=>e.lineAttributes.sort(),nodeAttributes:e=>e.nodeAttributes,changeBounds:e=>e.changeBounds,nodesHeader:e=>e.nodesHeader,linksHeader:e=>e.linksHeader,anchorNodes:e=>{const t=structuredClone(e.nodesHeader);return e.editorLinks.features.filter((e=>e.geometry.coordinates.length>2)).forEach((e=>{const i=e.properties.index;e.geometry.coordinates.slice(1,-1).forEach(((e,s)=>t.features.push({properties:{index:h.generate(),linkIndex:i,coordinatedIndex:s+1},geometry:{coordinates:e,type:"Point"}})))})),t},attributeType:e=>t=>e.defaultAttributes.filter((e=>e.name===t))[0]?.type,defaultAttributesNames:e=>e.defaultAttributes.map((e=>e.name))}};var g=i(98013),f=i(90496),A=i(87189);const v=i(7597),y={state:{rlinks:{},rnodes:{},rlinksHeader:{},rnodesHeader:{},selectedrFilter:"",selectedrGroup:[],filteredrCategory:[],rlineAttributes:[],rnodeAttributes:[],newrNode:{},visiblerLinks:{},renderedrLinks:{},visiblerNodes:{},renderedrNodes:{},connectedLinks:[],defaultHighway:"quenedi",roadSpeed:20,rlinksDefaultColor:"2196F3",rcstAttributes:["a","b","index","length","route_color","oneway","route_width","highway","cycleway","cycleway_reverse","incline"],rundeletable:["index","a","b","length","route_color","oneway","time","speed","time_r","speed_r"],reversedAttributes:[]},mutations:{loadrLinks(e,t){if(e.rlinks=structuredClone(t),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.rlinks.crs.properties.name)){const t={...e.rlinks};t.features=[],e.rlinksHeader=t,e.visiblerLinks=structuredClone(t),e.renderedrLinks=structuredClone(t),e.rlinks.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>e.map((e=>Math.round(1e6*Number(e))/1e6)))))),e.filteredrCategory=[],e.selectedrGroup=[],this.commit("getrLinksProperties"),this.commit("splitOneway")}else alert("invalid CRS. use CRS84 / EPSG:4326")},loadrNodes(e,t){if(e.rnodes=JSON.parse(JSON.stringify(t)),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.rnodes.crs.properties.name)){const t={...e.rnodes};t.features=[],e.rnodesHeader=t,e.visiblerNodes=structuredClone(t),e.renderedrNodes=structuredClone(t),e.rnodes.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>Math.round(1e6*Number(e))/1e6)))),this.commit("getrNodesProperties")}else alert("invalid CRS. use CRS84 / EPSG:4326")},loadRoadFiles(e,t){for(const i of t){const t=i.content.features[0].geometry.type;if("LineString"===t){if(!(0,u.ci)(i.content,e.rlinks)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("appendNewrLinks",(0,p.GM)(i.content,i.path,t))}else if("Point"===t){if(!(0,u.ci)(i.content,e.rnodes)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("appendNewrNodes",(0,p.GM)(i.content,i.path,t))}}},appendNewrLinks(e,t){t.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>e.map((e=>Math.round(1e6*Number(e))/1e6)))))),t.features.forEach((t=>e.rlinks.features.push(t))),this.commit("getrLinksProperties"),this.commit("splitOneway"),this.commit("getFilteredrCat")},appendNewrNodes(e,t){t.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>Math.round(1e6*Number(e))/1e6)))),t.features.forEach((t=>e.rnodes.features.push(t))),this.commit("splitOneway"),this.commit("getrNodesProperties")},getrLinksProperties(e){let t=new Set([]);e.rlinks.features.forEach((e=>{Object.keys(e.properties).forEach((e=>{e.endsWith("_r")||t.add(e)}))})),["index","a","b","route_color"].forEach((e=>t.add(e))),t=Array.from(t),e.rlineAttributes=t,t.includes("highway")?e.selectedrFilter="highway":e.selectedrFilter=t[0]},getrNodesProperties(e){let t=new Set([]);e.rnodes.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),["index"].forEach((e=>t.add(e))),t=Array.from(t),e.rnodeAttributes=t},addRoadPropertie(e,t){"rlinks"===t.table?(e.rlinks.features.map((e=>e.properties[t.name]=null)),e.visiblerLinks.features.map((e=>e.properties[t.name]=null)),e.rlineAttributes.push(t.name),e.rcstAttributes.includes(t.name)||e.reversedAttributes.push(t.name+"_r")):(e.rnodes.features.map((e=>e.properties[t.name]=null)),e.visiblerNodes.features.map((e=>e.properties[t.name]=null)),e.rnodeAttributes.push(t.name))},deleteRoadPropertie(e,t){"rlinks"===t.table?(e.rlinks.features.filter((e=>delete e.properties[t.name])),e.rlinks.features.filter((e=>delete e.properties[t.name+"_r"])),e.visiblerLinks.features.filter((e=>delete e.properties[t.name])),e.visiblerLinks.features.filter((e=>delete e.properties[t.name+"_r"])),e.rlineAttributes=e.rlineAttributes.filter((e=>e!==t.name)),e.reversedAttributes=e.reversedAttributes.filter((e=>e!==t.name+"_r"))):(e.rnodes.features.filter((e=>delete e.properties[t.name])),e.visiblerNodes.features.filter((e=>delete e.properties[t.name])))},changeSelectedrFilter(e,t){e.selectedrFilter=t,this.commit("getFilteredrCat")},getFilteredrCat(e){const t=Array.from(new Set(e.rlinks.features.map((t=>t.properties[e.selectedrFilter]))));e.filteredrCategory=t},splitOneway(e){e.rlineAttributes.includes("oneway")&&(e.rlinks.features.forEach((e=>{[!0,"true","1",1].includes(e.properties.oneway)?e.properties.oneway="1":e.properties.oneway="0"})),e.reversedAttributes=e.rlineAttributes.filter((t=>!e.rcstAttributes.includes(t))).map((e=>e+"_r")),e.rlinks.features.forEach((t=>{"0"===t.properties.oneway&&e.reversedAttributes.forEach((e=>{t.properties[e]||(t.properties[e]=t.properties[e.slice(0,-2)])}))})))},changeVisibleRoads(e,t){const i=t.method,s=t.data,o=t.category;e.selectedrFilter=o;let r=null;switch(i){case"showAll":e.selectedrGroup=s,e.visiblerLinks.features=e.rlinks.features.slice();break;case"hideAll":e.selectedrGroup=s,e.visiblerLinks.features=[];break;case"add":e.selectedrGroup.includes(s[0])||e.selectedrGroup.push(s[0]),r=e.rlinks.features.filter((e=>e.properties[o]===s[0])),r.forEach((t=>e.visiblerLinks.features.push(t)));break;case"remove":e.selectedrGroup=e.selectedrGroup.filter((e=>e!==s[0])),r=new Set(e.visiblerLinks.features.filter((e=>e.properties[o]===s[0]))),e.visiblerLinks.features=e.visiblerLinks.features.filter((e=>!r.has(e)))}this.commit("getVisiblerNodes",{method:i})},refreshVisibleRoads(e){const t=new Set(e.selectedrGroup),i=e.selectedrFilter;e.visiblerLinks.features=e.rlinks.features.filter((e=>t.has(e.properties[i]))),this.commit("getVisiblerNodes",{method:"add"});const s=new Set(e.visiblerLinks.features.map((e=>e.properties[i])));e.selectedrGroup=[...s].filter((e=>t.has(e)))},getVisiblerNodes(e,t){let i=[],s=[],o=[];switch(t.method){case"showAll":e.visiblerNodes.features=e.rnodes.features;break;case"hideAll":e.visiblerNodes.features=[];break;case"add":i=e.visiblerLinks.features.map((e=>e.properties.a)),s=e.visiblerLinks.features.map((e=>e.properties.b)),o=new Set([...i,...s]),e.visiblerNodes.features=e.rnodes.features.filter((e=>o.has(e.properties.index)));break;case"remove":i=e.visiblerLinks.features.map((e=>e.properties.a)),s=e.visiblerLinks.features.map((e=>e.properties.b)),o=new Set([...i,...s]),e.visiblerNodes.features=e.visiblerNodes.features.filter((e=>o.has(e.properties.index)))}},getRenderedrLinks(e,t){e.renderedrLinks.features=e.visiblerLinks.features.filter((e=>(0,g.ZP)(t.bbox,e)||(0,f.Z)(t.bbox,e))),this.commit("getRenderedrNodes")},getRenderedrNodes(e){const t=e.renderedrLinks.features.map((e=>e.properties.a)),i=e.renderedrLinks.features.map((e=>e.properties.b)),s=new Set([...t,...i]);e.renderedrNodes.features=e.visiblerNodes.features.filter((e=>s.has(e.properties.index)))},setRenderedrLinks(e,t){"visible"===t.method?(e.renderedrLinks.features=e.visiblerLinks.features,e.renderedrNodes.features=[]):(e.renderedrLinks.features=[],e.renderedrNodes.features=[])},editrLinkInfo(e,t){const{selectedLinkId:i,info:s}=t;for(let t=0;te.properties.index===i[t]))[0];s[t].oneway?.value!==r.properties.oneway&&"0"===s[t].oneway?.value?e.reversedAttributes.forEach((e=>r.properties[e]=s[t][e.slice(0,-2)].value)):s[t].oneway?.value!==r.properties.oneway&&"1"===s[t].oneway?.value&&e.reversedAttributes.forEach((e=>delete r.properties[e])),o.forEach((e=>r.properties[e]=s[t][e].value))}},editrNodeInfo(e,t){const{selectedNodeId:i,info:s}=t,o=Object.keys(s);e.rnodes.features.filter((function(e){e.properties.index===i&&o.forEach((t=>e.properties[t]=s[t].value))}))},createNewrNode(e,t){const i=structuredClone(e.rnodesHeader),s={};e.rnodeAttributes.forEach((e=>{s[e]=null})),s.index="rnode_"+v.generate();const o={geometry:{coordinates:t,type:"Point"},properties:s,type:"Feature"};i.features=[o],e.newrNode=i},splitrLink(e,t){const i=t.selectedFeature,s=structuredClone(i),o=t.offset;i.properties.b=e.newrNode.features[0].properties.index,i.geometry.coordinates=[...i.geometry.coordinates.slice(0,t.sliceIndex),e.newrNode.features[0].geometry.coordinates],i.properties.index="link_"+v.generate(),i.properties.length=i.properties.length*o,i.properties.time=i.properties.time*o,i.properties.length_r&&(i.properties.length_r=i.properties.length),i.properties.time_r&&(i.properties.time_r=i.properties.time),s.properties.a=e.newrNode.features[0].properties.index,s.geometry.coordinates=[e.newrNode.features[0].geometry.coordinates,...s.geometry.coordinates.slice(t.sliceIndex)],s.properties.index="rlink_"+v.generate(),s.properties.length=s.properties.length*(1-o),s.properties.time=s.properties.time*(1-o),s.properties.length_r&&(s.properties.length_r=s.properties.length),s.properties.time_r&&(s.properties.time_r=s.properties.time),e.visiblerLinks.features.push(s),e.renderedrLinks.features.push(s),e.rlinks.features.filter((e=>e.properties.index===i.properties.index))[0]=i,e.rlinks.features.push(s)},addRoadNodeInline(e,t){const i=e.renderedrLinks.features.filter((e=>t.selectedIndex.includes(e.properties.index)));for(let s=0;se.properties.index===i));e.renderedrLinks.features[s].geometry.coordinates.splice(t.sliceIndex,0,t.coordinates)},createrLink(e,t){t.nodeIdB?"rlinks"===t.layerId&&(this.commit("addRoadNodeInline",{selectedIndex:t.nodeIdB,lngLat:t.geom,nodes:"rnodes"}),t.nodeIdB=e.newrNode.features[0].properties.index):(this.commit("createNewrNode",t.geom),e.visiblerNodes.features.push(e.newrNode.features[0]),e.renderedrNodes.features.push(e.newrNode.features[0]),e.rnodes.features.push(e.newrNode.features[0]),t.nodeIdB=e.newrNode.features[0].properties.index);const i=e.visiblerNodes.features.filter((e=>e.properties.index===t.nodeIdA))[0],s=e.visiblerNodes.features.filter((e=>e.properties.index===t.nodeIdB))[0],o={coordinates:[i.geometry.coordinates,s.geometry.coordinates],type:"LineString"},n={};e.rlineAttributes.forEach((e=>n[e]=null)),n.index="rlink_"+v.generate(),n.a=t.nodeIdA,n.b=t.nodeIdB,n.highway=e.defaultHighway,n.route_color=e.rlinksDefaultColor;const a=(0,r.Z)(o),l=a/e.roadSpeed*3600;n.length=Number((1e3*a).toFixed(0)),n.time=Number(l.toFixed(0)),n.speed=Number(e.roadSpeed),e.rlineAttributes.includes("oneway")&&(n.oneway="0",e.reversedAttributes.forEach((e=>n[e]=n[e.slice(0,-2)])));const c={geometry:o,properties:n,type:"Feature"};e.rlinks.features.push(c);const d=n[e.selectedrFilter];e.filteredrCategory.includes(d)||e.filteredrCategory.push(d),e.selectedrGroup.includes(d)?(e.visiblerLinks.features.push(c),e.renderedrLinks.features.push(c)):(e.visiblerLinks.features.push(c),e.renderedrLinks.features.push(c),e.selectedrGroup.push(d))},getConnectedLinks(e,t){const i=t.selectedNode.properties.index;e.connectedLinks={b:e.rlinks.features.filter((e=>e.properties.b===i)),a:e.rlinks.features.filter((e=>e.properties.a===i))}},moverNode(e,t){const i=t.selectedNode.properties.index;e.renderedrNodes.features.filter((e=>e.properties.index===i))[0].geometry.coordinates=t.lngLat,e.connectedLinks.b.forEach((e=>{e.geometry.coordinates=[...e.geometry.coordinates.slice(0,-1),t.lngLat];const i=(0,r.Z)(e);e.properties.length=Number((1e3*i).toFixed(0));const s=i/e.properties.speed*3600;if(e.properties.time=Number(s.toFixed(0)),e.properties.time_r){const t=i/e.properties.speed_r*3600;e.properties.time_r=Number(t.toFixed(0))}e.properties.length_r&&(e.properties.length_r=e.properties.length)})),e.connectedLinks.a.forEach((e=>{e.geometry.coordinates=[t.lngLat,...e.geometry.coordinates.slice(1)];const i=(0,r.Z)(e);e.properties.length=Number((1e3*i).toFixed(0));const s=i/e.properties.speed*3600;if(e.properties.time=Number(s.toFixed(0)),e.properties.time_r){const t=i/e.properties.speed_r*3600;e.properties.time_r=Number(t.toFixed(0))}e.properties.length_r&&(e.properties.length_r=e.properties.length)}))},moverAnchor(e,t){const i=t.selectedNode.properties.linkIndex,s=t.selectedNode.properties.coordinatedIndex,o=e.renderedrLinks.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),t.lngLat,...o.geometry.coordinates.slice(s+1)];const n=(0,r.Z)(o);o.properties.length=Number((1e3*n).toFixed(0));const a=n/e.roadSpeed*3600;o.properties.time=Number(a.toFixed(0))},deleteAnchorrNode(e,t){const i=t.selectedNode.linkIndex,s=t.selectedNode.coordinatedIndex,o=e.renderedrLinks.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),...o.geometry.coordinates.slice(s+1)]},deleterLink(e,t){const i=new Set(t.selectedIndex);e.rlinks.features=e.rlinks.features.filter((e=>!i.has(e.properties.index))),e.visiblerLinks.features=e.visiblerLinks.features.filter((e=>!i.has(e.properties.index))),e.renderedrLinks.features=e.renderedrLinks.features.filter((e=>!i.has(e.properties.index))),this.commit("deleteUnusedrNodes"),this.commit("getVisiblerNodes",{method:"remove"}),this.commit("getRenderedrNodes"),this.commit("getFilteredrCat")},deleterGroup(e,t){const i=t,s=e.selectedrFilter;e.rlinks.features=e.rlinks.features.filter((e=>e.properties[s]!==i)),this.commit("refreshVisibleRoads"),this.commit("deleteUnusedrNodes"),this.commit("getFilteredrCat")},deleteUnusedrNodes(e){const t=e.rlinks.features.map((e=>e.properties.a)),i=e.rlinks.features.map((e=>e.properties.b)),s=new Set([...t,...i]);e.rnodes.features=e.rnodes.features.filter((e=>s.has(e.properties.index)))},editrGroupInfo(e,t){const i=t.info,s=t.selectedLinks,o=Object.keys(i).filter((e=>""!==i[e].value||!i[e].placeholder));if("0"===i.oneway?.value?s.filter((e=>"1"===e.properties.oneway)).forEach((t=>{e.reversedAttributes.forEach((e=>t.properties[e]=t.properties[e.slice(0,-2)]))})):"1"===i.oneway?.value&&s.filter((e=>"0"===e.properties.oneway)).forEach((t=>{e.reversedAttributes.forEach((e=>delete t.properties[e]))})),s.forEach((e=>o.forEach((t=>e.properties[t]=i[t].value)))),e.rlineAttributes.includes("oneway")){const t=e.reversedAttributes.filter((e=>o.includes(e.slice(0,-2))));s.filter((e=>"0"===e.properties.oneway)).forEach((e=>t.forEach((t=>e.properties[t]=i[t.slice(0,-2)].value))))}this.commit("refreshVisibleRoads"),this.commit("getFilteredrCat")}},getters:{rlinks:e=>e.rlinks,rnodes:e=>e.rnodes,roadSpeed:e=>e.roadSpeed,rlinksHeader:e=>e.rlinksHeader,rnodesHeader:e=>e.rnodesHeader,rlineAttributes:e=>e.rlineAttributes.sort(),selectedrGroup:e=>e.selectedrGroup,selectedrFilter:e=>e.selectedrFilter,filteredrCategory:e=>e.filteredrCategory,visiblerLinks:e=>e.visiblerLinks,renderedrLinks:e=>e.renderedrLinks,renderedrNodes:e=>e.renderedrNodes,visiblerNodes:e=>e.visiblerNodes,defaultHighway:e=>e.defaultHighway,rlinksIsEmpty:e=>0===e.rlinks.features.length,rcstAttributes:e=>e.rcstAttributes,newrNode:e=>e.newrNode,rundeletable:e=>e.rundeletable,hasCycleway:e=>e.rlineAttributes.includes("cycleway"),anchorrNodes:e=>{const t=structuredClone(e.rnodesHeader);return e.renderedrLinks.features.filter((e=>e.geometry.coordinates.length>2)).forEach((e=>{const i=e.properties.index;e.geometry.coordinates.slice(1,-1).forEach(((e,s)=>t.features.push(d()(e,{index:v.generate(),linkIndex:i,coordinatedIndex:s+1}))))})),t},rlinkDirection:e=>(t,i=!1)=>{const s=e.rlinks.features.filter((e=>t.includes(e.properties.index))),o=[];return s.forEach((e=>{const t=e.geometry.coordinates;i?o.push((0,A.Z)(t[t.length-1],t[0])):o.push((0,A.Z)(t[0],t[t.length-1]))})),o},grouprLinks:e=>(t,i)=>e.rlinks.features.filter((e=>i===e.properties[t])),onewayIndex:e=>new Set(e.rlinks.features.filter((e=>"0"===e.properties.oneway)).map((e=>e.properties.index))),rlinksForm:e=>t=>{const i=["a","b","index"],s=e.visiblerLinks.features.filter((e=>e.properties.index===t))[0].properties,o={};return e.rlineAttributes.forEach((e=>{o[e]={value:s[e],disabled:i.includes(e),placeholder:!1}})),o},reversedrLinksForm:e=>t=>{const i=["a","b","index"],s=e.visiblerLinks.features.filter((e=>e.properties.index===t))[0].properties,o={};return e.reversedAttributes.forEach((e=>{o[e]={value:s[e],disabled:i.includes(e),placeholder:!1}})),o}}},C=i(7597),b={namespaced:!0,state:{layer:{},visibleLayer:{},layerHeader:{},layerAttributes:[],filteredCategory:[],selectedFilter:"",selectedCategory:[]},mutations:{loadLayer(e,t){if(e.layer=structuredClone(t),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.layer.crs.properties.name)){const t={...e.layer};t.features=[],e.layerHeader=t,e.visibleLayer=structuredClone(t),this.commit("od/getProperties")}else alert("invalid CRS. use CRS84 / EPSG:4326")},loadODFiles(e,t){for(const i of t){if(!(0,u.ci)(i.content,e.layer)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("od/appendNewOD",(0,p.GM)(i.content,i.path,"LineString"))}},appendNewOD(e,t){t.features.forEach((e=>{return e.geometry.coordinates=[(t=e.geometry.coordinates)[0],t[t.length-1]];var t})),t.features.forEach((t=>e.layer.features.push(t))),this.commit("od/getProperties"),this.commit("od/getFilteredCategory"),this.commit("od/refreshVisibleLayer")},changeSelectedFilter(e,t){e.selectedFilter=t,this.commit("od/refreshVisibleLayer"),this.commit("od/getFilteredCategory")},changeSelectedCategory(e,t){e.selectedCategory=t,this.commit("od/refreshVisibleLayer")},getProperties(e){const t=new Set([]);e.layer.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),["index"," name"].forEach((e=>t.add(e))),e.layerAttributes=Array.from(t),e.selectedFilter=e.layerAttributes[0],e.selectedCategory=Array.from(new Set(e.layer.features.map((t=>t.properties[e.selectedFilter]))))},refreshVisibleLayer(e){const t=new Set(e.selectedCategory),i=e.selectedFilter;e.visibleLayer.features=e.layer.features.filter((e=>t.has(e.properties[i])))},getFilteredCategory(e){const t=Array.from(new Set(e.layer.features.map((t=>t.properties[e.selectedFilter]))));e.filteredCategory=t},deleteOD(e,t){const i=new Set(t.selectedIndex);e.layer.features=e.layer.features.filter((e=>!i.has(e.properties.index))),this.commit("od/refreshVisibleLayer"),this.commit("od/getFilteredCategory")},deleteGroup(e,t){const i=t,s=e.selectedFilter;e.layer.features=e.layer.features.filter((e=>e.properties[s]!==i)),this.commit("od/refreshVisibleLayer"),this.commit("od/getFilteredCategory")},moveNode(e,t){const i=t.selectedFeature.properties.linkIndex,s=t.selectedFeature.properties.coordinatedIndex,o=e.visibleLayer.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),t.lngLat,...o.geometry.coordinates.slice(s+1)]},createNewLink(e,t){const i={coordinates:[t.lngLat,t.lngLat],type:"LineString"},s={};e.layerAttributes.forEach((e=>s[e]=null)),s.index=t.index;const o={geometry:i,properties:s,type:"Feature"};e.layer.features.push(o),this.commit("od/getFilteredCategory");const r=s[e.selectedFilter];new Set(e.selectedCategory).has(r)||e.selectedCategory.push(r),this.commit("od/refreshVisibleLayer")},editLinkInfo(e,t){const{selectedLinkId:i,info:s}=t,o=Object.keys(s);e.visibleLayer.features.filter((function(e){e.properties.index===i&&o.forEach((t=>e.properties[t]=s[t].value))})),this.commit("od/getFilteredCategory")},editGroupInfo(e,t){const i=t.info,s=t.selectedLinks,o=Object.keys(i).filter((e=>""!==i[e].value||!i[e].placeholder));s.forEach((e=>o.forEach((t=>e.properties[t]=i[t].value)))),this.commit("od/getFilteredCategory"),this.commit("od/refreshVisibleLayer")},addPropertie(e,t){e.layer.features.map((e=>e.properties[t]=null)),e.visibleLayer.features.map((e=>e.properties[t]=null)),e.layerAttributes.push(t)},deletePropertie(e,t){e.layer.features.filter((e=>delete e.properties[t.name])),e.visibleLayer.features.filter((e=>delete e.properties[t.name])),e.layerAttributes=e.layerAttributes.filter((e=>e!==t.name))}},getters:{layer:e=>e.layer,visibleLayer:e=>e.visibleLayer,layerIsEmpty:e=>0===e.layer.features.length,layerHeader:e=>e.layerHeader,selectedTrips:e=>e.selectedTrips,layerAttributes:e=>e.layerAttributes.sort(),selectedFilter:e=>e.selectedFilter,filteredCategory:e=>e.filteredCategory,selectedCategory:e=>e.selectedCategory,groupLayer:e=>(t,i)=>e.layer.features.filter((e=>i===e.properties[t])),linkForm:e=>t=>{const i=["index"],s=e.visibleLayer.features.filter((e=>e.properties.index===t))[0].properties,o={};return e.layerAttributes.forEach((e=>{o[e]={value:s[e],disabled:i.includes(e),placeholder:!1}})),o},nodes:e=>t=>{const i=structuredClone(e.layerHeader);return t.features.forEach((e=>{const t=e.properties.index;e.geometry.coordinates.forEach(((e,s)=>i.features.push(d()(e,{index:C.generate(),linkIndex:t,coordinatedIndex:s}))))})),i}}};var k=i(28670),w=i.n(k);const x=i(36377);function _(e,t,i,s,o,r){if("string"==typeof e)return r?0:x(e)();let n=e;return"log"===o?(t=t>0?Math.log10(t):0,i=i>0?Math.log10(i):0,n=e>0?Math.log10(e):0):"sqrt"===o?(t=Math.sqrt(t),i=Math.sqrt(i),n=Math.sqrt(e)):"exp"===o?(e/=i,t=10**(t/=i),i=10**(i=1),n=10**e):"quad"===o&&(t=t**2,i=i**2,n=e**2),n=s?(-n+i)/(i-t):(n-t)/(i-t),n}const E={selectedFeature:null,maxWidth:10,minWidth:1,numStep:100,scale:"linear",fixScale:!1,minVal:0,maxVal:1,cmap:"OrRd",opacity:100,offset:!1,showNaN:!0,reverseColor:!1},S={namespaced:!0,state:{type:"links",links:{},visibleLinks:{},NaNLinks:{},linksHeader:{},lineAttributes:[],selectedFilter:"",selectedCategory:[],displaySettings:E},mutations:{unload(e){e.type="links",e.links={},e.visibleLinks={},e.NaNLinks={},e.linksHeader={},e.lineAttributes=[],e.selectedFilter="",e.selectedCategory=[],e.displaySettings=E},loadLinks(e,t){if(e.links=t.geojson,e.type=t.type,["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.links.crs.properties.name)){const i=structuredClone(e.links);i.features=[],e.linksHeader=i,e.visibleLinks=structuredClone(i),e.NaNLinks=structuredClone(i),this.commit("results/getLinksProperties"),e.lineAttributes.includes(t.selectedFeature)?e.displaySettings.selectedFeature=t.selectedFeature:e.displaySettings.selectedFeature=null,this.commit("results/refreshVisibleLinks"),this.commit("results/updateSelectedFeature")}else alert("invalid CRS. use CRS84 / EPSG:4326")},updateLinks(e,t){e.links=t,this.commit("results/refreshVisibleLinks"),this.commit("results/updateSelectedFeature")},changeSelectedFilter(e,t){e.selectedFilter=t,e.selectedCategory=Array.from(new Set(e.links.features.map((t=>t.properties[e.selectedFilter])))),this.commit("results/refreshVisibleLinks")},changeSelectedCategory(e,t){e.selectedCategory=t,this.commit("results/refreshVisibleLinks")},getLinksProperties(e){const t=new Set([]);e.links.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),e.lineAttributes=Array.from(t),e.lineAttributes=e.lineAttributes.filter((e=>!["display_width","display_color"].includes(e))),e.selectedFilter=t.has("route_type")?"route_type":t.has("highway")?"highway":e.lineAttributes[0],e.selectedCategory=Array.from(new Set(e.links.features.map((t=>t.properties[e.selectedFilter]))))},applySettings(e,t){Object.keys(t).forEach((i=>e.displaySettings[i]=t[i])),this.commit("results/refreshVisibleLinks"),this.commit("results/updateSelectedFeature")},updateSelectedFeature(e){const t=e.displaySettings.selectedFeature,i=e.displaySettings.maxWidth,s=e.displaySettings.minWidth,o=e.displaySettings.scale,r=e.displaySettings.numStep,n=e.displaySettings.cmap,a=e.visibleLinks.features.filter((e=>e.properties[t])).map((e=>e.properties[t]));if(!e.displaySettings.fixScale){const t=e=>e.reduce((([e,t],i)=>[Math.min(e,i),Math.max(t,i)]),[Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY]),[i,s]=t(a);e.displaySettings.minVal=Math.round(100*i)/100,e.displaySettings.maxVal=Math.round(100*s)/100}const l=e.displaySettings.minVal,c=e.displaySettings.maxVal,d=e.displaySettings.reverseColor;e.visibleLinks.features.forEach((e=>{let r=e.properties[t];rc?e.properties.display_width=i:(r=_(r,l,c,!1,o,!0),e.properties.display_width=(i-s)*r+s)}));const p=w().scale(n).padding([.1,0]).domain([0,1],o).classes(r);e.visibleLinks.features.forEach((e=>{const i=e.properties[t];/^#([0-9A-Fa-f]{3}){1,2}$/i.test(i)?(console.log(i),e.properties.display_color=i):e.properties.display_color=p(_(i,l,c,d,o,!1)).hex()}))},refreshVisibleLinks(e){const t=new Set(e.selectedCategory),i=e.selectedFilter,s=e.displaySettings.selectedFeature;e.visibleLinks.features=e.links.features.filter((e=>t.has(e.properties[i]))),e.displaySettings.showNaN||(e.NaNLinks.features=e.visibleLinks.features.filter((e=>!e.properties[s])),e.visibleLinks.features=e.visibleLinks.features.filter((e=>e.properties[s])))}},getters:{type:e=>e.type,links:e=>e.links,visibleLinks:e=>e.visibleLinks,displayLinks:e=>{const t=structuredClone(e.linksHeader);return t.features=e.visibleLinks.features.map((e=>({geometry:e.geometry,properties:{display_color:e.properties.display_color,display_width:e.properties.display_width}}))),t},NaNLinks:e=>e.NaNLinks,linksHeader:e=>e.linksHeader,lineAttributes:e=>e.lineAttributes.sort(),selectedFilter:e=>e.selectedFilter,selectedCategory:e=>e.selectedCategory,displaySettings:e=>e.displaySettings,selectedFeature:e=>e.displaySettings.selectedFeature,maxWidth:e=>e.displaySettings.maxWidth,minWidth:e=>e.displaySettings.minWidth,numStep:e=>e.displaySettings.numStep,scale:e=>e.displaySettings.scale,opacity:e=>e.displaySettings.opacity,colorScale:e=>{const t=[],i=w().scale(e.displaySettings.cmap).padding([.1,0]).domain([0,1]).classes(e.displaySettings.numStep);for(let s=0;s<100;s++)t.push(i(_(s,0,100,e.displaySettings.reverseColor,e.displaySettings.scale,!1)));return t}}},L={namespaced:!0,state:()=>({layer:{},mat:{},properties:[],type:null}),mutations:{createLayer(e,t){e.layer=structuredClone(t.data),e.type=e.layer.features[0].geometry.type,e.type="MultiPolygon"===e.type?"Polygon":e.type},addMatrix(e,t){Object.keys(t).forEach((i=>{e.mat[i+" (OD)"]=t[i]})),e.properties=Object.keys(e.mat),e.layer.features.length>0&&e.properties.forEach((t=>e.layer.features.forEach((e=>e.properties[t]=null))))},changeZone(e,t){const i=t.selectedProperty;if(e.properties.includes(i)){const s=t.index,o=e.mat[i][s];e.layer.features.forEach((e=>e.properties[i]=o?o[e.properties.index]:null))}}},getters:{layer:e=>e.layer,type:e=>e.type,properties:e=>e.properties,hasOD:e=>e.properties.length>0,mat:e=>{const t=Object.keys(e.mat);if(t.length>0){const i={};return t.forEach((t=>{i[t.slice(0,-5)]=e.mat[t]})),i}return null}}};var I=i(72055),$=i(60887);const N={namespaced:!0,state:{stateMachineArnBase:"arn:aws:states:ca-central-1:142023388927:stateMachine:",steps:[{name:"Loading Steps..."}],selectedStepFunction:"default",avalaibleStepFunctions:["default"],running:!1,executionArn:"",currentStep:0,error:!1,errorMessage:"",synchronized:!0,parameters:[]},mutations:{cleanRun(e){e.steps=[{name:"Loading Steps..."}],e.selectedStepFunction="default",e.avalaibleStepFunctions=["default"],e.running=!1,e.executionArn="",e.currentStep=0,e.error=!1,e.synchronized=!0,e.parameters=[]},setSteps(e,t){e.steps=t,e.steps.splice(0,0,{name:"Saving Networks"}),e.steps.push({name:"Loading Results"})},startExecution(e){e.error=!1,e.running=!0,e.currentStep=1},terminateExecution(e,t){e.running=!1,e.error=!0,e.errorMessage=t,e.executionArn=""},changeRunning(e,t){e.running=t},succeedExecution(e){e.running=!1,e.currentStep=e.steps.length+1,e.executionArn="",this.commit("changeNotification",{text:"simulation executed successfully!",autoClose:!1,color:"success"})},updateCurrentStep(e,t){const i=e.steps.map((e=>e.name));e.currentStep=i.indexOf(t.name)+1},getLocalParameters(e,t){t=(0,p._2)(t),e.parameters=t},setSelectedStepFunction(e,t){e.selectedStepFunction=t},setAvalaibleStepFunctions(e,t){e.avalaibleStepFunctions=t}},actions:{async getParameters({state:e,commit:t},i){try{const t=await $.Z.readJson(i.model,i.path);e.parameters=t}catch(e){t("changeAlert",e,{root:!0})}},async getOutputs(e){const t=e.rootState.user.model,i=e.rootState.user.scenario+"/",s=i+"outputs/";let o=await $.Z.listFiles(t,s);o=o.filter((e=>!e.endsWith("/")));const r=[];for(const e of o){const s=e.slice(i.length);if(e.endsWith(".json")||e.endsWith(".geojson")){const i=await $.Z.readJson(t,e);r.push({path:s,content:i})}else r.push({path:s,content:null})}r.length>0&&(e.commit("unloadLayers",{},{root:!0}),e.commit("loadFiles",r,{root:!0}))},getSteps({state:e,commit:t,rootState:i}){let s={stateMachineArn:e.stateMachineArnBase+i.user.model};I.H.client.post("/describe/model",s=JSON.stringify(s)).then((i=>{const s=JSON.parse(i.data.definition),o=s.StartAt;Object.keys(s.States).forEach((t=>{if("Choice"===s.States[t].Type)if(e.avalaibleStepFunctions=["default",...s.States[t].Choices.map((e=>e.StringEquals))],"default"===e.selectedStepFunction)s.States[t].Next=s.States[t].Default;else{const i=s.States[t].Choices;s.States[t].Next=i.filter((t=>t.StringEquals===e.selectedStepFunction))[0].Next}}));const r=[];let n=o;for(;"Choice"===s.States[n].Type&&(n=s.States[n].Next),r.push({name:n}),void 0!==s.States[n].Next;)n=s.States[n].Next;t("setSteps",r)})).catch((e=>{t("changeAlert",e,{root:!0})}))},startExecution({state:e,commit:t,dispatch:i,rootState:s},o){const r=e.parameters.filter((t=>Object.keys(t).includes("category")&&t.model===e.selectedStepFunction)).reduce(((e,{category:t,params:i})=>(e[t]=i.reduce(((e,{name:t,value:i,type:s})=>(e[t]="number"===s?.toLowerCase()?Number(i):i,e)),{}),e)),{});let n={input:JSON.stringify({authorization:s.user.idToken,choice:e.selectedStepFunction,scenario_path_S3:o.scenario+"/",launcher_arg:{training_folder:"/tmp",params:r},metadata:{user_email:s.user.cognitoInfo.email}}),stateMachineArn:e.stateMachineArnBase+s.user.model};I.H.client.post("",n=JSON.stringify(n)).then((t=>{e.executionArn=t.data.executionArn,i("pollExecution")})).catch((e=>{t("changeAlert",e,{root:!0})}))},pollExecution({commit:e,state:t,dispatch:i}){const s=setInterval((()=>{let o={executionArn:t.executionArn};I.H.client.post("/describe",o=JSON.stringify(o)).then((o=>{t.status=o.data.status,"SUCCEEDED"===t.status?i("getOutputs").then((()=>{e("succeedExecution"),clearInterval(s)})).catch((e=>alert(e))):["FAILED","TIMED_OUT","ABORTED"].includes(t.status)?(e("terminateExecution",JSON.parse(o.data.cause)),clearInterval(s)):void 0===t.status&&clearInterval(s)})).catch((i=>{e("changeAlert",i,{root:!0}),t.running=!1})),o={executionArn:t.executionArn,includeExecutionData:!1,reverseOrder:!0},I.H.client.post("/history",o=JSON.stringify(o)).then((t=>{for(const i in t.data.events){const s=t.data.events[i];if("TaskStateEntered"===s.type){e("updateCurrentStep",s.stateEnteredEventDetails);break}}})).catch((e=>{console.log(e)}))}),5e3)},stopExecution({state:e,commit:t}){let i={executionArn:e.executionArn};I.H.client.post("/abort",i=JSON.stringify(i)).then((e=>{t("terminateExecution",e.data)})).catch((e=>{console.log(e)}))}},getters:{steps:e=>e.steps,avalaibleStepFunctions:e=>e.avalaibleStepFunctions,selectedStepFunction:e=>e.selectedStepFunction,running:e=>e.running,currentStep:e=>e.currentStep,executionArn:e=>e.executionArn,error:e=>e.error,errorMessage:e=>e.errorMessage,synchronized:e=>e.synchronized,parameters:e=>e.parameters,parametersIsEmpty:e=>0===e.parameters.length}};var F=i(55877);const B={namespaced:!0,state:{stateMachineArn:"arn:aws:states:ca-central-1:142023388927:stateMachine:ML_MatrixRoadCaster",bucket:"matrixroadcaster",callID:"",status:"",timer:0,running:!1,executionArn:"",error:!1,errorMessage:"",parameters:{callID:"test",num_zones:100,train_size:100,date_time:"2022-12-13T08:00:21-04:00",ff_time_col:"time",max_speed:100,num_cores:1,num_random_od:1,create_zone:!0,hereApiKey:""}},mutations:{cleanRun(e){e.running=!1,e.executionArn="",e.error=!1},setCallID(e){e.callID=(0,F.v4)()},setParameters(e,t){e.parameters=t},terminateExecution(e,t){e.running=!1,e.error=!0,e.errorMessage=t,e.executionArn=""},changeRunning(e,t){e.running=t},getApproxTimer(e,t){const i=e.parameters.num_zones,s=e.parameters.train_size,o=e.parameters.num_random_od;e.timer=1.8*Math.min(i,s)+.002*t+15,e.timer+=10*o},succeedExecution(e){e.running=!1,e.executionArn="",this.commit("changeNotification",{text:"Matrix Road Caster executed successfully!",autoClose:!1,color:"success"})}},actions:{async startExecution({state:e,commit:t,dispatch:i},s){t("getApproxTimer",s.rlinks.features.length),t("setParameters",s.parameters),console.log("exporting roads to s3"),e.error=!1,e.running=!0;try{await $.Z.putObject(e.bucket,e.callID.concat("/road_links.geojson"),JSON.stringify(s.rlinks)),await $.Z.putObject(e.bucket,e.callID.concat("/road_nodes.geojson"),JSON.stringify(s.rnodes))}catch(e){t("changeAlert",e,{root:!0})}let o={input:JSON.stringify(e.parameters),name:e.callID,stateMachineArn:e.stateMachineArn};I.H.client.post("",o=JSON.stringify(o)).then((t=>{e.executionArn=t.data.executionArn,i("pollExecution")})).catch((i=>{t("changeAlert",i,{root:!0}),e.running=!1,e.status="FAILED"}))},pollExecution({commit:e,state:t,dispatch:i}){const s=setInterval((()=>{let i={executionArn:t.executionArn};t.timer=t.timer-2,I.H.client.post("/describe",i=JSON.stringify(i)).then((i=>{t.status=i.data.status,console.log(t.status),"SUCCEEDED"===t.status?(e("succeedExecution"),clearInterval(s)):["FAILED","TIMED_OUT","ABORTED"].includes(t.status)&&(e("terminateExecution",JSON.parse(i.data.cause)),clearInterval(s))})).catch((t=>{e("changeAlert",t,{root:!0})}))}),2e3)},stopExecution({state:e,commit:t}){let i={executionArn:e.executionArn};I.H.client.post("/abort",i=JSON.stringify(i)).then((e=>{t("terminateExecution",e.data)})).catch((e=>{t("changeAlert",e,{root:!0})}))}},getters:{running:e=>e.running,status:e=>e.status,executionArn:e=>e.executionArn,error:e=>e.error,errorMessage:e=>e.errorMessage,callID:e=>e.callID,bucket:e=>e.bucket,timer:e=>e.timer,parameters:e=>e.parameters}};var M=i(4644),j=i(36463);const D={namespaced:!0,state:{stateMachineArn:"arn:aws:states:ca-central-1:142023388927:stateMachine:osm-api",bucket:"quenedi-osm",callID:"",status:"",timer:0,running:!1,executionArn:"",error:!1,errorMessage:"",tags:["highway","maxspeed","lanes","name","oneway","surface"],highway:["motorway","motorway_link","trunk","trunk_link","primary","primary_link"],colorDict:j.r5,widthDict:j.GL},mutations:{cleanRun(e){e.running=!1,e.executionArn="",e.error=!1},setCallID(e){e.callID=(0,F.v4)()},terminateExecution(e,t){e.running=!1,e.error=!0,e.errorMessage=t,e.executionArn=""},changeRunning(e,t){e.running=t},changeHighway(e,t){e.highway=t},succeedExecution(e){e.running=!1,e.executionArn="",this.commit("changeNotification",{text:"OSM network imported successfully!",autoClose:!1,color:"success"})}},actions:{startExecution({state:e,commit:t,dispatch:i},s){e.running=!0,e.error=!1;let o="";o="bbox"===s.method?JSON.stringify({bbox:s.coords,highway:e.highway,callID:e.callID,elevation:!0}):JSON.stringify({poly:s.coords,highway:e.highway,callID:e.callID,elevation:!0});let r={input:o,name:e.callID,stateMachineArn:e.stateMachineArn};I.H.client.post("",r=JSON.stringify(r)).then((t=>{e.executionArn=t.data.executionArn,i("pollExecution")})).catch((i=>{t("changeAlert",i,{root:!0}),e.running=!1,e.status="FAILED"}))},async pollExecution({commit:e,state:t,dispatch:i}){const s=setInterval((()=>{let o={executionArn:t.executionArn};t.timer=t.timer-2,I.H.client.post("/describe",o=JSON.stringify(o)).then((async o=>{t.status=o.data.status,console.log(t.status),"SUCCEEDED"===t.status?(clearInterval(s),await i("downloadOSMFromS3"),e("succeedExecution")):["FAILED","TIMED_OUT","ABORTED"].includes(t.status)&&(e("terminateExecution",JSON.parse(o.data.cause)),clearInterval(s))})).catch((t=>{e("changeAlert",t,{root:!0})}))}),2e3)},stopExecution({state:e,commit:t}){let i={executionArn:e.executionArn};I.H.client.post("/abort",i=JSON.stringify(i)).then((e=>{t("terminateExecution",e.data)})).catch((e=>{t("changeAlert",e,{root:!0})}))},async downloadOSMFromS3({state:e,commit:t}){let i=await $.Z.readJson(e.bucket,e.callID.concat("/links.geojson"));i=function(t){return Object.keys(e.colorDict).forEach((i=>{t.features.filter((e=>e.properties.highway===i)).forEach((t=>{t.properties.route_width=e.widthDict[i],t.properties.route_color=e.colorDict[i]}))})),t}(i),t("appendNewrLinks",i,{root:!0}),t("appendNewrNodes",await $.Z.readJson(e.bucket,e.callID.concat("/nodes.geojson")),{root:!0}),console.log("downloaded"),M.Z.push("/Home").catch((()=>{}))}},getters:{running:e=>e.running,status:e=>e.status,executionArn:e=>e.executionArn,error:e=>e.error,errorMessage:e=>e.errorMessage,callID:e=>e.callID,bucket:e=>e.bucket,timer:e=>e.timer,highway:e=>e.highway,tags:e=>e.tags}},O={namespaced:!1,state:{cognitoInfo:{},cognitoGroup:"",bucketList:[],accesToken:"",idToken:"",expData:0,loggedIn:!1,loadingState:!0,errorLoadingState:!1,scenariosList:[],model:null,scenario:null,protected:!1},mutations:{unloadProject(e){e.model=null,e.scenario=null},setLoggedIn(e){e.loggedIn=!0},setLoggedOut(e){e.loggedIn=!1,e.cognitoInfo={}},setCognitoInfo(e,t){e.cognitoInfo=t},setCognitoGroup(e,t){e.cognitoGroup=t},setBucketList(e,t){e.bucketList=t},setAccessToken(e,t){e.accesToken=t.jwtToken,e.expDate=t.payload.exp},setIdToken(e,t){e.idToken=t},setScenariosList(e,t){e.scenariosList=t},setModel(e,t){e.model=t},setScenario(e,t){e.scenario=t.scenario,e.protected=t.protected}},actions:{async getScenario({commit:e,state:t,dispatch:i},s){e("setScenariosList",await $.Z.getScenario(s.model))},isTokenExpired({state:e,commit:t}){Math.floor(Date.now()/1e3)>e.expDate&&t("changeAlert",{name:"sign out",message:"your session has expired. please refresh the page or sign in again"},{root:!0})}},getters:{loggedIn:e=>e.loggedIn,cognitoInfo:e=>e.cognitoInfo,cognitoGroup:e=>e.cognitoGroup,bucketList:e=>e.bucketList?e.bucketList:[],accesToken:e=>e.accesToken,idToken:e=>e.idToken,scenariosList:e=>e.scenariosList,model:e=>e.model,scenario:e=>e.scenario,protected:e=>e.protected}};var P=i(55733),T=i.n(P),z=i(93162),R=i.n(z),Z=i(75997),H=i(34221);s.default.use(o.ZP);const G=new o.ZP.Store({modules:{user:O,links:m,rlinks:y,od:b,results:S,run:N,runMRC:B,runOSM:D},state:{notification:{},alert:{},darkMode:!1,loading:!1,showLeftPanel:!0,windowHeight:0,anchorMode:!1,linksPopupContent:["trip_id"],roadsPopupContent:["highway"],cyclewayMode:!1,outputName:"output",mapCenter:[-73.570337,45.49831],mapZoom:11,availableLayers:["links","rlinks","od","nodes","rnodes"],visibleRasters:[],styles:[],otherFiles:[],attributesChoices:{}},mutations:{changeNotification(e,t){e.notification=t},changeAlert(e,t){e.alert=t},changeDarkMode(e,t){e.darkMode=t,e.rlinks.rlinksDefaultColor=e.darkMode?"2196F3":"7EBAAC",e.links.linksDefaultColor=e.darkMode?"2196F3":"B5E0D6"},changeLoading(e,t){e.loading=t},changeWindowHeight(e,t){e.windowHeight=t},changeLeftPanel(e){e.showLeftPanel=!e.showLeftPanel},saveMapPosition(e,t){e.mapCenter=t.mapCenter,e.mapZoom=t.mapZoom},setAnchorMode(e,t){e.anchorMode=t},changeAnchorMode(e){e.anchorMode=!e.anchorMode},changeCyclewayMode(e,t){e.cyclewayMode=!e.cyclewayMode},loadFiles(e,t){try{let i=[],s=[];const o=t.filter((e=>e.path.startsWith("inputs/pt/")&&e.path.endsWith(".geojson")));i=t.filter((e=>!o.includes(e)));const r=i.filter((e=>e.path.startsWith("inputs/road/")&&e.path.endsWith(".geojson")));i=i.filter((e=>!r.includes(e)));const n=i.filter((e=>e.path.startsWith("inputs/od/")&&e.path.endsWith(".geojson")));i=i.filter((e=>!n.includes(e)));const a=i.filter((e=>"inputs/params.json"===e.path))[0];i=i.filter((e=>e!==a));const l=i.filter((e=>"styles.json"===e.path))[0];i=i.filter((e=>e!==l));const c=i.filter((e=>"attributesChoices.json"===e.path))[0];i=i.filter((e=>e!==c));const d=i.filter((e=>e.path.startsWith("inputs/")));if(i=i.filter((e=>!d.includes(e))),s=i.filter((e=>e.path.startsWith("outputs/"))),i=i.filter((e=>!s.includes(e))),o.length%2!=0){const e=new Error("Need the same number of links and nodes files.");throw e.name="ImportError",e}if(r.length%2!=0){const e=new Error("Need the same number of road_links and road_nodes files.");throw e.name="ImportError",e}if(this.commit("loadPTFiles",o),this.commit("loadRoadFiles",r),this.commit("od/loadODFiles",n),a&&this.commit("run/getLocalParameters",a.content),l){const t=(0,p.My)(l.content);e.styles=t}c&&this.commit("loadAttributesChoices",c.content),this.commit("loadOtherFiles",d);const u=s.filter((e=>e.path.endsWith(".geojson")));s=s.filter((e=>!u.includes(e))),this.commit("loadLayers",u);const h=s.filter((t=>t.path.endsWith(".json")&&e.availableLayers.includes(t.path.slice(0,-5))));s=s.filter((e=>!h.includes(e))),this.commit("loadMatrix",h),this.commit("loadOtherFiles",s),this.commit("changeNotification",{text:"File(s) added",autoClose:!0,color:"success"})}catch(e){this.commit("changeAlert",e)}},loadOtherFiles(e,t){const i=t.map((e=>e.path));e.otherFiles=e.otherFiles.filter((e=>!i.includes(e.path))),t.forEach((t=>e.otherFiles.push(t)))},loadAttributesChoices(e,t){Object.keys(t.pt).forEach((i=>e.attributesChoices.pt[i]=t.pt[i])),Object.keys(t.road).forEach((i=>e.attributesChoices.road[i]=t.road[i]))},setVisibleRasters(e,t){e.visibleRasters=t},loadLayers(e,t){t.forEach((e=>{const t=e.path.slice(0,-8);e.content=(0,p.GM)(e.content,e.path,null,!1),this.commit("createLayer",{fileName:t,data:e.content})}))},loadMatrix(e,t){t.forEach((e=>{const t=e.path.slice(0,-5);this.commit(`${t}/addMatrix`,e.content)}))},createLayer(e,t){const i=t.fileName;Object.keys(this._modules.root._children).includes(i)||this.registerModule(i,L),this.commit(`${i}/createLayer`,t),e.availableLayers.includes(i)||e.availableLayers.push(i)},initNetworks(e){this.commit("loadLinks",Z.Z),this.commit("loadrLinks",Z.Z),this.commit("loadNodes",H.Z),this.commit("loadrNodes",H.Z),this.commit("od/loadLayer",Z.Z),e.visibleRasters=[],e.styles=[],e.attributesChoices={pt:{},road:{oneway:["0","1"]}},e.otherFiles=[],e.cyclewayMode=!1},unloadLayers(e){Object.keys(this._modules.root._children).filter((e=>!["links","rlinks","od","results","run","user","runMRC","runOSM"].includes(e))).forEach((e=>this.unregisterModule(e))),e.availableLayers=["links","rlinks","od","nodes","rnodes"]},applySettings(e,t){e.links.linkSpeed=Number(t.linkSpeed),e.rlinks.roadSpeed=Number(t.roadSpeed),e.linksPopupContent=t.linksPopupContent,e.roadsPopupContent=t.roadsPopupContent,e.rlinks.defaultHighway=t.defaultHighway,e.outputName=t.outputName},addStyle(e,t){const i=e.styles.map((e=>e.name)).indexOf(t.name);-1!==i?e.styles[i]=t:e.styles.push(t)},deleteStyle(e,t){e.styles=e.styles.filter((e=>e.name!==t))}},actions:{async exportFiles({state:e,commit:t},i="all"){const s=new(T());let o="",r="",n="",a="",l="";if(t("applyPropertiesTypes"),"all"!==i){const t=structuredClone(e.links.links);t.features=t.features.filter((t=>e.links.selectedTrips.includes(t.properties.trip_id))),o=JSON.stringify(t);const i=t.features.map((e=>e.properties.a)),s=t.features.map((e=>e.properties.b)),c=Array.from(new Set([...i,...s])),d=structuredClone(e.links.nodes);d.features=d.features.filter((e=>c.includes(e.properties.index))),r=JSON.stringify(d),n=JSON.stringify(e.rlinks.visiblerLinks),a=JSON.stringify(e.rlinks.visiblerNodes),l=JSON.stringify(this.getters["od/visibleLayer"])}else o=JSON.stringify(e.links.links),r=JSON.stringify(e.links.nodes),n=JSON.stringify(e.rlinks.rlinks),a=JSON.stringify(e.rlinks.rnodes),l=JSON.stringify(this.getters["od/layer"]);if(JSON.parse(o).features.length>0){let e=new Blob([o],{type:"application/json"});s.file("inputs/pt/links.geojson",e),e=new Blob([r],{type:"application/json"}),s.file("inputs/pt/nodes.geojson",e)}if(JSON.parse(n).features.length>0){let e=new Blob([n],{type:"application/json"});s.file("inputs/road/road_links.geojson",e),e=new Blob([a],{type:"application/json"}),s.file("inputs/road/road_nodes.geojson",e)}if(JSON.parse(l).features.length>0){const e=new Blob([l],{type:"application/json"});s.file("inputs/od/od.geojson",e)}if("all"===i){if(!this.getters["run/parametersIsEmpty"]){const e=new Blob([JSON.stringify(this.getters["run/parameters"])],{type:"application/json"});s.file("inputs/params.json",e)}if(e.styles.length>0){const t=new Blob([JSON.stringify(e.styles)],{type:"application/json"});s.file("styles.json",t)}if('{"pt":{},"road":{"oneway":["0","1"]}}'!==JSON.stringify(e.attributesChoices)){const t=new Blob([JSON.stringify(e.attributesChoices)],{type:"application/json"});s.file("attributesChoices.json",t)}const t=Object.keys(this._modules.root._children).filter((e=>!["links","rlinks","od","results","run","user","runMRC","runOSM"].includes(e)));for(const e of t){const t=new Blob([JSON.stringify(this.getters[`${e}/layer`])],{type:"application/json"}),i=e+".geojson";if(s.file(i,t),this.getters[`${e}/mat`]){const t=new Blob([JSON.stringify(this.getters[`${e}/mat`])],{type:"application/json"}),i=e+".json";s.file(i,t)}}for(const t of e.otherFiles)if(null==t.content&&null!==e.user.model&&(t.content=await $.Z.readBytes(e.user.model,e.user.scenario+"/"+t.path)),t.content instanceof Uint8Array){const e=new Blob([t.content]);s.file(t.path,e)}else{const e=new Blob([JSON.stringify(t.content)],{type:"application/json"});s.file(t.path,e)}}s.generateAsync({type:"blob"}).then((function(t){R()(t,e.outputName+".zip")}))},async exportToS3({state:e,commit:t,dispatch:i},s){i("isTokenExpired"),this.commit("applyPropertiesTypes");const o=e.user.scenario+"/",r=e.user.model,n=o+"inputs/",a=n+"pt/",l=n+"road/",c=n+"od/",d={links:a+"links.geojson",nodes:a+"nodes.geojson",rlinks:l+"road_links.geojson",rnodes:l+"road_nodes.geojson",od:c+"od.geojson",params:o+"inputs/params.json",styles:o+"styles.json",attributesChoices:o+"attributesChoices.json"};if(e.run.parameters.length>0&&await $.Z.putObject(r,d.params,JSON.stringify(e.run.parameters)),e.styles.length>0&&await $.Z.putObject(r,d.styles,JSON.stringify(e.styles)),'{"pt":{},"road":{"oneway":["0","1"]}}'!==JSON.stringify(e.attributesChoices)&&await $.Z.putObject(r,d.attributesChoices,JSON.stringify(e.attributesChoices)),e.links.links.features.length>0?(await $.Z.putObject(r,d.links,JSON.stringify(e.links.links)),await $.Z.putObject(r,d.nodes,JSON.stringify(e.links.nodes))):$.Z.deleteFolder(r,a),e.rlinks.rlinks.features.length>0?(await $.Z.putObject(r,d.rlinks,JSON.stringify(e.rlinks.rlinks)),await $.Z.putObject(r,d.rnodes,JSON.stringify(e.rlinks.rnodes))):$.Z.deleteFolder(r,l),this.getters["od/layerIsEmpty"]?$.Z.deleteFolder(r,c):await $.Z.putObject(r,d.od,JSON.stringify(this.getters["od/layer"])),"inputs"!==s){const e=Object.keys(this._modules.root._children).filter((e=>!["links","rlinks","od","results","run","user","runMRC","runOSM"].includes(e)));for(const t of e){const e=t+".geojson";if(await $.Z.putObject(r,o+e,JSON.stringify(this.getters[`${t}/layer`])),this.getters[`${t}/mat`]){const e=t+".json";await $.Z.putObject(r,o+e,JSON.stringify(this.getters[`${t}/mat`]))}}}let p=e.otherFiles;"inputs"===s&&(p=p.filter((e=>!e.path.startsWith("outputs/"))));for(const e of p)null==e.content||(e.content instanceof Uint8Array?await $.Z.putObject(r,o+e.path,e.content):await $.Z.putObject(r,o+e.path,JSON.stringify(e.content)))},async deleteOutputsOnS3({state:e}){await $.Z.deleteFolder(e.user.model,e.user.scenario+"/outputs/")}},getters:{notification:e=>e.notification,alert:e=>e.alert,loading:e=>e.loading,mapCenter:e=>e.mapCenter,mapZoom:e=>e.mapZoom,windowHeight:e=>e.windowHeight,anchorMode:e=>e.anchorMode,showLeftPanel:e=>e.showLeftPanel,linksPopupContent:e=>e.linksPopupContent,roadsPopupContent:e=>e.roadsPopupContent,cyclewayMode:e=>e.cyclewayMode,outputName:e=>e.outputName,visibleRasters:e=>e.visibleRasters,styles:e=>e.styles,attributesChoices:e=>e.attributesChoices,otherFiles:e=>e.otherFiles,projectIsUndefined:e=>0===Object.keys(e.links.links).length,projectIsEmpty:e=>0===e.links.links.features.length&&0===e.rlinks.rlinks.features.length&&0===e.od.layer.features.length,availableLayers:e=>{let t=structuredClone(e.availableLayers);return 0===e.links.links.features.length&&(t=t.filter((e=>!["links","nodes"].includes(e)))),0===e.rlinks.rlinks.features.length&&(t=t.filter((e=>!["rlinks","rnodes"].includes(e)))),0===e.od.layer.features.length&&(t=t.filter((e=>!["od"].includes(e)))),t},mapStyle:e=>e.darkMode?"mapbox://styles/mapbox/dark-v11?optimize=true":"mapbox://styles/mapbox/light-v11?optimize=true"}})},65189:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC"},32179:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill-rule=%27evenodd%27 fill=%27%23fff%27%3E%3Cpath d=%27M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0%27/%3E%3C/svg%3E"},84026:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill-rule=%27evenodd%27%3E%3Cpath d=%27M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0%27/%3E%3C/svg%3E"},28469:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},45422:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},89387:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%2333b5e5%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27 display=%27none%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},81184:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%2333b5e5%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},60469:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23666%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 fill=%27%23f00%27/%3E%3C/svg%3E"},6437:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23999%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 fill=%27%23f00%27/%3E%3C/svg%3E"},52607:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23aaa%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 fill=%27%23f00%27/%3E%3C/svg%3E"},56621:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23e54e33%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27 display=%27none%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},55968:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23e58978%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},74414:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},45866:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E"},75363:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10.5 14l4-8 4 8h-8z%27/%3E%3Cpath id=%27south%27 d=%27M10.5 16l4 8 4-8h-8z%27 fill=%27%23ccc%27/%3E%3C/svg%3E"},95579:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E"},17378:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z%27/%3E%3C/svg%3E"},94933:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E"},97673:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E"},60661:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10.5 14l4-8 4 8h-8z%27/%3E%3Cpath id=%27south%27 d=%27M10.5 16l4 8 4-8h-8z%27 fill=%27%23ccc%27/%3E%3C/svg%3E"},51570:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E"},2931:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E"},76807:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E"},31652:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10.5 14l4-8 4 8h-8z%27/%3E%3Cpath id=%27south%27 d=%27M10.5 16l4 8 4-8h-8z%27 fill=%27%23999%27/%3E%3C/svg%3E"},80028:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E"},60551:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z%27/%3E%3C/svg%3E"},10323:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E"},40752:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z%27/%3E%3C/svg%3E"},26081:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27 viewBox=%270 0 88 23%27%3E%3Cdefs%3E%3Cpath id=%27logo%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27text%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27clip%27%3E%3Crect x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27 fill=%27white%27/%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/mask%3E%3Cg id=%27outline%27 opacity=%270.3%27 stroke=%27%23000%27 stroke-width=%273%27%3E%3Ccircle mask=%27url%28%23clip%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23text%27 mask=%27url%28%23clip%29%27/%3E%3C/g%3E%3Cg id=%27fill%27 opacity=%270.9%27 fill=%27%23fff%27%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/g%3E%3C/svg%3E"},4354:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27 viewBox=%270 0 88 23%27%3E%3Cdefs%3E%3Cpath id=%27logo%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27text%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27clip%27%3E%3Crect x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27 fill=%27white%27/%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/mask%3E%3Cg id=%27outline%27 opacity=%271%27 stroke=%27%23000%27 stroke-width=%273%27%3E%3Ccircle mask=%27url%28%23clip%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23text%27 mask=%27url%28%23clip%29%27/%3E%3C/g%3E%3Cg id=%27fill%27 opacity=%271%27 fill=%27%23fff%27%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/g%3E%3C/svg%3E"},45650:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27 viewBox=%270 0 88 23%27%3E%3Cdefs%3E%3Cpath id=%27logo%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27text%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27clip%27%3E%3Crect x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27 fill=%27white%27/%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/mask%3E%3Cg id=%27outline%27 opacity=%271%27 stroke=%27%23fff%27 stroke-width=%273%27 fill=%27%23fff%27%3E%3Ccircle mask=%27url%28%23clip%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23text%27 mask=%27url%28%23clip%29%27/%3E%3C/g%3E%3Cg id=%27fill%27 opacity=%271%27 fill=%27%23000%27%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/g%3E%3C/svg%3E"},22317:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAhCAYAAADOHBvaAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGzSURBVHgBvZcxUsJAFIbfe2gfb4A38AhQOJbijNZwA7TXIYW9R8BeHWjFQm7AEfQIaSw0ZNdNJoyE5CXvJcSv2tl98OfN7LebINTg9vV5QARTsBAYCzf3Z5dzUEJQA0J4cKGeG3bdeOq/zzxQog6+W7yM4sCtKS/6Xo9AiToYwU5yf0J4DkpUwf7bUw+y3SZYgF661k6wtTTk13ACClBa6DZQ14TRR1kNHXaO/P5FAALEHdvQVHZkftbXIEQeDLZXWYQ4lqolCi5QiEOslii4SCG2lmAoqasM5hQqiT6RqFUZbIHGoESiVqlOEoU4nFrHTq1Pdr3sxxKFONwDl6rFdhx3a8No5Y5D9c2TEqRdFx4obMdRaHoNQmO8sgOFDdYoxII4VAUrDowqupxaVDxpRYeABE6t3OZqohAHoe37p1fLzNxuUROFOIzFwe5cpuM2uk3JqZXpOFYI2iGnViZ4LwpxuLu6MHiPCnF422rR32B/CnFsq5VsLn8xOzEQreAf2KiVdGzBqO/cumxekbFFhTgStahFhTiSF0LqYKOrrxYdooDggB4RUf19Wxe3m5fwRfNfmmG2eRYZIh0AAAAASUVORK5CYII="},76215:(e,t,i)=>{"use strict";e.exports=i.p+"22e0b7e7900ef83b711e.png"},28022:()=>{},75042:()=>{},4147:e=>{"use strict";e.exports={i8:"4.10.2"}}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}a.m=r,a.amdD=function(){throw new Error("define cannot be used indirect")},a.amdO={},e=[],a.O=(t,i,s,o)=>{if(!i){var r=1/0;for(d=0;d=o)&&Object.keys(a.O).every((e=>a.O[e](i[l])))?i.splice(l--,1):(n=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[i,s,o]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},i=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(e,s){if(1&s&&(e=this(e)),8&s)return e;if("object"==typeof e&&e){if(4&s&&e.__esModule)return e;if(16&s&&"function"==typeof e.then)return e}var o=Object.create(null);a.r(o);var r={};t=t||[null,i({}),i([]),i(i)];for(var n=2&s&&e;"object"==typeof n&&!~t.indexOf(n);n=i(n))Object.getOwnPropertyNames(n).forEach((t=>r[t]=()=>e[t]));return r.default=()=>e,a.d(o,r),o},a.d=(e,t)=>{for(var i in t)a.o(t,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,i)=>(a.f[i](e,t),t)),[])),a.u=e=>e+".build.js",a.miniCssF=e=>{},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},o="quetzal-network-editor:",a.l=(e,t,i,r)=>{if(s[e])s[e].push(t);else{var n,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),d=0;d{n.onerror=n.onload=null,clearTimeout(h);var o=s[e];if(delete s[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach((e=>e(i))),t)return t(i)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),l&&document.head.appendChild(n)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="/quetzal-network-editor/",(()=>{a.b=document.baseURI||self.location.href;var e={179:0};a.f.j=(t,i)=>{var s=a.o(e,t)?e[t]:void 0;if(0!==s)if(s)i.push(s[2]);else{var o=new Promise(((i,o)=>s=e[t]=[i,o]));i.push(s[2]=o);var r=a.p+a.u(t),n=new Error;a.l(r,(i=>{if(a.o(e,t)&&(0!==(s=e[t])&&(e[t]=void 0),s)){var o=i&&("load"===i.type?"missing":i.type),r=i&&i.target&&i.target.src;n.message="Loading chunk "+t+" failed.\n("+o+": "+r+")",n.name="ChunkLoadError",n.type=o,n.request=r,s[1](n)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,i)=>{var s,o,[r,n,l]=i,c=0;if(r.some((t=>0!==e[t]))){for(s in n)a.o(n,s)&&(a.m[s]=n[s]);if(l)var d=l(a)}for(t&&t(i);ca(40114)));l=a.O(l)})(); +(()=>{var e,t,i,s,o,r={60069:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,'body{font-family:"Roboto",sans-serif;height:100vh}body::-webkit-scrollbar{display:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background-clip:padding-box;background-color:#9e9e9e;border-radius:8px}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:#2c3e4e;border-radius:8px}.v-application--wrap{flex-direction:row}.theme--light.v-application{color:#2c3e4e}.theme--light.v-icon{color:inherit !important}.theme--dark.v-label{color:#fff}.v-toolbar__content{display:flex;align-items:center;justify-content:space-between;height:100% !important;width:100%}.v-input__icon>i{font-size:14px !important;margin-right:10px}.v-navigation-drawer--fixed{z-index:200}.v-btn.primary>span{color:#2c3e4e !important}.v-snack__wrapper{margin:20px}.v-snack__content{color:#2c3e4e !important}.snackbar-error>.v-snack__wrapper{border-bottom:5px solid #e42626 !important}.snackbar-warning>.v-snack__wrapper{border-bottom:5px solid #ff7b30 !important}.snackbar-positive>.v-snack__wrapper{border-bottom:5px solid #4caf50 !important}.v-card__subtitle,.v-card__text,.v-card__title{padding:0}.v-card__title{line-height:normal}.mapboxgl-ctrl-bottom-right{right:10px;bottom:10px}.mapboxgl-popup-content{padding:10px;color:#fff;background-color:#2c3e4e}.mapboxgl-popup-tip{border-bottom-color:#2c3e4e !important;border-top-color:#2c3e4e !important}.mapboxgl-popup-close-button{right:20px;top:20px;font-size:1.5em}.mapboxgl-ctrl-attrib-inner>a{color:#2c3e4e !important}.view{padding:20px;height:calc(100% - 50px);width:100%;display:flex}.card{background-color:#fff;border-radius:5px;box-shadow:0px 5px 10px rgba(0,0,0,.05);padding:20px}.card-hover:hover{box-shadow:0px 5px 10px rgba(0,0,0,.1)}.list-enter-active,.list-leave-active{transition:all 1s}.list-enter,.list-leave-to{opacity:0;transform:translateX(300px)}.fade-leave-active{display:none !important}.fade-enter-active,.fade-leave-active{transition:opacity .5s}.fade-enter,.fade-leave-to{opacity:0 !important}',"",{version:3,sources:["webpack://./src/scss/generic.scss","webpack://./src/scss/variables.scss","webpack://./src/scss/vuetify.scss","webpack://./src/scss/mapboxgl.scss","webpack://./src/scss/util.scss","webpack://./src/scss/animations.scss"],names:[],mappings:"AAAA,KACE,+BAAA,CACA,YAAA,CAEF,wBACE,YAAA,CAEF,oBACE,SAAA,CAEF,0BACE,2BAAA,CACA,wBCJkB,CDKlB,iBAAA,CAEF,0BACE,2BAAA,CACA,wBCfkB,CDgBlB,iBAAA,CElBF,qBACE,kBAAA,CAEF,4BACE,aDFkB,CCIpB,qBACE,wBAAA,CAEF,qBACE,UAAA,CAEF,oBACE,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,sBAAA,CACA,UAAA,CAEF,iBACE,yBAAA,CACA,iBAAA,CAEF,4BACE,WAAA,CAEF,oBACE,wBAAA,CAEF,kBACE,WAAA,CAEF,kBACE,wBAAA,CAEF,kCACE,0CAAA,CAEF,oCACE,0CAAA,CAEF,qCACE,0CAAA,CAEF,+CACE,SAAA,CAEF,eACE,kBAAA,CChDF,4BACE,UAAA,CACA,WAAA,CAEF,wBACE,YAAA,CACA,UAAA,CACA,wBFLkB,CEOpB,oBACE,sCAAA,CACA,mCAAA,CAEF,6BACE,UAAA,CACA,QAAA,CACA,eAAA,CAEF,8BACE,wBAAA,CCnBF,MACE,YAAA,CACA,wBAAA,CACA,UAAA,CACA,YAAA,CAEF,MACE,qBAAA,CACA,iBAAA,CACA,uCAAA,CACA,YAAA,CAEF,kBACE,sCAAA,CCbF,sCACE,iBAAA,CAEF,2BACE,SAAA,CACA,2BAAA,CAEF,mBACE,uBAAA,CAEF,sCACE,sBAAA,CAEF,2BACE,oBAAA",sourcesContent:["body {\n font-family: 'Roboto', sans-serif;\n height: 100vh;\n}\nbody::-webkit-scrollbar {\n display: none;\n}\n::-webkit-scrollbar {\n width: 8px;\n}\n::-webkit-scrollbar-track {\n background-clip: padding-box;\n background-color: $grey-medium;\n border-radius: 8px;\n}\n::-webkit-scrollbar-thumb {\n background-clip: padding-box;\n background-color: $secondary;\n border-radius: 8px;\n}\n","$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;",".v-application--wrap {\n flex-direction: row;\n}\n.theme--light.v-application {\n color: $secondary;\n}\n.theme--light.v-icon {\n color: inherit !important;\n}\n.theme--dark.v-label {\n color: white;\n}\n.v-toolbar__content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 100% !important;\n width: 100%;\n}\n.v-input__icon > i {\n font-size: 14px !important;\n margin-right: 10px;\n}\n.v-navigation-drawer--fixed {\n z-index: 200;\n}\n.v-btn.primary > span {\n color: $secondary !important;\n}\n.v-snack__wrapper {\n margin: 20px;\n}\n.v-snack__content {\n color: $secondary !important;\n}\n.snackbar-error > .v-snack__wrapper {\n border-bottom: 5px solid $negative !important;\n}\n.snackbar-warning > .v-snack__wrapper {\n border-bottom: 5px solid $warning !important;\n}\n.snackbar-positive > .v-snack__wrapper {\n border-bottom: 5px solid $positive !important;\n}\n.v-card__subtitle, .v-card__text, .v-card__title {\n padding: 0;\n}\n.v-card__title {\n line-height: normal;\n}\n",".mapboxgl-ctrl-bottom-right {\n right: 10px;\n bottom: 10px;\n}\n.mapboxgl-popup-content {\n padding: 10px;\n color: white;\n background-color: $secondary;\n}\n.mapboxgl-popup-tip {\n border-bottom-color: $secondary !important;\n border-top-color: $secondary !important;\n}\n.mapboxgl-popup-close-button {\n right: 20px;\n top: 20px;\n font-size: 1.5em;\n}\n.mapboxgl-ctrl-attrib-inner > a {\n color: $secondary !important;\n}\n",".view {\n padding: 20px;\n height: calc(100% - 50px);\n width: 100%;\n display: flex;\n}\n.card {\n background-color: white;\n border-radius: 5px;\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.05);\n padding: 20px;\n}\n.card-hover:hover {\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.10);\n}\n",".list-enter-active, .list-leave-active {\n transition: all 1s;\n}\n.list-enter, .list-leave-to {\n opacity: 0;\n transform: translateX(300px);\n}\n.fade-leave-active {\n display: none !important;\n}\n.fade-enter-active, .fade-leave-active {\n transition: opacity 0.5s;\n}\n.fade-enter, .fade-leave-to {\n opacity: 0 !important;\n}\n"],sourceRoot:""}]);const a=n},28787:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".app[data-v-610ce914]{background-color:#f5f5f5 !important;width:100%;height:100%;overflow:hidden}.snackbar-text[data-v-610ce914]{color:var(--v-secondarydark-base)}.container[data-v-610ce914]{height:100%;margin-left:50px;width:calc(100% - 50px);max-width:calc(100% - 50px);padding:0}.container.login[data-v-610ce914]{margin-left:0;width:100%}","",{version:3,sources:["webpack://./src/App.vue"],names:[],mappings:"AAEA,sBACE,mCAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CAEF,gCACE,iCAAA,CAEF,4BACE,WAAA,CACA,gBAAA,CACA,uBAAA,CACA,2BAAA,CACA,SAAA,CAEF,kCACE,aAAA,CACA,UAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.app {\n background-color: $grey-ultralight !important;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n.snackbar-text{\n color:var(--v-secondarydark-base);\n}\n.container {\n height: 100%;\n margin-left: 50px;\n width: calc(100% - 50px);\n max-width: calc(100% - 50px);\n padding: 0;\n}\n.container.login {\n margin-left: 0;\n width: 100%;\n}\n'],sourceRoot:""}]);const a=n},56174:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".row[data-v-d3a53384]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding-bottom:30px;padding-top:18px}.container[data-v-d3a53384]{display:flex;flex-direction:row;justify-content:space-evenly;align-items:center;padding-left:2em;padding-right:2em}.type-icon[data-v-d3a53384]{padding-right:.2em}.element[data-v-d3a53384]{margin-left:auto}.check-icon[data-v-d3a53384]{padding-left:1em}.subtitle[data-v-d3a53384]{flex:2;font-size:1.5em;font-weight:bold}","",{version:3,sources:["webpack://./src/components/import/FileLoader.vue"],names:[],mappings:"AAGA,sBACE,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,mBAAA,CACA,gBAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,4BAAA,CACA,kBAAA,CACA,gBAAA,CACA,iBAAA,CAGF,4BACE,kBAAA,CAEF,0BACE,gBAAA,CAEF,6BACE,gBAAA,CAEF,2BACE,MAAA,CACA,eAAA,CACA,gBAAA",sourcesContent:['@import "@scss/variables.scss";\n\n\n.row{\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding-bottom: 30px;\n padding-top:18px;\n\n}\n.container{\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n align-items: center;\n padding-left: 2em;\n padding-right: 2em;\n\n}\n.type-icon{\n padding-right: 0.2em;\n}\n.element{\n margin-left: auto;\n}\n.check-icon{\n padding-left: 1em;\n}\n.subtitle {\n flex:2;\n font-size: 1.5em;\n font-weight: bold;\n}\n'],sourceRoot:""}]);const a=n},77697:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".files-container[data-v-e186d29a]{height:17rem;border-radius:5px;background:var(--v-background-lighten4);display:flex;margin:10px 0px 0px 0px;flex-direction:column}.title-box[data-v-e186d29a]{display:flex;flex-direction:row;background:var(--v-background-lighten3);border-radius:5px 5px 0px 0px;padding:.5rem .5rem .5rem 1rem}.title[data-v-e186d29a]{font-size:2em !important;font-weight:bold}.upload-button[data-v-e186d29a]{margin-left:auto;margin-right:.75rem}.list-button[data-v-e186d29a]{margin-left:auto;margin-right:1rem}.list-icon[data-v-e186d29a]{margin-left:.5rem}.list[data-v-e186d29a]{font-size:1em;font-weight:bold;overflow-y:auto;padding-left:1rem;padding-top:.5rem}.list li[data-v-e186d29a]{display:flex;align-items:center}","",{version:3,sources:["webpack://./src/components/import/FilesList.vue"],names:[],mappings:"AAEA,kCACE,YAAA,CACA,iBAAA,CACA,uCAAA,CACA,YAAA,CACA,uBAAA,CACA,qBAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,uCAAA,CAEA,6BAAA,CACA,8BAAA,CAGF,wBACE,wBAAA,CACA,gBAAA,CAEF,gCACE,gBAAA,CACA,mBAAA,CAEF,8BACE,gBAAA,CACA,iBAAA,CAEF,4BACE,iBAAA,CAEF,uBACE,aAAA,CACA,gBAAA,CAEA,eAAA,CACA,iBAAA,CACA,iBAAA,CAEF,0BAEE,YAAA,CACA,kBAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.files-container{\n height: 17rem;\n border-radius: 5px;\n background:var(--v-background-lighten4);\n display: flex;\n margin: 10px 0px 0px 00px;\n flex-direction: column;\n\n}\n.title-box {\n display: flex;\n flex-direction: row;\n background:var(--v-background-lighten3);\n\n border-radius: 5px 5px 0px 0px;\n padding: 0.5rem 0.5rem 0.5rem 1rem;\n\n}\n.title{\n font-size: 2em !important;\n font-weight: bold;\n}\n.upload-button {\n margin-left: auto;\n margin-right:0.75rem\n}\n.list-button{\n margin-left:auto;\n margin-right:1rem\n}\n.list-icon{\n margin-left:0.5rem\n}\n.list {\n font-size: 1em;\n font-weight: bold;\n //border: 1px solid red;\n overflow-y: auto;\n padding-left: 1rem;\n padding-top:0.5rem\n}\n.list li {\n /* Add individual list item styles here */\n display: flex; /* Use flexbox layout for each list item */\n align-items: center; /* Align button vertically in the list item */\n}\n\n'],sourceRoot:""}]);const a=n},5576:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".drawer[data-v-5b138161]{background-color:var(--v-secondary-base) !important}.drawer-header[data-v-5b138161]{width:100%;height:50px;border-bottom:1px solid #fff;background-color:var(--v-secondary-base);color:#fff;display:flex;align-items:center;padding-left:18px;cursor:pointer}.drawer-list[data-v-5b138161]{height:calc(100% - 50px);display:flex;flex-direction:column;padding:20px 0}.drawer-list-item[data-v-5b138161]{padding:0 13px !important;justify-content:flex-start !important;color:#fff;flex:0;transition:.3s}.version-number[data-v-5b138161]{justify-content:flex-start;color:#fff !important;margin-bottom:-1rem;flex:0}.drawer-list-item-icon[data-v-5b138161]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}.drawer-list-item-icon-disabled[data-v-5b138161]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;opacity:.4}.drawer-list-item-selected[data-v-5b138161]{background-color:var(--v-secondarydarkfix-base)}.drawer-list-item[data-v-5b138161]:hover{background-color:var(--v-secondary-base)}","",{version:3,sources:["webpack://./src/components/layout/NavigationDrawer.vue"],names:[],mappings:"AAEA,yBACE,mDAAA,CAEF,gCACE,UAAA,CACA,WAAA,CACA,4BAAA,CACA,wCAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,cAAA,CAEF,8BACE,wBAAA,CACA,YAAA,CAEA,qBAAA,CACA,cAAA,CAEF,mCACE,yBAAA,CACA,qCAAA,CACA,UAAA,CACA,MAAA,CACA,cAAA,CAEF,iCACE,0BAAA,CACA,qBAAA,CACA,mBAAA,CACA,MAAA,CAEF,wCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,iDACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,4CACE,+CAAA,CAEF,yCACE,wCAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.drawer {\n background-color: var(--v-secondary-base) !important;\n}\n.drawer-header {\n width: 100%;\n height: 50px;\n border-bottom: 1px solid white;\n background-color: var(--v-secondary-base);\n color: white;\n display: flex;\n align-items: center;\n padding-left: 18px;\n cursor: pointer;\n}\n.drawer-list {\n height: calc(100% - 50px);\n display: flex;\n\n flex-direction: column;\n padding: 20px 0;\n}\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n color:white ;\n flex: 0;\n transition: 0.3s;\n}\n.version-number {\n justify-content: flex-start ;\n color:white !important;\n margin-bottom:-1rem;\n flex: 0;\n}\n.drawer-list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n.drawer-list-item-icon-disabled {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n opacity: 0.4;\n}\n.drawer-list-item-selected {\n background-color: var(--v-secondarydarkfix-base);\n}\n.drawer-list-item:hover {\n background-color: var(--v-secondary-base);\n}\n'],sourceRoot:""}]);const a=n},48786:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".title[data-v-f577b33e]{font-size:1.2em;padding-left:1.2rem;color:var(--v-secondarydark-base)}.is-active[data-v-f577b33e]{opacity:1;background-color:var(--v-primary-base)}","",{version:3,sources:["webpack://./src/components/layout/ScenariosExplorer.vue"],names:[],mappings:"AAEA,wBACE,eAAA,CACA,mBAAA,CACA,iCAAA,CAEF,4BACE,SAAA,CACA,sCAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.title {\n font-size: 1.2em;\n padding-left: 1.2rem;\n color:var(--v-secondarydark-base);\n}\n.is-active{\n opacity:1;\n background-color:var(--v-primary-base);\n\n}\n'],sourceRoot:""}]);const a=n},56050:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".app-toolbar[data-v-4d444598]{z-index:100;height:50px !important;display:flex;color:#2c3e4e !important;position:relative}.login[data-v-4d444598]{padding-left:50px}.project-name[data-v-4d444598]{font-size:1.3em}.app-name[data-v-4d444598]{font-size:1.2em;padding-left:1.2rem;color:var(--v-secondarydark-base)}.copyright[data-v-4d444598]{font-size:.9rem;padding-left:5px;padding-top:1rem;color:var(--v-secondarydark-base)}.languages-container[data-v-4d444598]{display:flex}.switch[data-v-4d444598]{display:flex;padding-top:1rem;padding-left:1rem;align-items:center;justify-content:center;color:#e3e3e3;cursor:pointer}.language[data-v-4d444598]{width:50px;display:flex;align-items:center;justify-content:center;color:#e3e3e3;cursor:pointer;transition:.3s}.language.active[data-v-4d444598],.language[data-v-4d444598]:hover{color:var(--v-secondarydark-base)}.language[data-v-4d444598]:last-child{border-right:0}","",{version:3,sources:["webpack://./src/components/layout/Toolbar.vue","webpack://./src/scss/variables.scss"],names:[],mappings:"AAEA,8BACE,WAAA,CACA,sBAAA,CACA,YAAA,CACA,wBAAA,CACA,iBAAA,CAEF,wBACE,iBAAA,CAEF,+BACE,eAAA,CAEF,2BACE,eAAA,CACA,mBAAA,CACA,iCAAA,CAEF,4BACE,eAAA,CACA,gBAAA,CACA,gBAAA,CACA,iCAAA,CAEF,sCACE,YAAA,CAEF,yBACE,YAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,aC5BkB,CD6BlB,cAAA,CAEF,2BACE,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,aCpCkB,CDqClB,cAAA,CACA,cAAA,CAEF,mEACE,iCAAA,CAEF,sCACE,cAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.app-toolbar {\n z-index: 100;\n height: 50px !important;\n display: flex;\n color: $secondary !important;\n position: relative;\n}\n.login {\n padding-left: 50px;\n}\n.project-name {\n font-size: 1.3em;\n}\n.app-name {\n font-size: 1.2em;\n padding-left: 1.2rem;\n color:var(--v-secondarydark-base);\n}\n.copyright {\n font-size: 0.9rem;\n padding-left: 5px;\n padding-top: 1rem;\n color:var(--v-secondarydark-base);\n}\n.languages-container {\n display: flex;\n}\n.switch {\n display: flex;\n padding-top: 1rem;\n padding-left:1rem;\n align-items: center;\n justify-content: center;\n color: $grey-light;\n cursor: pointer;\n}\n.language {\n width: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $grey-light;\n cursor: pointer;\n transition: 0.3s;\n}\n.language.active, .language:hover {\n color:var(--v-secondarydark-base);\n}\n.language:last-child {\n border-right: 0;\n}\n',"$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;"],sourceRoot:""}]);const a=n},67308:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".left-panel[data-v-61e624f6]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-61e624f6]{transition:.3s}.left-panel-content[data-v-61e624f6]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-61e624f6]{padding:0}.left-panel-toggle-btn[data-v-61e624f6]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-61e624f6]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-61e624f6]{height:height;padding-left:20px}.scrollable[data-v-61e624f6]{overflow-y:scroll}.drawer-list-item[data-v-61e624f6]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-61e624f6]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}.custom-tooltip[data-v-61e624f6]{opacity:1 !important;background:var(--v-tooltip-bg, rgb(97, 97, 97)) !important}","",{version:3,sources:["webpack://./src/components/map/LinksSidePanel.vue","webpack://./src/scss/variables.scss"],names:[],mappings:"AAGA,6BACE,WAAA,CACA,wBCJkB,CDKlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC/BkB,CDgClB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,iCACI,oBAAA,CACA,0DAAA",sourcesContent:['@import "@scss/variables.scss";\n\n@import "src/scss/variables.scss";\n.left-panel {\n height: 100%;\n background-color: $primary-dark;\n transition: 0.3s;\n position: absolute;\n display:flex;\n z-index: 20;\n\n}\n.left-panel-close {\ntransition:0.3s\n}\n.left-panel-content {\n display:inline-block;\n width : 100%;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n //resize: horizontal;\n overflow: auto;\n\n}\n.v-list__tile {\n padding: 0\n}\n.left-panel-toggle-btn {\n left: 100%;\n width: 25px;\n z-index: 1;\n background-color: $primary-dark;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n height: 50px;\n transition: 0.3s;\n cursor: pointer;\n}\n.left-panel-title {\n height: 50px;\n line-height: 55px;\n padding-left: 20px;\n font-size: 1.1em;\n margin-bottom: 10px;\n}\n.trip-list {\n height: height;\n padding-left:20px\n}\n\n.scrollable {\n overflow-y:scroll;\n\n}\n\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n flex: 0;\n transition: 0.3s;\n}\n\n.list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n.custom-tooltip {\n opacity: 1!important;\n background: var(--v-tooltip-bg, rgba(97, 97, 97, 1)) !important;\n}\n\n',"$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;"],sourceRoot:""}]);const a=n},76278:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".map-view[data-v-66748ace]{width:100%}.my-custom-dialog[data-v-66748ace]{position:absolute !important;top:10px !important;right:20px !important}","",{version:3,sources:["webpack://./src/components/map/Map.vue"],names:[],mappings:"AAEA,2BACE,UAAA,CAGF,mCACE,4BAAA,CACA,mBAAA,CACA,qBAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.map-view {\n width: 100%;\n\n}\n.my-custom-dialog {\n position: absolute !important;\n top: 10px !important;\n right: 20px !important;\n}\n'],sourceRoot:""}]);const a=n},55271:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".left-panel[data-v-56780b52]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-56780b52]{transition:.3s}.left-panel-content[data-v-56780b52]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-56780b52]{padding:0}.left-panel-toggle-btn[data-v-56780b52]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-56780b52]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-56780b52]{height:height;padding-left:20px}.scrollable[data-v-56780b52]{overflow-y:scroll}.drawer-list-item[data-v-56780b52]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-56780b52]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}","",{version:3,sources:["webpack://./src/components/map/ODSidePanel.vue","webpack://./src/scss/variables.scss"],names:[],mappings:"AAEA,6BACE,WAAA,CACA,wBCHkB,CDIlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC9BkB,CD+BlB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.left-panel {\n height: 100%;\n background-color: $primary-dark;\n transition: 0.3s;\n position: absolute;\n display:flex;\n z-index: 20;\n\n}\n.left-panel-close {\ntransition:0.3s\n}\n.left-panel-content {\n display:inline-block;\n width : 100%;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n //resize: horizontal;\n overflow: auto;\n\n}\n.v-list__tile {\n padding: 0\n}\n.left-panel-toggle-btn {\n left: 100%;\n width: 25px;\n z-index: 1;\n background-color: $primary-dark;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n height: 50px;\n transition: 0.3s;\n cursor: pointer;\n}\n.left-panel-title {\n height: 50px;\n line-height: 55px;\n padding-left: 20px;\n font-size: 1.1em;\n margin-bottom: 10px;\n}\n.trip-list {\n height: height;\n padding-left:20px\n}\n\n.scrollable {\n overflow-y:scroll;\n\n}\n\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n flex: 0;\n transition: 0.3s;\n}\n\n.list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n\n',"$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;"],sourceRoot:""}]);const a=n},82215:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".left-panel[data-v-0e528228]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-0e528228]{transition:.3s}.left-panel-content[data-v-0e528228]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-0e528228]{padding:0}.left-panel-toggle-btn[data-v-0e528228]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-0e528228]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-0e528228]{height:height;padding-left:20px}.scrollable[data-v-0e528228]{overflow-y:scroll}.drawer-list-item[data-v-0e528228]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-0e528228]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}","",{version:3,sources:["webpack://./src/components/map/RoadSidePanel.vue","webpack://./src/scss/variables.scss"],names:[],mappings:"AAEA,6BACE,WAAA,CACA,wBCHkB,CDIlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC9BkB,CD+BlB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.left-panel {\n height: 100%;\n background-color: $primary-dark;\n transition: 0.3s;\n position: absolute;\n display:flex;\n z-index: 20;\n\n}\n.left-panel-close {\ntransition:0.3s\n}\n.left-panel-content {\n display:inline-block;\n width : 100%;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n //resize: horizontal;\n overflow: auto;\n\n}\n.v-list__tile {\n padding: 0\n}\n.left-panel-toggle-btn {\n left: 100%;\n width: 25px;\n z-index: 1;\n background-color: $primary-dark;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n height: 50px;\n transition: 0.3s;\n cursor: pointer;\n}\n.left-panel-title {\n height: 50px;\n line-height: 55px;\n padding-left: 20px;\n font-size: 1.1em;\n margin-bottom: 10px;\n}\n.trip-list {\n height: height;\n padding-left:20px\n}\n\n.scrollable {\n overflow-y:scroll;\n\n}\n\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n flex: 0;\n transition: 0.3s;\n}\n\n.list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n\n',"$primary : #B5E0D6;\n$primary-dark : #7EBAAC;\n$secondary : #2C3E4E;\n$secondary-dark : #0F1C27;\n$secondary-light : #334453;\n\n$grey-ultralight : #F5F5F5;\n$grey-light : #E3E3E3;\n$grey-medium : #9E9E9E;\n$grey-dark : #5B5B5B;\n\n$negative : #E42626;\n$warning : #FF7B30;\n$positive : #4CAF50;\n\n$chart-lightgreen : #CDDC39;\n$chart-darkgreen : #4CAF50;\n$chart-lightblue : #00BCD4;\n$chart-darkblue : #2196F3;\n$chart-purple : #673AB7;\n$chart-pink : #E91E63;\n$chart-orange : #FF7B30;\n$chart-yellow : #FFC107;\n\n$list-item-padding : 0px;"],sourceRoot:""}]);const a=n},5236:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".setting[data-v-6c428464]{position:absolute;top:10px;right:20px}.layout[data-v-6c428464]{position:absolute;width:100%;height:calc(100% - 50px);display:flex;flex-flow:row;justify-content:center;align-items:center}.layout-overlay[data-v-6c428464]{height:100%;width:100%;background-color:rgba(0,0,0,.5);position:absolute}.card[data-v-6c428464]{width:500px;overflow-y:auto;padding:40px}.title[data-v-6c428464]{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3.5em;color:#b5e0d6 !important;font-weight:bold}.subtitle[data-v-6c428464]{font-size:2em;color:var(--v-secondarydark-base) !important;font-weight:bold;padding:1rem}.card button[data-v-6c428464]{margin-top:40px}.shake[data-v-6c428464]{animation:shake-6c428464 .5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;transform:translate3d(0, 0, 0)}@keyframes shake-6c428464{10%,90%{transform:translate3d(-1px, 0, 0)}20%,80%{transform:translate3d(2px, 0, 0)}30%,50%,70%{transform:translate3d(-4px, 0, 0)}40%,60%{transform:translate3d(4px, 0, 0)}}","",{version:3,sources:["webpack://./src/components/map/Settings.vue"],names:[],mappings:"AAEA,0BACE,iBAAA,CACA,QAAA,CACA,UAAA,CAGF,yBACE,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,YAAA,CACA,aAAA,CACA,sBAAA,CACA,kBAAA,CAEF,iCACE,WAAA,CACA,UAAA,CACA,+BAAA,CACA,iBAAA,CAEF,uBACE,WAAA,CACA,eAAA,CACA,YAAA,CAEF,wBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CAEF,2BACE,aAAA,CACA,4CAAA,CACA,gBAAA,CACA,YAAA,CAGF,8BACE,eAAA,CAEF,wBACE,sEAAA,CACA,8BAAA,CAEF,0BACE,QACE,iCAAA,CAEF,QACE,gCAAA,CAEF,YACE,iCAAA,CAEF,QACE,gCAAA,CAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.setting {\n position: absolute;\n top: 10px;\n right: 20px;\n}\n\n.layout {\n position: absolute;\n width: calc(100%);\n height: calc(100% - 50px);\n display: flex;\n flex-flow: row;\n justify-content: center;\n align-items: center;\n}\n.layout-overlay {\n height: 100%;\n width: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n position: absolute;\n}\n.card {\n width: 500px;\n overflow-y: auto;\n padding: 40px;\n}\n.title {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 3.5em;\n color: $primary !important;\n font-weight: bold;\n}\n.subtitle {\n font-size: 2em;\n color: var(--v-secondarydark-base) !important;\n font-weight: bold;\n padding:1rem\n\n}\n.card button {\n margin-top: 40px;\n}\n.shake {\n animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;\n transform: translate3d(0, 0, 0);\n}\n@keyframes shake {\n 10%, 90% {\n transform: translate3d(-1px, 0, 0);\n }\n 20%, 80% {\n transform: translate3d(2px, 0, 0);\n }\n 30%, 50%, 70% {\n transform: translate3d(-4px, 0, 0);\n }\n 40%, 60% {\n transform: translate3d(4px, 0, 0);\n }\n}\n'],sourceRoot:""}]);const a=n},13719:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".left-panel[data-v-5064ebfe]{height:100%;background-color:var(--v-primarydark-base);transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-5064ebfe]{transition:.3s}.left-panel-content[data-v-5064ebfe]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-5064ebfe]{padding:0}.left-panel-toggle-btn[data-v-5064ebfe]{left:100%;width:25px;z-index:1;background-color:var(--v-primarydark-base);display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-5064ebfe]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-5064ebfe]{height:height;padding-left:20px}.scrollable[data-v-5064ebfe]{overflow-y:scroll}.drawer-list-item[data-v-5064ebfe]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-5064ebfe]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}","",{version:3,sources:["webpack://./src/components/map/SidePanel.vue"],names:[],mappings:"AAEA,6BACE,WAAA,CACA,0CAAA,CACA,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,0CAAA,CACA,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.left-panel {\n height: 100%;\n background-color:var(--v-primarydark-base);\n transition: 0.3s;\n position: absolute;\n display:flex;\n z-index: 20;\n\n}\n.left-panel-close {\ntransition:0.3s\n}\n.left-panel-content {\n display:inline-block;\n width : 100%;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n //resize: horizontal;\n overflow: auto;\n\n}\n.v-list__tile {\n padding: 0\n}\n.left-panel-toggle-btn {\n left: 100%;\n width: 25px;\n z-index: 1;\n background-color: var(--v-primarydark-base);\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n height: 50px;\n transition: 0.3s;\n cursor: pointer;\n}\n.left-panel-title {\n height: 50px;\n line-height: 55px;\n padding-left: 20px;\n font-size: 1.1em;\n margin-bottom: 10px;\n}\n.trip-list {\n height: height;\n padding-left:20px\n}\n\n.scrollable {\n overflow-y:scroll;\n\n}\n\n.drawer-list-item {\n padding: 0 13px !important;\n justify-content: flex-start !important;\n flex: 0;\n transition: 0.3s;\n}\n\n.list-item-icon {\n display: flex !important;\n flex-flow: row !important;\n justify-content: center !important;\n margin: 0 !important;\n color: white;\n}\n\n'],sourceRoot:""}]);const a=n},93380:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".layer-button[data-v-9ae88e1e]{position:absolute;top:60px;right:20px}.card[data-v-9ae88e1e]{width:500px;overflow-y:auto;padding:40px}.subtitle[data-v-9ae88e1e]{font-size:1.5em;color:var(--v-secondarydark-base) !important;font-weight:bold;padding:1rem}.title[data-v-9ae88e1e]{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3.5em;color:#b5e0d6 !important;font-weight:bold}.custom-tooltip[data-v-9ae88e1e]{opacity:1 !important;background:var(--v-tooltip-bg, rgb(97, 97, 97)) !important}","",{version:3,sources:["webpack://./src/components/utils/LayerSelector.vue"],names:[],mappings:"AAEA,+BACE,iBAAA,CACA,QAAA,CACA,UAAA,CAEF,uBACE,WAAA,CACA,eAAA,CACA,YAAA,CAEF,2BACE,eAAA,CACA,4CAAA,CACA,gBAAA,CACA,YAAA,CAGF,wBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CAEF,iCACI,oBAAA,CACA,0DAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.layer-button {\n position: absolute;\n top: 60px;\n right: 20px;\n}\n.card {\n width: 500px;\n overflow-y: auto;\n padding: 40px;\n}\n.subtitle {\n font-size: 1.5em;\n color: var(--v-secondarydark-base) !important;\n font-weight: bold;\n padding:1rem\n\n}\n.title {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 3.5em;\n color: $primary !important;\n font-weight: bold;\n}\n.custom-tooltip {\n opacity: 1!important;\n background: var(--v-tooltip-bg, rgba(97, 97, 97, 1)) !important;\n}\n'],sourceRoot:""}]);const a=n},37858:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".gradient[data-v-0de46ea8]{width:85%;white-space:nowrap;position:relative;display:inline-block;padding-top:20px;padding-bottom:15px}.gradient .domain-title[data-v-0de46ea8]{position:absolute;right:25%;left:25%;text-align:center;font-size:11px;top:6px}.gradient .domain-min[data-v-0de46ea8]{position:absolute;left:0;font-size:11px;bottom:5px}.gradient .domain-med[data-v-0de46ea8]{position:absolute;right:25%;left:25%;text-align:center;font-size:11px;bottom:5px}.gradient .domain-max[data-v-0de46ea8]{position:absolute;right:0;font-size:11px;bottom:5px}.grad-step[data-v-0de46ea8]{display:inline-block;height:20px;width:1%}.legend[data-v-0de46ea8]{width:160px;z-index:3;display:flex;position:relative;align-items:center;justify-content:center;transition:.3s;height:50px;background-color:var(--v-white-base);border:thin solid var(--v-mediumgrey-base)}","",{version:3,sources:["webpack://./src/components/utils/MapLegend.vue"],names:[],mappings:"AAGA,2BACI,SAAA,CACA,kBAAA,CACA,iBAAA,CACA,oBAAA,CACA,gBAAA,CACA,mBAAA,CAIJ,yCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CACA,cAAA,CACA,OAAA,CAIJ,uCACI,iBAAA,CACA,MAAA,CACA,cAAA,CACA,UAAA,CAEJ,uCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CACA,cAAA,CACA,UAAA,CAEJ,uCACI,iBAAA,CACA,OAAA,CACA,cAAA,CACA,UAAA,CAGJ,4BACI,oBAAA,CACA,WAAA,CACA,QAAA,CAGJ,yBACE,WAAA,CACA,SAAA,CACA,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,WAAA,CACA,oCAAA,CACA,0CAAA",sourcesContent:['@import "@scss/variables.scss";\n\n\n.gradient {\n width: 85%;\n white-space: nowrap;\n position: relative;\n display: inline-block;\n padding-top: 20px;\n padding-bottom: 15px;\n\n}\n\n.gradient .domain-title {\n position: absolute;\n right: 25%;\n left: 25%;\n text-align: center;\n font-size: 11px;\n top: 6px;\n\n}\n\n.gradient .domain-min {\n position: absolute;\n left: 0;\n font-size: 11px;\n bottom: 5px;\n}\n.gradient .domain-med {\n position: absolute;\n right: 25%;\n left: 25%;\n text-align: center;\n font-size: 11px;\n bottom: 5px;\n}\n.gradient .domain-max {\n position: absolute;\n right: 0;\n font-size: 11px;\n bottom: 5px;\n}\n\n.grad-step {\n display: inline-block;\n height: 20px;\n width: 1%;\n}\n\n.legend {\n width: 160px;\n z-index: 3;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n transition: 0.3s;\n height: 50px;\n background-color: var(--v-white-base);\n border: thin solid var(--v-mediumgrey-base);\n}\n\n'],sourceRoot:""}]);const a=n},79922:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".is-active[data-v-e63b0890]{opacity:1;background-color:var(--v-primary-base)}","",{version:3,sources:["webpack://./src/components/utils/MenuSelector.vue"],names:[],mappings:"AAEA,4BACE,SAAA,CACA,sCAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.is-active{\n opacity:1;\n background-color:var(--v-primary-base);\n\n}\n'],sourceRoot:""}]);const a=n},98210:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".map-legend[data-v-7dc7a5bf]{height:100%;position:absolute}","",{version:3,sources:["webpack://./src/components/utils/StaticLayer.vue"],names:[],mappings:"AAEA,6BACE,WAAA,CACA,iBAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.map-legend {\n height: 100%;\n position: absolute;\n}\n'],sourceRoot:""}]);const a=n},8043:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".map-view[data-v-00b02151]{height:calc(100% - 50px);width:100%;display:flex}","",{version:3,sources:["webpack://./src/pages/Home.vue"],names:[],mappings:"AAEA,2BACE,wBAAA,CACA,UAAA,CACA,YAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.map-view {\n height: calc(100% - 50px);\n width: 100%;\n display: flex;\n}\n\n'],sourceRoot:""}]);const a=n},58141:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var s=i(87537),o=i.n(s),r=i(23645),n=i.n(r)()(o());n.push([e.id,".layout[data-v-020024f7]{position:absolute;width:100%;height:calc(100% - 50px);display:flex;flex-flow:row;justify-content:center;align-items:center}.layout-overlay[data-v-020024f7]{height:100%;width:100%;background-color:var(--v-background-base);position:absolute}.card[data-v-020024f7]{width:80rem;overflow-y:hidden;padding:20px}.button-question[data-v-020024f7]{display:flex;align-items:center}.title[data-v-020024f7]{display:flex;align-items:center;justify-content:center;font-size:2em !important;color:var(--v-primary-base);font-weight:bold;margin-top:18px}.subtitle[data-v-020024f7]{font-size:1.5em;font-weight:bold;margin:20px}.card button[data-v-020024f7]{margin:.5rem}.animate-login[data-v-020024f7]{transform:translateY(-185%);transition:1s}.animate-layer[data-v-020024f7]{opacity:0;transition:1s}.button-row[data-v-020024f7]{display:flex;align-items:center;justify-content:center;margin-top:1rem;padding-top:.5rem;border-top:1px solid var(--v-lightgrey-base)}","",{version:3,sources:["webpack://./src/pages/Import.vue"],names:[],mappings:"AAEA,yBACE,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,YAAA,CACA,aAAA,CACA,sBAAA,CACA,kBAAA,CAGF,iCACE,WAAA,CACA,UAAA,CACA,yCAAA,CAEA,iBAAA,CAEF,uBACE,WAAA,CACA,iBAAA,CACA,YAAA,CAEF,kCACE,YAAA,CACA,kBAAA,CAGF,wBACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,wBAAA,CACA,2BAAA,CACA,gBAAA,CACA,eAAA,CAEF,2BACE,eAAA,CACA,gBAAA,CACA,WAAA,CAEF,8BACE,YAAA,CAEF,gCACE,2BAAA,CACA,aAAA,CAEF,gCACE,SAAA,CACA,aAAA,CAEF,6BACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CACA,4CAAA",sourcesContent:['@import "@scss/variables.scss";\n\n.layout {\n position: absolute;\n width: calc(100%);\n height: calc(100% - 50px);\n display: flex;\n flex-flow: row;\n justify-content: center;\n align-items: center;\n}\n\n.layout-overlay {\n height: 100%;\n width: 100%;\n background-color:var(--v-background-base);\n\n position: absolute;\n}\n.card {\n width:80rem;\n overflow-y:hidden;\n padding: 20px;\n}\n.button-question{\n display: flex;\n align-items: center ;\n\n}\n.title {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2em !important;\n color: var(--v-primary-base);\n font-weight: bold;\n margin-top:18px;\n}\n.subtitle {\n font-size: 1.5em;\n font-weight: bold;\n margin: 20px;\n}\n.card button {\n margin: 0.5rem;\n}\n.animate-login {\n transform: translateY(-185%);\n transition: 1s;\n}\n.animate-layer {\n opacity: 0;\n transition: 1s;\n}\n.button-row{\n display: flex;\n align-items: center;\n justify-content:center;\n margin-top : 1rem;\n padding-top:0.5rem;\n border-top: 1px solid var(--v-lightgrey-base);\n}\n\n'],sourceRoot:""}]);const a=n},75997:(e,t,i)=>{"use strict";i.d(t,{Z:()=>s});const s={type:"FeatureCollection",crs:{type:"name",properties:{name:"urn:ogc:def:crs:OGC:1.3:CRS84"}},features:[]}},34221:(e,t,i)=>{"use strict";i.d(t,{Z:()=>s});const s={type:"FeatureCollection",crs:{type:"name",properties:{name:"urn:ogc:def:crs:OGC:1.3:CRS84"}},features:[]}},25286:(e,t,i)=>{"use strict";i.d(t,{Z:()=>y});var s=function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:!isNaN(e.displaySettings.minVal)&&!isNaN(e.displaySettings.minVal),expression:"!isNaN(displaySettings.minVal) && !isNaN(displaySettings.minVal)"}],staticClass:"legend elevation-4",style:{top:`${e.windowHeight}px`,left:`${e.leftOffset}px !important`}},[t("div",{staticClass:"gradient"},[e._l(e.colorScale,(function(e,i){return t("span",{key:i,staticClass:"grad-step",style:{backgroundColor:e}})})),e._v(" "),t("span",{staticClass:"domain-title"},[e._v(e._s(e.displaySettings.selectedFeature))]),e._v(" "),t("span",{staticClass:"domain-min"},[e._v(e._s(Math.round(e.displaySettings.minVal)))]),e._v(" "),t("span",{staticClass:"domain-med"},[e._v(e._s(Math.round((e.displaySettings.maxVal+e.displaySettings.minVal)/2)))]),e._v(" "),t("span",{staticClass:"domain-max"},[e._v(e._s(Math.round(e.displaySettings.maxVal)))])],2)])};s._withStripped=!0;const o={name:"MapLegend",components:{},props:{colorScale:{type:Array,default:()=>[]},displaySettings:{type:Object,default:()=>{}},baseOffset:{type:Number,default:()=>300},order:{type:Number,default:()=>0}},data:()=>({}),computed:{windowHeight(){return this.$store.getters.windowHeight-70},leftOffset(){return this.$store.getters.showLeftPanel?50+180*this.order+this.baseOffset:50+180*this.order}}};var r=i(93379),n=i.n(r),a=i(7795),l=i.n(a),c=i(90569),d=i.n(c),p=i(3565),u=i.n(p),h=i(19216),m=i.n(h),g=i(44589),f=i.n(g),A=i(37858),v={};v.styleTagTransform=f(),v.setAttributes=u(),v.insert=d().bind(null,"head"),v.domAPI=l(),v.insertStyleElement=m(),n()(A.Z,v),A.Z&&A.Z.locals&&A.Z.locals;const y=(0,i(51900).Z)(o,s,[],!1,null,"0de46ea8",null).exports},60887:(e,t,i)=>{"use strict";i.d(t,{Z:()=>u});var s=i(75720),o=i(98690),r=i.n(o),n=i(55733),a=i.n(n),l=i(93162),c=i.n(l);const d="ca-central-1";r().config.region=d;const p=new(r().S3)({apiVersion:"2006-03-01",signatureVersion:"v4",params:{region:d}}),u={s3:p,async login(){r().config.region=d,r().config.credentials=new(r().CognitoIdentityCredentials)({IdentityPoolId:"ca-central-1:b6298c0d-1089-4287-8770-4e9803847671",Logins:{[`cognito-idp.${d}.amazonaws.com/ca-central-1_eUXoawQ4Q`]:s.h.getters.idToken}}),p.config.credentials=r().config.credentials,await this.getBucketList()},getScenario:async function(e){const t={Bucket:e};let i=!0;const o=[];try{for(;i;){const{Contents:e,IsTruncated:s,NextContinuationToken:r}=await p.listObjectsV2(t).promise();o.push(...e),i=s,t.ContinuationToken=r}}catch(e){return[]}const r=Array.from(new Set(o.map((e=>e.Key.split("/")[0])))),n=[];for(const t of r){const i=o.filter((e=>e.Key.startsWith(t))),r=i.filter((e=>e.Key.startsWith(t+"/.lock"))).length>0||"base"===t,a=i.reduce(((e,t)=>e.LastModified>t.LastModified?e:t),[]),l=a.LastModified.toLocaleDateString()+" "+a.LastModified.toLocaleTimeString();let c;try{const t=await p.headObject({Bucket:e,Key:a.Key}).promise();c=t.Metadata.user_email?t.Metadata.user_email:"idns-canada@systra.com"}catch(e){s.h.commit("changeAlert",e)}n.push({model:e,scenario:t,lastModified:l,userEmail:c,protected:r})}return n},readJson:async function(e,t){const i={Bucket:e,Key:t,ResponseCacheControl:"no-cache"},s=await p.getObject(i).promise();return JSON.parse(new TextDecoder("utf-8").decode(s.Body).trim())},readBytes:async function(e,t){const i={Bucket:e,Key:t,ResponseCacheControl:"no-cache"};return(await p.getObject(i).promise()).Body},getBucketList:async function(){try{const e=await this.readJson("quetzal-config","cognito_group_access.json");s.h.commit("setBucketList",e[s.h.getters.cognitoGroup])}catch(e){s.h.commit("changeAlert",e)}},listFiles:async function(e,t){if(Array.isArray(t)){const i=[];return t.forEach((async s=>{const o={Bucket:e,Prefix:t},r=await p.listObjectsV2(o).promise();i.push(...r.Contents.map((e=>e.Key)))})),i}{const i={Bucket:e,Prefix:t};return(await p.listObjectsV2(i).promise()).Contents.map((e=>e.Key))}},copyFolder:async function(e,t,i){const s={Bucket:e,Prefix:t},o=await p.listObjectsV2(s).promise();if(o.Contents=o.Contents.filter((e=>e.Key!==t+"/.lock")),0===o.Contents.length)throw new Error("no params.json in base scenario");for(const t of o.Contents){let s=t.Key.split("/");s[0]=i,s=s.join("/");let o=t.Key.split("/");o[0]=encodeURIComponent(o[0]),o=o.join("/");const r={Bucket:e,CopySource:e+"/"+o,Key:s};p.copyObject(r,(function(e,t){if(e)return e}))}},deleteFolder:async function(e,t){const i={Bucket:e,Prefix:t},s=await p.listObjectsV2(i).promise(),o=[];if(s.Contents.length>0){s.Contents.forEach((e=>o.push({Key:e.Key})));const t={Bucket:e,Delete:{Objects:o}};return p.deleteObjects(t).promise()}},createFolder:async function(e,t){"/"!==t.slice(-1)&&(t+="/");const i={Bucket:e,Key:t,Body:""};p.upload(i,(function(e,t){e?s.h.commit("changeAlert",e):console.log("Successfully created a folder on S3")}))},putObject:async function(e,t,i=""){const o={Bucket:e,Key:t,Body:i,Metadata:{user_email:s.h.getters.cognitoInfo.email},ContentType:" application/json"};return await p.putObject(o).promise()},putBytes:async function(e,t,i=""){const o={Bucket:e,Key:t,Body:i,Metadata:{user_email:s.h.getters.cognitoInfo.email}};return await p.putObject(o).promise()},getImagesURL:async function(e,t){return p.getSignedUrl("getObject",{Bucket:e,Key:t,Expires:100})},downloadFolder:async function(e,t){const i=new(a()),s={Bucket:e,Prefix:t},o=await p.listObjectsV2(s).promise();if(0===o.Contents.length)throw new Error("no params.json in base scenario");for(const t of o.Contents){const s=t.Key.split("/").slice(-1)[0],o={Bucket:e,Key:t.Key,ResponseCacheControl:"no-cache"},r=await p.getObject(o).promise();i.file(s,r.Body)}i.generateAsync({type:"blob"}).then((function(e){c()(e,"example.zip")}))},newScenario:async function(e,t,i){const s=[t+"/inputs/params.json",t+"/styles.json",t+"/attributesChoices.json"],o={Bucket:e,Prefix:t},r=await p.listObjectsV2(o).promise();if(r.Contents=r.Contents.filter((e=>s.includes(e.Key))),0===r.Contents.length)throw new Error("Nothing to copy in base scenario (params.json at least)");for(const t of r.Contents){let s=t.Key.split("/");s[0]=i,s=s.join("/");let o=t.Key.split("/");o[0]=encodeURIComponent(o[0]),o=o.join("/");const r={Bucket:e,CopySource:e+"/"+o,Key:s};p.copyObject(r,(function(e,t){if(e)return e}))}}}},36648:(e,t,i)=>{"use strict";i.d(t,{Z:()=>d});var s=i(24084),o=i(4644),r=i(75720),n=i(96245);const a="ca-central-1:b6298c0d-1089-4287-8770-4e9803847671",l=new s.BZ({ClientId:"4ogc4cfai1flu81djcmgf08n0c",AppWebDomain:"quetzal.auth.ca-central-1.amazoncognito.com",TokenScopesArray:["openid"],RedirectUriSignIn:"https://systragroup.github.io/quetzal-network-editor/callback",RedirectUriSignOut:"https://systragroup.github.io/quetzal-network-editor/signout",UserPoolId:"ca-central-1_eUXoawQ4Q"});l.userhandler={onSuccess:function(e){const t=e.getIdToken().jwtToken,i=(0,n.Z)(t);r.h.commit("setIdToken",t),r.h.commit("setAccessToken",e.accessToken),r.h.commit("setCognitoInfo",i),r.h.commit("setLoggedIn",!0),Object.keys(i).includes("cognito:groups")&&r.h.commit("setCognitoGroup",i["cognito:groups"][0])},onFailure:function(e){r.h.commit("setLoggedOut"),alert("Login failed due to "+e),o.Z.go({path:"/error",query:{message:"Login failed due to "+e}})}};const c=(new s.c4).getStorage(),d={auth:l,login(){l.getSession()},logout(){console.log(l.isUserSignedIn()),l.isUserSignedIn()?(this.getCognitoStorageKey().forEach((e=>c.removeItem(e))),l.signOut()):l.signOut()},getCognitoStorageKey:function(){const e="CognitoIdentityServiceProvider."+l.getClientId(),t=l.signInUserSession.getAccessToken().getUsername(),i=[".userInfo",".tokenScopesString",".accessToken",".idToken",".refreshToken"].map((i=>e+"."+t+i));return i.push(e+".LastAuthUser"),i.push(`aws.cognito.identity-id.${a}`),i.push(`aws.cognito.identity-providers.${a}`),i}}},72055:(e,t,i)=>{"use strict";i.d(t,{H:()=>o,U:()=>r});var s=i(52861);const o={client:null,login(e){this.client=s.Z.create({baseURL:"https://z0i1paj50k.execute-api.ca-central-1.amazonaws.com/dev",withCredentials:!1,headers:{Accept:"*/*","Content-Type":"text/plain",Authorization:e}})}},r={loginAll(e){o.login(e)}}},82069:(e,t,i)=>{"use strict";i.d(t,{GM:()=>o,My:()=>n,_2:()=>r});const s=e=>e;function o(e,t,i=null,o=!1){if(0===e.features.length){const e=new Error(t+s(" is empty"));throw e.name="ImportError",e}if(!["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.crs?.properties.name)){const e=new Error(s(" invalid CRS. Import aborted. use CRS84 / EPSG:4326 in ")+t);throw e.name="ImportError",e}const r=e.features[0].geometry.type;if(r!==i&&null!==i){const e=new Error(r+s(" imported, Expected ")+i+s(". Import aborted in ")+t);throw e.name="ImportError",e}if(!Object.keys(e.features[0].properties).includes("index")&&!o){const e=new Error(s("there is no index in the File. you need unique index. Import aborted in ")+t);throw e.name="ImportError",e}return e}function r(e){if(!Array.isArray(e)){const e=new Error(s("params.json should be an array of object [{category: , params: }, ...]"));throw e.name="ImportError",e}const t=e.filter((e=>!e?.info)),i=new Set(["category","params"]);return t.forEach((e=>{if(t=new Set(Object.keys(e)),o=i,![...o].every((e=>t.has(e)))){const e=new Error(s("params.json should be an array of object [{category: , params: }, ...]"));throw e.name="ImportError",e}var t,o})),e.forEach((e=>{Object.keys(e).includes("model")||(e.model="default")})),e}function n(e){if(!Array.isArray(e)){const e=new Error(s("styles.json should be an array of object with at least [{name:,layer:}]"));throw e.name="ImportError",e}return e.forEach((e=>{if(!Object.keys(e).includes("name")||!Object.keys(e).includes("layer")){const e=new Error(s("styles.json should be an array of object with at least [{name:,layer:}]"));throw e.name="ImportError",e}})),e}},76955:(e,t,i)=>{"use strict";i.d(t,{Bq:()=>a,JO:()=>u,Ri:()=>p,Vh:()=>c,Xy:()=>n,ci:()=>d,sV:()=>l});var s=i(55733),o=i.n(s);i(75720);const r=e=>e;function n(e){return new Promise(((t,i)=>{const s=new FileReader;s.onload=function(e){t(e.target.result)},s.onerror=function(e){i(e.target.error)},s.readAsText(e)}))}function a(e){return new Promise(((t,i)=>{const s=new FileReader;s.onload=function(e){const i=new Uint8Array(e.target.result);t(i)},s.onerror=function(e){i(e.target.error)},s.readAsArrayBuffer(e)}))}async function l(e){const t=new(o()),i=await t.loadAsync(e);let s=Object.keys(i.files);s=s.filter((e=>!e.match(/^__MACOSX\//))),s=s.filter((e=>!e.endsWith("/"))),function(e){if(0===e.filter((e=>e.startsWith("inputs/")||e.startsWith("outputs/"))).length){const t=new Error(r(" root folders should be inputs/ and outputs/. not: ")+e[0]);throw t.name="ImportError",t}}(s);const n=[];for(let e=0;e{const o=new Set(e.map((e=>e.properties[t])));s[t]={value:o.size>1?"":[...o][0],disabled:i.includes(t),placeholder:o.size>1}})),s}function d(e,t){const i=new Set(e.features.map((e=>e.properties.index))),s=new Set(t.features.map((e=>e.properties.index)));return new Set([...i,...s]).size===i.size+s.size}async function p(e){const t=new(o()),i=await t.loadAsync(e),s=Object.keys(i.files),r=await i.file(s[0]).async("string");return JSON.parse(r)}function u(e){let t=(new TextDecoder).decode(e).split("\n");t=t.filter((e=>e.length>0));const i=[],s=t[0].split(",");for(let e=1;e{"use strict";i.d(t,{$z:()=>s,GL:()=>r,r5:()=>o});const s=["motorway","motorway_link","trunk","trunk_link","primary","primary_link","secondary","secondary_link","tertiary","tertiary_link","residential","living_street","service","unclassified","cycleway","pedestrian"],o={motorway:"E892A2",motorway_link:"E892A2",trunk:"E892A2",trunk_link:"E892A2",primary:"FCD6A4",primary_link:"FCD6A4",secondary:"F7F9BE",secondary_link:"F7F9BE",tertiary:"808080",tertiary_link:"808080",residential:"808080",living_street:"808080",service:"808080",unclassified:"808080",cycleway:"1D8621",pedestrian:"1D8621"},r={motorway:4,motorway_link:4,trunk:4,trunk_link:4,primary:4,primary_link:4,secondary:3,secondary_link:3,tertiary:2,tertiary_link:2,residential:2,living_street:2,service:2,unclassified:2,cycleway:2,pedestrian:2}},20655:(e,t,i)=>{"use strict";i(56831),i(67718),i(72679);var s=i(93379),o=i.n(s),r=i(7795),n=i.n(r),a=i(90569),l=i.n(a),c=i(3565),d=i.n(c),p=i(19216),u=i.n(p),h=i(44589),m=i.n(h),g=i(60069),f={};f.styleTagTransform=m(),f.setAttributes=d(),f.insert=l().bind(null,"head"),f.domAPI=n(),f.insertStyleElement=u(),o()(g.Z,f),g.Z&&g.Z.locals&&g.Z.locals;var A=i(70538),v=i(22192),y=i.n(v),C=i(75720),b=i(4644),k=i(55464),w=i.n(k),x=(i(6726),i(83256)),_=i(93485),E=i(74331),S=i(79278),L=i(66217);const I=JSON.parse('{"de":{"_ctx":"_ctx","%{s}":"%{s}","Abort":"Abbrechen","action":"Aktion","add field":"Feld hinzufügen","apply":"Anwenden","cancel":"Abbrechen","Cancel":"Abbrechen","Cannot filter by this field. There is more than 500 groups":"Filtern nicht möglich. Es existieren mehr als 500 Gruppen.","Click on the map to start drawing":"Für Zeichenmodus Karte anklicken","Close":"Schließen","Confirm":"Bestätigen","Could not apply modification. Trip_id already exist":"Modifikation nicht anwendbar. Trip_id existiert bereits","Create new Line":"Neue Linie erstelen","Cut After Node":"Unterbrechen nach Knoten","Cut Before Node":"Unterbrechen vor Knoten","Delete":"Löschen","Delete Group":"Gruppe löschen","Delete Line":"Linie löschen","Delete Stop":"Haltepunkt löschen","do not add .zip to the end":".zip nicht ans Ende stellen","Edit Group Properties":"Gruppeneigenschaften bearbeiten","Edit Line":"Linie bearbeiten","Edit Line geometry":"Liniengeometrie bearbeiten","Edit Line Properties":"Linieneigenschaften bearbeiten","Edit Node Info":"Knoteninformation bearbeiten","Edit Properties":"Eigenschaften bearbeiten","Edit Visibles Properties":"Sichtbare Eigenschaften bearbeiten","Export":"Exportieren","Export All":"Alle exportieren","Export name":"Name exportieren","Export Only Visible":"Nur sichtbare exportieren","Hide All":"Alle ausblenden","Hold left click to drag":"Klicken und halten, um zu bewegen","Import":"Importieren","item":"Element","Left click to add a stop":"Haltepunkt mit Linksklick einfügen","Left click to add an anchor point, right click to delete":"Linksklick, um Ankerpunkt zu setzen. Rechtsklick, um Ankerpunkt zu löschen","Lines":"Linien","Link field to display when hovering a trip on the map":"Anzeigen bei Mouseover über einer Route auf der Karte.","Links":"Verbindungen","Map":"Karte","modification aborted":"Modifikation abgebrochen","modification applied":"Modifikation angewandt","multiple Values":"Mehrere Werte","name":"Name","No":"Nein","Nodes":"Knoten","Overwrite current Project ?":"Aktuelles Projekt überschreiben?","Required":"Erforderlich","Right click for context menu":"Rechtsklicken für Menü","Right click to edit properties":"Rechtsklicken für Eigenschaften","Save":"Speichern","Save Changes?":"Änderungen speichern?","Settings":"Einstellungen","should be larger than 0":"Wert muss größer 0 sein","Show All":"Alles anzeigen","Speed used to calculate travel time when a link is drawn, extend or a node is moved":"Die Fahrtzeit wird mittels der Geschwindigkeit berechnet, wenn eine Verbindung gezeichnet, erweitert oder ein Knoten bewegt wird. ","the name of the exported zip file":"Name der exportierten .zip Datei","undefined":"Undefiniert","value":"Wert","Yes":"Ja"},"es":{"%{s}":"%{s}","Abort":"Anular","action":"acción","Cancel":"Cancelar","Click on the map to start drawing":"Dar clic en el mapa para comenzar a dibujar","Close":"Cerrar","Confirm":"Confirmar","Create new Line":"Crear nueva línea","Delete":"Eliminar ","Delete Group":"Eliminar grupo","Delete Line":"Eliminar línea","Delete Stop":"Eliminar parada","Edit Group Properties":"Editar propiedades","Edit Line":"Editar línea","Edit Line Properties":"Editar propiedades de la línea","Edit Node Info":"Editar información de nodo","Edit Properties":"Editar propiedades","Export":"Exportar","Export All":"Exportar todo","Export Only Visible":"Exportar lo visible","Hide All":"Esconder todo","Hold left click to drag":"Clic izquierdo sostenido para arrastrar","Import":"Importar","item":"ítem","Left click to add a stop":"Clic izquierdo para agregar una parada","Lines":"Líneas","Links":"Enlaces","Map":"Mapa","modification aborted":"modificación abortada","modification applied":"modificación aplicada","No":"No","Nodes":"Nodos","Overwrite current Project ?":"¿Sobrescribir proyecto actual?","Right click for context menu":"Clic derecho para el menú contextual","Right click to edit properties":"Clic derecho para editar propiedades","Save":"Guardar","Save Changes?":"¿Guardar cambios?","Show All":"Mostrar Todo","Yes":"Sí"},"fr":{" imported, Expected ":" importé. Attendue: "," invalid CRS. Import aborted. use CRS84 / EPSG:4326 in ":"CRS invalide, utiliser CRS84 / EPSG:4326"," is empty":" est vide"," minutes remaining":" minutes restantes"," root folders should be inputs/ and outputs/. not: ":" Les dossiers à la racines devraient être inputs/ et outputs/. non: "," there is duplicated index, ":" il y a des index en double, ",". Import aborted in ":". Importation interrompue dans ","%{s}":"%{s}","0 - Regularly scheduled drop off.\\n 1 - No drop off available.\\n 2 - Must phone agency to arrange drop off.\\n 3 - Must coordinate with driver to arrange drop off.":"Indique si un usager peut descendre librement du véhicule.\\n 0 - descente libre le long du parcours.\\n 1 - pas de descente.\\n 2 - doit appeler l\'Agence pour céduler l\'arrêt.\\n 3 - doit se coordonner avec le conducteur pour céduler l\'Arrêt.","0 - Regularly scheduled pickup.\\n 1 - No pickup available.\\n 2 - Must phone agency to arrange pickup.\\n 3 - Must coordinate with driver to arrange pickup":"Indique les possibilités de montée à bord.\\n 0 - les usagers peuvent monter à bord aux horaires standards.\\n 1 - les usagers ne peuvent pas monter à bord..\\n 2 - les usagers doivent téléphoner à l\'agence pour pouvoir monter à bord.\\n 3 - doit se coordonner avec le conducteur pour monter à bord.","Abort":"Annuler","Abort Simulation":"Abandonner la simulation","add field":"ajouter un champ","Add GTFS files. When its done uploading press Convert":"Ajouter des fichiers GTFS. Lorsque le téléversement est terminé, cliquer Convertir.","An error occur fetching example on github":"Une erreur s\'est produite lors de la récupération de l\'exemple sur github","An error occured":"Une erreur s\'est produite","apply":"appliquer","Apply":"appliquer","back to default":"Valeurs par défaut","Calibration Results":"Résultats de Calibration","cancel":"Annuler","Cancel":"Annuler","cannot add empty field":"impossible d\'ajouter un champ vide","Cannot delete anymore":"Nombre de point minimum. Impossible de supprimer d\'avantage","cannot delete first point of polygon":"Le premier point du polygone ne peut pas être supprimé","Cannot filter by this field. There is more than 500 groups":"Impossible de filtrer par ce champ. Il y a plus de 500 groupes","Click on the map to start drawing":"Cliquer sur la carte pour commencer","Click to add points. Right click de remove":"Clique pour ajouter un point, clique droit pour supprimer","Clickable element in green":"Éléments cliquables en vert","Close":"Fermer","cmap to use":"palette de couleur à utiliser","Collapse all":"Réduire tout","color map":"palette de couleur","color to display on the map (i.e. FFFFFF)":"couleur à afficher sur la carte (ex: FFFFFF)","Confirm":"Valider","Continue Without Project":"Continuer sans Projet","convert":"convertir","copy":"copier","Could not apply modification. Trip_id already exist":"Les modifications n\'ont pas pu être appliquées. Le trip_id existe déjà","create a new user in your user group. Please shared the temporary password with him/her as the invitation email could be blocked by the organization":"Créer un nouvel utilisateur dans le groupe. S\'il vous plait, partager le mot de passe temporaire puisque le couriel d\'invitation pourrait être bloqué par l\'organisation.","Create new Line":"Créer une nouvelle ligne","Create or modify preset":"Créer ou modifier un préréglage","create user":"Créer un utilisateur","Create User":"Créer un utilisateur","custom scale":"échelle personnalisée","customize to inputs values":"personnaliser l\'échelle","Cut After Node":"Couper après l\'arrêt","Cut Before Node":"Couper avant l\'arrêt","Data fetch from":"Données récupérées de","Data not found: ":"Données introuvables: ","delete":"Supprimer ","Delete":"Supprimer ","Delete ":"Supprimer ","delete all":"effacer tout ","Delete all network and start from scratch":"Créer un réseau à partir de zéro","Delete Group":"Supprimer le groupe","Delete Line":"Supprimer","Delete OD":"Supprimer ","Delete rLink":"Supprimer","Delete Stop":"Supprimer l\'arrêt","delete User":"Supprimer l\'utilisateur ","direction of travel for a trip. used to separate trips by directions.\\n ex: 0 - Travel in one direction. 1 - Travel in the opposite direction.":"Sens de déplacement pour un voyage. Utilisé pour séparer les trajets par directions.\\n ex: 0 - voyage dans une direction. 1 - voyage dans la direction opposé direction.","do not add .zip to the end":"n\'ajouté pas de .zip à la fin","Download":"Télécharger","Duplicate":"Dupliquer","Duplicate and reverse":"Dupliquer et inverser","Edit Group Properties":"Modifier les propriétés du groupe","Edit Line":"Modifier la ligne","Edit Line geometry":"Modifier La géométrie de la ligne","Edit Line Properties":"Modifier les propriétés","Edit Node Info":"Modifier les infos","Edit OD Info":"Modifier les infos","Edit Properties":"Modifier","Edit rLink Info":"Modifier les infos","Edit Visibles Properties":"Modifier les propriétés des visibles","email address":"adresse courriel","Expand all":"Étendre tout","Export":"Exporter","Export All":"Exporter tout","Export name":"Nom du fichier","Export Only Visible":"Exporter les visibles","fetch available GTFS":"rafraîchir la liste","Field added":"Champ ajouté","field already exist":"Le champ existe déjà","Field deleted":"Champ ajouté","file is not a zip":"le fichier n\'est pas un zip","File(s) added":"Fichier(s) ajouté(s)","filter":"filtre","filter does not exist. use default one":"Le filtre n\'existe pas. valeur par défaut utilisé","first name":"prénom","from":"de","Full name of a route.This name is generally more descriptive than the route_short_name and often includes the roudefaultAttributeste\'s destination or stop":"Nom complet d\'un itinéraire. Ce nom est généralement plus descriptif que route_short_name et inclut souvent la destination ou l\'arrêt de l\'itinéraire","Go!":"Aller!","gtfs imported successfully!":"GTFS importés avec succès","GTFS importer":"GTFS importer","Hide All":"Cacher Tout","Hide NaN on map and color map":"Masquer les NaN sur la carte et la légende","Hold left click to drag":"Click gauche pour glisser","Identifies a route. Often a string":"Identifie une route. Souvent un String","if the road contain a bike path in the opposite direction. either yes, no or shared. a road can be a oneway and have cycleway on both side.":"si la route contient une piste cyclable en sens inverse. soit oui, non ou partagé. une route peut être à sens unique et avoir une piste cyclable des deux côtés.","if the road contain a bike path. either yes, no or shared":"si la route contient une piste cyclable. soit oui, non ou partagé","Import":"Importer","import GTFS from local computer":"importer des GTFS depuis votre ordinateur (.zip)","Import OSM network in bounding box":"importer le réseau OSM dans la sélection","Indicates the type of transportation used on a route.\\n subway, metro, rail, bus, ferry, tram, etc":"Indique le type de transport utilisé sur un itinéraire.\\n subway, metro, rail, bus, ferry, tram, etc","invalid date time":"date invalide","invalid email address":"adresse courriel invalide","item":"item","last name":"nom","Left click to add a stop":"Clique gauche ajouter un arrêt","Left click to add an anchor point, right click to delete":"Clique gauche pour ajouter une ancre, clique droit pour supprimer","Left side driving":"Conduite à gauche","less than 1":"moins que 1","Line (or trip) identifier (i.e. 100 Est).\\n Links are group by trip_id in Quetzal-network-editor.":" Ligne (ou trip) (i.e. 100 est). \\n Les liens sont groupé par trip_id dans Quetzal-network_editor","Lines":"Lignes","Link field to display when hovering a trip on the map":"Propriété des liens TC à afficher lorsqu\'on survole sur la carte","Link field to display when hovering road link on the map":"Propriété des routes à afficher lorsqu\'on survole sur la carte","link Properties":"Modifier","Links":"Liens","links geometry linestring length (meters)":"longueur de la géometrie (lineString) du liens (mètres)","Load Example":"Charger l\'exemple","Load Scenario?":"Changer le scénario?","Load Zip":"Charger un Zip","Load Zip File":"fichier Zip","Log in and select an existing project or create a new project from project navigation menu":"Connectez-vous et sélectionnez un projet existant ou créez un nouveau projet à partir du menu de navigation","login / signin":"connexion / inscription","logout":"déconnexion","Main identifier or any kind of road, street or path. ex: (motorway, residential, primary)":"Identifiant principal du type de rue, route. ex: (motorway, residential, primary)","Map":"Carte","Matrix Road Caster executed successfully!":"Matrix Road Caster exécutée avec succès!","maximum value on the color Map":"valeur maximal sur la palette de couleur","maxWidth":"Largeur max","Microservices":"Microservices","mininum value on the color Map":"Valeur minimal sur la palette de couleur","minWidth":"Largeur min","ML Matrix Road Caster":"ML Matrix Road Caster","modification aborted":"Modification annulée","modification applied":"Modification Appliquée","more":"plus","multiple Values":"Valeurs multiples","name":"nom","Need the same number of links and nodes files.":"Besoin du même nombre de fichiers de liens et de noeuds","Need the same number of road_links and road_nodes files.":"Besoin du même nombre de fichiers de liens et de noeuds routiers","new field name":"nouveau champ","New name":"Nouveau nom","New road links Highway property name":"Type de route (Highway) des nouveux liens routiers","new scenario":"Nouveau scénario","New Scenario":"Nouveau Scénario","No":"Non","Nodes":"Noeuds","Nothing to display":"Rien à afficher","numStep":"nombre de pas ","ok":"ok","opacity":"opacité","OR":"OU","Origin - Destination":"Origine - Destination","OSM network imported successfully!":"Réseau OSM importé avec succès","Other Inputs":"Autres Intrants","Outputs":"Extrants","Overwrite current Project ?":"Écraser le projet en cours ?","Overwrite current road network ?":"Écraser le projet en cours ?","Parameters":"Paramètres","Parameters and Run":"Parametres et execution","params.json should be an array of object [{category: , params: }, ...]":"params.json devrait être un array d\'object [{category: , params: }, ...]","Preset deleted":"Préréglage supprimé","Preset Layer does not exist":"La couche du préréglage n\'existe pas","Preset Saved":"Préréglage sauvegardé","Presets":"Préréglages","project overwrited":"Projet écrasée","Projects":"Projets","PT":"TC","PT & Road":"TC et Routes","PT Network":"Réseau TC","PT Popup Content":"Contenu du Popup TC","PT speed":"Vitesse TC","PT, Road, Zones, OD & Results":"TC, Routes, Zones, OD et Résultats","Redirect":"Redirigé","Replace file inplace":"Remplacer le fichier en place","Required":"Requis","Result Table":"Table des Résultats","Results are not synchronized with latest modifications. Please relauch simulation to update results.":"Les résultats ne sont pas syncronisés avec les dernières modification.SVP, executer la simulation pour mettre à jour les résultats.","Results Map":"Carte des Résultats","Results Pictures":"images des Résultats","reverse color":"inverser les couleurs","reverse color scale":"inverse la palette de couleur","Right click for context menu":"Clique droit pour modifier","Right click to edit properties":"Clique droit pour modifier","Road":"Routes","Road Highway name":"Category Highway des nouvelles routes","Road links applied!":"Liens routiers appliqués!","Road Network":"Réseau Routier","Road Popup Content":"Contenu du Popup routier","Road speed":"Vitesse route","Roads":"Routes","Run":"Exécuter","Run Simulation":"Executer la simulation","save":"Sauv...","Save":"Sauvegarder","Save Changes?":"Sauvegarder ?","scale":"Échelle","scale max":"Échelle","scale min":"Échelle","Scenario created":"Scénario créé","Scenario deleted":"Scénario supprimé","Scenario saved":"Scénario sauvegardé","Scenario Settings":"Paramètres de simulation","Scenario Simulation":"Simulation du scénario","Scenario successfully copied":"Scénario copié avec succès","Select a Project":"Sélectionner un Projet","Select which side of the road the links are display":"Sélectionner de quel coté les liens sont affichés","selected date":"date sélectionné","selectedFeature":"champ sélectionné","Service ended with an execution error or have been aborted. Please retry. If the problem persist, contact us.":"La simulation s\'est terminée avec une erreur d\'execution ou a été abadonnée.SVP, executer la simulation de nouveau. Si le problème persiste, veuillez nous contacter.","Settings":"Paramètres","Short name of a route. This will often be a short,\\n abstract identifier like \\"32\\", \\"100X\\", or \\"Green\\"":"nom court d\'une route. Souvent un identifiant abstrait\\n et court comme \\"32\\", \\"100X\\", or \\"verte\\"","should be larger or equal to 0":"devrait être plus grand que 0","should be larger than 0":"devrait être plus grand que 0","Show All":"Montrer Tout","Show Cycleway direction instead of road":"Montrer la direction des pistes cyclables au lieu des routes","show NaN":"montrer les NaN","sign out":"déconnecté","Simulation ended with an execution error or have been aborted. Please relauch simulation. If the problem persist, contact us.":"La simulation s\'est terminée avec une erreur d\'execution ou a été abadonnée.SVP, executer la simulation de nouveau. Si le problème persiste, veuillez nous contacter.","simulation executed successfully!":"simulation exécutée avec succès!","speed on the link (Km/h)":"vitesse sur le lien (Km/h)","Speed used to calculate road travel time when a link is drawn":"Vitesse utilisé pour calculer le temps de parcours lorsqu\'un lien est ajouté, allongé ou déplacé","Speed used to calculate travel time when a link is drawn, extend or a node is moved":"Vitesse utilisé pour calculer le temps de parcours lorsqu\'un lien est ajouté, allongé ou déplacé","Start importing files individually or start with an empty project":"Commencez à importer des fichiers individuellement ou avec un projet vide","Static Layers":"Couches Statiques","Style presets":"Préréglages de style","styles.json should be an array of object with at least [{name:,layer:}]":"styles.json devrait être un array d\'object avec au moins [{name:,layer:}]","Team":"Équipe","temporary password":"mot de passe temporaire","the name of the exported zip file":"Le nom du fichier .zip à l\'export.","The scenario will be permanently deleted":"Le scénario sera supprimé définitivement","There as been an error while importing OSM network. Please try again. If the problem persist, contact us.":"La simulation s\'est terminée avec une erreur d\'execution ou a été abadonnée.SVP, executer la simulation de nouveau. Si le problème persiste, veuillez nous contacter.","there is no index in the File. you need unique index. Import aborted in ":"il y a des index de liens ou de noeds en double. Importation interrompue","This action will delete properties on every links (and reversed one for two-way roads)":"Cette action supprimera les propriétés sur tous les liens (et les inverses pour les routes à double sens)","This scenario is protected. You can not run simulation.":"Ce scénario est protégé. L\'execution de la simulation est bloquée.","This will ERASE the current project":"Le projet en cours sera ÉCRASÉ","This will permanently delete the user account.":"le compte utilisateur sera supprimé définitivement","Time between departures in seconds":"Temps entre chaque départ en secondes","to":"à","transit brand or transit agency":"marque de transport en commun ou agence de transport en commun","Travel time on the link. set as length / speed when a link is created or edited (seconds)":"Temps de parcours sur le lien. Défini comme distance / vitesse quand un lien est créé ou modifier (secondes)","undefined":"indéfini","upload GTFS":"téléverser des GTFS","Uploaded":"Téléversé","User created! please share the temporary password":"Utilisateur créé! partager le mot de passe temporaire","User permanently delete":"Utilisateur supprimé définitivement","username":"nom d\'utilisateur","value":"valeur","Viewable in results":"Affichable dans les résultats","width to display on the map":"Largeur à afficher sur la carte","Yes":"Oui","your session has expired. please refresh the page or sign in again":"Votre session est expiré. Veuillez rafraichir la page ou vous reconnecter. "},"pt":{"_ctx":"_ctx","%{s}":"%{s}"}}');var $=function(){var e=this,t=e._self._c;return t("v-app",{staticClass:"app"},[t("NavigationDrawer"),e._v(" "),t("div",{directives:[{name:"resize",rawName:"v-resize",value:e.onResize,expression:"onResize"}],ref:"container",staticClass:"container"},[t("Toolbar"),e._v(" "),t("transition",{attrs:{name:"fade"}},[t("router-view")],1)],1),e._v(" "),t("v-overlay",{attrs:{value:e.loading}},[t("v-progress-circular",{attrs:{indeterminate:"",size:"64"}})],1),e._v(" "),t("v-snackbar",{class:`snackbar-${e.notification.type}`,attrs:{timeout:e.notification.autoClose?3e3:-1,transition:"slide-y-reverse-transition",color:e.notification.color?e.notification.color:"white"},scopedSlots:e._u([{key:"action",fn:function({attrs:i}){return[t("v-btn",e._b({attrs:{small:"",color:"secondarydark",text:""},on:{click:e.closeSnackbar}},"v-btn",i,!1),[e._v("\n "+e._s(e.$gettext("Close"))+"\n ")])]}}]),model:{value:e.snackbar,callback:function(t){e.snackbar=t},expression:"snackbar"}},[t("span",{staticClass:"snackbar-text"},[e._v("\n "+e._s(e.$gettext(e.notification.text))+"\n ")])]),e._v(" "),t("Alert")],1)};$._withStripped=!0;var N=function(){var e=this,t=e._self._c;return t("v-toolbar",{class:"app-toolbar elevation-4",attrs:{dense:""}},[t("v-img",{attrs:{src:i(76215),contain:"","max-width":"6rem"}}),e._v(" "),t("span",{staticClass:"copyright"},[e._v("©")]),e._v(" "),t("div",{staticClass:"app-name"},[e._v("\n Quetzal Network Editor\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("div",[t("ScenariosExplorer")],1),e._v(" "),t("v-spacer"),e._v(" "),t("div",[t("v-tooltip",{attrs:{bottom:""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({attrs:{icon:"",href:"https://github.com/systragroup/quetzal-network-editor",target:"_blank"}},"v-btn",s,!1),i),[t("v-icon",[e._v("\n fab fa-github\n ")])],1)]}}])},[e._v(" "),t("span",[e._v("GitHub")])])],1),e._v(" "),t("div",{staticClass:"switch"},[t("v-switch",{attrs:{"append-icon":"fas fa-moon"},model:{value:e.$vuetify.theme.dark,callback:function(t){e.$set(e.$vuetify.theme,"dark",t)},expression:"$vuetify.theme.dark"}})],1),e._v(" "),t("div",[t("v-menu",{attrs:{"offset-y":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"language active",attrs:{text:""}},"v-btn",s,!1),i),[e._v("\n "+e._s(e.$language.current)+"\n ")])]}}])},[e._v(" "),t("v-list",e._l(e.$language.available,(function(i,s){return t("v-list-item",{key:s,class:i,on:{click:()=>e.handleChangeLanguage(s)}},[e._v("\n "+e._s(i.toUpperCase())+"\n ")])})),1)],1)],1),e._v(" "),t("div",[t("Profile")],1)],1)};N._withStripped=!0;var F=function(){var e=this,t=e._self._c;return t("section",[e.loggedIn?t("v-menu",{attrs:{"close-on-content-click":!1,"nudge-width":200,"offset-x":"","offset-y":""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-avatar",e._g(e._b({attrs:{size:"34",color:"primary"}},"v-avatar",s,!1),i),[t("span",{staticClass:"white--text text-h6"},[e._v(e._s(e.initial))])])]}}],null,!1,3256803526),model:{value:e.menu,callback:function(t){e.menu=t},expression:"menu"}},[e._v(" "),t("v-card",[t("v-list",[t("v-list-item",[t("v-list-item-content",[t("v-list-item-title",[e._v(e._s(e.cognitoInfo.given_name+" "+e.cognitoInfo.family_name))]),e._v(" "),t("v-list-item-subtitle",[e._v(e._s(e.cognitoInfo.email))])],1)],1)],1),e._v(" "),t("v-divider"),e._v(" "),e._l(e.bucketList,(function(i){return t("v-list-item",{key:i},[e._v("\n "+e._s(i)+"\n ")])})),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"primary",text:""},on:{click:e.logout}},[e._v("\n "+e._s(e.$gettext("logout"))+"\n ")])],1)],2)],1):t("v-tooltip",{attrs:{bottom:"","open-delay":"250"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({attrs:{icon:""},on:{click:e.login}},"v-btn",s,!1),i),[t("v-icon",[e._v("\n fas fa-sign-in-alt\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("login / signin")))])]),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"350"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.applyDialog.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:(()=>e.showDialog=!1).apply(null,arguments)}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h4"},[e._v("\n "+e._s(e.$gettext("Redirect"))+"\n ")]),e._v(" "),t("v-card-text",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$gettext("This will ERASE the current project"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:()=>e.showDialog=!e.showDialog}},[e._v("\n "+e._s(e.$gettext("No"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:e.applyDialog}},[e._v("\n "+e._s(e.$gettext("Yes"))+"\n ")])],1)],1)],1)],1)};F._withStripped=!0;var B=i(36648);const M={name:"Profile",components:{},props:[],events:["logout"],data:()=>({menu:!1,showDialog:!1,action:"login"}),computed:{projectIsEmpty(){return this.$store.getters.projectIsEmpty},loggedIn(){return this.$store.getters.loggedIn},cognitoInfo(){return this.$store.getters.cognitoInfo},bucketList(){return this.$store.getters.bucketList},initial(){return(this.cognitoInfo?.given_name[0]+this.cognitoInfo?.family_name[0]).toUpperCase()}},watch:{},methods:{login(){this.projectIsEmpty?B.Z.login():(this.action="login",this.showDialog=!0)},logout(){this.projectIsEmpty?(this.menu=!1,B.Z.logout()):(this.action="logout",this.showDialog=!0)},applyDialog(){this.menu=!1,this.showDialog=!1,"login"===this.action&&B.Z.login(),"logout"===this.action&&B.Z.logout()}}};var j=i(51900);const D=(0,j.Z)(M,F,[],!1,null,"81b79092",null).exports;var O=function(){var e=this,t=e._self._c;return e.loggedIn&&e.modelsList.length>0?t("section",[t("v-menu",{attrs:{"close-on-click":!e.showDialog&&!e.deleteDialog&&!e.copyDialog,"close-on-content-click":!1,"max-width":"460px","max-height":e.windowHeight,"offset-y":""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("div",e._g(e._b({staticClass:"title"},"div",s,!1),i),[e._v("\n "+e._s(e.scenario?e.model+"/"+e.scenario:e.$gettext("Projects"))+"\n ")])]}}],null,!1,2682127123),model:{value:e.menu,callback:function(t){e.menu=t},expression:"menu"}},[e._v(" "),t("v-card",[t("v-tabs",{attrs:{"show-arrows":"","fixed-tabs":""},model:{value:e.localModel,callback:function(t){e.localModel=t},expression:"localModel"}},e._l(e.modelsList,(function(i){return t("v-tab",{key:i,attrs:{href:"#"+i}},[e._v("\n "+e._s(i.slice(8))+"\n ")])})),1),e._v(" "),e._l(e.scenariosList,(function(i){return t("v-list-item",{key:i.model+i.scenario,class:{"is-active":e.modelScen===i.model+i.scenario},attrs:{value:i.model+i.scenario,"two-line":""},on:{click:function(t){return e.selectScenario(i)}}},[t("v-list-item-content",[t("v-list-item-title",[e._v(e._s(i.scenario))]),e._v(" "),t("v-list-item-subtitle",[e._v(e._s(i.lastModified))]),e._v(" "),t("v-list-item-subtitle",[e._v(e._s(i.userEmail))])],1),e._v(" "),t("v-btn",{staticClass:"ma-1",attrs:{icon:""},on:{click:function(t){return t.stopPropagation(),(()=>{e.copyDialog=!0,e.selectedScenario=i.scenario,e.input=i.scenario+" copy"}).apply(null,arguments)}}},[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-copy\n ")])],1),e._v(" "),t("v-btn",{staticClass:"ma-1",attrs:{icon:"",disabled:i.model+i.scenario===e.modelScen||i.protected},on:{click:function(t){return t.stopPropagation(),(()=>{e.deleteDialog=!0,e.scenarioToDelete=i.scenario}).apply(null,arguments)}}},[t("v-icon",{attrs:{small:"",color:"grey"}},[e._v("\n "+e._s(i.protected?"fas fa-lock":"fas fa-trash")+"\n ")])],1)],1)})),e._v(" "),t("v-list-item",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}]},[t("v-spacer"),e._v(" "),t("v-progress-circular",{attrs:{color:"primary",indeterminate:""}}),e._v(" "),t("v-spacer")],1),e._v(" "),t("v-divider"),e._v(" "),t("v-list-item",[t("v-btn",{attrs:{text:""},on:{click:()=>{e.copyDialog=!0,e.selectedScenario=null,e.input=""}}},[e._v("\n "+e._s(e.$gettext("new scenario"))+"\n ")])],1)],2)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"350"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.applyDialog.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancelDialog.apply(null,arguments)}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h4"},[e._v("\n "+e._s(e.$gettext("Load Scenario?"))+"\n ")]),e._v(" "),t("v-card-text",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$gettext("This will ERASE the current project"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:e.cancelDialog}},[e._v("\n "+e._s(e.$gettext("No"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:e.applyDialog}},[e._v("\n "+e._s(e.$gettext("Yes"))+"\n ")])],1)],1)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"350"},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:(()=>e.deleteDialog=!1).apply(null,arguments)}},model:{value:e.deleteDialog,callback:function(t){e.deleteDialog=t},expression:"deleteDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h4"},[e._v("\n "+e._s(e.$gettext("Delete ")+e.scenarioToDelete+" ?")+"\n ")]),e._v(" "),t("v-card-text",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$gettext("The scenario will be permanently deleted"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:()=>e.deleteDialog=!1}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"error"},on:{click:e.deleteScenario}},[e._v("\n "+e._s(e.$gettext("Delete"))+"\n ")])],1)],1)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"290"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.createProject.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancel.apply(null,arguments)}]},model:{value:e.copyDialog,callback:function(t){e.copyDialog=t},expression:"copyDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h5"},[e._v("\n "+e._s(e.selectedScenario?e.$gettext("copy")+" "+e.selectedScenario:e.$gettext("New Scenario"))+"\n ")]),e._v(" "),t("v-card-text",[t("v-container",[t("v-col",{attrs:{cols:"12"}},[t("v-text-field",{attrs:{autofocus:"",label:e.$gettext("name")},model:{value:e.input,callback:function(t){e.input=t},expression:"input"}})],1)],1)],1),e._v(" "),t("v-card-text",{style:{textAlign:"center",color:"red"}},[e._v("\n "+e._s(e.errorMessage)+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"grey",text:""},on:{click:e.closeCopy}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"green darken-1",text:""},on:{click:e.createProject}},[e._v("\n "+e._s(e.$gettext("ok"))+"\n ")])],1)],1)],1)],1):e._e()};O._withStripped=!0;var P=i(60887);const T={name:"ScenariosExplorer",components:{},props:[],events:[],data:()=>({menu:!1,showDialog:!1,modelScen:"",localModel:"",localScen:"",errorMessage:"",copyDialog:!1,selectedScenario:null,scenarioToDelete:null,input:"",deleteDialog:!1,loading:!1,protected:!1}),computed:{windowHeight(){return this.$store.getters.windowHeight},projectIsEmpty(){return this.$store.getters.projectIsEmpty},loggedIn(){return this.$store.getters.loggedIn},scenariosList(){return this.$store.getters.scenariosList.sort(((e,t)=>e.protected===t.protected?e.scenario.localeCompare(t.scenario,void 0,{sensitivity:"base"}):e.protected?-1:1))},modelsList(){return this.$store.getters.bucketList},model(){return this.$store.getters.model},scenario(){return this.$store.getters.scenario}},watch:{async menu(e){e&&(this.$store.dispatch("isTokenExpired"),this.loading=!0,await this.$store.dispatch("getScenario",{model:this.localModel}),this.loading=!1)},async localModel(e){this.$store.commit("setScenariosList",[]),this.loading=!0,await this.$store.dispatch("getScenario",{model:e}),this.loading=!1},async modelsList(){this.localModel=this.modelsList[0],await this.$store.dispatch("getScenario",{model:this.localModel})},scenario(e){e!==this.localScen&&(this.localScen="",this.modelScen="")}},mounted(){this.localModel=this.modelsList[0]},methods:{selectScenario(e){this.modelScen=e.model+e.scenario,this.localScen=e.scenario,this.protected=e.protected,e.scenario&&(this.projectIsEmpty?this.loadProject():this.showDialog=!0)},async loadProject(){this.$store.commit("run/cleanRun"),this.$store.commit("setModel",this.localModel),this.$store.commit("setScenario",{scenario:this.localScen,protected:this.protected}),this.$router.push({name:"Import",query:{s3Path:this.localModel}}),this.menu=!1},applyDialog(){this.menu=!1,this.showDialog=!1,this.loadProject()},cancelDialog(){this.modelScen=this.model+this.scenario,this.localScen=this.scenario,this.showDialog=!1,this.menu=!1},deleteScenario(){this.deleteDialog=!1,P.Z.deleteFolder(this.localModel,this.scenarioToDelete+"/").then((e=>{this.deleteDialog=!1,this.$store.dispatch("getScenario",{model:this.localModel}),this.$store.commit("changeNotification",{text:"Scenario deleted",autoClose:!0,color:"success"})})).catch((e=>{this.deleteDialog=!1,console.error(e),this.$store.commit("changeNotification",{text:"An error occured",autoClose:!0,color:"error"})}))},async createProject(){if(""===this.input)this.errorMessage="Please enter a name";else if(this.input.includes("/"))this.errorMessage="cannot have / in name";else if(this.scenariosList.map((e=>e.scenario)).includes(this.input))this.errorMessage="project already exist";else{try{if(this.selectedScenario)await P.Z.copyFolder(this.localModel,this.selectedScenario+"/",this.input),this.$store.commit("changeNotification",{text:"Scenario successfully copied",autoClose:!0,color:"success"});else{const e=this.scenariosList[0].scenario;await P.Z.newScenario(this.localModel,e,this.input),this.$store.commit("changeNotification",{text:"Scenario created",autoClose:!0,color:"success"})}}catch(e){this.$store.commit("changeAlert",e),this.selectedScenario=null}this.closeCopy(),this.loading=!0,setTimeout((()=>{this.$store.dispatch("getScenario",{model:this.localModel}).then((()=>{this.loading=!1})).catch((e=>{this.$store.commit("changeAlert",e),this.loading=!1}))}),500)}},closeCopy(){this.copyDialog=!1,this.input="",this.selectedScenario=null,this.errorMessage=""}}};var z=i(48786),R={};R.styleTagTransform=m(),R.setAttributes=d(),R.insert=l().bind(null,"head"),R.domAPI=n(),R.insertStyleElement=u(),o()(z.Z,R),z.Z&&z.Z.locals&&z.Z.locals;const Z={name:"Toolbar",components:{Profile:D,ScenariosExplorer:(0,j.Z)(T,O,[],!1,null,"f577b33e",null).exports},data:()=>({dialog:!0}),watch:{"$vuetify.theme.dark"(e){this.$store.commit("changeDarkMode",e)}},methods:{handleChangeLanguage(e){this.$vuetify.lang.current=e,this.$language.current=e}}};var H=i(56050),G={};G.styleTagTransform=m(),G.setAttributes=d(),G.insert=l().bind(null,"head"),G.domAPI=n(),G.insertStyleElement=u(),o()(H.Z,G),H.Z&&H.Z.locals&&H.Z.locals;const V=(0,j.Z)(Z,N,[],!1,null,"4d444598",null).exports;var q=function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"fade"}},[t("v-navigation-drawer",{staticClass:"drawer elevation-4",attrs:{app:"",stateless:"",temporary:!e.mini,"mini-variant":e.mini,"mini-variant-width":50},on:{"update:miniVariant":function(t){e.mini=t},"update:mini-variant":function(t){e.mini=t}},model:{value:e.drawer,callback:function(t){e.drawer=t},expression:"drawer"}},[t("div",{staticClass:"drawer-header",on:{click:function(t){e.mini=!e.mini}}},[t("v-icon",{attrs:{small:""}},[e._v("\n "+e._s(e.mini?"fa fa-bars":"fas fa-angle-left")+"\n ")])],1),e._v(" "),t("v-list",{staticClass:"drawer-list",attrs:{dense:""}},[e._l(e.getDisplayedRoutes(),(function(i,s){return t("v-list-item",{key:s,staticClass:"drawer-list-item",class:[e.$route.name===i.name?"drawer-list-item-selected":""],style:{marginTop:i.margin},attrs:{disabled:"Save"===i.name&&(!e.$store.getters.scenario||e.isProtected)},on:{click:function(t){return e.handleClickMenuItem(i)}},nativeOn:{click:function(e){e.stopPropagation()}}},[t("v-list-item-action",{class:"Save"!==i.name||e.$store.getters.scenario&&!e.isProtected?"drawer-list-item-icon":"drawer-list-item-icon-disabled"},["Run"===i.name&&e.running?t("v-badge",{attrs:{"offset-x":"12px","offset-y":"10px",color:""},scopedSlots:e._u([{key:"badge",fn:function(){return[t("v-progress-circular",{attrs:{size:"18",width:"4",color:"primary",indeterminate:""}})]},proxy:!0}],null,!0)},[e._v(" "),t("v-icon",{attrs:{small:"",title:e.$gettext(i.title)}},[e._v("\n "+e._s(i.icon)+"\n ")])],1):"Run"===i.name&&e.runWarning?t("v-badge",{attrs:{"offset-x":"6px","offset-y":"11px",color:e.runError?"error":"warning",icon:"fa-solid fa-exclamation"}},[t("v-icon",{attrs:{small:"",title:e.$gettext(i.title)}},[e._v("\n "+e._s(i.icon)+"\n ")])],1):"Save"===i.name&&e.saving?t("v-badge",{attrs:{"offset-x":"12px","offset-y":"10px",color:""},scopedSlots:e._u([{key:"badge",fn:function(){return[t("v-progress-circular",{attrs:{size:"18",width:"4",color:"primary",indeterminate:""}})]},proxy:!0}],null,!0)},[e._v(" "),t("v-icon",{attrs:{small:"",title:e.$gettext(i.title)}},[e._v("\n "+e._s(i.icon)+"\n ")])],1):t("v-icon",{attrs:{small:"",title:e.$gettext(i.title)}},[e._v("\n "+e._s(i.icon)+"\n ")])],1),e._v(" "),t("v-list-item-content",[t("v-list-item-title",{style:{marginLeft:"20px",color:"white"}},[e._v("\n "+e._s(e.$gettext(i.title))+"\n ")])],1)],1)})),e._v(" "),t("v-list-item",{staticClass:"version-number",style:{fontSize:24-2*e.version.length+"px"}},[t("span",[e._v(e._s(e.version))])])],2)],1)],1)};q._withStripped=!0;const U=i(4147).i8,J={name:"NavigationDrawer",data:()=>({leftSidenav:!1,drawer:!0,mini:!0,menuItems:[],version:U,saving:!1}),computed:{running(){return this.$store.getters["run/running"]},runError(){return this.$store.getters["run/error"]},runSychronized(){return this.$store.getters["run/synchronized"]},runWarning(){return this.runError||!this.runSychronized},isProtected(){return this.$store.getters.protected}},created(){this.menuItems=b.Z.options.routes.concat({name:"Save",icon:"fa-solid fa-save",margin:"auto",title:this.$gettext("Save")}),this.menuItems=this.menuItems.concat({name:"Export",icon:"fa-solid fa-download",title:this.$gettext("Export")})},methods:{getDisplayedRoutes(){return this.menuItems.filter((e=>e.icon))},getRouteTitle(e){const t=this.$gettext("%{s}");return this.$gettextInterpolate(t,{s:e.title})},handleClickMenuItem(e){switch(e.name){case"Export":this.$store.dispatch("exportFiles","all");break;case"Save":this.saving=!0,this.$store.dispatch("exportToS3").then((()=>{this.saving=!1,this.$store.commit("changeNotification",{text:this.$gettext("Scenario saved"),autoClose:!0,color:"success"})})).catch((e=>{this.saving=!1,this.$store.commit("changeAlert",e)}));break;default:this.$router.push(e.path).catch((()=>{})),this.mini=!0}}}};var W=i(5576),Y={};Y.styleTagTransform=m(),Y.setAttributes=d(),Y.insert=l().bind(null,"head"),Y.domAPI=n(),Y.insertStyleElement=u(),o()(W.Z,Y),W.Z&&W.Z.locals&&W.Z.locals;const K=(0,j.Z)(J,q,[],!1,null,"5b138161",null).exports;var Q=function(){var e=this,t=e._self._c;return t("div",{staticClass:"text-center"},[t("v-bottom-sheet",{attrs:{persistent:""},model:{value:e.sheet,callback:function(t){e.sheet=t},expression:"sheet"}},[t("v-sheet",{staticClass:"text-center"},[t("div",[t("v-alert",{attrs:{prominent:"",type:"error"}},[t("v-row",[t("v-col",{staticClass:"grow"},[t("h2",[e._v("\n ERROR: "+e._s(e.err.name)+"\n ")]),e._v(" "),t("p",[e._v("\n "+e._s(e.err.message)+"\n ")])]),e._v(" "),t("v-col",{staticClass:"shrink"},[t("v-btn",{attrs:{icon:""},on:{click:e.close}},[t("v-icon",[e._v("\n fas fa-times\n ")])],1)],1)],1)],1)],1)])],1)],1)};Q._withStripped=!0;const X={name:"Alert",components:{},props:[],events:[],data:()=>({sheet:!1}),computed:{err(){return this.$store.getters.alert}},watch:{err(e){e.name&&(this.sheet=!0,console.error(e))}},methods:{close(){this.$store.commit("changeAlert",{}),this.sheet=!this.sheet}}},ee=(0,j.Z)(X,Q,[],!1,null,"785f7271",null).exports;var te=i(72055);const ie={name:"App",components:{Toolbar:V,NavigationDrawer:K,Alert:ee},data:()=>({snackbar:!1}),computed:{notification(){return this.$store.getters.notification},loading(){return this.$store.getters.loading}},watch:{notification(){this.snackbar=!!this.notification.text}},async created(){this.$store.commit("initNetworks"),this.$store.commit("changeDarkMode",this.$vuetify.theme.dark),B.Z.auth.isUserSignedIn()&&(await B.Z.login(),await P.Z.login(),te.U.loginAll(this.$store.getters.idToken))},methods:{closeSnackbar(){this.snackbar=!1,this.$store.notification={}},onResize(){this.$store.commit("changeWindowHeight",this.$refs.container.clientHeight-50)}}};var se=i(28787),oe={};oe.styleTagTransform=m(),oe.setAttributes=d(),oe.insert=l().bind(null,"head"),oe.domAPI=n(),oe.insertStyleElement=u(),o()(se.Z,oe),se.Z&&se.Z.locals&&se.Z.locals;const re=(0,j.Z)(ie,$,[],!1,null,"610ce914",null).exports;console.assert("pk.eyJ1Ijoic2JvaXZpbiIsImEiOiJja3BlMm41cm4xa2QyMnZwZTBqdGx4bHI0In0.11oH2-B2g9J6LarDnoqQfQ");const ne={methods:{$selectBestLanguage(e,t){if(e.length){for(const i of e){const e=i.toLowerCase().split("-");e.length>1&&(e[1]=e[1].toUpperCase());const s=e.join("-");if(t.includes(s))return s;if(e.length>1&&t.includes(e[0]))return e[0]}return t[0]}return t[0]}}},ae=ne.methods.$selectBestLanguage(navigator.languages,["en","fr","es","de","pt"]),le=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;A.default.use(w()),A.default.use(y(),{autoAddKeyAttributes:!0,availableLanguages:{en:"English",fr:"Français",es:"Español",de:"Deutsch",pt:"Português"},defaultLanguage:ae,translations:I,silent:!0}),A.default.config.productionTip=!1,A.default.config.devtools=!1,A.default.config.performance=!1;const ce=new(w())({theme:{dark:!!le,options:{customProperties:!0},themes:{light:{primary:"#B5E0D6",primarydark:"#7EBAAC",secondary:"#2C3E4E",secondarydark:"#1A242C",secondarydarkfix:"#1A242C",secondarylight:"#334453",background:"#808080",lightgrey:"#E3E4E6",white:"#fff",black:"#000000",mediumgrey:"#9E9E9E",darkgrey:"#5B5B5C",accent:"#2C3E4E",linksprimary:"#7EBAAC",linkssecondary:"#B5E0D6",chart:{lightgreen:"#CDDC39",darkgreen:"#4CAF50",lightblue:"#00BCD4",darkblue:"#2196F3",purple:"#673AB7",pink:"#E91E63",orange:"#FF7B30",yellow:"#FFC107"}},dark:{primary:"#2196F3",primarydark:"#191919",secondary:"#263238",secondarydark:"#fff",secondarydarkfix:"#1A242C",lightgrey:"#403f3f",mediumgrey:"#575757",darkgrey:"#d9d9db",background:"#000000",white:"#000000",black:"#fff",success:"#2196F3",accent:"#d3c1b1",linksprimary:"#2196F3",linkssecondary:"#90CAF9",chart:{lightgreen:"#CDDC39",darkgreen:"#4CAF50",lightblue:"#00BCD4",darkblue:"#2196F3",purple:"#673AB7",pink:"#E91E63",orange:"#FF7B30",yellow:"#FFC107"}}}},icons:{iconfont:"fa"},lang:{locales:{fr:x.Z,en:_.Z,es:S.Z,de:E.Z,pt:L.Z},current:ae}});A.default.mixin(ne),A.default.mixin({methods:{$flatEdges(e,t=!1){let i=e;if(e.edges&&(i=e.edges.map((e=>e.node))),t)for(const t in e)null!==e[t]&&"object"==typeof e[t]&&(e[t]=this.$flatEdges(e[t],!0));return i}}}),new A.default({router:b.Z,store:C.h,vuetify:ce,render:e=>e(re),template:""}).$mount("#app")},4644:(e,t,i)=>{"use strict";i.d(t,{Z:()=>mt});var s=i(70538),o=i(78345),r=function(){var e=this,t=e._self._c;return t("section",[t("input",{ref:"zipInput",staticStyle:{display:"none"},attrs:{id:"zip-input",type:"file",accept:".zip"},on:{change:e.readZip}}),e._v(" "),t("div",{staticClass:"layout"},[t("div",{staticClass:"layout-overlay",class:{"animate-layer":e.loggedIn}}),e._v(" "),t("v-card",{staticClass:"card",class:{"animate-login":e.loggedIn}},[t("v-row",[t("v-col",[t("v-card-text",{style:{textAlign:"center"}},[t("div",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Select a Project"))+"\n ")]),e._v(" "),t("div",[e._v("\n "+e._s(e.$gettext("Log in and select an existing project or create a new project from project navigation menu"))+"\n ")]),e._v(" "),t("div",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("OR"))+"\n ")]),e._v(" "),t("div",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Continue Without Project"))+"\n ")]),e._v(" "),t("div",[e._v("\n "+e._s(e.$gettext("Start importing files individually or start with an empty project"))+"\n ")]),e._v(" "),t("div",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("OR"))+"\n ")]),e._v(" "),t("div",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Load Zip"))+"\n "),t("InfoZip")],1),e._v(" "),t("div",[t("v-btn",{style:{"margin-right":"auto"},attrs:{color:"normal"},on:{click:function(t){return e.buttonHandle("zip")}}},[t("v-icon",{attrs:{small:"",left:""}},[e._v("\n fas fa-file-archive\n ")]),e._v("\n "+e._s(e.$gettext("Load Zip File"))+"\n ")],1)],1),e._v(" "),t("div",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("OR"))+"\n ")]),e._v(" "),t("div",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Load Example"))+"\n ")]),e._v(" "),t("v-menu",{attrs:{"offset-y":"","nudge-left":"70","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({style:{"margin-bottom":"2rem"}},"v-btn",s,!1),i),[e._v("\n "+e._s(e.$gettext("Load Example"))+"\n ")])]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:""},on:{click:()=>e.buttonHandle("example1")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("PT & Road"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:""},on:{click:()=>e.buttonHandle("example2")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("PT, Road, Zones, OD & Results"))+"\n ")])],1)],1)],1)],1)],1),e._v(" "),t("v-divider",{attrs:{vertical:""}}),e._v(" "),t("v-col",[t("FileLoader",{on:{FilesLoaded:t=>e.loadNetwork(t)}})],1),e._v(" "),t("v-divider",{attrs:{vertical:""}}),e._v(" "),t("v-col",[t("FilesList",{on:{FilesLoaded:t=>e.loadNetwork(t)}})],1)],1),e._v(" "),t("div",{staticClass:"button-row"},[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({on:{click:function(t){return e.buttonHandle("newProject")}}},"v-btn",s,!1),i),[e._v("\n "+e._s(e.$gettext("New Project"))+"\n ")])]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete all network and start from scratch")))])]),e._v(" "),t("v-btn",{attrs:{disabled:!e.filesAdded,color:"primary"},on:{click:function(t){return e.login()}}},[e._v("\n "+e._s(e.$gettext("Go!"))+"\n ")])],1)],1)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"350"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.applyDialog.apply(null,arguments)},function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;e.showDialog=!1}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h5"},[e._v("\n "+e._s(e.$gettext("Overwrite current Project ?"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:function(t){e.showDialog=!e.showDialog}}},[e._v("\n "+e._s(e.$gettext("No"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:e.applyDialog}},[e._v("\n "+e._s(e.$gettext("Yes"))+"\n ")])],1)],1)],1)],1)};r._withStripped=!0;var n=i(60887),a=i(76955),l=function(){var e=this,t=e._self._c;return t("div",[t("input",{ref:"fileInput",staticStyle:{display:"none"},attrs:{id:"file-input",type:"file",accept:".geojson"},on:{change:e.readFile}}),e._v(" "),t("input",{ref:"paramsInput",staticStyle:{display:"none"},attrs:{id:"params-input",type:"file",accept:".json"},on:{change:e.readParams}}),e._v(" "),t("input",{ref:"stylesInput",staticStyle:{display:"none"},attrs:{id:"styles-input",type:"file",accept:".json"},on:{change:e.readStyles}}),e._v(" "),t("div",{staticClass:"row"},[t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.linksIsEmpty?"0.50":"1"}},[e._v("\n fas fa-project-diagram\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.linksIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("PT Network"))+"\n "),e.linksIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-menu",{attrs:{"offset-y":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({attrs:{icon:"",outlined:""}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:"",disabled:"road"==e.loadedType||e.localLinksLoaded},on:{click:()=>e.buttonHandle("PT links")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Links"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:"",disabled:"road"==e.loadedType||e.localNodesLoaded},on:{click:()=>e.buttonHandle("PT nodes")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Nodes"))+"\n ")])],1)],1)],1)],1)],1),e._v(" "),t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.rlinksIsEmpty?"0.50":"1"}},[e._v("\n fas fa-project-diagram\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.rlinksIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("Road Network"))+"\n "),e.rlinksIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-menu",{attrs:{"offset-y":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({attrs:{icon:"",outlined:""}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:"",disabled:"PT"==e.loadedType||e.localLinksLoaded},on:{click:()=>e.buttonHandle("road links")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Links"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:"",disabled:"PT"==e.loadedType||e.localNodesLoaded},on:{click:()=>e.buttonHandle("road nodes")}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Nodes"))+"\n ")])],1)],1)],1)],1)],1),e._v(" "),t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.ODIsEmpty?"0.50":"1"}},[e._v("\n fas fa-exchange-alt\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.ODIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("Origin - Destination"))+"\n "),e.ODIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("od")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)],1)]),e._v(" "),t("v-divider"),e._v(" "),t("div",{staticClass:"row"},[t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.paramsIsEmpty?"0.50":"1"}},[e._v("\n fas fa-cog\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.paramsIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("Parameters"))+"\n "),e.paramsIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("parameters")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)],1),e._v(" "),t("div",{staticClass:"container"},[t("v-icon",{staticClass:"type-icon",style:{opacity:e.stylesIsEmpty?"0.50":"1"}},[e._v("\n fas fa-palette\n ")]),e._v(" "),t("div",{staticClass:"subtitle",style:{opacity:e.stylesIsEmpty?"0.50":"1"}},[e._v("\n "+e._s(e.$gettext("Style presets"))+"\n "),e.stylesIsEmpty?e._e():t("v-icon",{staticClass:"check-icon",attrs:{color:"success"}},[e._v("\n fas fa-check\n ")])],1),e._v(" "),t("div",{staticClass:"element"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("styles")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)],1)])],1)};l._withStripped=!0;var c=i(82069);const d={name:"FileLoader",events:["FilesLoaded"],data:()=>({loadedLinks:{},loadedNodes:{},loadedType:"",choice:""}),computed:{rlinksIsEmpty(){return this.$store.getters.rlinksIsEmpty},linksIsEmpty(){return this.$store.getters.linksIsEmpty},ODIsEmpty(){return this.$store.getters["od/layerIsEmpty"]},paramsIsEmpty(){return this.$store.getters["run/parametersIsEmpty"]},stylesIsEmpty(){return 0===this.$store.getters.styles.length},localLinksLoaded(){return 0!==Object.keys(this.loadedLinks).length},localNodesLoaded(){return 0!==Object.keys(this.loadedNodes).length},localFilesAreLoaded(){return this.localLinksLoaded&&this.localNodesLoaded}},watch:{localFilesAreLoaded(e){if(e){let e=[];e="PT"===this.loadedType?[{path:"inputs/pt/links.geojson",content:this.loadedLinks},{path:"inputs/pt/nodes.geojson",content:this.loadedNodes}]:[{path:"inputs/road/links.geojson",content:this.loadedLinks},{path:"inputs/road/nodes.geojson",content:this.loadedNodes}],this.$emit("FilesLoaded",e),this.loadedLinks={},this.loadedNodes={},this.loadedType=""}}},methods:{buttonHandle(e){this.choice=e,"parameters"===this.choice?(this.$refs.paramsInput.click(),document.getElementById("params-input").value=""):"styles"===this.choice?(this.$refs.stylesInput.click(),document.getElementById("styles-input").value=""):["PT links","PT nodes","road links","road nodes","od"].includes(this.choice)&&(this.$refs.fileInput.click(),document.getElementById("file-input").value="")},async readParams(e){this.$store.commit("changeLoading",!0);const t=e.target.files;try{let e=await(0,a.Xy)(t[0]);e=JSON.parse(e),this.$emit("FilesLoaded",[{path:"inputs/params.json",content:e}]),this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}},async readStyles(e){this.$store.commit("changeLoading",!0);const t=e.target.files;try{let e=await(0,a.Xy)(t[0]);e=JSON.parse(e),this.$emit("FilesLoaded",[{path:"styles.json",content:e}]),this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}},async readFile(e){this.$store.commit("changeLoading",!0);const t=e.target.files;if("geojson"!==t[0].name.slice(-7))return this.$store.commit("changeLoading",!1),void this.$store.commit("changeAlert",{name:"ImportError",message:"File must be a geojson"});const i=t[0].name;try{let e=await(0,a.Xy)(t[0]);switch(e=JSON.parse(e),this.choice){case"PT links":this.loadedLinks=(0,c.GM)(e,i,"LineString"),this.loadedType="PT";break;case"PT nodes":this.loadedNodes=(0,c.GM)(e,i,"Point"),this.loadedType="PT";break;case"road links":this.loadedLinks=(0,c.GM)(e,i,"LineString"),this.loadedType="road";break;case"road nodes":this.loadedNodes=(0,c.GM)(e,i,"Point"),this.loadedType="road";break;case"od":this.$emit("FilesLoaded",[{path:"inputs/od/od.geojson",content:e}]);break;default:console.log("autre")}this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}}}};var p=i(93379),u=i.n(p),h=i(7795),m=i.n(h),g=i(90569),f=i.n(g),A=i(3565),v=i.n(A),y=i(19216),C=i.n(y),b=i(44589),k=i.n(b),w=i(56174),x={};x.styleTagTransform=k(),x.setAttributes=v(),x.insert=f().bind(null,"head"),x.domAPI=m(),x.insertStyleElement=C(),u()(w.Z,x),w.Z&&w.Z.locals&&w.Z.locals;var _=i(51900);const E=(0,_.Z)(d,l,[],!1,null,"d3a53384",null).exports;var S=function(){var e=this,t=e._self._c;return t("div",[t("input",{ref:"otherInputs",staticStyle:{display:"none"},attrs:{id:"other-inputs",type:"file",multiple:"multiple"},on:{change:e.readOtherInputs}}),e._v(" "),t("input",{ref:"otherOutputs",staticStyle:{display:"none"},attrs:{id:"other-outputs",type:"file",multiple:"multiple"},on:{change:e.readOtherOutputs}}),e._v(" "),t("div",{staticClass:"files-container"},[t("div",{staticClass:"title-box"},[t("h1",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Other Inputs"))+"\n ")]),e._v(" "),t("div",{staticClass:"upload-button"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("inputs")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)]),e._v(" "),t("div",{staticClass:"list"},e._l(e.inputFiles,(function(i,s){return t("li",{key:s},[e._v("\n "+e._s(i)+"\n "),t("v-tooltip",{attrs:{top:"","open-delay":"250"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"list-button",attrs:{icon:""},on:{click:()=>e.buttonHandle(i)}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Replace file inplace")))])])],1)})),0)]),e._v(" "),t("div",{staticClass:"files-container"},[t("div",{staticClass:"title-box"},[t("h1",{staticClass:"title"},[e._v("\n "+e._s(e.$gettext("Outputs"))+"\n ")]),e._v(" "),t("div",{staticClass:"upload-button"},[t("v-btn",{attrs:{icon:"",outlined:""},on:{click:()=>e.buttonHandle("outputs")}},[t("v-icon",{attrs:{small:""}},[e._v("\n fa-solid fa-upload\n ")])],1)],1)]),e._v(" "),t("div",{staticClass:"list"},[e._l(e.outputFiles,(function(i){return t("li",{key:i},[e._v("\n "+e._s(i)+"\n ")])})),e._v(" "),e._l(e.layers,(function(i){return t("li",{key:i},[e._v("\n "+e._s(i)+"\n "),t("v-tooltip",{attrs:{top:"","open-delay":"250"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-icon",e._g(e._b({staticClass:"list-icon",attrs:{small:""}},"v-icon",s,!1),i),[e._v("\n fa-solid fa-layer-group\n ")])]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Viewable in results")))])])],1)}))],2)])])};S._withStripped=!0;const L={name:"FilesList",events:["FilesLoaded"],data:()=>({filesPanel:[0,1]}),computed:{loadedFiles(){return this.$store.getters.otherFiles.map((e=>e.path))},inputFiles(){return this.loadedFiles.filter((e=>e.startsWith("input")))},outputFiles(){return this.loadedFiles.filter((e=>e.startsWith("output")))},layers(){const e=this.$store.getters.availableLayers.filter((e=>e.startsWith("outputs/"))),t=[];for(const i of e)t.push(i+".geojson"),this.$store.getters[`${i}/hasOD`]&&t.push(i+".json");return t}},mounted(){},methods:{buttonHandle(e){this.choice=e,"outputs"===this.choice?(this.$refs.otherOutputs.click(),document.getElementById("other-outputs").value=""):this.choice.startsWith("inputs")&&(this.$refs.otherInputs.click(),document.getElementById("other-inputs").value="")},async readOtherInputs(e){this.$store.commit("changeLoading",!0);const t=[],i=e.target.files;for(const e of i){let i="inputs/"+e.name;"inputs"!==this.choice&&(i=this.choice);try{const s=await(0,a.Bq)(e);t.push({content:s,path:i}),this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}}this.$store.commit("changeLoading",!1),this.$emit("FilesLoaded",t)},async readOtherOutputs(e){this.$store.commit("changeLoading",!0);const t=[],i=e.target.files;for(const e of i){const i="outputs/"+e.name;try{if(e.name.endsWith(".geojson")||e.name.endsWith(".json")){let s=await(0,a.Xy)(e);s=JSON.parse(s),t.push({content:s,path:i})}else{const s=await(0,a.Bq)(e);t.push({content:s,path:i})}this.$store.commit("changeLoading",!1)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}}this.$store.commit("changeLoading",!1),this.$emit("FilesLoaded",t)}}};var I=i(77697),$={};$.styleTagTransform=k(),$.setAttributes=v(),$.insert=f().bind(null,"head"),$.domAPI=m(),$.insertStyleElement=C(),u()(I.Z,$),I.Z&&I.Z.locals&&I.Z.locals;const N=(0,_.Z)(L,S,[],!1,null,"e186d29a",null).exports;var F=function(){var e=this,t=e._self._c;return t("div",{style:{"margin-left":"10px"}},[t("v-btn",{attrs:{icon:"",small:""},on:{click:e.show}},[t("v-icon",[e._v("far fa-question-circle small")])],1),e._v(" "),t("v-dialog",{attrs:{height:e.height,width:e.width},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-img",{attrs:{src:e.url,contain:"",height:e.height,width:e.width,alt:"image"}})],1)],1)};F._withStripped=!0;const B={name:"InfoZip",data:()=>({showDialog:!1,url:"https://raw.githubusercontent.com/systragroup/quetzal-network-editor/master/example/zip_schematic.jpg",width:1300,height:900}),watch:{},methods:{show(){if(this.showDialog=!this.showDialog,!0===this.showDialog){const e=new Image;e.onload=()=>{this.width=e.width>this.width?this.width:e.width,this.height=e.height>this.height?this.height:e.height},e.src=this.url}}}},M={name:"Import",components:{FileLoader:E,InfoZip:(0,_.Z)(B,F,[],!1,null,"1b5fbd9c",null).exports,FilesList:N},data:()=>({loggedIn:!1,choice:null,showDialog:!1,filesAdded:!1}),computed:{projectIsEmpty(){return this.$store.getters.projectIsEmpty},s3Path(){return this.$route.query.s3Path}},watch:{s3Path(e){e&&this.loadFilesFromS3(e)}},mounted(){this.$store.commit("changeNotification",""),this.s3Path&&this.loadFilesFromS3(this.s3Path)},methods:{login(){setTimeout((()=>{this.$router.push("/Home").catch((()=>{}))}),300)},buttonHandle(e){switch(this.choice=e,this.choice){case"zip":this.$refs.zipInput.click(),document.getElementById("zip-input").value="";break;case"example1":this.projectIsEmpty?this.loadExample(["PT","road"]):this.showDialog=!0;break;case"example2":this.projectIsEmpty?this.loadExample(["PT","road","loaded","zones"]):this.showDialog=!0;break;case"newProject":this.projectIsEmpty?this.newProject():this.showDialog=!0}},applyDialog(){this.$store.commit("initNetworks"),this.$store.commit("unloadLayers"),this.$store.commit("unloadProject"),this.$store.commit("run/cleanRun"),"example1"===this.choice?this.loadExample(["PT","road"]):"example2"===this.choice?this.loadExample(["PT","road","loaded","zones"]):"newProject"===this.choice&&this.newProject(),this.showDialog=!this.showDialog},newProject(){this.$store.commit("initNetworks"),this.$store.commit("unloadLayers"),this.$store.commit("unloadProject"),this.$store.commit("run/cleanRun"),this.$store.commit("changeNotification",{text:"project overwrited",autoClose:!0,color:"success"})},loadNetwork(e){this.$store.commit("loadFiles",e),this.filesAdded=!0,this.$store.commit("changeLoading",!1)},async readZip(e){try{this.$store.commit("changeLoading",!0);const t=e.target.files;if(!t.length)return void this.$store.commit("changeLoading",!1);if("zip"!==t[0].name.slice(-3))return this.$store.commit("changeLoading",!1),void this.$store.commit("changeAlert",{name:"ImportError",message:"file is not a zip"});const i=await(0,a.sV)(t[0]);this.loadNetwork(i)}catch(e){this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",e)}},async loadFilesFromS3(){this.projectIsEmpty||(this.$store.commit("initNetworks"),this.$store.commit("unloadLayers"),this.$store.commit("run/cleanRun")),this.$store.commit("changeLoading",!0),this.$router.replace({query:null});const e=this.$store.getters.model,t=this.$store.getters.scenario+"/",i=[];try{let s=await n.Z.listFiles(e,t);s=s.filter((e=>!e.endsWith("/")));for(const o of s){const s=o.slice(t.length);if(s.startsWith("outputs/")||s.startsWith("inputs/"))if(o.endsWith(".json")||o.endsWith(".geojson")){const t=await n.Z.readJson(e,o);i.push({path:s,content:t})}else i.push({path:s,content:null});else{if("styles.json"===s){const t=await n.Z.readJson(e,o);i.push({path:s,content:t})}if("attributesChoices.json"===s){const t=await n.Z.readJson(e,o);i.push({path:s,content:t})}}}this.loadNetwork(i)}catch(e){this.$store.commit("changeAlert",e),this.$store.commit("changeLoading",!1)}},async loadExample(e){this.$store.commit("changeLoading",!0);const t="https://raw.githubusercontent.com/systragroup/quetzal-network-editor/master/example/",i=[];let s={};try{e.includes("PT")&&(s=await fetch(t+"links_exemple.geojson").then((e=>e.json())),i.push({path:"inputs/pt/links.geojson",content:s}),s=await fetch(t+"nodes_exemple.geojson").then((e=>e.json())),i.push({path:"inputs/pt/nodes.geojson",content:s})),e.includes("road")&&(s=await fetch(t+"road_links_exemple.geojson").then((e=>e.json())),i.push({path:"inputs/road/links.geojson",content:s}),s=await fetch(t+"road_nodes_exemple.geojson").then((e=>e.json())),i.push({path:"inputs/road/nodes.geojson",content:s})),e.includes("loaded")&&(s=await fetch(t+"loaded_links.geojson").then((e=>e.json())),i.push({path:"outputs/loaded_links.geojson",content:s}),s=await fetch(t+"loaded_nodes.geojson").then((e=>e.json())),i.push({path:"outputs/loaded_nodes.geojson",content:s})),e.includes("zones")&&(s=await fetch(t+"zones.geojson").then((e=>e.json())),i.push({path:"outputs/zones.geojson",content:s}),s=await fetch(t+"zones.zip").then((e=>(0,a.Ri)(e.blob()))),i.push({path:"outputs/zones.json",content:s})),this.loadNetwork(i)}catch{this.$store.commit("changeLoading",!1),this.$store.commit("changeAlert",{name:"ImportError",message:"An error occur fetching example on github"})}}}};var j=i(58141),D={};D.styleTagTransform=k(),D.setAttributes=v(),D.insert=f().bind(null,"head"),D.domAPI=m(),D.insertStyleElement=C(),u()(j.Z,D),j.Z&&j.Z.locals&&j.Z.locals;const O=(0,_.Z)(M,r,[],!1,null,"020024f7",null).exports;var P=i(36648),T=function(){var e=this,t=e._self._c;return t("section",{staticClass:"map-view"},[t("v-dialog",{attrs:{scrollable:"",persistent:"","max-width":e.numLinks>1?"40rem":"20rem"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.applyAction.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancelAction.apply(null,arguments)}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",{attrs:{"max-height":"55rem"}},[t("v-card-title",{staticClass:"text-h5"},[e._v("\n "+e._s(["deleteTrip","deleterGroup"].includes(e.action)?e.$gettext("Delete")+" "+e.message+"?":e.$gettext("Edit Properties"))+"\n ")]),e._v(" "),t("v-divider"),e._v(" "),e.editForm?t("v-card-text",[t("v-row",e._l(e.numLinks,(function(i,s){return t("v-col",{key:s},[t("v-list",[e.numLinks>1?t("v-list-item",[t("v-icon",{style:{"align-items":"center","justify-content":"center",transform:"rotate("+e.linkDir[s]+"deg)"}},[e._v("\n fas fa-long-arrow-alt-up\n ")])],1):e._e(),e._v(" "),e._l(e.orderedForm(s),(function(i,s){return t("v-text-field",{key:s,attrs:{label:s,hint:e.showHint?e.$gettext(e.hints[s]):"","persistent-hint":e.showHint,filled:!i.disabled,type:e.$store.getters.attributeType(s),placeholder:i.placeholder?e.$gettext("multiple Values"):"","persistent-placeholder":!!i.placeholder,disabled:i.disabled},on:{wheel:function(e){return e.target.blur()}},scopedSlots:e._u(["route_color"===s?{key:"append",fn:function(){return[t("color-picker",{model:{value:i.value,callback:function(t){e.$set(i,"value",t)},expression:"value['value']"}})]},proxy:!0}:Object.keys(e.attributesChoices).includes(s)?{key:"append",fn:function(){return[t("MenuSelector",{attrs:{items:e.attributesChoices[s]},model:{value:i.value,callback:function(t){e.$set(i,"value",t)},expression:"value['value']"}})]},proxy:!0}:null,e.showDeleteOption?{key:"prepend",fn:function(){return[t("v-btn",{attrs:{icon:"","x-small":"",disabled:e.attributeNonDeletable(s),color:"error"},on:{click:()=>e.deleteField(s)}},[t("v-icon",[e._v("fas fa-trash small")])],1)]},proxy:!0}:null],null,!0),model:{value:i.value,callback:function(t){e.$set(i,"value",t)},expression:"value['value']"}})}))],2)],1)})),1),e._v(" "),t("v-row",[t("v-text-field",{attrs:{label:e.$gettext("add field"),placeholder:e.$gettext("new field name"),filled:"",rules:e.rules.newField},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.stopPropagation(),e.addField.apply(null,arguments))},wheel:function(e){return e.target.blur()}},scopedSlots:e._u([{key:"append-outer",fn:function(){return[t("v-btn",{staticClass:"text--primary",attrs:{color:"primary",fab:"","x-small":""},on:{click:e.addField}},[t("v-icon",[e._v("fas fa-plus")])],1)]},proxy:!0}],null,!1,941361224),model:{value:e.newFieldName,callback:function(t){e.newFieldName=t},expression:"newFieldName"}})],1)],1):e._e(),e._v(" "),["cloneTrip"].includes(e.action)?t("v-card-text",[t("v-text-field",{attrs:{label:e.$gettext("New name")},model:{value:e.cloneName,callback:function(t){e.cloneName=t},expression:"cloneName"}})],1):e._e(),e._v(" "),t("v-divider"),e._v(" "),t("v-card-actions",[e.editForm?t("v-btn",{attrs:{icon:"","x-small":""},on:{click:()=>e.showHint=!e.showHint}},[t("v-icon",[e._v("far fa-question-circle small")])],1):e._e(),e._v(" "),e.editForm?t("v-btn",{attrs:{icon:"","x-small":""},on:{click:e.ToggleDeleteOption}},[e.showDeleteOption?t("v-icon",[e._v("\n fas fa-minus-circle fa-rotate-90\n ")]):t("v-icon",[e._v("\n fas fa-minus-circle\n ")])],1):e._e(),e._v(" "),t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"grey",text:""},on:{click:e.cancelAction}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"success",text:""},on:{click:e.applyAction}},[e._v("\n "+e._s(e.$gettext("Save"))+"\n ")])],1)],1)],1),e._v(" "),t("v-dialog",{attrs:{"max-width":"300"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.duplicate()},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancelClone.apply(null,arguments)}]},model:{value:e.cloneDialog,callback:function(t){e.cloneDialog=t},expression:"cloneDialog"}},[t("v-card",[t("v-card-title",[t("span",{staticClass:"text-h5"},[e._v(e._s(e.$gettext("Duplicate and reverse")))]),e._v(" "),t("span",{staticClass:"text-h5"},[e._v(e._s(e.message+" ?"))])]),e._v(" "),t("v-card-text",[t("v-text-field",{attrs:{label:e.$gettext("New name")},model:{value:e.cloneName,callback:function(t){e.cloneName=t},expression:"cloneName"}})],1),e._v(" "),t("v-card-text",{style:{textAlign:"center",color:"red"}},[e._v("\n "+e._s(e.errorMessage)+"\n ")]),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"grey",text:""},on:{click:e.cancelClone}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"green darken-1",text:""},on:{click:function(t){return e.duplicate()}}},[e._v("\n "+e._s(e.$gettext("Save"))+"\n ")])],1)],1)],1),e._v(" "),t("SidePanel",{attrs:{"selected-trips":e.selectedTrips,"selectedr-group":e.selectedrGroup},on:{"update-tripList":e.updateSelectedTrips,confirmChanges:e.confirmChanges,abortChanges:e.abortChanges,deleteButton:e.deleteButton,cloneButton:e.cloneButton,propertiesButton:e.actionClick,"change-mode":t=>e.mode=t}}),e._v(" "),t("Map",{ref:"mapref",attrs:{"selected-trips":e.selectedTrips,mode:e.mode},on:{clickFeature:e.actionClick}})],1)};T._withStripped=!0;var z=function(){var e=this,t=e._self._c;return t("section",{class:e.showLeftPanel?"left-panel elevation-4":"left-panel-close",style:{width:e.showLeftPanel?"400px":"0px"}},[t("div",{staticClass:"left-panel-toggle-btn elevation-4",on:{click:function(t){return e.$store.commit("changeLeftPanel")}}},[t("v-icon",{attrs:{small:"",color:"secondary"}},[e._v("\n "+e._s(e.showLeftPanel?"fas fa-chevron-left":"fas fa-chevron-right")+"\n ")])],1),e._v(" "),t("transition",{attrs:{name:"fade"}},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.showLeftPanelContent,expression:"showLeftPanelContent"}],ref:"leftPanel",staticClass:"left-panel-content",attrs:{id:"left-panel"}},[t("div",[t("div",{style:{"margin-top":"20px","margin-bottom":"20px","margin-right":"20px"}},[t("v-tabs",{attrs:{"background-color":"secondary",dark:"",grow:""},model:{value:e.tab,callback:function(t){e.tab=t},expression:"tab"}},[t("v-tab",[e._v(e._s(e.$gettext("PT")))]),e._v(" "),t("v-tab",[e._v(e._s(e.$gettext("Road")))]),e._v(" "),t("v-tab",[e._v(e._s(e.$gettext("OD")))])],1),e._v(" "),t("LinksSidePanel",{directives:[{name:"show",rawName:"v-show",value:0===e.tab,expression:"tab===0"}],attrs:{height:e.windowHeight,"selected-trips":e.selectedTrips},on:{"update-tripList":t=>e.$emit("update-tripList",{type:"links",data:t}),confirmChanges:t=>e.$emit("confirmChanges",t),abortChanges:t=>e.$emit("abortChanges",t),cloneButton:t=>e.$emit("cloneButton",t),deleteButton:t=>e.$emit("deleteButton",t),propertiesButton:t=>e.$emit("propertiesButton",t)}}),e._v(" "),t("RoadSidePanel",{directives:[{name:"show",rawName:"v-show",value:1===e.tab,expression:"tab===1"}],attrs:{height:e.windowHeight,"selectedr-goup":e.selectedrGroup},on:{"update-tripList":t=>e.$emit("update-tripList",{type:"rlinks",data:t}),deleteButton:t=>e.$emit("deleteButton",t),propertiesButton:t=>e.$emit("propertiesButton",t)}}),e._v(" "),t("ODSidePanel",{directives:[{name:"show",rawName:"v-show",value:2===e.tab,expression:"tab===2"}],attrs:{height:e.windowHeight},on:{deleteButton:t=>e.$emit("deleteButton",t),propertiesButton:t=>e.$emit("propertiesButton",t)}})],1)])])])],1)};z._withStripped=!0;var R=function(){var e=this,t=e._self._c;return t("section",[t("v-card-title",{staticClass:"white--text secondary"},[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:""},on:{click:function(t){return e.showAll()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n "+e._s(e.tripList==e.tripId?"fa-eye fa":"fa-eye-slash fa")+"\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.tripList==e.tripId?e.$gettext("Hide All"):e.$gettext("Show All")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",disabled:0===e.tripList.length},on:{click:function(t){return e.propertiesButton(e.tripList)}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n fas fa-list\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Visibles Properties")))])]),e._v(" "),t("v-spacer"),e._v(" "),t("span",{style:{color:"white"}},[e._v("\n "+e._s(e.$gettext("Lines"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-spacer"),e._v(" "),t("v-menu",{attrs:{"offset-y":"","open-on-hover":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",dark:""}},"v-btn",s,!1),i),[t("v-icon",[e._v("fa-solid fa-download")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export All"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","visibles")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export Only Visible"))+"\n ")])],1)],1)],1)],1),e._v(" "),t("v-card",{staticClass:"mx-auto scrollable",attrs:{"max-width":"100%","min-width":"100%",height:e.height}},[t("v-list-item",[t("v-select",{attrs:{items:e.filterChoices,"prepend-icon":"fas fa-filter",label:e.$gettext("filter"),"item-color":"secondarydark",color:"secondarydark"},model:{value:e.vmodelSelectedFilter,callback:function(t){e.vmodelSelectedFilter=t},expression:"vmodelSelectedFilter"}})],1),e._v(" "),e._l(e.classifiedTripId,(function(i,s){return t("v-list-group",{key:String(i.name)+String(s),attrs:{color:"secondarydark",value:!1,"no-action":""},scopedSlots:e._u([{key:"activator",fn:function(){return[t("v-list-item-action",[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({attrs:{icon:""},on:{click:function(t){return t.stopPropagation(),e.showGroup(i.tripId)}}},"v-btn",o,!1),s),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n "+e._s(i.tripId.some((t=>e.tripList.includes(t)))?"fa-eye fa":"fa-eye-slash fa")+"\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v("\n "+e._s(i.tripId.some((t=>e.tripList.includes(t)))?e.$gettext("Hide All"):e.$gettext("Show All"))+"\n ")])])],1),e._v(" "),t("v-list-item-content",[t("v-list-item-title",[t("strong",[e._v("\n "+e._s("undefined"==i.name?e.$gettext(i.name):i.name)+"\n ")])])],1),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:null!=e.editorTrip},on:{click:function(t){return t.stopPropagation(),e.propertiesButton(i.tripId)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fas fa-list\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Group Properties")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!e.editorTrip},on:{click:function(t){return t.stopPropagation(),e.deleteButton({trip:i.tripId,message:i.name,action:"deleteTrip"})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-trash\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete Group")))])])]},proxy:!0}],null,!0)},[e._v(" "),t("v-virtual-scroll",{attrs:{items:i.tripId,"item-height":45,height:Math.min(e.height-220,45*i.tripId.length+3)},scopedSlots:e._u([{key:"default",fn:function({item:i}){return[t("v-list-item",{key:i,staticClass:"pl-2"},[t("v-list-item-action",[t("v-checkbox",{staticClass:"pl-2",attrs:{"on-icon":"fa-eye fa","off-icon":"fa-eye-slash fa",color:"primary",value:i,size:"10","hide-details":""},model:{value:e.tripList,callback:function(t){e.tripList=t},expression:"tripList"}})],1),e._v(" "),t("v-tooltip",{attrs:{right:"","open-delay":"300","content-class":"custom-tooltip"},scopedSlots:e._u([{key:"activator",fn:function({on:s}){return[i==e.editorTrip?t("v-list-item-title",e._g({},s),[t("strong",[e._v(e._s(i))])]):t("v-list-item-title",e._g({},s),[e._v("\n "+e._s(i)+"\n ")])]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(i))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!(i!=e.editorTrip&null!=e.editorTrip)},on:{click:function(t){return e.editButton(i)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:(e.editorTrip,"regular")}},[e._v("\n fas fa-pen\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Line")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!(i!=e.editorTrip&null!=e.editorTrip)},on:{click:function(t){return e.propertiesButton(i)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:(e.editorTrip,"regular")}},[e._v("\n fas fa-list\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Line Properties")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!(i!=e.editorTrip&null!=e.editorTrip)},on:{click:function(t){return e.cloneButton({trip:i,message:i})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:(e.editorTrip,"regular")}},[e._v("\n fas fa-clone\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Duplicate")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!!e.editorTrip},on:{click:function(t){return e.deleteButton({trip:i,message:i,action:"deleteTrip"})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-trash\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete Line")))])])],1)]}}],null,!0)})],1)})),e._v(" "),t("v-divider")],2),e._v(" "),t("v-card",{staticClass:"mx-auto"},[e.editorTrip?t("v-list-item",[t("v-tooltip",{attrs:{right:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"mx-2",attrs:{color:e.$store.getters.anchorMode?"grey":"regular"},on:{click:function(t){return e.$store.commit("changeAnchorMode")}}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fas fa-anchor\n ")])],1)]}}],null,!1,3833012906)},[e._v(" "),t("span",[e._v(" "+e._s(e.$gettext("Edit Line geometry"))+" "),t("b",[e._v("(CTRL)")])])]),e._v(" "),t("v-btn",{on:{click:function(t){return e.$emit("abortChanges")}}},[t("v-icon",{attrs:{small:"",left:""}},[e._v("\n fas fa-times-circle\n ")]),e._v("\n "+e._s(e.$gettext("Abort"))+"\n ")],1),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:function(t){return e.$emit("confirmChanges")}}},[t("v-icon",{attrs:{small:"",left:""}},[e._v("\n fas fa-save\n ")]),e._v("\n "+e._s(e.$gettext("Confirm"))+"\n ")],1)],1):e._e(),e._v(" "),t("v-list-item",{directives:[{name:"show",rawName:"v-show",value:!e.editorTrip,expression:"editorTrip ? false: true"}]},[t("v-spacer"),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"text--primary",attrs:{color:"primary",fab:"",small:""},on:{click:e.createNewLine}},"v-btn",s,!1),i),[t("v-icon",[e._v("fas fa-plus")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Create new Line")))])])],1)],1),e._v(" "),t("v-dialog",{attrs:{persistent:"","max-width":"290"},on:{keydown:[function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.$emit("confirmChanges"),e.showDialog=!e.showDialog},function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;e.showDialog=!1}]},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[t("v-card",[t("v-card-title",{staticClass:"text-h5"},[e._v("\n "+e._s(e.$gettext("Save Changes?"))+"\n ")]),e._v(" "),t("v-card-actions",[t("v-btn",{attrs:{color:"regular",left:""},on:{click:function(t){e.showDialog=!1}}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"regular"},on:{click:function(t){e.$emit("abortChanges"),e.showDialog=!e.showDialog}}},[e._v("\n "+e._s(e.$gettext("No"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"primary"},on:{click:function(t){e.$emit("confirmChanges"),e.showDialog=!e.showDialog}}},[e._v("\n "+e._s(e.$gettext("Yes"))+"\n ")])],1)],1)],1)],1)};R._withStripped=!0;const Z=i(7597),H={name:"LinksSidePanel",components:{},props:["selectedTrips","height"],events:["selectEditorTrip","confirmChanges","abortChanges","cloneButton","deleteButton","propertiesButton","newLine"],data:()=>({showDialog:!1,tripList:[],selectedFilter:"",vmodelSelectedFilter:""}),computed:{filterChoices(){return this.$store.getters.lineAttributes},editorTrip(){return this.$store.getters.editorTrip},tripId(){return this.$store.getters.tripId},arrayUniqueTripId(){return[...new Map(this.$store.getters.links.features.map((e=>[e.properties.trip_id,e.properties]))).values()]},filteredCat(){return Array.from(new Set(this.arrayUniqueTripId.map((e=>e[this.selectedFilter]))))},classifiedTripId(){const e=[],t={name:"undefined",tripId:[]};return this.filteredCat.forEach((i=>{const s=this.arrayUniqueTripId.filter((e=>e[this.selectedFilter]===i)).map((e=>e.trip_id)).sort();null===i|""===i|void 0===i?t.tripId.push(...s):e.push({name:i,tripId:s})})),t.tripId.length>0&&e.push(t),e}},watch:{tripList(e){this.$emit("update-tripList",e)},tripId(e,t){if(e.lengthe.includes(t)));else if(e.length>t.length){const i=e.filter((e=>!t.includes(e)))[0];this.tripList.push(i)}else{const i={};t.forEach((function(t,s){i[t]=e[s]})),this.tripList=this.tripList.map((e=>i[e]))}},vmodelSelectedFilter(e,t){this.selectedFilter=e,this.filteredCat.length>500&&(this.selectedFilter=t,this.$store.commit("changeNotification",{text:"Cannot filter by this field. There is more than 500 groups",autoClose:!0,color:"red darken-2"}),this.$nextTick((()=>this.vmodelSelectedFilter=t)))}},created(){this.tripList=this.selectedTrips,this.selectedFilter="route_type",this.vmodelSelectedFilter=this.selectedFilter},methods:{editButton(e){this.editorTrip===e?this.showDialog=!0:(this.$store.commit("setEditorTrip",{tripId:e,changeBounds:!0}),this.$store.commit("changeNotification",{text:"",autoClose:!0}))},propertiesButton(e){"object"==typeof e?this.$emit("propertiesButton",{action:"Edit Group Info",lingering:!1,tripIds:e}):this.editorTrip?(this.$emit("propertiesButton",{action:"Edit Line Info",lingering:!0}),this.$store.commit("changeNotification",{text:"",autoClose:!0})):(this.$store.commit("setEditorTrip",{tripId:e,changeBounds:!1}),this.$emit("propertiesButton",{action:"Edit Line Info",lingering:!1}))},createNewLine(){const e="trip_"+Z.generate();this.$store.commit("setEditorTrip",{tripId:e,changeBounds:!1}),this.$emit("propertiesButton",{action:"Edit Line Info",lingering:!0})},cloneButton(e){this.$emit("cloneButton",e)},deleteButton(e){this.$emit("deleteButton",e)},showAll(){this.tripList===this.tripId?this.tripList=[]:this.tripList=this.tripId},showGroup(e){e.some((e=>this.tripList.includes(e)))?this.tripList=this.tripList.filter((t=>!e.includes(t))):this.tripList=Array.from(new Set([...this.tripList,...e]))}}};var G=i(67308),V={};V.styleTagTransform=k(),V.setAttributes=v(),V.insert=f().bind(null,"head"),V.domAPI=m(),V.insertStyleElement=C(),u()(G.Z,V),G.Z&&G.Z.locals&&G.Z.locals;const q=(0,_.Z)(H,R,[],!1,null,"61e624f6",null).exports;var U=function(){var e=this,t=e._self._c;return t("section",[t("v-card-title",{staticClass:"white--text secondary"},[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:""},on:{click:function(t){return e.showAll()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n "+e._s(e.tripList.length>0?"fa-eye fa":"fa-eye-slash fa")+"\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.tripList.length>0?e.$gettext("Hide All"):e.$gettext("Show All")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",disabled:0===e.tripList.length},on:{click:function(t){return e.editVisible()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n fas fa-list\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Visibles Properties")))])]),e._v(" "),t("v-spacer"),e._v(" "),t("span",{style:{color:"white"}},[e._v("\n "+e._s(e.$gettext("Roads"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-spacer"),e._v(" "),t("v-menu",{attrs:{"offset-y":"","open-on-hover":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",dark:""}},"v-btn",s,!1),i),[t("v-icon",[e._v("fa-solid fa-download")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","all")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export All"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","visible")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export Only Visible"))+"\n ")])],1)],1)],1)],1),e._v(" "),t("v-card",{staticClass:"mx-auto scrollable",attrs:{"max-width":"100%","min-width":"100%",height:e.height}},[t("v-list-item",[t("v-select",{attrs:{items:e.filterChoices,"prepend-icon":"fas fa-filter",label:e.$gettext("filter"),"item-color":"secondarydark",color:"secondarydark"},model:{value:e.vmodelSelectedFilter,callback:function(t){e.vmodelSelectedFilter=t},expression:"vmodelSelectedFilter"}})],1),e._v(" "),t("v-virtual-scroll",{attrs:{items:e.filteredCat,"item-height":45,height:e.height-71},scopedSlots:e._u([{key:"default",fn:function({item:i}){return[t("v-list-item",{key:e.vmodelSelectedFilter.concat(i),staticClass:"pl-2"},[t("v-list-item-action",[t("v-checkbox",{staticClass:"pl-2",attrs:{"on-icon":"fa-eye fa","off-icon":"fa-eye-slash fa",color:"primary",value:i,size:"10","hide-details":""},model:{value:e.tripList,callback:function(t){e.tripList=t},expression:"tripList"}})],1),e._v(" "),t("v-list-item-title",[e._v("\n "+e._s(i)+"\n ")]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!1},on:{click:function(t){return e.propertiesButton(i)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fas fa-list\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Line Properties")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!1},on:{click:function(t){return e.deleteButton({trip:i,group:e.selectedFilter,message:i,action:"deleterGroup"})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-trash\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete Line")))])])],1)]}}])}),e._v(" "),t("v-divider")],1),e._v(" "),t("v-card",{staticClass:"mx-auto"},[t("v-list-item",[t("v-tooltip",{attrs:{right:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"mx-2",attrs:{color:e.$store.getters.anchorMode?"grey":"regular"},on:{click:function(t){return e.$store.commit("changeAnchorMode")}}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fas fa-anchor\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(" "+e._s(e.$gettext("Edit Line geometry"))+" "),t("b",[e._v("(CTRL)")])])]),e._v(" "),t("v-tooltip",{attrs:{right:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"mx-2",attrs:{disabled:!e.$store.getters.hasCycleway,color:e.$store.getters.cyclewayMode?"green":"regular"},on:{click:function(t){return e.$store.commit("changeCyclewayMode")}}},"v-btn",s,!1),i),[t("v-icon",{attrs:{small:""}},[e._v("\n fas fa-biking\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(" "+e._s(e.$gettext("Show Cycleway direction instead of road")))])]),e._v(" "),t("v-spacer")],1)],1)],1)};U._withStripped=!0;const J={name:"RoadSidePanel",components:{},props:["selectedrGoup","height"],events:["deleteButton","propertiesButton","update-tripList"],data(){return{tripList:this.selectedrGoup,selectedFilter:"",vmodelSelectedFilter:""}},computed:{filterChoices(){return this.$store.getters.rlineAttributes},filteredCat(){return this.$store.getters.filteredrCategory}},watch:{tripList(e,t){let i="",s="add";e===this.filteredCat?(i=e,s="showAll"):0===e.length?(i=[],s="hideAll"):e.length!e.includes(t))),s="remove"):e.length>t.length&&(i=e.filter((e=>!t.includes(e))),s="add"),""!==i&&this.$emit("update-tripList",{category:this.vmodelSelectedFilter,data:i,method:s})},selectedrGoup(e){const t=new Set(e),i=new Set(this.tripList);t.size===i.size&&new Set([...t,...i]).size===t.size||(this.tripList=structuredClone(e))},vmodelSelectedFilter(e,t){this.selectedFilter=e,this.$store.commit("changeSelectedrFilter",this.selectedFilter),t&&(this.tripList=[])}},mounted(){this.tripList=this.selectedrGoup,this.selectedFilter=this.$store.getters.selectedrFilter,this.vmodelSelectedFilter=this.selectedFilter,this.$store.commit("changeSelectedrFilter",this.selectedFilter),0!==this.$store.getters.links.features.length||this.$store.getters.projectIsEmpty||0!==this.selectedrGoup.length||this.showAll()},methods:{propertiesButton(e){this.$emit("propertiesButton",{action:"Edit Road Group Info",lingering:!1,category:this.vmodelSelectedFilter,group:e})},editVisible(){this.$emit("propertiesButton",{action:"Edit Visible Road Info",lingering:!1})},deleteButton(e){this.$emit("deleteButton",e)},showAll(){this.tripList.length===this.filteredCat.length?this.tripList=[]:this.tripList=this.filteredCat},showGroup(e){this.tripList=Array.from(new Set([...this.tripList,...e]))}}};var W=i(82215),Y={};Y.styleTagTransform=k(),Y.setAttributes=v(),Y.insert=f().bind(null,"head"),Y.domAPI=m(),Y.insertStyleElement=C(),u()(W.Z,Y),W.Z&&W.Z.locals&&W.Z.locals;const K=(0,_.Z)(J,U,[],!1,null,"0e528228",null).exports;var Q=function(){var e=this,t=e._self._c;return t("section",[t("v-card-title",{staticClass:"white--text secondary"},[t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:""},on:{click:function(t){return e.showAll()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n "+e._s(e.vmodelSelectedCat.length>0?"fa-eye fa":"fa-eye-slash fa")+"\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.vmodelSelectedCat.length>0?e.$gettext("Hide All"):e.$gettext("Show All")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",disabled:0===e.vmodelSelectedCat.length},on:{click:function(t){return e.editVisible()}}},"v-btn",s,!1),i),[t("v-icon",{staticClass:"list-item-icon"},[e._v("\n fas fa-list\n ")])],1)]}}])},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Visibles Properties")))])]),e._v(" "),t("v-spacer"),e._v(" "),t("span",{style:{color:"white"}},[e._v("\n "+e._s(e.$gettext("OD"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-spacer"),e._v(" "),t("v-menu",{attrs:{"offset-y":"","open-on-hover":"","close-delay":"100",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"ma-2",style:{color:"white"},attrs:{icon:"",dark:""}},"v-btn",s,!1),i),[t("v-icon",[e._v("fa-solid fa-download")])],1)]}}])},[e._v(" "),t("v-list",[t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","all")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export All"))+"\n ")])],1),e._v(" "),t("v-list-item",{attrs:{link:""},on:{click:function(t){return e.$store.dispatch("exportFiles","visible")}}},[t("v-list-item-title",[e._v("\n "+e._s(e.$gettext("Export Only Visible"))+"\n ")])],1)],1)],1)],1),e._v(" "),t("v-card",{staticClass:"mx-auto scrollable",attrs:{"max-width":"100%","min-width":"100%",height:e.height}},[t("v-list-item",[t("v-select",{attrs:{items:e.filterChoices,"prepend-icon":"fas fa-filter",label:e.$gettext("filter"),"item-color":"secondarydark",color:"secondarydark"},model:{value:e.vmodelSelectedFilter,callback:function(t){e.vmodelSelectedFilter=t},expression:"vmodelSelectedFilter"}})],1),e._v(" "),t("v-virtual-scroll",{attrs:{items:e.filteredCat,"item-height":45,height:e.height-71},scopedSlots:e._u([{key:"default",fn:function({item:i}){return[t("v-list-item",{key:e.vmodelSelectedFilter.concat(i),staticClass:"pl-2"},[t("v-list-item-action",[t("v-checkbox",{staticClass:"pl-2",attrs:{"on-icon":"fa-eye fa","off-icon":"fa-eye-slash fa",color:"primary",value:i,size:"10","hide-details":""},model:{value:e.vmodelSelectedCat,callback:function(t){e.vmodelSelectedCat=t},expression:"vmodelSelectedCat"}})],1),e._v(" "),t("v-list-item-title",[e._v("\n "+e._s(i)+"\n ")]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!1},on:{click:function(t){return e.propertiesButton(i)}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fas fa-list\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Edit Line Properties")))])]),e._v(" "),t("v-tooltip",{attrs:{bottom:"","open-delay":"500"},scopedSlots:e._u([{key:"activator",fn:function({on:s,attrs:o}){return[t("v-btn",e._g(e._b({staticClass:"ma-1",attrs:{icon:"",disabled:!1},on:{click:function(t){return e.deleteButton({trip:i,group:e.selectedFilter,message:i,action:"deleteODGroup"})}}},"v-btn",o,!1),s),[t("v-icon",{attrs:{small:"",color:"regular"}},[e._v("\n fas fa-trash\n ")])],1)]}}],null,!0)},[e._v(" "),t("span",[e._v(e._s(e.$gettext("Delete Line")))])])],1)]}}])}),e._v(" "),t("v-divider")],1),e._v(" "),t("v-card",{staticClass:"mx-auto"},[t("v-list-item",[t("v-spacer")],1)],1)],1)};Q._withStripped=!0;const X={name:"RoadSidePanel",components:{},props:["height"],events:["deleteButton","propertiesButton"],data:()=>({vmodelSelectedFilter:"cycleway",vmodelSelectedCat:[]}),computed:{layer(){return this.$store.getters["od/layer"]},filterChoices(){return this.$store.getters["od/layerAttributes"]},selectedFilter(){return this.$store.getters["od/selectedFilter"]},selectedCat(){return this.$store.getters["od/selectedCategory"]},filteredCat(){return this.$store.getters["od/filteredCategory"]}},watch:{vmodelSelectedCat(e){this.$store.commit("od/changeSelectedCategory",e)},vmodelSelectedFilter(e){this.$store.commit("od/changeSelectedFilter",e),this.vmodelSelectedCat=[]}},mounted(){this.vmodelSelectedCat=this.selectedCat,this.vmodelSelectedFilter=this.selectedFilter},methods:{propertiesButton(e){this.$emit("propertiesButton",{action:"Edit OD Group Info",lingering:!1,category:this.vmodelSelectedFilter,group:e})},editVisible(){this.$emit("propertiesButton",{action:"Edit Visible OD Info",lingering:!1})},deleteButton(e){this.$emit("deleteButton",e)},showAll(){this.vmodelSelectedCat.length===this.filteredCat.length?this.vmodelSelectedCat=[]:this.vmodelSelectedCat=this.filteredCat},showGroup(e){this.tripList=Array.from(new Set([...this.tripList,...e]))}}};var ee=i(55271),te={};te.styleTagTransform=k(),te.setAttributes=v(),te.insert=f().bind(null,"head"),te.domAPI=m(),te.insertStyleElement=C(),u()(ee.Z,te),ee.Z&&ee.Z.locals&&ee.Z.locals;const ie={name:"SidePanel",components:{LinksSidePanel:q,RoadSidePanel:K,ODSidePanel:(0,_.Z)(X,Q,[],!1,null,"56780b52",null).exports},props:["selectedTrips","selectedrGroup"],events:["selectEditorTrip","confirmChanges","abortChanges","cloneButton","deleteButton","propertiesButton","change-mode"],data:()=>({showLeftPanelContent:!0,tab:0,mode:"pt"}),computed:{showLeftPanel(){return this.$store.getters.showLeftPanel},windowHeight(){return this.$store.getters.windowHeight-200}},watch:{showLeftPanel(e){e?setTimeout((()=>{this.showLeftPanelContent=!0}),500):this.showLeftPanelContent=!1},tab(e){this.mode=0===e?"pt":1===e?"road":"od",this.$emit("change-mode",this.mode)}},created(){0!==this.$store.getters.links.features.length||this.$store.getters.projectIsEmpty||(this.tab=1)}};var se=i(13719),oe={};oe.styleTagTransform=k(),oe.setAttributes=v(),oe.insert=f().bind(null,"head"),oe.domAPI=m(),oe.insertStyleElement=C(),u()(se.Z,oe),se.Z&&se.Z.locals&&se.Z.locals;const re=(0,_.Z)(ie,z,[],!1,null,"5064ebfe",null).exports;var ne=function(){var e=this,t=e._self._c;return t("MglMap",{key:e.mapStyle,style:{width:"100%"},attrs:{"access-token":e.mapboxPublicKey,"map-style":e.mapStyle,center:e.$store.getters.mapCenter,zoom:e.$store.getters.mapZoom},on:{load:e.onMapLoaded,mousemove:e.draw,mouseout:function(t){return e.resetDraw()},click:e.addPoint,mouseup:e.rightClickMap}},[e.mapIsLoaded?[t("Settings")]:e._e(),e._v(" "),e.mapIsLoaded&e.rasterFiles.length>0?[t("LayerSelector",{attrs:{choices:e.rasterFiles,"available-layers":e.availableLayers}})]:e._e(),e._v(" "),t("MglScaleControl",{attrs:{position:"bottom-right"}}),e._v(" "),t("MglNavigationControl",{attrs:{position:"bottom-right"}}),e._v(" "),e._l(e.rasterFiles,(function(i){return t("div",{key:i.name},[e.mapIsLoaded&&e.visibleRasters.includes(i.name)&&e.availableLayers.includes(i.layer)?[t("StaticLayer",{attrs:{preset:i,map:e.map,order:e.visibleRasters.indexOf(i.name)}})]:e._e()],2)})),e._v(" "),e.mapIsLoaded?[t("RoadLinks",e._g({ref:"roadref",attrs:{map:e.map,"is-editor-mode":e.isEditorMode,"is-road-mode":"road"===e.mode,"anchor-mode":e.anchorMode}},e.isEditorMode?{}:e.anchorMode?{clickFeature:e.clickFeature}:{onHover:e.onHoverRoad,offHover:e.offHover,clickFeature:e.clickFeature}))]:e._e(),e._v(" "),e.mapIsLoaded?[t("StaticLinks",{attrs:{map:e.map,"showed-trips":e.selectedTrips,"is-editor-mode":e.isEditorMode},on:{rightClick:t=>e.$emit("clickFeature",t)}})]:e._e(),e._v(" "),e.mapIsLoaded?[t("EditorLinks",e._g({attrs:{map:e.map,"anchor-mode":e.anchorMode}},e.anchorMode?{clickFeature:e.clickFeature}:{onHover:e.onHover,offHover:e.offHover,clickFeature:e.clickFeature}))]:e._e(),e._v(" "),e.mapIsLoaded?[t("ODMap",{attrs:{map:e.map,"is-editor-mode":e.isEditorMode,"is-o-d-mode":"od"===e.mode},on:{clickFeature:e.clickFeature}})]:e._e(),e._v(" "),e.mapIsLoaded?[e.drawMode?t("MglGeojsonLayer",{attrs:{"source-id":"drawLink",source:{type:"geojson",data:e.drawLink,buffer:0,generateId:!0},"layer-id":"drawLink",layer:{type:"line",minzoom:2,paint:{"line-opacity":1,"line-color":e.$vuetify.theme.currentTheme.linksprimary,"line-width":["case",["boolean",e.connectedDrawLink,!1],5,3],"line-dasharray":["case",["boolean",e.connectedDrawLink,!1],["literal",[]],["literal",[0,2,4]]]}}}}):e._e()]:e._e()],2)};ne._withStripped=!0;var ae=i(6158),le=i.n(ae),ce=i(1963),de=i(22317),pe=i(59903),ue=i.n(pe),he=function(){var e=this,t=e._self._c;return t("v-menu",{attrs:{"close-on-content-click":!1,"close-on-click":!1,origin:"top right",transition:"scale-transition","position-y":30,"nudge-width":200,"offset-x":"","offset-y":""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"setting",attrs:{fab:"",small:""}},"v-btn",s,!1),i),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fa-solid fa-cog\n ")])],1)]}}]),model:{value:e.show,callback:function(t){e.show=t},expression:"show"}},[e._v(" "),t("v-card",{class:{shake:e.shake},attrs:{"max-width":300},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.submit.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancel.apply(null,arguments)}]}},[t("v-card-title",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("Settings"))+"\n ")]),e._v(" "),t("v-card-text",[t("v-form",{ref:"form",attrs:{"lazy-validation":""}},[t("v-container",[t("v-col",[t("v-text-field",{attrs:{type:e.linkSpeed.type,label:e.$gettext(e.linkSpeed.name),suffix:e.linkSpeed.units,hint:e.showHint?e.$gettext(e.linkSpeed.hint):"","persistent-hint":e.showHint,rules:e.rules,required:""},on:{wheel:()=>{}},model:{value:e.linkSpeed.value,callback:function(t){e.$set(e.linkSpeed,"value",t)},expression:"linkSpeed.value"}}),e._v(" "),t("v-text-field",{attrs:{type:e.roadSpeed.type,label:e.$gettext(e.roadSpeed.name),suffix:e.roadSpeed.units,hint:e.showHint?e.$gettext(e.roadSpeed.hint):"","persistent-hint":e.showHint,rules:e.rules,required:""},on:{wheel:()=>{}},model:{value:e.roadSpeed.value,callback:function(t){e.$set(e.roadSpeed,"value",t)},expression:"roadSpeed.value"}}),e._v(" "),t("v-select",{attrs:{items:e.linksPopupContent.choices,label:e.$gettext(e.linksPopupContent.name),hint:e.showHint?e.$gettext(e.linksPopupContent.hint):"","persistent-hint":e.showHint,"menu-props":{top:!0,offsetY:!0},chips:"",multiple:""},model:{value:e.linksPopupContent.value,callback:function(t){e.$set(e.linksPopupContent,"value",t)},expression:"linksPopupContent.value"}}),e._v(" "),t("v-select",{attrs:{items:e.roadsPopupContent.choices,label:e.$gettext(e.roadsPopupContent.name),hint:e.showHint?e.$gettext(e.roadsPopupContent.hint):"","persistent-hint":e.showHint,"menu-props":{top:!0,offsetY:!0},chips:"",multiple:""},model:{value:e.roadsPopupContent.value,callback:function(t){e.$set(e.roadsPopupContent,"value",t)},expression:"roadsPopupContent.value"}}),e._v(" "),t("v-text-field",{attrs:{type:e.defaultHighway.type,label:e.$gettext(e.defaultHighway.name),suffix:e.defaultHighway.units,hint:e.showHint?e.$gettext(e.defaultHighway.hint):"","persistent-hint":e.showHint,rules:e.zipRules,required:""},model:{value:e.defaultHighway.value,callback:function(t){e.$set(e.defaultHighway,"value",t)},expression:"defaultHighway.value"}}),e._v(" "),t("v-text-field",{attrs:{type:e.outputName.type,label:e.$gettext(e.outputName.name),suffix:e.outputName.units,hint:e.showHint?e.$gettext(e.outputName.hint):"","persistent-hint":e.showHint,rules:e.zipRules,required:""},model:{value:e.outputName.value,callback:function(t){e.$set(e.outputName,"value",t)},expression:"outputName.value"}})],1)],1)],1)],1),e._v(" "),t("v-card-actions",[t("v-btn",{attrs:{color:"grey",text:""},on:{click:e.cancel}},[e._v("\n "+e._s(e.$gettext("Cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"green darken-1",text:""},on:{click:e.submit}},[e._v("\n "+e._s(e.$gettext("Save"))+"\n ")]),e._v(" "),t("v-spacer"),e._v(" "),t("v-btn",{attrs:{icon:"",small:""},on:{click:function(t){e.showHint=!e.showHint}}},[t("v-icon",[e._v("far fa-question-circle small")])],1)],1)],1)],1)};he._withStripped=!0;const me={name:"Settings",events:["submit"],data:()=>({show:!1,linkSpeed:{name:"PT speed",type:"Number",value:0,units:"km/h",hint:"Speed used to calculate travel time when a link is drawn, extend or a node is moved"},roadSpeed:{name:"Road speed",type:"Number",value:0,units:"km/h",hint:"Speed used to calculate road travel time when a link is drawn"},linksPopupContent:{name:"PT Popup Content",type:"String",choices:[],value:"",hint:"Link field to display when hovering a trip on the map"},roadsPopupContent:{name:"Road Popup Content",type:"String",choices:[],value:"",hint:"Link field to display when hovering road link on the map"},defaultHighway:{name:"Road Highway name",type:"String",value:"",hint:"New road links Highway property name"},outputName:{name:"Export name",type:"String",value:"",units:".zip",hint:"the name of the exported zip file"},errorMessage:null,showHint:!1,shake:!1,rules:[e=>!!e||"Required",e=>e>=0||"should be larger than 0"],zipRules:[e=>".zip"!==e.slice(-4)||"do not add .zip to the end"],showDialog:!0}),watch:{show(){this.fetch()}},created(){this.localShow=this.show,this.fetch()},methods:{fetch(){this.linkSpeed.value=this.$store.getters.linkSpeed,this.roadSpeed.value=this.$store.getters.roadSpeed,this.linksPopupContent.choices=this.$store.getters.lineAttributes,this.linksPopupContent.value=this.$store.getters.linksPopupContent,this.roadsPopupContent.choices=this.$store.getters.rlineAttributes,this.roadsPopupContent.value=this.$store.getters.roadsPopupContent,this.defaultHighway.value=this.$store.getters.defaultHighway,this.outputName.value=this.$store.getters.outputName},submit(){if(this.$refs.form.validate()){const e={linkSpeed:this.linkSpeed.value,roadSpeed:this.roadSpeed.value,linksPopupContent:this.linksPopupContent.value,roadsPopupContent:this.roadsPopupContent.value,outputName:this.outputName.value,defaultHighway:this.defaultHighway.value};this.$store.commit("applySettings",e),this.$emit("submit",!0),this.show=!1,this.$store.commit("changeNotification",{text:"modification applied",autoClose:!0,color:"success"})}else this.shake=!0,setTimeout((()=>{this.shake=!1}),500)},cancel(){this.$emit("submit",!1),this.show=!1}}};var ge=i(5236),fe={};fe.styleTagTransform=k(),fe.setAttributes=v(),fe.insert=f().bind(null,"head"),fe.domAPI=m(),fe.insertStyleElement=C(),u()(ge.Z,fe),ge.Z&&ge.Z.locals&&ge.Z.locals;const Ae=(0,_.Z)(me,he,[],!1,null,"6c428464",null).exports;var ve=function(){var e=this,t=e._self._c;return t("section",[t("MglGeojsonLayer",e._g({attrs:{"source-id":"links",source:{type:"geojson",data:e.visibleLinks,buffer:0,promoteId:"index"},"layer-id":"links",layer:{interactive:!0,type:"line",minzoom:1,maxzoom:18,paint:{"line-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary],"line-opacity":["case",["boolean",e.isEditorMode,!1],.1,1],"line-width":["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],3],3]},layout:{"line-sort-key":["to-number",["get","route_width"]],"line-cap":"round"}}}},e.isEditorMode?{}:{mouseenter:e.enterLink,mouseleave:e.leaveLink,contextmenu:e.editLineProperties})),e._v(" "),t("MglGeojsonLayer",{attrs:{"source-id":"nodes",source:{type:"geojson",data:e.visibleNodes,buffer:0,promoteId:"index"},"layer-id":"nodes",layer:{interactive:!0,type:"circle",minzoom:12,maxzoom:18,paint:{"circle-color":["case",["boolean",e.isEditorMode,!1],e.$vuetify.theme.currentTheme.mediumgrey,e.$vuetify.theme.currentTheme.accent],"circle-stroke-color":e.$vuetify.theme.currentTheme.white,"circle-stroke-width":1,"circle-radius":["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],3],3]}}}})],1)};ve._withStripped=!0;const ye={name:"StaticLinks",components:{MglGeojsonLayer:ce.tf},props:["map","showedTrips","isEditorMode"],events:["rightClick"],data:()=>({visibleNodes:{},visibleLinks:{},selectedFeatures:[]}),computed:{selectedPopupContent(){return this.$store.getters.linksPopupContent},links(){return this.$store.getters.links},nodes(){return this.$store.getters.nodes}},watch:{showedTrips(e,t){this.setHiddenFeatures()},isEditorMode(e){e?this.map.off("dblclick",this.selectLine):this.map.on("dblclick",this.selectLine)}},created(){this.visibleLinks=structuredClone(this.$store.getters.linksHeader),this.visibleNodes=structuredClone(this.$store.getters.nodesHeader),this.setHiddenFeatures(),this.map.on("dblclick",this.selectLine)},methods:{enterLink(e){if(e.map.getCanvas().style.cursor="pointer",this.selectedFeatures=e.mapboxEvent.features,this.popup?.isOpen()&&this.popup.remove(),this.selectedPopupContent.length>0){let t=this.selectedPopupContent.map((e=>`${e}: ${this.selectedFeatures[0].properties[e]}`));t=t.join("
"),this.popup=new(le().Popup)({closeButton:!1}).setLngLat([e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat]).setHTML(t).addTo(e.map)}},leaveLink(e){this.selectedFeatures=[],this.popup?.isOpen()&&this.popup.remove(),e.map.getCanvas().style.cursor=""},setHiddenFeatures(){const e=new Set(this.showedTrips);this.visibleLinks.features=this.links.features.filter((t=>e.has(t.properties.trip_id)));const t=this.visibleLinks.features.map((e=>e.properties.a)),i=this.visibleLinks.features.map((e=>e.properties.b)),s=new Set([...t,...i]);this.visibleNodes.features=this.visibleNodes.features.filter((e=>s.has(e.properties.index)));const o=[...new Set(this.visibleLinks.features.map((e=>Number(e.properties.route_width))))],r={};o.forEach((e=>r[e]=new Set)),this.visibleLinks.features.map((e=>[e.properties.a,e.properties.b].forEach((t=>r[Number(e.properties.route_width)].add(t)))));let n=new Set;for(let e=0;e!n.has(e))))}o.forEach((e=>{const t=this.nodes.features.filter((t=>r[e].has(t.properties.index)));t.map((t=>t.properties.route_width=e)),this.visibleNodes.features.push(...t)}))},selectLine(e){if(e.preventDefault(),0===this.selectedFeatures.length){const t=[[e.point.x-5,e.point.y-5],[e.point.x+5,e.point.y+5]];this.selectedFeatures=this.map.queryRenderedFeatures(t,{layers:["links"]})}this.selectedFeatures.length>0&&(this.$store.commit("setEditorTrip",{tripId:this.selectedFeatures[0].properties.trip_id,changeBounds:!1}),this.$store.commit("changeNotification",{text:"",autoClose:!0}))},editLineProperties(e){this.$store.commit("setEditorTrip",{tripId:e.mapboxEvent.features[0].properties.trip_id,changeBounds:!1}),this.$emit("rightClick",{action:"Edit Line Info",lingering:!1})}}},Ce=(0,_.Z)(ye,ve,[],!1,null,"661f6889",null).exports;var be=function(){var e=this,t=e._self._c;return t("section",[t("MglGeojsonLayer",e._g({attrs:{"source-id":"editorLinks",source:{type:"geojson",data:e.$store.getters.editorLinks,buffer:0,promoteId:"index"},"layer-id":"editorLinks",layer:{type:"line",minzoom:2,paint:{"line-color":["case",["boolean",e.anchorMode,!1],e.$vuetify.theme.currentTheme.linkssecondary,e.$vuetify.theme.currentTheme.linksprimary],"line-width":["case",["boolean",["feature-state","hover"],!1],12,5],"line-blur":["case",["boolean",["feature-state","hover"],!1],6,0]}}},on:{click:e.selectClick,mouseover:e.onCursor,mouseleave:e.offCursor}},e.anchorMode?{}:{contextmenu:e.linkRightClick})),e._v(" "),t("MglImageLayer",{attrs:{"source-id":"editorLinks",type:"symbol",source:"editorLinks","layer-id":"arrow-layer",layer:{type:"symbol",minzoom:5,layout:{"symbol-placement":"line","symbol-spacing":30,"icon-ignore-placement":!0,"icon-image":"arrow","icon-size":.5,"icon-rotate":90},paint:{"icon-color":["case",["boolean",e.anchorMode,!1],e.$vuetify.theme.currentTheme.linkssecondary,e.$vuetify.theme.currentTheme.linksprimary]}}}}),e._v(" "),t("MglGeojsonLayer",e._g({attrs:{"source-id":"editorNodes",source:{type:"geojson",data:e.$store.getters.editorNodes,buffer:0,promoteId:"index"},"layer-id":"editorNodes",layer:{interactive:!0,type:"circle",minzoom:2,paint:{"circle-color":e.$vuetify.theme.currentTheme.accent,"circle-radius":["case",["boolean",["feature-state","hover"],!1],16,8],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0]}}},on:{mouseover:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode}},e.anchorMode?{}:{click:e.selectClick,contextmenu:e.contextMenuNode})),e._v(" "),t("MglGeojsonLayer",{attrs:{"source-id":"anchorNodes",source:{type:"geojson",data:e.anchorNodes,buffer:0,promoteId:"index"},"layer-id":"anchorNodes",layer:{interactive:!0,type:"circle",minzoom:2,paint:{"circle-color":"#ffffff","circle-opacity":.5,"circle-radius":["case",["boolean",["feature-state","hover"],!1],10,5],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0],"circle-stroke-color":"#2C3E4E","circle-stroke-width":2}}},on:{click:e.selectClick,mouseover:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode,contextmenu:e.contextMenuNode}}),e._v(" "),t("MglPopup",{attrs:{"close-button":!1,showed:e.popupEditor.showed,coordinates:e.popupEditor.coordinates},on:{close:function(t){e.popupEditor.showed=!1}}},[t("span",[t("h3",[e._v(e._s(e.popupEditor.content))]),e._v(" "),t("hr"),e._v("\n "+e._s("editorLinks"==e.hoveredStateId?.layerId?e.$gettext("Left click to add a stop"):e.$gettext("Hold left click to drag"))+"\n "),t("hr"),e._v("\n "+e._s("editorLinks"==e.hoveredStateId?.layerId?e.$gettext("Right click to edit properties"):e.$gettext("Right click for context menu"))+"\n ")])]),e._v(" "),t("MglPopup",{attrs:{"close-button":!1,showed:e.contextMenu.showed,coordinates:e.contextMenu.coordinates},on:{close:function(t){e.contextMenu.showed=!1}}},[t("span",{on:{mouseleave:function(t){e.contextMenu.showed=!1}}},[t("v-list",{attrs:{dense:"",flat:""}},[t("v-list-item-group",e._l(e.contextMenu.actions,(function(i){return t("v-list-item",{key:i.id},[t("v-list-item-content",[t("v-btn",{attrs:{outlined:"",small:""},on:{click:function(t){return e.actionClick({action:i,feature:e.contextMenu.feature,coordinates:e.contextMenu.coordinates})}}},[e._v("\n "+e._s(e.$gettext(i))+"\n ")])],1)],1)})),1)],1)],1)])],1)};be._withStripped=!0;const ke={name:"EditorLinks",components:{MglPopup:ce.eO,MglImageLayer:ce.vV,MglGeojsonLayer:ce.tf},props:["map","anchorMode"],events:["clickFeature","onHover","offHover"],data:()=>({selectedFeature:null,hoveredStateId:null,disablePopup:!1,keepHovering:!1,dragNode:!1,popupEditor:{coordinates:[0,0],showed:!1,content:null},contextMenu:{coordinates:[0,0],showed:!1,actions:[],feature:null,type:null}}),computed:{anchorNodes(){return this.anchorMode?this.$store.getters.anchorNodes:this.$store.getters.nodesHeader}},watch:{},created(){},methods:{selectClick(e){if(null!==this.hoveredStateId){const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);if(this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id))[0],null!==this.selectedFeature&&"editorLinks"===this.hoveredStateId.layerId){const t=this.anchorMode?"Add Anchor Inline":"Add Stop Inline",i={selectedFeature:this.selectedFeature,action:t,lngLat:e.mapboxEvent.lngLat};this.$emit("clickFeature",i)}}},onCursor(e){null!==this.hoveredStateId&&"editorLinks"!==this.hoveredStateId.layerId||(this.map.getCanvas().style.cursor="pointer",null!==this.hoveredStateId&&this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id},{hover:!1}),this.hoveredStateId={layerId:e.layerId,id:e.mapboxEvent.features[0].id},this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id},{hover:!0}),!this.disablePopup&!this.anchorMode&&(this.popupEditor.coordinates=[e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat],this.popupEditor.content=this.hoveredStateId.id,this.popupEditor.showed=!0)),this.$emit("onHover",{selectedId:this.hoveredStateId.id})},offCursor(e){null!==this.hoveredStateId&&(["editorNodes","anchorNodes"].includes(this.hoveredStateId.layerId)&&"editorLinks"===e?.layerId||(this.keepHovering?(this.dragNode=!0,this.contextMenu.showed=!1):(this.map.getCanvas().style.cursor="",this.popupEditor.showed=!1,this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id},{hover:!1}),this.hoveredStateId=null,this.$emit("offHover",e))))},contextMenuNode(e){if(this.popupEditor.showed&&"editorNodes"===this.hoveredStateId?.layerId){this.contextMenu.coordinates=[e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat],this.contextMenu.showed=!0,this.contextMenu.type="node";const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.contextMenu.feature=t.filter((e=>e.id===this.hoveredStateId.id))[0];const i=this.contextMenu.feature.properties.index;i===this.$store.getters.firstNodeId||i===this.$store.getters.lastNodeId?this.contextMenu.actions=["Edit Node Info","Delete Stop"]:this.contextMenu.actions=["Edit Node Info","Cut Before Node","Cut After Node","Delete Stop"]}else if("anchorNodes"===this.hoveredStateId?.layerId){const e=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=e.filter((e=>e.id===this.hoveredStateId.id));const t={selectedFeature:this.selectedFeature[0],action:"Delete Anchor",lngLat:null};this.$emit("clickFeature",t)}},linkRightClick(e){if("editorLinks"===this.hoveredStateId.layerId){const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id))[0];const i={selectedFeature:this.selectedFeature,action:"Edit Link Info",lngLat:e.mapboxEvent.lngLat,lingering:!0};this.$emit("clickFeature",i)}},actionClick(e){const t={selectedFeature:e.feature,action:e.action,lngLat:e.coordinates};this.$emit("clickFeature",t),this.contextMenu.showed=!1,this.contextMenu.type=null},moveNode(e){if(0===e.mapboxEvent.originalEvent.button&["editorNodes","anchorNodes"].includes(this.hoveredStateId.layerId)){e.mapboxEvent.preventDefault(),this.map.getCanvas().style.cursor="grab",this.keepHovering=!0;const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id))[0],this.disablePopup=!0,this.popupEditor.showed=!1,this.map.on("mousemove",this.onMove),this.map.on("mouseup",this.stopMovingNode)}},onMove(e){if(this.map.loaded()&&this.dragNode&&this.selectedFeature){const t={selectedFeature:this.selectedFeature,action:null,lngLat:Object.values(e.lngLat)};"anchorNodes"===this.hoveredStateId.layerId?(t.action="Move Anchor",this.$emit("clickFeature",t)):(t.action="Move Node",this.$emit("clickFeature",t))}},stopMovingNode(e){this.map.getCanvas().style.cursor="pointer",this.map.off("mousemove",this.onMove),this.keepHovering=!1,this.dragNode=!1,this.disablePopup=!1,this.offCursor(),this.map.off("mouseup",this.stopMovingNode)}}},we=(0,_.Z)(ke,be,[],!1,null,"02bf194d",null).exports;var xe=function(){var e=this,t=e._self._c;return t("section",[t("MglGeojsonLayer",e._g({attrs:{"source-id":"rlinks",source:{type:"geojson",data:e.isRoadMode?e.renderedrLinks:e.rlinks,buffer:0,promoteId:"index"},"layer-id":"rlinks",layer:{interactive:!0,type:"line",minzoom:e.minZoom.links,paint:{"line-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary],"line-opacity":["case",["boolean",e.isEditorMode,!1],.3,1],"line-width":["*",["case",["boolean",["feature-state","hover"],!1],3,1],["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]],"line-blur":["*",["case",["boolean",["feature-state","hover"],!1],1,0],["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]]},layout:{"line-sort-key":["to-number",["get","route_width"]]}}}},e.isEditorMode?{}:{mouseenter:e.onCursor,mouseleave:e.offCursor,click:e.selectClick,contextmenu:e.linkRightClick})),e._v(" "),t("MglImageLayer",{attrs:{"source-id":"rlinks",type:"symbol",source:"rlinks","layer-id":"arrow-rlinks",layer:{type:"symbol",minzoom:e.minZoom.rendered,layout:{"symbol-placement":"line","symbol-spacing":200,"icon-ignore-placement":!0,"icon-image":"arrow","icon-size":e.ArrowSizeCondition,"icon-rotate":e.ArrowDirCondition},paint:{"icon-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary]}}}}),e._v(" "),t("MglGeojsonLayer",e._g({attrs:{"source-id":"rnodes",source:{type:"geojson",data:e.isRoadMode?e.renderedrNodes:e.rnodes,buffer:0,promoteId:"index"},"layer-id":"rnodes",layer:{interactive:!0,type:"circle",minzoom:e.minZoom.rendered,paint:{"circle-color":["case",["boolean",e.isEditorMode,!1],e.$vuetify.theme.currentTheme.mediumgrey,e.$vuetify.theme.currentTheme.accent],"circle-stroke-color":e.$vuetify.theme.currentTheme.white,"circle-stroke-width":1,"circle-radius":["case",["boolean",["feature-state","hover"],!1],14,3],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0]}}}},e.isEditorMode?{}:{mouseenter:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode,contextmenu:e.contextMenuNode})),e._v(" "),t("MglGeojsonLayer",{attrs:{"source-id":"anchorrNodes",source:{type:"geojson",data:e.isRoadMode?e.renderedAnchorrNodes:e.$store.getters.rnodesHeader,buffer:0,promoteId:"index"},"layer-id":"anchorrNodes",layer:{interactive:!0,type:"circle",minzoom:e.minZoom.rendered,paint:{"circle-color":"#ffffff","circle-opacity":.5,"circle-radius":["case",["boolean",["feature-state","hover"],!1],10,5],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0],"circle-stroke-color":e.$vuetify.theme.currentTheme.darkgrey,"circle-stroke-width":2}}},on:{click:e.selectClick,mouseover:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode,contextmenu:e.contextMenuNode}}),e._v(" "),t("MglPopup",{attrs:{"close-button":!1,showed:e.contextMenu.showed,coordinates:e.contextMenu.coordinates},on:{close:function(t){e.contextMenu.showed=!1}}},[t("span",{on:{mouseleave:function(t){e.contextMenu.showed=!1}}},[t("v-list",{attrs:{dense:"",flat:""}},[t("v-list-item-group",e._l(e.contextMenu.actions,(function(i){return t("v-list-item",{key:i.id},[t("v-list-item-content",[t("v-btn",{attrs:{outlined:"",small:""},on:{click:function(t){return e.actionClick({action:i,feature:e.contextMenu.feature,coordinates:e.contextMenu.coordinates})}}},[e._v("\n "+e._s(e.$gettext(i))+"\n ")])],1)],1)})),1)],1)],1)])],1)};xe._withStripped=!0;var _e=i(95637),Ee=i(95);const Se={name:"StaticLinks",components:{MglGeojsonLayer:ce.tf,MglImageLayer:ce.vV,MglPopup:ce.eO},props:["map","isEditorMode","anchorMode","isRoadMode"],events:["clickFeature"],data:()=>({hoveredStateId:null,visibleNodes:{},visibleLinks:{},disablePopup:!1,editorRnodes:{},bbox:null,minZoom:{links:2,rendered:14},contextMenu:{coordinates:[0,0],showed:!1,actions:[],feature:null}}),computed:{selectedPopupContent(){return this.$store.getters.roadsPopupContent},selectedrGroup(){return this.$store.getters.selectedrGroup},cyclewayMode(){return this.$store.getters.cyclewayMode},rnodes(){return this.$store.getters.visiblerNodes},rlinks(){return this.$store.getters.visiblerLinks},renderedrLinks(){return this.$store.getters.renderedrLinks},renderedrNodes(){return this.$store.getters.renderedrNodes},renderedAnchorrNodes(){return this.anchorMode?this.$store.getters.anchorrNodes:this.$store.getters.rnodesHeader},ArrowSizeCondition(){const e=["case",["has","oneway"],["case",["to-boolean",["to-number",["get","oneway"]]],.15,0],.15],t=["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2];return this.cyclewayMode?["*",["case",["any",["all",["==",["get","cycleway"],"yes"],["==",["get","cycleway_reverse"],"yes"]],["all",["==",["get","cycleway"],"shared"],["==",["get","cycleway_reverse"],"shared"]],["all",["==",["get","cycleway"],"yes"],["==",["get","cycleway_reverse"],"shared"]],["all",["==",["get","cycleway"],"shared"],["==",["get","cycleway_reverse"],"yes"]]],0,["case",["all",["==",["get","cycleway"],"no"],["==",["get","cycleway_reverse"],"no"]],e,.15]],t]:["*",e,t]},ArrowDirCondition(){return this.cyclewayMode?["case",["any",["all",["==",["get","cycleway"],"no"],["==",["get","cycleway_reverse"],"yes"]],["all",["==",["get","cycleway"],"no"],["==",["get","cycleway_reverse"],"shared"]]],-90,90]:90}},watch:{selectedrGroup(e){this.getBounds()},isRoadMode(e){e?(this.map.on("dragend",this.getBounds),this.map.on("zoomend",this.getBounds)):(this.map.off("dragend",this.getBounds),this.map.off("zoomend",this.getBounds))}},created(){this.map.on("dragend",this.getBounds),this.map.on("zoomend",this.getBounds)},beforeDestroy(){this.map.removeLayer("arrow-rlinks")},methods:{getBounds(){const e=this.map.getBounds();this.bbox=(0,_e.Z)((0,Ee.Z)([e._sw.lng,e._sw.lat,e._ne.lng,e._ne.lat]),.2),this.map.getZoom()>this.minZoom.rendered?this.$store.commit("getRenderedrLinks",{bbox:this.bbox}):this.map.getZoom()>this.minZoom.links?this.$store.commit("setRenderedrLinks",{method:"visible"}):this.$store.commit("setRenderedrLinks",{method:"None"})},onCursor(e){if(this.isRoadMode&&(this.popup?.isOpen()&&this.popup.remove(),null===this.hoveredStateId||"rlinks"===this.hoveredStateId.layerId)){if(!this.disablePopup&&this.selectedPopupContent.length>0){const t=e.mapboxEvent.features[0];if("rnodes"!==t.layer.id){let i=this.selectedPopupContent.map((e=>`${e}: ${t.properties[e]}`));i=i.join("
"),this.popup=new(le().Popup)({closeButton:!1}).setLngLat([e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat]).setHTML(i).addTo(e.map)}}this.map.getCanvas().style.cursor="pointer",null!==this.hoveredStateId&&this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1});const t=[...new Set(e.mapboxEvent.features.map((e=>e.id)))];this.hoveredStateId={layerId:e.layerId,id:t},this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!0}),this.$emit("onHover",{layerId:this.hoveredStateId.layerId,selectedId:this.hoveredStateId.id})}},offCursor(e){this.isRoadMode&&(this.popup?.isOpen()&&this.popup.remove(),null!==this.hoveredStateId&&(["rnodes","anchorrNodes"].includes(this.hoveredStateId?.layerId)&&"rlinks"===e?.layerId||(this.keepHovering?this.dragNode=!0:(this.map.getCanvas().style.cursor="",this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1}),this.hoveredStateId=null,this.$emit("offHover",e)))))},selectClick(e){if(this.isRoadMode&&null!==this.hoveredStateId&&(this.selectedFeature=this.hoveredStateId.id,null!==this.selectedFeature&&"rlinks"===this.hoveredStateId.layerId)){const t=this.anchorMode?"Add Road Anchor Inline":"Add Road Node Inline",i={selectedIndex:this.selectedFeature,action:t,lngLat:e.mapboxEvent.lngLat};this.$emit("clickFeature",i)}},linkRightClick(e){this.isRoadMode&&"rlinks"===this.hoveredStateId.layerId&&(this.contextMenu.coordinates=[e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat],this.contextMenu.showed=!0,this.contextMenu.feature=this.hoveredStateId.id,this.contextMenu.actions=["Edit rLink Info","Delete rLink"])},actionClick(e){const t={selectedIndex:e.feature,action:e.action,lngLat:e.coordinates};this.$emit("clickFeature",t),this.contextMenu.showed=!1,this.contextMenu.type=null},contextMenuNode(e){if(this.isRoadMode){const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);if(this.selectedFeature=t.filter((e=>this.hoveredStateId.id.includes(e.id))),this.selectedFeature.length>0)if("rnodes"===this.hoveredStateId?.layerId){const t={selectedFeature:this.selectedFeature[0],action:"Edit rNode Info",lngLat:e.mapboxEvent.lngLat};this.$emit("clickFeature",t)}else if("anchorrNodes"===this.hoveredStateId?.layerId){const e={selectedFeature:this.selectedFeature[0],action:"Delete Road Anchor",lngLat:null};this.$emit("clickFeature",e)}}},moveNode(e){if(this.isRoadMode&&0===e.mapboxEvent.originalEvent.button&["rnodes","anchorrNodes"].includes(this.hoveredStateId.layerId)){e.mapboxEvent.preventDefault(),this.map.getCanvas().style.cursor="grab",this.keepHovering=!0;const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id[0]))[0],this.disablePopup=!0,"rnodes"===this.hoveredStateId.layerId&&this.$store.commit("getConnectedLinks",{selectedNode:this.selectedFeature}),this.map.on("mousemove",this.onMove),this.map.on("mouseup",this.stopMovingNode)}},onMove(e){if(this.dragNode&&this.selectedFeature){const t={selectedFeature:this.selectedFeature,action:null,lngLat:Object.values(e.lngLat)};"anchorrNodes"===this.hoveredStateId.layerId?(t.action="Move rAnchor",this.$emit("clickFeature",t)):(t.action="Move rNode",this.$emit("clickFeature",t))}},stopMovingNode(e){this.isRoadMode&&(this.map.getCanvas().style.cursor="pointer",this.map.off("mousemove",this.onMove),this.keepHovering=!1,this.dragNode=!1,this.disablePopup=!1,this.map.getCanvas().style.cursor="",this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1}),this.hoveredStateId=null,this.map.off("mouseup",this.stopMovingNode))}}},Le=(0,_.Z)(Se,xe,[],!1,null,"5bdbd7bc",null).exports;var Ie=function(){var e=this,t=e._self._c;return t("section",[t("div",{staticClass:"map-legend"},[t("MapLegend",{attrs:{"color-scale":e.colorScale,"display-settings":e.displaySettings,"base-offset":350,order:e.order}})],1),e._v(" "),["MultiPolygon","Polygon"].includes(e.type)?t("MglGeojsonLayer",{attrs:{"source-id":e.preset.name+"-layer",source:{type:"geojson",data:e.layer},"layer-id":e.preset.name+"-layer",layer:{interactive:!1,type:"fill",minzoom:5,paint:{"fill-color":["get","display_color"],"fill-opacity":e.opacity/100}}}}):e._e(),e._v(" "),"LineString"==e.type?t("MglGeojsonLayer",{attrs:{"source-id":e.preset.name+"-layer",source:{type:"geojson",data:e.layer,buffer:0,promoteId:"index"},"layer-id":e.preset.name+"-layer",layer:{interactive:!0,type:"line",minzoom:5,paint:{"line-color":["get","display_color"],"line-opacity":e.opacity/100,"line-offset":["*",.5*e.offsetValue,["to-number",["get","display_width"]]],"line-width":["get","display_width"]},layout:{"line-sort-key":["to-number",["get","display_width"]],"line-cap":"round"}}}}):e._e(),e._v(" "),"Point"==e.type?t("MglGeojsonLayer",{attrs:{"source-id":e.preset.name+"-layer",source:{type:"geojson",data:e.layer},"layer-id":e.preset.name+"-layer",layer:{interactive:!1,type:"circle",minzoom:5,paint:{"circle-color":["get","display_color"],"circle-radius":["get","display_width"],"circle-opacity":e.opacity/100},layout:{"circle-sort-key":["to-number",["get","display_width"]]}}}}):e._e()],1)};Ie._withStripped=!0;var $e=i(25286);const Ne={name:"StaticLayer",components:{MglGeojsonLayer:ce.tf,MapLegend:$e.Z},props:["preset","map","order"],data:()=>({type:"",layer:{},opacity:100,offsetValue:-1,displaySettings:{},colorScale:null}),watch:{},beforeDestroy(){this.map.getLayer(this.preset.name+"-layer")&&this.map.removeLayer(this.preset.name+"-layer")},mounted(){this.map.moveLayer(this.preset.name+"-layer","rlinks")},created(){this.opacity=this.preset.displaySettings.opacity,this.offsetValue=this.preset.displaySettings.offset?-1:1,this.changeLayer(this.preset.layer),Object.keys(this.preset).includes("selectedFilter")&&(this.$store.getters["results/lineAttributes"].includes(this.preset.selectedFilter)?(this.$store.commit("results/changeSelectedFilter",this.preset.selectedFilter),Object.keys(this.preset).includes("selectedCategory")&&(this.$store.commit("results/changeSelectedCategory",this.preset.selectedCategory),this.$store.commit("results/updateSelectedFeature"))):this.$store.commit("changeNotification",{text:this.preset.selectedFilter+" filter does not exist. use default one",autoClose:!0,color:"error"})),this.$store.commit("results/applySettings",this.preset.displaySettings),this.layer=structuredClone(this.$store.getters["results/displayLinks"]),this.type=structuredClone(this.$store.getters["results/type"]),this.colorScale=this.$store.getters["results/colorScale"],this.displaySettings=structuredClone(this.$store.getters["results/displaySettings"]),this.$store.commit("results/unload")},methods:{changeLayer(e){switch(this.selectedLayer=e,e){case"links":this.$store.commit("results/loadLinks",{geojson:this.$store.getters.links,type:"LineString",selectedFeature:"headway"});break;case"rlinks":this.$store.commit("results/loadLinks",{geojson:this.$store.getters.rlinks,type:"LineString",selectedFeature:"speed"});break;case"nodes":this.$store.commit("results/loadLinks",{geojson:this.$store.getters.nodes,type:"Point",selectedFeature:"boardings"});break;case"rnodes":this.$store.commit("results/loadLinks",{geojson:this.$store.getters.rnodes,type:"Point",selectedFeature:"boardings"});break;case"od":this.$store.commit("results/loadLinks",{geojson:this.$store.getters["od/layer"],type:"LineString",selectedFeature:"volume"});break;default:this.$store.commit("results/loadLinks",{geojson:this.$store.getters[`${e}/layer`],type:this.$store.getters[`${e}/type`]})}}}};var Fe=i(98210),Be={};Be.styleTagTransform=k(),Be.setAttributes=v(),Be.insert=f().bind(null,"head"),Be.domAPI=m(),Be.insertStyleElement=C(),u()(Fe.Z,Be),Fe.Z&&Fe.Z.locals&&Fe.Z.locals;const Me=(0,_.Z)(Ne,Ie,[],!1,null,"7dc7a5bf",null).exports;var je=function(){var e=this,t=e._self._c;return t("section",[t("v-menu",{attrs:{"close-on-content-click":!1,"close-on-click":!0,origin:"top right",transition:"scale-transition","position-y":30,"nudge-width":200,"offset-x":"","offset-y":""},scopedSlots:e._u([{key:"activator",fn:function({on:i,attrs:s}){return[t("v-btn",e._g(e._b({staticClass:"layer-button",attrs:{fab:"",small:""}},"v-btn",s,!1),i),[t("v-icon",{attrs:{color:"regular"}},[e._v("\n fas fa-layer-group\n ")])],1)]}}]),model:{value:e.show,callback:function(t){e.show=t},expression:"show"}},[e._v(" "),t("v-card",{attrs:{"max-width":300}},[t("v-card-title",{staticClass:"subtitle"},[e._v("\n "+e._s(e.$gettext("Static Layers"))+"\n ")]),e._v(" "),e._l(e.choices,(function(i,s){return t("v-list-item",{key:s},[t("v-list-item-action",[t("v-checkbox",{attrs:{value:i.name,"off-icon":e.availableLayers.includes(i.layer)?"fa-eye-slash fa":"fas fa-exclamation-triangle","on-icon":"fa-eye fa",disabled:!e.availableLayers.includes(i.layer)},model:{value:e.selectedLayers,callback:function(t){e.selectedLayers=t},expression:"selectedLayers"}})],1),e._v(" "),t("v-tooltip",{attrs:{top:"","open-delay":"300","content-class":"custom-tooltip"},scopedSlots:e._u([{key:"activator",fn:function({on:s}){return[t("v-list-item-title",e._g({style:{cursor:"default"}},s),[e._v("\n "+e._s(i.name)+"\n ")])]}}],null,!0)},[e._v(" "),e.availableLayers.includes(i.layer)?t("span",[e._v(e._s(i.displaySettings.selectedFeature+" "+e.$gettext("from")+" "+i.layer))]):t("span",[e._v(e._s(e.$gettext("Data not found: ")+i.layer))])])],1)}))],2)],1)],1)};je._withStripped=!0;const De={name:"LayerSelector",components:{},props:{choices:{type:Array,default:()=>[]},availableLayers:{type:Array,default:()=>[]}},data:()=>({show:!1,selectedLayers:[],selectedOpacity:0}),watch:{selectedLayers(e){const t=[];e.forEach((e=>t.push(e))),this.$store.commit("setVisibleRasters",e)}},mounted(){this.selectedLayers=this.$store.getters.visibleRasters},methods:{}};var Oe=i(93380),Pe={};Pe.styleTagTransform=k(),Pe.setAttributes=v(),Pe.insert=f().bind(null,"head"),Pe.domAPI=m(),Pe.insertStyleElement=C(),u()(Oe.Z,Pe),Oe.Z&&Oe.Z.locals&&Oe.Z.locals;const Te=(0,_.Z)(De,je,[],!1,null,"9ae88e1e",null).exports;var ze=function(){var e=this,t=e._self._c;return t("section",[t("MglGeojsonLayer",{attrs:{"source-id":"od",source:{type:"geojson",data:e.layer,buffer:0,promoteId:"index"},"layer-id":"od",layer:{interactive:!0,type:"line",minzoom:1,maxzoom:18,paint:{"line-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary],"line-opacity":["case",["boolean",e.isEditorMode,!1],.3,1],"line-width":["*",["case",["boolean",["feature-state","hover"],!1],3,1],["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]],"line-blur":["*",["case",["boolean",["feature-state","hover"],!1],1,0],["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]]},layout:{"line-sort-key":["to-number",["get","route_width"]],"line-cap":"round"}}},on:{contextmenu:e.linkRightClick,mouseover:e.onCursor,mouseleave:e.offCursor}}),e._v(" "),t("MglGeojsonLayer",{attrs:{"source-id":"ODNodes",source:{type:"geojson",data:e.isODMode?e.nodes:e.$store.getters["od/layerHeader"],buffer:0,promoteId:"index"},"layer-id":"ODNodes",layer:{interactive:!0,type:"circle",paint:{"circle-color":"#ffffff","circle-opacity":.5,"circle-radius":["case",["boolean",["feature-state","hover"],!1],10,5],"circle-blur":["case",["boolean",["feature-state","hover"],!1],.3,0],"circle-stroke-color":e.$vuetify.theme.currentTheme.darkgrey,"circle-stroke-width":2}}},on:{mouseover:e.onCursor,mouseleave:e.offCursor,mousedown:e.moveNode}}),e._v(" "),t("MglImageLayer",{attrs:{"source-id":"od",type:"symbol",source:"od","layer-id":"arrow-od",layer:{type:"symbol",layout:{"symbol-placement":"line","symbol-spacing":200,"icon-ignore-placement":!0,"icon-image":"arrow","icon-size":["*",.2,["case",["has","route_width"],["case",["to-boolean",["to-number",["get","route_width"]]],["to-number",["get","route_width"]],2],2]],"icon-rotate":90},paint:{"icon-color":["case",["has","route_color"],["concat","#",["get","route_color"]],e.$vuetify.theme.currentTheme.linksprimary]}}}}),e._v(" "),t("MglPopup",{attrs:{"close-button":!1,showed:e.contextMenu.showed,coordinates:e.contextMenu.coordinates},on:{close:function(t){e.contextMenu.showed=!1}}},[t("span",{on:{mouseleave:function(t){e.contextMenu.showed=!1}}},[t("v-list",{attrs:{dense:"",flat:""}},[t("v-list-item-group",e._l(e.contextMenu.actions,(function(i){return t("v-list-item",{key:i.id},[t("v-list-item-content",[t("v-btn",{attrs:{outlined:"",small:""},on:{click:function(t){return e.actionClick({action:i,feature:e.contextMenu.feature,coordinates:e.contextMenu.coordinates})}}},[e._v("\n "+e._s(e.$gettext(i))+"\n ")])],1)],1)})),1)],1)],1)])],1)};ze._withStripped=!0;const Re=i(7597),Ze={name:"ODMap",components:{MglGeojsonLayer:ce.tf,MglImageLayer:ce.vV,MglPopup:ce.eO},props:["map","isODMode","isEditorMode"],events:[],data:()=>({hoveredStateId:null,keepHovering:!1,dragNode:!1,drawMode:!1,selectedFeature:null,contextMenu:{coordinates:[0,0],showed:!1,actions:[],feature:null}}),computed:{layer(){return this.$store.getters["od/visibleLayer"]},nodes(){return this.$store.getters["od/nodes"](this.layer)}},watch:{},created(){this.map.on("click",this.test)},methods:{test(e){if(this.isODMode)if(this.drawMode)this.drawMode=!1;else{const t="OD_"+Re.generate();this.$store.commit("od/createNewLink",{lngLat:Object.values(e.lngLat),index:t}),this.dragNode=!0,this.selectedFeature={properties:{linkIndex:t,coordinatedIndex:1}},this.drawMode=!0,this.map.on("mousemove",this.onMove),this.map.on("mouseup",this.stopMovingNode)}},onCursor(e){if(this.isODMode&&null===this.hoveredStateId){this.map.getCanvas().style.cursor="pointer";const t=[...new Set(e.mapboxEvent.features.map((e=>e.id)))];this.hoveredStateId={layerId:e.layerId,id:t},this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!0})}},offCursor(e){this.isODMode&&null!==this.hoveredStateId&&(this.keepHovering?this.dragNode=!0:(this.map.getCanvas().style.cursor="",this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1}),this.hoveredStateId=null))},moveNode(e){if(this.isODMode&&!this.drawMode&&"ODNodes"===this.hoveredStateId?.layerId&&0===e.mapboxEvent.originalEvent.button){e.mapboxEvent.preventDefault(),this.map.getCanvas().style.cursor="grab",this.keepHovering=!0;const t=this.map.querySourceFeatures(this.hoveredStateId.layerId);this.selectedFeature=t.filter((e=>e.id===this.hoveredStateId.id[0]))[0],this.selectedFeature?.properties&&(this.map.on("mousemove",this.onMove),this.map.on("mouseup",this.stopMovingNode))}},onMove(e){if(this.dragNode&&this.selectedFeature){const t={selectedFeature:this.selectedFeature,lngLat:Object.values(e.lngLat)};this.$store.commit("od/moveNode",t)}},stopMovingNode(e){this.isODMode&&0===e.originalEvent.button&&(this.map.getCanvas().style.cursor="pointer",this.map.off("mousemove",this.onMove),this.keepHovering=!1,this.dragNode=!1,this.map.getCanvas().style.cursor="",this.hoveredStateId&&this.map.setFeatureState({source:this.hoveredStateId.layerId,id:this.hoveredStateId.id[0]},{hover:!1}),this.hoveredStateId=null,this.map.off("mouseup",this.stopMovingNode))},linkRightClick(e){this.isODMode&&!this.drawMode&&(this.contextMenu.coordinates=[e.mapboxEvent.lngLat.lng,e.mapboxEvent.lngLat.lat],this.contextMenu.showed=!0,this.contextMenu.feature=this.hoveredStateId.id,this.contextMenu.actions=["Edit OD Info","Delete OD"])},actionClick(e){const t={selectedIndex:e.feature,action:e.action,lngLat:e.coordinates};this.$emit("clickFeature",t),this.contextMenu.showed=!1,this.contextMenu.type=null}}},He=(0,_.Z)(Ze,ze,[],!1,null,"af4e3bca",null).exports,Ge={name:"Map",components:{MglMap:ce.Q3,MglNavigationControl:ce.RV,MglScaleControl:ce.RQ,MglGeojsonLayer:ce.tf,LayerSelector:Te,StaticLayer:Me,StaticLinks:Ce,EditorLinks:we,RoadLinks:Le,Settings:Ae,ODMap:He},props:{selectedTrips:{type:Array,default:()=>[]},mode:{type:String,default:"pt"}},events:["clickFeature"],data:()=>({mapboxPublicKey:null,selectedFeature:null,isEditorMode:!1,mapIsLoaded:!1,drawMode:!1,hoverId:null,hoverLayer:null,mapDiv:null,drawLink:null,mouseout:!1,selectedNode:{id:null,layerId:null},connectedDrawLink:!1}),computed:{mapStyle(){return this.$store.getters.mapStyle},showLeftPanel(){return this.$store.getters.showLeftPanel},editorTrip(){return this.$store.getters.editorTrip},editorNodes(){return this.$store.getters.editorNodes},firstNode(){return this.$store.getters.firstNode},lastNode(){return this.$store.getters.lastNode},anchorMode(){return this.$store.getters.anchorMode},visibleRasters(){return this.$store.getters.visibleRasters},rasterFiles(){return this.$store.getters.styles},availableLayers(){return this.$store.getters.availableLayers}},watch:{showLeftPanel(){setTimeout((()=>this.map.resize()),250)},anchorMode(e){e?(this.drawMode=!1,this.$store.commit("changeNotification",{text:"Left click to add an anchor point, right click to delete",autoClose:!1})):this.$store.commit("changeNotification",{text:"",autoClose:!0})},mode(e){"pt"===e&&(this.drawMode=!1)},mapStyle(e){this.saveMapPosition()},editorNodes(e,t){if(this.$store.commit("setAnchorMode",!1),this.isEditorMode=e.features.length>0,this.isEditorMode&&this.$store.getters.changeBounds){const t=new(le().LngLatBounds);e.features.forEach((e=>{t.extend(e.geometry.coordinates)})),this.map.fitBounds(t,{padding:100})}},drawMode(e){this.map?.getStyle().layers.filter((e=>"drawLink"===e.id)).length>0&&(e?this.map.setLayoutProperty("drawLink","visibility","visible"):this.map.setLayoutProperty("drawLink","visibility","none"))},editorTrip(e){e&&(this.isEditorMode=!0,this.connectedDrawLink=!1)},isEditorMode(e){e&&this.editorNodes.features.length>0&&!this.anchorMode&&this.mapIsLoaded?this.drawMode=!0:this.drawMode=!1,!e&this.drawMode&&(this.drawMode=!1)},"firstNode.geometry.coordinates"(e){this.editorTrip&&(this.drawLink=ue()([e,e]),this.selectedNode.layerId="nodes",this.selectedNode.id=this.firstNode.properties.index)},"lastNode.geometry.coordinates"(e){this.editorTrip&&(this.drawLink=ue()([e,e]),this.selectedNode.layerId="nodes",this.selectedNode.id=this.lastNode.properties.index)}},created(){this.editorTrip&&(this.isEditorMode=!0),this.mapboxPublicKey="pk.eyJ1Ijoic2JvaXZpbiIsImEiOiJja3BlMm41cm4xa2QyMnZwZTBqdGx4bHI0In0.11oH2-B2g9J6LarDnoqQfQ",this.drawLink=structuredClone(this.$store.getters.linksHeader)},beforeDestroy(){this.saveMapPosition()},methods:{saveMapPosition(){const e=this.map.getCenter();this.$store.commit("saveMapPosition",{mapCenter:[e.lng,e.lat],mapZoom:this.map.getZoom()})},onMapLoaded(e){this.map&&(this.mapIsLoaded=!1);const t=new(le().LngLatBounds);this.$store.getters.links.features.length>0?this.$store.getters.links.features.forEach((e=>{t.extend([e.geometry.coordinates[0],e.geometry.coordinates[e.geometry.coordinates.length-1]])})):this.$store.getters.rlinks.features.forEach((e=>{t.extend([e.geometry.coordinates[0],e.geometry.coordinates[e.geometry.coordinates.length-1]])})),0!==Object.keys(t).length&&e.map.fitBounds(t,{padding:100}),e.map.loadImage(de,(function(t,i){t?console.error("err image",t):e.map.addImage("arrow",i,{sdf:!0})})),this.map=e.map,e.map.dragRotate.disable(),this.mapIsLoaded=!0},draw(e){if(!this.connectedDrawLink&&(this.drawMode&&this.mouseout&&(this.map.setLayoutProperty("drawLink","visibility","visible"),this.mouseout=!1),this.drawMode&&!this.anchorMode)){const t=[this.drawLink.geometry.coordinates[0],Object.values(e.mapboxEvent.lngLat)];this.drawLink=ue()(t)}},addPoint(e){if(this.drawMode){if("rnodes"===this.selectedNode.layerId){const t=Object.values(e.mapboxEvent.lngLat),i={nodeIdA:this.selectedNode.id,nodeIdB:this.hoverId,geom:t,layerId:this.hoverLayer};this.$store.commit("createrLink",i),this.drawMode=!1,this.onHoverRoad({layerId:"rnodes",selectedId:[i.nodeIdB]}),this.offHover()}else if(this.drawMode&!this.anchorMode&!this.hoverId){const t=this.selectedNode.id===this.$store.getters.lastNodeId?"Extend Line Upward":"Extend Line Downward",i=Object.values(e.mapboxEvent.lngLat);this.$store.commit("applyNewLink",{nodeId:this.selectedNode.id,geom:i,action:t})}}else 0===this.editorNodes.features.length&&this.editorTrip&&(this.$store.commit("createNewNode",Object.values(e.mapboxEvent.lngLat)),this.$store.commit("changeNotification",{text:"",autoClose:!0}))},resetDraw(e){this.drawMode&&(this.mouseout=!0,this.map.setLayoutProperty("drawLink","visibility","none"))},rightClickMap(e){2===e.mapboxEvent.originalEvent.button&!this.hoverId&&(this.drawMode=!1)},onHover(e){if(this.hoverId=e.selectedId,this.drawMode&&this.map.setLayoutProperty("drawLink","visibility","none"),[this.$store.getters.lastNodeId,this.$store.getters.firstNodeId].includes(this.hoverId)){const t=this.$store.getters.editorNodes.features.filter((t=>t.properties.index===e.selectedId));this.drawLink=ue()([t[0].geometry.coordinates,t[0].geometry.coordinates]),this.selectedNode.id=this.hoverId,this.selectedNode.layerId=e.layerId,this.drawMode=!0}},onHoverRoad(e){if("rnodes"===e?.layerId)if(this.hoverLayer=e.layerId,this.hoverId=e.selectedId[0],this.drawMode)this.connectedDrawLink=!0;else{this.connectedDrawLink=!1;const e=this.$store.getters.visiblerNodes.features.filter((e=>e.properties.index===this.hoverId));this.drawLink=ue()([e[0].geometry.coordinates,e[0].geometry.coordinates]),this.drawMode=!0,this.connectedDrawLink=!1,this.selectedNode.id=this.hoverId,this.selectedNode.layerId=this.hoverLayer}else"rlinks"===e?.layerId&&(this.hoverLayer=e.layerId,this.hoverId=e.selectedId)},offHover(e){this.hoverId=null,this.hoverLayer=null,this.drawMode&&(this.map.setLayoutProperty("drawLink","visibility","visible"),this.connectedDrawLink=!1)},clickFeature(e){["Move rNode","Delete rLink"].includes(e.action)&&(this.drawMode=!1),"Add Road Node Inline"===e.action&&this.drawMode||this.$emit("clickFeature",e)}}};var Ve=i(76278),qe={};qe.styleTagTransform=k(),qe.setAttributes=v(),qe.insert=f().bind(null,"head"),qe.domAPI=m(),qe.insertStyleElement=C(),u()(Ve.Z,qe),Ve.Z&&Ve.Z.locals&&Ve.Z.locals;const Ue=(0,_.Z)(Ge,ne,[],!1,null,"66748ace",null).exports;var Je=function(){var e=this,t=e._self._c;return t("v-menu",{attrs:{top:"","nudge-bottom":"105","nudge-left":"16","close-on-content-click":!1},scopedSlots:e._u([{key:"activator",fn:function({on:i}){return[t("div",e._g({style:e.swatchStyle},i))]}}]),model:{value:e.menu,callback:function(t){e.menu=t},expression:"menu"}},[e._v(" "),t("v-card",[t("v-card-text",{staticClass:"pa-0"},[t("v-color-picker",{attrs:{mode:"hexa",swatches:e.swatches,"show-swatches":"",flat:""},model:{value:e.color,callback:function(t){e.color=t},expression:"color"}})],1),e._v(" "),t("v-card-actions",[t("v-spacer"),e._v(" "),t("v-btn",{attrs:{color:"grey",outlined:""},on:{click:e.cancel}},[e._v("\n "+e._s(e.$gettext("cancel"))+"\n ")]),e._v(" "),t("v-btn",{attrs:{color:"green darken-1",outlined:""},on:{click:e.updateColor}},[e._v("\n "+e._s(e.$gettext("apply"))+"\n ")])],1)],1)],1)};Je._withStripped=!0;const We={name:"ColorPicker",components:{},model:{prop:"pcolor",event:"update-color"},props:["pcolor"],events:["update-color"],data:()=>({color:"$primary",menu:!1,swatches:[]}),computed:{swatchStyle(){const{color:e,menu:t}=this;return{backgroundColor:e,"border-style":"solid","border-width":"1px","border-color":"#868686",cursor:"pointer",height:"20px",width:"20px",borderRadius:t?"50%":"4px",transition:"border-radius 200ms ease-in-out"}}},watch:{pcolor(e){"#"!==this.pcolor[0]&&(this.color="#".concat(this.pcolor),this.$emit("update-color",this.pcolor.slice(0,6))),"#"===this.pcolor[0]&&this.$emit("update-color",this.pcolor.slice(1,7))}},mounted(){const e=Object.keys(this.$vuetify.theme.currentTheme.chart);let t=[];e.map((e=>{t.push(this.$vuetify.theme.currentTheme.chart[e]),2===t.length&&(this.swatches.push(t),t=[])})),[null,void 0,""].includes(this.pcolor)?this.color=this.$vuetify.theme.currentTheme.chart.lightblue:"#"!==this.pcolor[0]?this.color="#".concat(this.pcolor):this.color=this.pcolor},methods:{updateColor(){this.$emit("update-color",this.color),this.menu=!1},cancel(){this.color=this.pcolor,this.menu=!1}}},Ye=(0,_.Z)(We,Je,[],!1,null,"380a869c",null).exports;var Ke=function(){var e=this,t=e._self._c;return t("div",[t("v-menu",{attrs:{"close-delay":"100","offset-y":"",transition:"slide-y-transition"},scopedSlots:e._u([{key:"activator",fn:function({on:i}){return[t("v-btn",e._g({attrs:{icon:"",color:"regular","x-small":""},on:{click:function(t){e.openMenu=!e.openMenu}}},i),[t("v-icon",[e._v("\n "+e._s(e.openMenu?"fas fa-chevron-left":"fas fa-chevron-down")+"\n ")])],1)]}}]),model:{value:e.openMenu,callback:function(t){e.openMenu=t},expression:"openMenu"}},[e._v(" "),t("v-list",e._l(e.items,(function(i,s){return t("v-list-item",{key:s,class:{"is-active":i===e.selectedVal},on:{click:()=>e.$emit("select",i)}},[t("v-list-item-title",[e._v("\n "+e._s(i)+"\n ")])],1)})),1)],1)],1)};Ke._withStripped=!0;const Qe={name:"MenuSelector",model:{prop:"selectedVal",event:"select"},props:{items:{type:Array,default:()=>[]},selectedVal:{default:()=>null}},events:["select"],data:()=>({selectedLayer:1,openMenu:!1}),computed:{},watch:{}};var Xe=i(79922),et={};et.styleTagTransform=k(),et.setAttributes=v(),et.insert=f().bind(null,"head"),et.domAPI=m(),et.insertStyleElement=C(),u()(Xe.Z,et),Xe.Z&&Xe.Z.locals&&Xe.Z.locals;const tt=(0,_.Z)(Qe,Ke,[],!1,null,"e63b0890",null).exports,it={agency_id:"transit brand or transit agency",direction_id:"direction of travel for a trip. used to separate trips by directions.\n ex: 0 - Travel in one direction. 1 - Travel in the opposite direction.",drop_off_type:"0 - Regularly scheduled drop off.\n 1 - No drop off available.\n 2 - Must phone agency to arrange drop off.\n 3 - Must coordinate with driver to arrange drop off.",headway:"Time between departures in seconds",pickup_type:"0 - Regularly scheduled pickup.\n 1 - No pickup available.\n 2 - Must phone agency to arrange pickup.\n 3 - Must coordinate with driver to arrange pickup",route_color:"color to display on the map (i.e. FFFFFF)",route_id:"Identifies a route. Often a string",route_long_name:"Full name of a route.This name is generally more descriptive than the route_short_name and often includes the roudefaultAttributeste's destination or stop",route_short_name:'Short name of a route. This will often be a short,\n abstract identifier like "32", "100X", or "Green"',route_type:"Indicates the type of transportation used on a route.\n subway, metro, rail, bus, ferry, tram, etc",route_width:"width to display on the map",time:"Travel time on the link. set as length / speed when a link is created or edited (seconds)",trip_id:"Line (or trip) identifier (i.e. 100 Est).\n Links are group by trip_id in Quetzal-network-editor.",length:"links geometry linestring length (meters)",highway:"Main identifier or any kind of road, street or path. ex: (motorway, residential, primary)",speed:"speed on the link (Km/h)",cycleway:"if the road contain a bike path. either yes, no or shared",cycleway_reverse:"if the road contain a bike path in the opposite direction. either yes, no or shared. a road can be a oneway and have cycleway on both side."},st={name:"Home",components:{Map:Ue,SidePanel:re,ColorPicker:Ye,MenuSelector:tt},data(){return{editorTrip:null,action:null,selectedNode:null,selectedLink:null,selectedIndex:null,showDialog:!1,cloneDialog:!1,editorForm:{},cursorPosition:[],tripToDelete:null,tripToClone:null,message:"",cloneName:null,errorMessage:null,lingering:!0,groupTripIds:[],mode:"pt",showHint:!1,showDeleteOption:!1,newFieldName:null,linkDir:[],rules:{newField:[e=>!Object.keys(this.editorForm).includes(e)||"field already exist",e=>""!==e||"cannot add empty field",e=>!e?.endsWith("_r")||"field cannot end with _r"]},hints:it}},computed:{selectedTrips(){return this.$store.getters.selectedTrips},selectedrGroup(){return this.$store.getters.selectedrGroup},numLinks(){return Array.isArray(this.editorForm)?this.editorForm.length:1},attributesChoices(){return["pt","road"].includes(this.mode)?this.$store.getters.attributesChoices[this.mode]:{}},editForm(){return["Edit Line Info","Edit Link Info","Edit Node Info","Edit Group Info","Edit rLink Info","Edit Road Group Info","Edit Visible Road Info","Edit OD Group Info","Edit Visible OD Info","Edit rNode Info","Edit OD Info"].includes(this.action)}},watch:{showDialog(e){e&&this.$store.commit("changeNotification",{text:"",autoClose:!0}),this.showHint=!1,this.showDeleteOption=!1}},created(){this.editorTrip=this.$store.getters.editorTrip,window.addEventListener("keydown",(e=>{"Control"!==e.key||this.showDialog||this.cloneDialog||this.$store.commit("changeAnchorMode")}))},methods:{orderedForm(e){let t=this.editorForm;t.length>=1&&(t=t[e]);const i=Object.keys(t).filter((e=>!t[e].disabled)).sort();return i.push(...Object.keys(t).filter((e=>t[e].disabled)).sort()),i.reduce(((e,i)=>(e[i]=t[i],e)),{})},updateSelectedTrips(e){"links"===e.type?this.$store.commit("changeSelectedTrips",e.data):"rlinks"===e.type&&this.$store.commit("changeVisibleRoads",e.data)},actionClick(e){if(this.action=e.action,"Edit Line Info"===this.action)this.editorForm=structuredClone(this.$store.getters.editorLineInfo),this.lingering=e.lingering,this.showDialog=!0;else if("Edit Group Info"===this.action){this.groupTripIds=e.tripIds;const t=["index","length","a","b","link_sequence","trip_id"],i=this.$store.getters.lineAttributes,s=structuredClone(this.$store.getters.links.features.filter((e=>this.groupTripIds.includes(e.properties.trip_id))));this.editorForm=(0,a.Vh)(s,i,t),this.lingering=e.lingering,this.showDialog=!0}else if("Edit Link Info"===this.action){this.selectedLink=e.selectedFeature.properties;const t=["a","b","index","link_sequence","trip_id"],i=this.$store.getters.lineAttributes,s=this.$store.getters.editorLinks.features.filter((e=>e.properties.index===this.selectedLink.index));this.editorForm=(0,a.Vh)(s,i,t),this.lingering=e.lingering,this.showDialog=!0}else if("Edit rLink Info"===this.action)this.selectedLink=e.selectedIndex,this.editorForm=this.selectedLink.map((e=>this.$store.getters.rlinksForm(e))),this.linkDir=this.$store.getters.rlinkDirection(this.selectedLink),e.selectedIndex.forEach((e=>{this.$store.getters.onewayIndex.has(e)&&(this.selectedLink.push(e),this.editorForm.push(this.$store.getters.reversedrLinksForm(e)),this.linkDir.push(this.$store.getters.rlinkDirection(this.selectedLink,!0)))})),this.showDialog=!0;else if("Edit OD Info"===this.action)this.selectedLink=e.selectedIndex[0],this.editorForm=this.$store.getters["od/linkForm"](this.selectedLink),this.showDialog=!0;else if("Edit Road Group Info"===this.action){const t=this.$store.getters.grouprLinks(e.category,e.group);this.selectedLinks=t;const i=this.$store.getters.rlineAttributes,s=["index","length","a","b"];this.editorForm=(0,a.Vh)(t,i,s),this.lingering=e.lingering,this.showDialog=!0}else if("Edit Visible Road Info"===this.action){const t=this.$store.getters.visiblerLinks.features;this.selectedLinks=t;const i=this.$store.getters.rlineAttributes,s=["index","length","a","b"];this.editorForm=(0,a.Vh)(t,i,s),this.lingering=e.lingering,this.showDialog=!0}else if("Edit OD Group Info"===this.action){const t=this.$store.getters["od/groupLayer"](e.category,e.group);this.selectedLinks=t;const i=this.$store.getters["od/layerAttributes"],s=["index"];this.editorForm=(0,a.Vh)(t,i,s),this.lingering=e.lingering,this.showDialog=!0}else if("Edit Visible OD Info"===this.action){const t=this.$store.getters["od/visibleLayer"].features;this.selectedLinks=t;const i=this.$store.getters["od/layerAttributes"],s=["index"];this.editorForm=(0,a.Vh)(t,i,s),this.lingering=e.lingering,this.showDialog=!0}else if(["Edit Node Info","Edit rNode Info"].includes(this.action)){this.selectedNode=e.selectedFeature.properties,"Edit Node Info"===this.action?this.editorForm=this.$store.getters.editorNodes.features.filter((e=>e.properties.index===this.selectedNode.index)):"Edit rNode Info"===this.action&&(this.editorForm=this.$store.getters.visiblerNodes.features.filter((e=>e.properties.index===this.selectedNode.index))),this.editorForm=this.editorForm[0].properties;const t=["index","route_width"],i=Object.keys(this.editorForm).reduce(((e,i)=>(e[i]={value:this.editorForm[i],disabled:t.includes(i),placeholder:!1},e)),{});this.editorForm=i,this.showDialog=!0}else["Cut Before Node","Cut After Node","Move Stop","Delete Stop","Delete Anchor","Delete Road Anchor"].includes(this.action)?(this.selectedNode=e.selectedFeature.properties,this.applyAction()):["Add Stop Inline","Add Anchor Inline"].includes(this.action)?(this.selectedLink=e.selectedFeature.properties,this.cursorPosition=e.lngLat,this.applyAction()):["Add Road Node Inline","Add Road Anchor Inline","Delete rLink"].includes(this.action)?(this.selectedIndex=e.selectedIndex,this.cursorPosition=e.lngLat,this.applyAction()):["Move Node","Move Anchor","Move rNode","Move rAnchor"].includes(this.action)?(this.selectedNode=e.selectedFeature,this.cursorPosition=e.lngLat,this.applyAction()):"Delete OD"===this.action&&(this.selectedIndex=e.selectedIndex,this.cursorPosition=e.lngLat,this.applyAction())},applyAction(){switch(this.showDialog=!1,this.action){case"Cut Before Node":this.$store.commit("cutLineAtNode",{selectedNode:this.selectedNode});break;case"Cut After Node":this.$store.commit("cutLineFromNode",{selectedNode:this.selectedNode});break;case"Delete Stop":this.$store.commit("deleteNode",{selectedNode:this.selectedNode});break;case"Edit Link Info":this.$store.commit("editLinkInfo",{selectedLinkId:this.selectedLink.index,info:this.editorForm});break;case"Edit Node Info":this.$store.commit("editNodeInfo",{selectedNodeId:this.selectedNode.index,info:this.editorForm});break;case"Edit Line Info":this.editorForm.trip_id.value!==this.$store.getters.editorTrip&&this.$store.getters.tripId.includes(this.editorForm.trip_id.value)&&(this.lingering=!0,this.editorTrip=null,this.$store.commit("setEditorTrip",{tripId:null,changeBounds:!1}),this.action=null,this.$store.commit("changeNotification",{text:"Could not apply modification. Trip_id already exist",autoClose:!0,color:"red darken-2"})),this.$store.commit("editLineInfo",this.editorForm),0===this.$store.getters.editorNodes.features.length&&this.$store.commit("changeNotification",{text:"Click on the map to start drawing",autoClose:!1});break;case"Edit Group Info":this.$store.commit("editGroupInfo",{groupTripIds:this.groupTripIds,info:this.editorForm});break;case"deleteTrip":this.$store.commit("deleteTrip",this.tripToDelete);break;case"Add Stop Inline":this.$store.commit("addNodeInline",{selectedLink:this.selectedLink,lngLat:this.cursorPosition,nodes:"editorNodes"});break;case"Add Anchor Inline":this.$store.commit("addNodeInline",{selectedLink:this.selectedLink,lngLat:this.cursorPosition,nodes:"anchorNodes"});break;case"Delete Anchor":this.$store.commit("deleteAnchorNode",{selectedNode:this.selectedNode});break;case"Edit rLink Info":this.$store.commit("editrLinkInfo",{selectedLinkId:this.selectedLink,info:this.editorForm});break;case"Edit Road Group Info":this.$store.commit("editrGroupInfo",{selectedLinks:this.selectedLinks,info:this.editorForm});break;case"Edit Visible Road Info":this.$store.commit("editrGroupInfo",{selectedLinks:this.$store.getters.visiblerLinks.features,info:this.editorForm});break;case"Edit OD Group Info":this.$store.commit("od/editGroupInfo",{selectedLinks:this.selectedLinks,info:this.editorForm});break;case"Edit Visible OD Info":this.$store.commit("od/editGroupInfo",{selectedLinks:this.$store.getters["od/visibleLayer"].features,info:this.editorForm});break;case"Edit rNode Info":this.$store.commit("editrNodeInfo",{selectedNodeId:this.selectedNode.index,info:this.editorForm});break;case"Edit OD Info":this.$store.commit("od/editLinkInfo",{selectedLinkId:this.selectedLink,info:this.editorForm});break;case"Add Road Node Inline":this.$store.commit("addRoadNodeInline",{selectedIndex:this.selectedIndex,lngLat:this.cursorPosition,nodes:"rnodes"});break;case"Add Road Anchor Inline":this.$store.commit("addRoadNodeInline",{selectedIndex:this.selectedIndex,lngLat:this.cursorPosition,nodes:"anchorrNodes"});break;case"Move Node":this.$store.commit("moveNode",{selectedNode:this.selectedNode,lngLat:this.cursorPosition});break;case"Move Anchor":this.$store.commit("moveAnchor",{selectedNode:this.selectedNode,lngLat:this.cursorPosition});break;case"Move rNode":this.$store.commit("moverNode",{selectedNode:this.selectedNode,lngLat:this.cursorPosition});break;case"Move rAnchor":this.$store.commit("moverAnchor",{selectedNode:this.selectedNode,lngLat:this.cursorPosition});break;case"Delete Road Anchor":this.$store.commit("deleteAnchorrNode",{selectedNode:this.selectedNode});break;case"Delete rLink":this.$store.commit("deleterLink",{selectedIndex:this.selectedIndex});break;case"deleterGroup":this.$store.commit("deleterGroup",this.tripToDelete);break;case"Delete OD":this.$store.commit("od/deleteOD",{selectedIndex:this.selectedIndex});break;case"deleteODGroup":this.$store.commit("od/deleteGroup",this.tripToDelete)}this.lingering||(this.confirmChanges(),this.lingering=!0)},cancelAction(){this.showDialog=!1,this.lingering||(this.abortChanges(),this.lingering=!0)},confirmChanges(){this.$store.commit("confirmChanges"),this.editorTrip=null,this.$store.commit("setEditorTrip",{tripId:null,changeBounds:!1}),this.action=null,this.$store.commit("changeNotification",{text:"modification applied",autoClose:!0,color:"success"})},abortChanges(){this.editorTrip=null,this.$store.commit("setEditorTrip",{tripId:null,changeBounds:!1}),this.action=null,this.$store.commit("changeNotification",{text:"modification aborted",autoClose:!0})},deleteButton(e){this.tripToDelete=e.trip,this.message=e.message,this.action=e.action,this.showDialog=!0},duplicate(){this.$store.getters.tripId.includes(this.cloneName)?this.errorMessage="already exist":(this.$store.commit("cloneTrip",{tripId:this.tripToClone,name:this.cloneName}),this.errorMessage="",this.cloneDialog=!1)},cloneButton(e){this.tripToClone=e.trip,this.message=e.message,this.cloneName=e.trip+" copy",this.cloneDialog=!0},cancelClone(){this.errorMessage="",this.cloneDialog=!1},addField(){let e={};if(e=Array.isArray(this.editorForm)?structuredClone(this.editorForm[0]):structuredClone(this.editorForm),Object.keys(e).includes(this.newFieldName)|""===this.newFieldName|!this.newFieldName|this.newFieldName?.endsWith("_r"))this.newFieldName="";else{if(Array.isArray(this.editorForm)){const e=structuredClone(this.editorForm);e.forEach((e=>{Object.keys(e)[0].endsWith("_r")?this.$store.getters.rcstAttributes.includes(this.newFieldName)||(e[this.newFieldName+"_r"]={disabled:!1,placeholder:!1,value:void 0}):e[this.newFieldName]={disabled:!1,placeholder:!1,value:void 0}})),this.editorForm=null,this.editorForm=e}else e[this.newFieldName]={disabled:!1,placeholder:!1,value:void 0},this.editorForm={},this.editorForm=e;["Edit Line Info","Edit Link Info","Edit Group Info"].includes(this.action)?this.$store.commit("addPropertie",{name:this.newFieldName,table:"links"}):["Edit rLink Info","Edit Road Group Info","Edit Visible Road Info"].includes(this.action)?this.$store.commit("addRoadPropertie",{name:this.newFieldName,table:"rlinks"}):"Edit Node Info"===this.action?this.$store.commit("addPropertie",{name:this.newFieldName,table:"nodes"}):"Edit rNode Info"===this.action?this.$store.commit("addRoadPropertie",{name:this.newFieldName,table:"rnodes"}):["Edit OD Group Info","Edit Visible OD Info"].includes(this.action)&&this.$store.commit("od/addPropertie",this.newFieldName),this.newFieldName=null,this.$store.commit("changeNotification",{text:"Field added",autoClose:!0,color:"success"})}},deleteField(e){let t=structuredClone(this.editorForm);Array.isArray(this.editorForm)?(e.endsWith("_r")&&(e=e.substr(0,e.length-2)),t=t.filter((t=>delete t[e])),t=t.filter((t=>delete t[e+"_r"]))):delete t[e],this.editorForm={},this.editorForm=t,["Edit Line Info","Edit Link Info","Edit Group Info"].includes(this.action)?this.$store.commit("deletePropertie",{name:e,table:"links"}):["Edit rLink Info","Edit Road Group Info","Edit Visible Road Info"].includes(this.action)?this.$store.commit("deleteRoadPropertie",{name:e,table:"rlinks"}):"Edit Node Info"===this.action?this.$store.commit("deletePropertie",{name:e,table:"nodes"}):"Edit rNode Info"===this.action?this.$store.commit("deleteRoadPropertie",{name:e,table:"rnodes"}):["Edit OD Group Info","Edit Visible OD Info"].includes(this.action)&&this.$store.commit("od/deletePropertie",{name:e}),this.$store.commit("changeNotification",{text:"Field deleted",autoClose:!0,color:"success"})},attributeNonDeletable(e){return["Edit Line Info","Edit Link Info","Edit Group Info","Edit Node Info"].includes(this.action)?this.$store.getters.defaultAttributesNames.includes(e):this.$store.getters.rundeletable.includes(e)},ToggleDeleteOption(){this.showDeleteOption=!this.showDeleteOption,this.showDeleteOption?this.$store.commit("changeNotification",{text:"This action will delete properties on every links (and reversed one for two-way roads)",autoClose:!1,color:"warning"}):this.$store.commit("changeNotification",{text:"",autoClose:!0})}}};var ot=i(8043),rt={};rt.styleTagTransform=k(),rt.setAttributes=v(),rt.insert=f().bind(null,"head"),rt.domAPI=m(),rt.insertStyleElement=C(),u()(ot.Z,rt),ot.Z&&ot.Z.locals&&ot.Z.locals;const nt=(0,_.Z)(st,T,[],!1,null,"00b02151",null).exports;var at=i(75720);const lt=()=>i.e(486).then(i.bind(i,75486)),ct=()=>i.e(106).then(i.bind(i,31480)),dt=()=>i.e(43).then(i.bind(i,17043)),pt=()=>i.e(363).then(i.bind(i,54363)),ut=()=>i.e(965).then(i.bind(i,55965));s.default.use(o.ZP);const ht=new o.ZP({linkExactActiveClass:"active",mode:"history",base:"/quetzal-network-editor/",routes:[{path:"/",name:O.name,component:O,icon:"fa-solid fa-upload",title:"Import"},{path:"/Microservices",name:lt.name,component:lt,icon:"fas fa-tachometer-alt",title:"Microservices",beforeEnter:(e,t,i)=>{at.h.getters.loggedIn?i():at.h.commit("changeNotification",{text:"Must be logged in",autoClose:!0,color:"error"})}},{path:"/Home",name:nt.name,component:nt,icon:"fa-solid fa-map",title:"Map"},{path:"/Run",name:dt.name,component:dt,icon:"fa-solid fa-play",title:"Parameters and Run",beforeEnter:(e,t,i)=>{at.h.getters["run/parametersIsEmpty"]?at.h.commit("changeNotification",{text:"you need parameters to enter this page",autoClose:!0,color:"error"}):i()}},{path:"/ResultMap",name:ct.name,component:ct,margin:"5rem",icon:"fa-solid fa-layer-group",title:"Results Map"},{path:"/ResultPicture",name:pt.name,component:pt,icon:"fas fa-images",title:"Results Pictures"},{path:"/ResultTable",name:ut.name,component:ut,icon:"fas fa-table",title:"Result Table"},{path:"/callback",name:"callback",beforeEnter:(e,t,i)=>{const s=window.location.href;P.Z.auth.parseCognitoWebResponse(s),i("/")}},{path:"/signout",name:"signout",beforeEnter:(e,t,i)=>{i("/")}}]});ht.beforeEach(((e,t,i)=>{!["Import","callback","signout"].includes(e.name)&&at.h.getters.projectIsUndefined?i({name:"Import"}):i()}));const mt=ht},75720:(e,t,i)=>{"use strict";i.d(t,{h:()=>G});var s=i(70538),o=i(20629),r=i(5776),n=i(50253),a=i(59903),l=i.n(a),c=i(23384),d=i.n(c),p=i(82069),u=i(76955);const h=i(7597),m={state:{links:{},editorTrip:null,editorNodes:{},editorLinks:{},editorLineInfo:{},nodes:{},nodesHeader:{},linksHeader:{},tripId:[],selectedTrips:[],newLink:{},newNode:{},changeBounds:!0,linkSpeed:20,linksDefaultColor:"2196F3",lineAttributes:[],nodeAttributes:[],defaultAttributes:[{name:"index",type:"String"},{name:"a",type:"String"},{name:"b",type:"String"},{name:"trip_id",type:"String"},{name:"route_id",type:"String"},{name:"agency_id",type:"String"},{name:"route_short_name",type:"String"},{name:"route_type",type:"String"},{name:"route_color",type:"String"},{name:"length",type:"Number"},{name:"time",type:"Number"},{name:"headway",type:"Number"},{name:"route_width",type:"Number"},{name:"pickup_type",type:"Number"},{name:"drop_off_type",type:"Number"},{name:"link_sequence",type:"Number"},{name:"direction_id",type:"Number"}]},mutations:{loadLinks(e,t){if(e.links=structuredClone(t),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.links.crs.properties.name)){const t={...e.links};t.features=[],e.linksHeader=t,e.editorLinks=t,e.links.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>e.map((e=>Math.round(1e6*Number(e))/1e6)))))),this.commit("applyPropertiesTypes"),this.commit("getTripId"),this.commit("changeSelectedTrips",e.tripId),this.commit("getLinksProperties")}else alert("invalid CRS. use CRS84 / EPSG:4326")},loadNodes(e,t){if(e.nodes=JSON.parse(JSON.stringify(t)),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.nodes.crs.properties.name)){const t={...e.nodes};t.features=[],e.nodesHeader=t,e.editorNodes=t,e.nodes.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>Math.round(1e6*Number(e))/1e6)))),this.commit("getNodesProperties")}else alert("invalid CRS. use CRS84 / EPSG:4326")},unloadFiles(e){e.links.features=[],e.nodes.features=[],e.editorTrip=null,e.tripId=[],e.selectedTrips=[]},loadPTFiles(e,t){for(const i of t){const t=i.content.features[0].geometry.type;if("LineString"===t){if(!(0,u.ci)(i.content,e.links)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("appendNewLinks",(0,p.GM)(i.content,i.path,t))}else if("Point"===t){if(!(0,u.ci)(i.content,e.nodes)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("appendNewNodes",(0,p.GM)(i.content,i.path,t))}}},appendNewLinks(e,t){t.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>e.map((e=>Math.round(1e6*Number(e))/1e6)))))),t.features.forEach((t=>e.links.features.push(t))),this.commit("applyPropertiesTypes"),this.commit("getLinksProperties"),this.commit("getTripId"),this.commit("changeSelectedTrips",e.tripId)},appendNewNodes(e,t){t.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>Math.round(1e6*Number(e))/1e6)))),t.features.forEach((t=>e.nodes.features.push(t))),this.commit("applyPropertiesTypes"),this.commit("getNodesProperties")},getLinksProperties(e){let t=new Set([]);e.links.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),e.defaultAttributes.map((e=>e.name)).forEach((e=>t.add(e))),t=Array.from(t),e.lineAttributes=t},getNodesProperties(e){let t=new Set([]);e.nodes.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),["index","stop_code","stop_name"].forEach((e=>t.add(e))),t=Array.from(t),e.nodeAttributes=t},addPropertie(e,t){"links"===t.table?(e.links.features.map((e=>e.properties[t.name]=null)),e.editorLinks.features.map((e=>e.properties[t.name]=null)),e.lineAttributes.push(t.name)):(e.nodes.features.map((e=>e.properties[t.name]=null)),e.editorNodes.features.map((e=>e.properties[t.name]=null)))},deletePropertie(e,t){"links"===t.table?(e.links.features.filter((e=>delete e.properties[t.name])),e.editorLinks.features.filter((e=>delete e.properties[t.name])),e.lineAttributes=e.lineAttributes.filter((e=>e!==t.name))):(e.nodes.features.filter((e=>delete e.properties[t.name])),e.editorNodes.features.filter((e=>delete e.properties[t.name])))},changeSelectedTrips(e,t){e.selectedTrips=t},setEditorTrip(e,t){e.editorTrip=t.tripId,e.changeBounds=t.changeBounds;const i=JSON.parse(JSON.stringify(e.links));i.features=i.features.filter((t=>t.properties.trip_id===e.editorTrip)),e.editorLinks=i,this.commit("getEditorNodes",{nodes:e.nodes}),this.commit("getEditorLineInfo")},cloneTrip(e,t){const i=structuredClone(e.links);i.features=i.features.filter((e=>e.properties.trip_id===t.tripId));let s=i.features.length;for(const e of i.features)e.properties.trip_id=t.name,e.geometry.coordinates.reverse(),e.properties.a=[e.properties.b,e.properties.b=e.properties.a][0],e.properties.link_sequence=s,s-=1,0===e.properties.direction_id?e.properties.direction_id=1:e.properties.direction_id=0,e.properties.index="link_"+h.generate();i.features.reverse(),e.links.features.push(...i.features),this.commit("getTripId")},getEditorNodes(e,t){const i=e.editorLinks.features.map((e=>e.properties.a)),s=e.editorLinks.features.map((e=>e.properties.b)),o=new Set([...i,...s]),r=JSON.parse(JSON.stringify(t.nodes));r.features=r.features.filter((e=>o.has(e.properties.index))),e.editorNodes=r},getEditorLineInfo(e){const t={},i=["index","length","a","b","link_sequence"];if(0===e.editorLinks.features.length){const s={route_id:"Q1",agency_id:"QUENEDI",route_short_name:"Q1",route_type:"quenedi",route_color:e.linksDefaultColor,route_width:3,headway:600,pickup_type:0,drop_off_type:0,direction_id:0};e.lineAttributes.forEach((e=>{t[e]={value:s[e],disabled:i.includes(e),placeholder:!1}})),t.trip_id={value:e.editorTrip,disabled:!1,placeholder:!1}}else{const s=e.editorLinks.features;e.lineAttributes.forEach((e=>{const o=new Set(s.map((t=>t.properties[e])));t[e]={value:o.size>1?"":[...o][0],disabled:i.includes(e),placeholder:o.size>1}}))}e.editorLineInfo=t},getTripId(e){e.tripId=Array.from(new Set(e.links.features.map((e=>e.properties.trip_id))))},setNewLink(e,t){const i={index:null,length:null,time:null,pickup_type:0,drop_off_type:0},s=structuredClone(e.editorLinks);if(0===s.features.length){const t={};Object.keys(e.editorLineInfo).forEach((i=>{t[i]=e.editorLineInfo[i].value}));const i={index:"link_"+h.generate(),a:e.editorNodes.features[0].properties.index,b:e.editorNodes.features[0].properties.index,length:null,time:null,pickup_type:0,drop_off_type:0,link_sequence:0};Object.keys(i).forEach((e=>{t[e]=i[e]}));const o={geometry:{coordinates:[e.editorNodes.features[0].geometry.coordinates,e.editorNodes.features[0].geometry.coordinates],type:"LineString"},properties:t,type:"Feature"};s.features=[o]}if("Extend Line Upward"===t.action){var o=s.features[s.features.length-1];Object.assign(o.properties,i),o.properties.link_sequence=o.properties.link_sequence+1,o.properties.a=o.properties.b,o.geometry.coordinates[0]=o.geometry.coordinates.slice(-1)[0],t.nodeCopyId=o.properties.a,this.commit("setNewNode",t),o.properties.b=e.newNode.features[0].properties.index,o.properties.index="link_"+h.generate()}else"Extend Line Downward"===t.action&&(o=s.features[0],Object.assign(o.properties,i),o.properties.link_sequence=o.properties.link_sequence-1,o.properties.b=o.properties.a,o.geometry.coordinates[1]=o.geometry.coordinates[0],t.nodeCopyId=o.properties.b,this.commit("setNewNode",t),o.properties.a=e.newNode.features[0].properties.index,o.properties.index="link_"+h.generate());s.features=[o],e.newLink=s,e.newLink.action=t.action},createNewNode(e,t){const i={};e.nodeAttributes.forEach((e=>{i[e]=null})),i.index="node_"+h.generate();const s={geometry:{coordinates:t,type:"Point"},properties:i,type:"Feature"};e.editorNodes.features=[s]},setNewNode(e,t){const{coordinates:i=[null,null]}=t,s={};e.nodeAttributes.forEach((e=>{s[e]=null}));const o=JSON.parse(JSON.stringify(e.editorNodes)),r=o.features.filter((e=>e.properties.index===t.nodeCopyId))[0];Object.assign(r.properties,s),r.properties.index="node_"+h.generate(),r.geometry.coordinates=i,o.features=[r],e.newNode=o},editNewLink(e,t){e.newNode.features[0].geometry.coordinates=t,"Extend Line Upward"===e.newLink.action?e.newLink.features[0].geometry.coordinates=[e.newLink.features[0].geometry.coordinates[0],t]:e.newLink.features[0].geometry.coordinates=[t,e.newLink.features[0].geometry.coordinates[1]]},applyNewLink(e,t){this.commit("setNewLink",{action:t.action}),this.commit("editNewLink",t.geom);const i=(0,r.Z)(e.newLink);e.newLink.features[0].properties.length=Number((1e3*i).toFixed(0));const s=i/e.linkSpeed*3600;e.newLink.features[0].properties.time=Number(s.toFixed(0));const o=e.newLink.action;"Extend Line Upward"===o?(e.editorLinks.features.push(e.newLink.features[0]),e.editorNodes.features.push(e.newNode.features[0])):"Extend Line Downward"===o&&(e.editorLinks.features.splice(0,0,e.newLink.features[0]),e.editorNodes.features.splice(0,0,e.newNode.features[0]),e.editorLinks.features.forEach((e=>e.properties.link_sequence+=1)))},deleteNode(e,t){const i=t.selectedNode.index;e.editorNodes.features=e.editorNodes.features.filter((e=>e.properties.index!==i));const s=e.editorLinks.features.filter((e=>e.properties.b===i))[0],o=e.editorLinks.features.filter((e=>e.properties.a===i))[0];if(s)if(o){s.geometry.coordinates=[...s.geometry.coordinates.slice(0,-1),...o.geometry.coordinates.slice(1)],s.properties.b=o.properties.b,s.properties.length=Number(s.properties.length)+Number(o.properties.length),s.properties.time=Number(s.properties.time)+Number(o.properties.time);const t=e.editorLinks.features.findIndex((e=>e.properties.index===o.properties.index));e.editorLinks.features.slice(t).forEach((e=>e.properties.link_sequence-=1)),e.editorLinks.features=e.editorLinks.features.filter((e=>e.properties.index!==o.properties.index))}else e.editorLinks.features=e.editorLinks.features.filter((e=>e.properties.index!==s.properties.index));else e.editorLinks.features=e.editorLinks.features.filter((e=>e.properties.index!==o.properties.index)),e.editorLinks.features.forEach((e=>e.properties.link_sequence-=1))},splitLink(e,t){const i=t.selectedLink.index,s=e.editorLinks.features.findIndex((e=>e.properties.index===i)),o=e.editorLinks.features[s],r=structuredClone(o),n=t.offset;o.properties.b=e.newNode.features[0].properties.index,o.geometry.coordinates=[...o.geometry.coordinates.slice(0,t.sliceIndex),e.newNode.features[0].geometry.coordinates],o.properties.index="link_"+h.generate(),o.properties.length=o.properties.length*n,o.properties.time=o.properties.time*n,r.properties.a=e.newNode.features[0].properties.index,r.geometry.coordinates=[e.newNode.features[0].geometry.coordinates,...r.geometry.coordinates.slice(t.sliceIndex)],r.properties.index="link_"+h.generate(),r.properties.length=r.properties.length*(1-n),r.properties.time=r.properties.time*(1-n),e.editorLinks.features.splice(s+1,0,r),e.editorNodes.features.push(e.newNode.features[0]);const a=o.properties.link_sequence;e.editorLinks.features.filter((e=>e.properties.link_sequence>a)).forEach((e=>e.properties.link_sequence+=1)),r.properties.link_sequence+=1},addNodeInline(e,t){let i=e.editorLinks.features.filter((e=>e.properties.index===t.selectedLink.index));const s=i[0].properties.a;i=l()(i[0].geometry.coordinates);const o=d()(Object.values(t.lngLat)),a=(0,n.Z)(i,o,{units:"kilometers"}),c=(0,r.Z)(i,{units:"kilometers"}),p=a.properties.index+1,u=a.properties.location/c;"editorNodes"===t.nodes?(this.commit("setNewNode",{coordinates:a.geometry.coordinates,nodeCopyId:s}),this.commit("splitLink",{selectedLink:t.selectedLink,offset:u,sliceIndex:p})):this.commit("addAnchorNode",{selectedLink:t.selectedLink,coordinates:a.geometry.coordinates,sliceIndex:p})},addAnchorNode(e,t){const i=t.selectedLink.index,s=e.editorLinks.features.findIndex((e=>e.properties.index===i));e.editorLinks.features[s].geometry.coordinates.splice(t.sliceIndex,0,t.coordinates)},deleteAnchorNode(e,t){const i=t.selectedNode.linkIndex,s=t.selectedNode.coordinatedIndex,o=e.editorLinks.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),...o.geometry.coordinates.slice(s+1)]},moveAnchor(e,t){const i=t.selectedNode.properties.linkIndex,s=t.selectedNode.properties.coordinatedIndex,o=e.editorLinks.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),t.lngLat,...o.geometry.coordinates.slice(s+1)];const n=(0,r.Z)(o);o.properties.length=Number((1e3*n).toFixed(0));const a=n/e.linkSpeed*3600;o.properties.time=Number(a.toFixed(0))},moveNode(e,t){const i=t.selectedNode.properties.index;e.editorNodes.features.filter((e=>e.properties.index===i))[0].geometry.coordinates=t.lngLat;const s=e.editorLinks.features.filter((e=>e.properties.b===i))[0],o=e.editorLinks.features.filter((e=>e.properties.a===i))[0];if(s){s.geometry.coordinates=[...s.geometry.coordinates.slice(0,-1),t.lngLat];const i=(0,r.Z)(s);s.properties.length=Number((1e3*i).toFixed(0));const o=i/e.linkSpeed*3600;s.properties.time=Number(o.toFixed(0))}if(o){o.geometry.coordinates=[t.lngLat,...o.geometry.coordinates.slice(1)];const i=(0,r.Z)(o);o.properties.length=Number((1e3*i).toFixed(0));const s=i/e.linkSpeed*3600;o.properties.time=Number(s.toFixed(0))}},cutLineFromNode(e,t){const i=t.selectedNode.index;e.editorLinks.features.sort(((e,t)=>e.properties.link_sequence-t.properties.link_sequence));let s=[];for(const[t,o]of e.editorLinks.features.entries())if(o.properties.b===i){s=e.editorLinks.features.slice(t+1);break}e.editorLinks.features=e.editorLinks.features.filter((e=>!s.includes(e))),this.commit("getEditorNodes",{nodes:e.editorNodes})},cutLineAtNode(e,t){const i=t.selectedNode.index;e.editorLinks.features.sort(((e,t)=>e.properties.link_sequence-t.properties.link_sequence));let s=[];for(const[t,o]of e.editorLinks.features.entries())if(o.properties.a===i){s=e.editorLinks.features.slice(0,t);break}e.editorLinks.features=e.editorLinks.features.filter((e=>!s.includes(e))),this.commit("getEditorNodes",{nodes:e.editorNodes})},editLineInfo(e,t){e.editorLineInfo=t;const i=Object.keys(t).filter((e=>!(""===t[e].value&&t[e].placeholder||t[e].disabled)));e.editorLinks.features.forEach((e=>i.forEach((i=>e.properties[i]=t[i].value))))},editLinkInfo(e,t){const{selectedLinkId:i,info:s}=t,o=Object.keys(s);e.editorLinks.features.filter((function(e){e.properties.index===i&&o.forEach((t=>e.properties[t]=s[t].value))})),this.commit("getEditorLineInfo")},editNodeInfo(e,t){const{selectedNodeId:i,info:s}=t,o=Object.keys(s);e.editorNodes.features.filter((function(e){e.properties.index===i&&o.forEach((t=>e.properties[t]=s[t].value))}))},editGroupInfo(e,t){const i=t.info,s=t.groupTripIds,o=Object.keys(i).filter((e=>""!==i[e].value||!i[e].placeholder));e.links.features.filter((e=>s.includes(e.properties.trip_id))).forEach((e=>o.forEach((t=>e.properties[t]=i[t].value)))),this.commit("getTripId")},deleteUnusedNodes(e){const t=e.links.features.map((e=>e.properties.a)),i=e.links.features.map((e=>e.properties.b)),s=new Set([...t,...i]);e.nodes.features=e.nodes.features.filter((e=>s.has(e.properties.index)))},confirmChanges(e){const t={...e.links};t.features=t.features.filter((t=>t.properties.trip_id===e.editorTrip));const i=t.features.filter((t=>!e.editorLinks.features.includes(t)));if(e.tripId.includes(e.editorTrip))var s=e.links.features.findIndex((t=>t.properties.trip_id===e.editorTrip));else s=0;e.links.features=e.links.features.filter((e=>!i.includes(e))),e.links.features.splice(s,0,...e.editorLinks.features);const o=e.nodes.features.map((e=>e.properties.index)),r={...e.editorNodes};r.features=r.features.filter((e=>!o.includes(e.properties.index))),e.nodes.features.push(...r.features),e.nodes.features.filter((function(t){e.editorNodes.features.forEach((function(e){t.properties.index===e.properties.index&&(t.properties=e.properties,t.geometry=e.geometry)}))})),this.commit("deleteUnusedNodes");const n=new Set(e.editorNodes.features.map((e=>e.properties.index)));e.links.features.filter((t=>t.properties.trip_id!==e.editorTrip)).filter((e=>n.has(e.properties.a))).forEach((t=>t.geometry.coordinates=[e.editorNodes.features.filter((e=>e.properties.index===t.properties.a))[0].geometry.coordinates,...t.geometry.coordinates.slice(1)])),e.links.features.filter((t=>t.properties.trip_id!==e.editorTrip)).filter((e=>n.has(e.properties.b))).forEach((t=>t.geometry.coordinates=[...t.geometry.coordinates.slice(0,-1),e.editorNodes.features.filter((e=>e.properties.index===t.properties.b))[0].geometry.coordinates])),e.newLink={},e.newNode={},this.commit("applyPropertiesTypes"),this.commit("getTripId"),this.commit("getLinksProperties")},deleteTrip(e,t){e.links.features="object"==typeof t?e.links.features.filter((e=>!t.includes(e.properties.trip_id))):e.links.features.filter((e=>e.properties.trip_id!==t)),this.commit("deleteUnusedNodes"),this.commit("getTripId")},applyPropertiesTypes(e){e.defaultAttributes.forEach((t=>{"String"===t.type?e.links.features.forEach((e=>e.properties[t.name]=String(e.properties[t.name]))):"Number"===t.type&&e.links.features.forEach((e=>e.properties[t.name]=Number(e.properties[t.name])))}))}},getters:{links:e=>e.links,nodes:e=>e.nodes,linkSpeed:e=>e.linkSpeed,linksIsEmpty:e=>0===e.links.features.length,route_id:e=>e.route_id,editorTrip:e=>e.editorTrip,editorLinks:e=>e.editorLinks,editorNodes:e=>e.editorNodes,tripId:e=>e.tripId,selectedTrips:e=>e.selectedTrips,editorLineInfo:e=>e.editorLineInfo,newLink:e=>e.newLink,newNode:e=>e.newNode,firstNodeId:e=>e.editorNodes.features.length>1?e.editorLinks.features[0].properties.a:e.editorNodes.features[0].properties.index,lastNodeId:e=>e.editorNodes.features.length>1?e.editorLinks.features.slice(-1)[0].properties.b:e.editorNodes.features[0].properties.index,firstNode:(e,t)=>e.editorTrip?e.editorNodes.features.filter((e=>e.properties.index===t.firstNodeId))[0]:null,lastNode:(e,t)=>e.editorTrip?e.editorNodes.features.filter((e=>e.properties.index===t.lastNodeId))[0]:null,lineAttributes:e=>e.lineAttributes.sort(),nodeAttributes:e=>e.nodeAttributes,changeBounds:e=>e.changeBounds,nodesHeader:e=>e.nodesHeader,linksHeader:e=>e.linksHeader,anchorNodes:e=>{const t=structuredClone(e.nodesHeader);return e.editorLinks.features.filter((e=>e.geometry.coordinates.length>2)).forEach((e=>{const i=e.properties.index;e.geometry.coordinates.slice(1,-1).forEach(((e,s)=>t.features.push({properties:{index:h.generate(),linkIndex:i,coordinatedIndex:s+1},geometry:{coordinates:e,type:"Point"}})))})),t},attributeType:e=>t=>e.defaultAttributes.filter((e=>e.name===t))[0]?.type,defaultAttributesNames:e=>e.defaultAttributes.map((e=>e.name))}};var g=i(98013),f=i(90496),A=i(87189);const v=i(7597),y={state:{rlinks:{},rnodes:{},rlinksHeader:{},rnodesHeader:{},selectedrFilter:"",selectedrGroup:[],filteredrCategory:[],rlineAttributes:[],rnodeAttributes:[],newrNode:{},visiblerLinks:{},renderedrLinks:{},visiblerNodes:{},renderedrNodes:{},connectedLinks:[],defaultHighway:"quenedi",roadSpeed:20,rlinksDefaultColor:"2196F3",rcstAttributes:["a","b","index","length","route_color","oneway","route_width","highway","cycleway","cycleway_reverse","incline"],rundeletable:["index","a","b","length","route_color","oneway","time","speed","time_r","speed_r"],reversedAttributes:[]},mutations:{loadrLinks(e,t){if(e.rlinks=structuredClone(t),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.rlinks.crs.properties.name)){const t={...e.rlinks};t.features=[],e.rlinksHeader=t,e.visiblerLinks=structuredClone(t),e.renderedrLinks=structuredClone(t),e.rlinks.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>e.map((e=>Math.round(1e6*Number(e))/1e6)))))),e.filteredrCategory=[],e.selectedrGroup=[],this.commit("getrLinksProperties"),this.commit("splitOneway")}else alert("invalid CRS. use CRS84 / EPSG:4326")},loadrNodes(e,t){if(e.rnodes=JSON.parse(JSON.stringify(t)),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.rnodes.crs.properties.name)){const t={...e.rnodes};t.features=[],e.rnodesHeader=t,e.visiblerNodes=structuredClone(t),e.renderedrNodes=structuredClone(t),e.rnodes.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>Math.round(1e6*Number(e))/1e6)))),this.commit("getrNodesProperties")}else alert("invalid CRS. use CRS84 / EPSG:4326")},loadRoadFiles(e,t){for(const i of t){const t=i.content.features[0].geometry.type;if("LineString"===t){if(!(0,u.ci)(i.content,e.rlinks)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("appendNewrLinks",(0,p.GM)(i.content,i.path,t))}else if("Point"===t){if(!(0,u.ci)(i.content,e.rnodes)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("appendNewrNodes",(0,p.GM)(i.content,i.path,t))}}},appendNewrLinks(e,t){t.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>e.map((e=>Math.round(1e6*Number(e))/1e6)))))),t.features.forEach((t=>e.rlinks.features.push(t))),this.commit("getrLinksProperties"),this.commit("splitOneway"),this.commit("getFilteredrCat")},appendNewrNodes(e,t){t.features.forEach((e=>e.geometry.coordinates=e.geometry.coordinates.map((e=>Math.round(1e6*Number(e))/1e6)))),t.features.forEach((t=>e.rnodes.features.push(t))),this.commit("splitOneway"),this.commit("getrNodesProperties")},getrLinksProperties(e){let t=new Set([]);e.rlinks.features.forEach((e=>{Object.keys(e.properties).forEach((e=>{e.endsWith("_r")||t.add(e)}))})),["index","a","b","route_color"].forEach((e=>t.add(e))),t=Array.from(t),e.rlineAttributes=t,t.includes("highway")?e.selectedrFilter="highway":e.selectedrFilter=t[0]},getrNodesProperties(e){let t=new Set([]);e.rnodes.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),["index"].forEach((e=>t.add(e))),t=Array.from(t),e.rnodeAttributes=t},addRoadPropertie(e,t){"rlinks"===t.table?(e.rlinks.features.map((e=>e.properties[t.name]=null)),e.visiblerLinks.features.map((e=>e.properties[t.name]=null)),e.rlineAttributes.push(t.name),e.rcstAttributes.includes(t.name)||e.reversedAttributes.push(t.name+"_r")):(e.rnodes.features.map((e=>e.properties[t.name]=null)),e.visiblerNodes.features.map((e=>e.properties[t.name]=null)),e.rnodeAttributes.push(t.name))},deleteRoadPropertie(e,t){"rlinks"===t.table?(e.rlinks.features.filter((e=>delete e.properties[t.name])),e.rlinks.features.filter((e=>delete e.properties[t.name+"_r"])),e.visiblerLinks.features.filter((e=>delete e.properties[t.name])),e.visiblerLinks.features.filter((e=>delete e.properties[t.name+"_r"])),e.rlineAttributes=e.rlineAttributes.filter((e=>e!==t.name)),e.reversedAttributes=e.reversedAttributes.filter((e=>e!==t.name+"_r"))):(e.rnodes.features.filter((e=>delete e.properties[t.name])),e.visiblerNodes.features.filter((e=>delete e.properties[t.name])))},changeSelectedrFilter(e,t){e.selectedrFilter=t,this.commit("getFilteredrCat")},getFilteredrCat(e){const t=Array.from(new Set(e.rlinks.features.map((t=>t.properties[e.selectedrFilter]))));e.filteredrCategory=t},splitOneway(e){e.rlineAttributes.includes("oneway")&&(e.rlinks.features.forEach((e=>{[!0,"true","1",1].includes(e.properties.oneway)?e.properties.oneway="1":e.properties.oneway="0"})),e.reversedAttributes=e.rlineAttributes.filter((t=>!e.rcstAttributes.includes(t))).map((e=>e+"_r")),e.rlinks.features.forEach((t=>{"0"===t.properties.oneway&&e.reversedAttributes.forEach((e=>{t.properties[e]||(t.properties[e]=t.properties[e.slice(0,-2)])}))})))},changeVisibleRoads(e,t){const i=t.method,s=t.data,o=t.category;e.selectedrFilter=o;let r=null;switch(i){case"showAll":e.selectedrGroup=s,e.visiblerLinks.features=e.rlinks.features.slice();break;case"hideAll":e.selectedrGroup=s,e.visiblerLinks.features=[];break;case"add":e.selectedrGroup.includes(s[0])||e.selectedrGroup.push(s[0]),r=e.rlinks.features.filter((e=>e.properties[o]===s[0])),r.forEach((t=>e.visiblerLinks.features.push(t)));break;case"remove":e.selectedrGroup=e.selectedrGroup.filter((e=>e!==s[0])),r=new Set(e.visiblerLinks.features.filter((e=>e.properties[o]===s[0]))),e.visiblerLinks.features=e.visiblerLinks.features.filter((e=>!r.has(e)))}this.commit("getVisiblerNodes",{method:i})},refreshVisibleRoads(e){const t=new Set(e.selectedrGroup),i=e.selectedrFilter;e.visiblerLinks.features=e.rlinks.features.filter((e=>t.has(e.properties[i]))),this.commit("getVisiblerNodes",{method:"add"});const s=new Set(e.visiblerLinks.features.map((e=>e.properties[i])));e.selectedrGroup=[...s].filter((e=>t.has(e)))},getVisiblerNodes(e,t){let i=[],s=[],o=[];switch(t.method){case"showAll":e.visiblerNodes.features=e.rnodes.features;break;case"hideAll":e.visiblerNodes.features=[];break;case"add":i=e.visiblerLinks.features.map((e=>e.properties.a)),s=e.visiblerLinks.features.map((e=>e.properties.b)),o=new Set([...i,...s]),e.visiblerNodes.features=e.rnodes.features.filter((e=>o.has(e.properties.index)));break;case"remove":i=e.visiblerLinks.features.map((e=>e.properties.a)),s=e.visiblerLinks.features.map((e=>e.properties.b)),o=new Set([...i,...s]),e.visiblerNodes.features=e.visiblerNodes.features.filter((e=>o.has(e.properties.index)))}},getRenderedrLinks(e,t){e.renderedrLinks.features=e.visiblerLinks.features.filter((e=>(0,g.ZP)(t.bbox,e)||(0,f.Z)(t.bbox,e))),this.commit("getRenderedrNodes")},getRenderedrNodes(e){const t=e.renderedrLinks.features.map((e=>e.properties.a)),i=e.renderedrLinks.features.map((e=>e.properties.b)),s=new Set([...t,...i]);e.renderedrNodes.features=e.visiblerNodes.features.filter((e=>s.has(e.properties.index)))},setRenderedrLinks(e,t){"visible"===t.method?(e.renderedrLinks.features=e.visiblerLinks.features,e.renderedrNodes.features=[]):(e.renderedrLinks.features=[],e.renderedrNodes.features=[])},editrLinkInfo(e,t){const{selectedLinkId:i,info:s}=t;for(let t=0;te.properties.index===i[t]))[0];s[t].oneway?.value!==r.properties.oneway&&"0"===s[t].oneway?.value?e.reversedAttributes.forEach((e=>r.properties[e]=s[t][e.slice(0,-2)].value)):s[t].oneway?.value!==r.properties.oneway&&"1"===s[t].oneway?.value&&e.reversedAttributes.forEach((e=>delete r.properties[e])),o.forEach((e=>r.properties[e]=s[t][e].value))}},editrNodeInfo(e,t){const{selectedNodeId:i,info:s}=t,o=Object.keys(s);e.rnodes.features.filter((function(e){e.properties.index===i&&o.forEach((t=>e.properties[t]=s[t].value))}))},createNewrNode(e,t){const i=structuredClone(e.rnodesHeader),s={};e.rnodeAttributes.forEach((e=>{s[e]=null})),s.index="rnode_"+v.generate();const o={geometry:{coordinates:t,type:"Point"},properties:s,type:"Feature"};i.features=[o],e.newrNode=i},splitrLink(e,t){const i=t.selectedFeature,s=structuredClone(i),o=t.offset;i.properties.b=e.newrNode.features[0].properties.index,i.geometry.coordinates=[...i.geometry.coordinates.slice(0,t.sliceIndex),e.newrNode.features[0].geometry.coordinates],i.properties.index="link_"+v.generate(),i.properties.length=i.properties.length*o,i.properties.time=i.properties.time*o,i.properties.length_r&&(i.properties.length_r=i.properties.length),i.properties.time_r&&(i.properties.time_r=i.properties.time),s.properties.a=e.newrNode.features[0].properties.index,s.geometry.coordinates=[e.newrNode.features[0].geometry.coordinates,...s.geometry.coordinates.slice(t.sliceIndex)],s.properties.index="rlink_"+v.generate(),s.properties.length=s.properties.length*(1-o),s.properties.time=s.properties.time*(1-o),s.properties.length_r&&(s.properties.length_r=s.properties.length),s.properties.time_r&&(s.properties.time_r=s.properties.time),e.visiblerLinks.features.push(s),e.renderedrLinks.features.push(s),e.rlinks.features.filter((e=>e.properties.index===i.properties.index))[0]=i,e.rlinks.features.push(s)},addRoadNodeInline(e,t){const i=e.renderedrLinks.features.filter((e=>t.selectedIndex.includes(e.properties.index)));for(let s=0;se.properties.index===i));e.renderedrLinks.features[s].geometry.coordinates.splice(t.sliceIndex,0,t.coordinates)},createrLink(e,t){t.nodeIdB?"rlinks"===t.layerId&&(this.commit("addRoadNodeInline",{selectedIndex:t.nodeIdB,lngLat:t.geom,nodes:"rnodes"}),t.nodeIdB=e.newrNode.features[0].properties.index):(this.commit("createNewrNode",t.geom),e.visiblerNodes.features.push(e.newrNode.features[0]),e.renderedrNodes.features.push(e.newrNode.features[0]),e.rnodes.features.push(e.newrNode.features[0]),t.nodeIdB=e.newrNode.features[0].properties.index);const i=e.visiblerNodes.features.filter((e=>e.properties.index===t.nodeIdA))[0],s=e.visiblerNodes.features.filter((e=>e.properties.index===t.nodeIdB))[0],o={coordinates:[i.geometry.coordinates,s.geometry.coordinates],type:"LineString"},n={};e.rlineAttributes.forEach((e=>n[e]=null)),n.index="rlink_"+v.generate(),n.a=t.nodeIdA,n.b=t.nodeIdB,n.highway=e.defaultHighway,n.route_color=e.rlinksDefaultColor;const a=(0,r.Z)(o),l=a/e.roadSpeed*3600;n.length=Number((1e3*a).toFixed(0)),n.time=Number(l.toFixed(0)),n.speed=Number(e.roadSpeed),e.rlineAttributes.includes("oneway")&&(n.oneway="0",e.reversedAttributes.forEach((e=>n[e]=n[e.slice(0,-2)])));const c={geometry:o,properties:n,type:"Feature"};e.rlinks.features.push(c);const d=n[e.selectedrFilter];e.filteredrCategory.includes(d)||e.filteredrCategory.push(d),e.selectedrGroup.includes(d)?(e.visiblerLinks.features.push(c),e.renderedrLinks.features.push(c)):(e.visiblerLinks.features.push(c),e.renderedrLinks.features.push(c),e.selectedrGroup.push(d))},getConnectedLinks(e,t){const i=t.selectedNode.properties.index;e.connectedLinks={b:e.rlinks.features.filter((e=>e.properties.b===i)),a:e.rlinks.features.filter((e=>e.properties.a===i))}},moverNode(e,t){const i=t.selectedNode.properties.index;e.renderedrNodes.features.filter((e=>e.properties.index===i))[0].geometry.coordinates=t.lngLat,e.connectedLinks.b.forEach((e=>{e.geometry.coordinates=[...e.geometry.coordinates.slice(0,-1),t.lngLat];const i=(0,r.Z)(e);e.properties.length=Number((1e3*i).toFixed(0));const s=i/e.properties.speed*3600;if(e.properties.time=Number(s.toFixed(0)),e.properties.time_r){const t=i/e.properties.speed_r*3600;e.properties.time_r=Number(t.toFixed(0))}e.properties.length_r&&(e.properties.length_r=e.properties.length)})),e.connectedLinks.a.forEach((e=>{e.geometry.coordinates=[t.lngLat,...e.geometry.coordinates.slice(1)];const i=(0,r.Z)(e);e.properties.length=Number((1e3*i).toFixed(0));const s=i/e.properties.speed*3600;if(e.properties.time=Number(s.toFixed(0)),e.properties.time_r){const t=i/e.properties.speed_r*3600;e.properties.time_r=Number(t.toFixed(0))}e.properties.length_r&&(e.properties.length_r=e.properties.length)}))},moverAnchor(e,t){const i=t.selectedNode.properties.linkIndex,s=t.selectedNode.properties.coordinatedIndex,o=e.renderedrLinks.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),t.lngLat,...o.geometry.coordinates.slice(s+1)];const n=(0,r.Z)(o);o.properties.length=Number((1e3*n).toFixed(0));const a=n/e.roadSpeed*3600;o.properties.time=Number(a.toFixed(0))},deleteAnchorrNode(e,t){const i=t.selectedNode.linkIndex,s=t.selectedNode.coordinatedIndex,o=e.renderedrLinks.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),...o.geometry.coordinates.slice(s+1)]},deleterLink(e,t){const i=new Set(t.selectedIndex);e.rlinks.features=e.rlinks.features.filter((e=>!i.has(e.properties.index))),e.visiblerLinks.features=e.visiblerLinks.features.filter((e=>!i.has(e.properties.index))),e.renderedrLinks.features=e.renderedrLinks.features.filter((e=>!i.has(e.properties.index))),this.commit("deleteUnusedrNodes"),this.commit("getVisiblerNodes",{method:"remove"}),this.commit("getRenderedrNodes"),this.commit("getFilteredrCat")},deleterGroup(e,t){const i=t,s=e.selectedrFilter;e.rlinks.features=e.rlinks.features.filter((e=>e.properties[s]!==i)),this.commit("refreshVisibleRoads"),this.commit("deleteUnusedrNodes"),this.commit("getFilteredrCat")},deleteUnusedrNodes(e){const t=e.rlinks.features.map((e=>e.properties.a)),i=e.rlinks.features.map((e=>e.properties.b)),s=new Set([...t,...i]);e.rnodes.features=e.rnodes.features.filter((e=>s.has(e.properties.index)))},editrGroupInfo(e,t){const i=t.info,s=t.selectedLinks,o=Object.keys(i).filter((e=>""!==i[e].value||!i[e].placeholder));if("0"===i.oneway?.value?s.filter((e=>"1"===e.properties.oneway)).forEach((t=>{e.reversedAttributes.forEach((e=>t.properties[e]=t.properties[e.slice(0,-2)]))})):"1"===i.oneway?.value&&s.filter((e=>"0"===e.properties.oneway)).forEach((t=>{e.reversedAttributes.forEach((e=>delete t.properties[e]))})),s.forEach((e=>o.forEach((t=>e.properties[t]=i[t].value)))),e.rlineAttributes.includes("oneway")){const t=e.reversedAttributes.filter((e=>o.includes(e.slice(0,-2))));s.filter((e=>"0"===e.properties.oneway)).forEach((e=>t.forEach((t=>e.properties[t]=i[t.slice(0,-2)].value))))}this.commit("refreshVisibleRoads"),this.commit("getFilteredrCat")}},getters:{rlinks:e=>e.rlinks,rnodes:e=>e.rnodes,roadSpeed:e=>e.roadSpeed,rlinksHeader:e=>e.rlinksHeader,rnodesHeader:e=>e.rnodesHeader,rlineAttributes:e=>e.rlineAttributes.sort(),selectedrGroup:e=>e.selectedrGroup,selectedrFilter:e=>e.selectedrFilter,filteredrCategory:e=>e.filteredrCategory,visiblerLinks:e=>e.visiblerLinks,renderedrLinks:e=>e.renderedrLinks,renderedrNodes:e=>e.renderedrNodes,visiblerNodes:e=>e.visiblerNodes,defaultHighway:e=>e.defaultHighway,rlinksIsEmpty:e=>0===e.rlinks.features.length,rcstAttributes:e=>e.rcstAttributes,newrNode:e=>e.newrNode,rundeletable:e=>e.rundeletable,hasCycleway:e=>e.rlineAttributes.includes("cycleway"),anchorrNodes:e=>{const t=structuredClone(e.rnodesHeader);return e.renderedrLinks.features.filter((e=>e.geometry.coordinates.length>2)).forEach((e=>{const i=e.properties.index;e.geometry.coordinates.slice(1,-1).forEach(((e,s)=>t.features.push(d()(e,{index:v.generate(),linkIndex:i,coordinatedIndex:s+1}))))})),t},rlinkDirection:e=>(t,i=!1)=>{const s=e.rlinks.features.filter((e=>t.includes(e.properties.index))),o=[];return s.forEach((e=>{const t=e.geometry.coordinates;i?o.push((0,A.Z)(t[t.length-1],t[0])):o.push((0,A.Z)(t[0],t[t.length-1]))})),o},grouprLinks:e=>(t,i)=>e.rlinks.features.filter((e=>i===e.properties[t])),onewayIndex:e=>new Set(e.rlinks.features.filter((e=>"0"===e.properties.oneway)).map((e=>e.properties.index))),rlinksForm:e=>t=>{const i=["a","b","index"],s=e.visiblerLinks.features.filter((e=>e.properties.index===t))[0].properties,o={};return e.rlineAttributes.forEach((e=>{o[e]={value:s[e],disabled:i.includes(e),placeholder:!1}})),o},reversedrLinksForm:e=>t=>{const i=["a","b","index"],s=e.visiblerLinks.features.filter((e=>e.properties.index===t))[0].properties,o={};return e.reversedAttributes.forEach((e=>{o[e]={value:s[e],disabled:i.includes(e),placeholder:!1}})),o}}},C=i(7597),b={namespaced:!0,state:{layer:{},visibleLayer:{},layerHeader:{},layerAttributes:[],filteredCategory:[],selectedFilter:"",selectedCategory:[]},mutations:{loadLayer(e,t){if(e.layer=structuredClone(t),["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.layer.crs.properties.name)){const t={...e.layer};t.features=[],e.layerHeader=t,e.visibleLayer=structuredClone(t),this.commit("od/getProperties")}else alert("invalid CRS. use CRS84 / EPSG:4326")},loadODFiles(e,t){for(const i of t){if(!(0,u.ci)(i.content,e.layer)){const e=new Error(" there is duplicated index, "+i.path);throw e.name="ImportError",e}this.commit("od/appendNewOD",(0,p.GM)(i.content,i.path,"LineString"))}},appendNewOD(e,t){t.features.forEach((e=>{return e.geometry.coordinates=[(t=e.geometry.coordinates)[0],t[t.length-1]];var t})),t.features.forEach((t=>e.layer.features.push(t))),this.commit("od/getProperties"),this.commit("od/getFilteredCategory"),this.commit("od/refreshVisibleLayer")},changeSelectedFilter(e,t){e.selectedFilter=t,this.commit("od/refreshVisibleLayer"),this.commit("od/getFilteredCategory")},changeSelectedCategory(e,t){e.selectedCategory=t,this.commit("od/refreshVisibleLayer")},getProperties(e){const t=new Set([]);e.layer.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),["index","name"].forEach((e=>t.add(e))),e.layerAttributes=Array.from(t),e.selectedFilter=e.layerAttributes[0],e.selectedCategory=Array.from(new Set(e.layer.features.map((t=>t.properties[e.selectedFilter]))))},refreshVisibleLayer(e){const t=new Set(e.selectedCategory),i=e.selectedFilter;e.visibleLayer.features=e.layer.features.filter((e=>t.has(e.properties[i])))},getFilteredCategory(e){const t=Array.from(new Set(e.layer.features.map((t=>t.properties[e.selectedFilter]))));e.filteredCategory=t},deleteOD(e,t){const i=new Set(t.selectedIndex);e.layer.features=e.layer.features.filter((e=>!i.has(e.properties.index))),this.commit("od/refreshVisibleLayer"),this.commit("od/getFilteredCategory")},deleteGroup(e,t){const i=t,s=e.selectedFilter;e.layer.features=e.layer.features.filter((e=>e.properties[s]!==i)),this.commit("od/refreshVisibleLayer"),this.commit("od/getFilteredCategory")},moveNode(e,t){const i=t.selectedFeature.properties.linkIndex,s=t.selectedFeature.properties.coordinatedIndex,o=e.visibleLayer.features.filter((e=>e.properties.index===i))[0];o.geometry.coordinates=[...o.geometry.coordinates.slice(0,s),t.lngLat,...o.geometry.coordinates.slice(s+1)]},createNewLink(e,t){const i={coordinates:[t.lngLat,t.lngLat],type:"LineString"},s={};e.layerAttributes.forEach((e=>s[e]=null)),s.index=t.index;const o={geometry:i,properties:s,type:"Feature"};e.layer.features.push(o),this.commit("od/getFilteredCategory");const r=s[e.selectedFilter];new Set(e.selectedCategory).has(r)||e.selectedCategory.push(r),this.commit("od/refreshVisibleLayer")},editLinkInfo(e,t){const{selectedLinkId:i,info:s}=t,o=Object.keys(s);e.visibleLayer.features.filter((function(e){e.properties.index===i&&o.forEach((t=>e.properties[t]=s[t].value))})),this.commit("od/getFilteredCategory")},editGroupInfo(e,t){const i=t.info,s=t.selectedLinks,o=Object.keys(i).filter((e=>""!==i[e].value||!i[e].placeholder));s.forEach((e=>o.forEach((t=>e.properties[t]=i[t].value)))),this.commit("od/getFilteredCategory"),this.commit("od/refreshVisibleLayer")},addPropertie(e,t){e.layer.features.map((e=>e.properties[t]=null)),e.visibleLayer.features.map((e=>e.properties[t]=null)),e.layerAttributes.push(t)},deletePropertie(e,t){e.layer.features.filter((e=>delete e.properties[t.name])),e.visibleLayer.features.filter((e=>delete e.properties[t.name])),e.layerAttributes=e.layerAttributes.filter((e=>e!==t.name))}},getters:{layer:e=>e.layer,visibleLayer:e=>e.visibleLayer,layerIsEmpty:e=>0===e.layer.features.length,layerHeader:e=>e.layerHeader,selectedTrips:e=>e.selectedTrips,layerAttributes:e=>e.layerAttributes.sort(),selectedFilter:e=>e.selectedFilter,filteredCategory:e=>e.filteredCategory,selectedCategory:e=>e.selectedCategory,groupLayer:e=>(t,i)=>e.layer.features.filter((e=>i===e.properties[t])),linkForm:e=>t=>{const i=["index"],s=e.visibleLayer.features.filter((e=>e.properties.index===t))[0].properties,o={};return e.layerAttributes.forEach((e=>{o[e]={value:s[e],disabled:i.includes(e),placeholder:!1}})),o},nodes:e=>t=>{const i=structuredClone(e.layerHeader);return t.features.forEach((e=>{const t=e.properties.index;e.geometry.coordinates.forEach(((e,s)=>i.features.push(d()(e,{index:C.generate(),linkIndex:t,coordinatedIndex:s}))))})),i}}};var k=i(28670),w=i.n(k);const x=i(36377);function _(e,t,i,s,o,r){if("string"==typeof e)return r?0:x(e)();let n=e;return"log"===o?(t=t>0?Math.log10(t):0,i=i>0?Math.log10(i):0,n=e>0?Math.log10(e):0):"sqrt"===o?(t=Math.sqrt(t),i=Math.sqrt(i),n=Math.sqrt(e)):"exp"===o?(e/=i,t=10**(t/=i),i=10**(i=1),n=10**e):"quad"===o&&(t=t**2,i=i**2,n=e**2),n=s?(-n+i)/(i-t):(n-t)/(i-t),n}const E={selectedFeature:null,maxWidth:10,minWidth:1,numStep:100,scale:"linear",fixScale:!1,minVal:0,maxVal:1,cmap:"OrRd",opacity:100,offset:!1,showNaN:!0,reverseColor:!1},S={namespaced:!0,state:{type:"links",links:{},visibleLinks:{},NaNLinks:{},linksHeader:{},lineAttributes:[],selectedFilter:"",selectedCategory:[],displaySettings:E},mutations:{unload(e){e.type="links",e.links={},e.visibleLinks={},e.NaNLinks={},e.linksHeader={},e.lineAttributes=[],e.selectedFilter="",e.selectedCategory=[],e.displaySettings=E},loadLinks(e,t){if(e.links=t.geojson,e.type=t.type,["urn:ogc:def:crs:OGC:1.3:CRS84","EPSG:4326"].includes(e.links.crs.properties.name)){const i=structuredClone(e.links);i.features=[],e.linksHeader=i,e.visibleLinks=structuredClone(i),e.NaNLinks=structuredClone(i),this.commit("results/getLinksProperties"),e.lineAttributes.includes(t.selectedFeature)?e.displaySettings.selectedFeature=t.selectedFeature:e.displaySettings.selectedFeature=null,this.commit("results/refreshVisibleLinks"),this.commit("results/updateSelectedFeature")}else alert("invalid CRS. use CRS84 / EPSG:4326")},updateLinks(e,t){e.links=t,this.commit("results/refreshVisibleLinks"),this.commit("results/updateSelectedFeature")},changeSelectedFilter(e,t){e.selectedFilter=t,e.selectedCategory=Array.from(new Set(e.links.features.map((t=>t.properties[e.selectedFilter])))),this.commit("results/refreshVisibleLinks")},changeSelectedCategory(e,t){e.selectedCategory=t,this.commit("results/refreshVisibleLinks")},getLinksProperties(e){const t=new Set([]);e.links.features.forEach((e=>{Object.keys(e.properties).forEach((e=>t.add(e)))})),e.lineAttributes=Array.from(t),e.lineAttributes=e.lineAttributes.filter((e=>!["display_width","display_color"].includes(e))),e.selectedFilter=t.has("route_type")?"route_type":t.has("highway")?"highway":e.lineAttributes[0],e.selectedCategory=Array.from(new Set(e.links.features.map((t=>t.properties[e.selectedFilter]))))},applySettings(e,t){Object.keys(t).forEach((i=>e.displaySettings[i]=t[i])),this.commit("results/refreshVisibleLinks"),this.commit("results/updateSelectedFeature")},updateSelectedFeature(e){const t=e.displaySettings.selectedFeature,i=e.displaySettings.maxWidth,s=e.displaySettings.minWidth,o=e.displaySettings.scale,r=e.displaySettings.numStep,n=e.displaySettings.cmap,a=e.visibleLinks.features.filter((e=>e.properties[t])).map((e=>e.properties[t]));if(!e.displaySettings.fixScale){const t=e=>e.reduce((([e,t],i)=>[Math.min(e,i),Math.max(t,i)]),[Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY]),[i,s]=t(a);e.displaySettings.minVal=Math.round(100*i)/100,e.displaySettings.maxVal=Math.round(100*s)/100}const l=e.displaySettings.minVal,c=e.displaySettings.maxVal,d=e.displaySettings.reverseColor;e.visibleLinks.features.forEach((e=>{let r=e.properties[t];rc?e.properties.display_width=i:(r=_(r,l,c,!1,o,!0),e.properties.display_width=(i-s)*r+s)}));const p=w().scale(n).padding([.1,0]).domain([0,1],o).classes(r);e.visibleLinks.features.forEach((e=>{const i=e.properties[t];/^#([0-9A-Fa-f]{3}){1,2}$/i.test(i)?(console.log(i),e.properties.display_color=i):e.properties.display_color=p(_(i,l,c,d,o,!1)).hex()}))},refreshVisibleLinks(e){const t=new Set(e.selectedCategory),i=e.selectedFilter,s=e.displaySettings.selectedFeature;e.visibleLinks.features=e.links.features.filter((e=>t.has(e.properties[i]))),e.displaySettings.showNaN||(e.NaNLinks.features=e.visibleLinks.features.filter((e=>!e.properties[s])),e.visibleLinks.features=e.visibleLinks.features.filter((e=>e.properties[s])))}},getters:{type:e=>e.type,links:e=>e.links,visibleLinks:e=>e.visibleLinks,displayLinks:e=>{const t=structuredClone(e.linksHeader);return t.features=e.visibleLinks.features.map((e=>({geometry:e.geometry,properties:{display_color:e.properties.display_color,display_width:e.properties.display_width}}))),t},NaNLinks:e=>e.NaNLinks,linksHeader:e=>e.linksHeader,lineAttributes:e=>e.lineAttributes.sort(),selectedFilter:e=>e.selectedFilter,selectedCategory:e=>e.selectedCategory,displaySettings:e=>e.displaySettings,selectedFeature:e=>e.displaySettings.selectedFeature,maxWidth:e=>e.displaySettings.maxWidth,minWidth:e=>e.displaySettings.minWidth,numStep:e=>e.displaySettings.numStep,scale:e=>e.displaySettings.scale,opacity:e=>e.displaySettings.opacity,colorScale:e=>{const t=[],i=w().scale(e.displaySettings.cmap).padding([.1,0]).domain([0,1]).classes(e.displaySettings.numStep);for(let s=0;s<100;s++)t.push(i(_(s,0,100,e.displaySettings.reverseColor,e.displaySettings.scale,!1)));return t}}},L={namespaced:!0,state:()=>({layer:{},mat:{},properties:[],type:null}),mutations:{createLayer(e,t){e.layer=structuredClone(t.data),e.type=e.layer.features[0].geometry.type,e.type="MultiPolygon"===e.type?"Polygon":e.type},addMatrix(e,t){Object.keys(t).forEach((i=>{e.mat[i+" (OD)"]=t[i]})),e.properties=Object.keys(e.mat),e.layer.features.length>0&&e.properties.forEach((t=>e.layer.features.forEach((e=>e.properties[t]=null))))},changeZone(e,t){const i=t.selectedProperty;if(e.properties.includes(i)){const s=t.index,o=e.mat[i][s];e.layer.features.forEach((e=>e.properties[i]=o?o[e.properties.index]:null))}}},getters:{layer:e=>e.layer,type:e=>e.type,properties:e=>e.properties,hasOD:e=>e.properties.length>0,mat:e=>{const t=Object.keys(e.mat);if(t.length>0){const i={};return t.forEach((t=>{i[t.slice(0,-5)]=e.mat[t]})),i}return null}}};var I=i(72055),$=i(60887);const N={namespaced:!0,state:{stateMachineArnBase:"arn:aws:states:ca-central-1:142023388927:stateMachine:",steps:[{name:"Loading Steps..."}],selectedStepFunction:"default",avalaibleStepFunctions:["default"],running:!1,executionArn:"",currentStep:0,error:!1,errorMessage:"",synchronized:!0,parameters:[]},mutations:{cleanRun(e){e.steps=[{name:"Loading Steps..."}],e.selectedStepFunction="default",e.avalaibleStepFunctions=["default"],e.running=!1,e.executionArn="",e.currentStep=0,e.error=!1,e.synchronized=!0,e.parameters=[]},setSteps(e,t){e.steps=t,e.steps.splice(0,0,{name:"Saving Networks"}),e.steps.push({name:"Loading Results"})},startExecution(e){e.error=!1,e.running=!0,e.currentStep=1},terminateExecution(e,t){e.running=!1,e.error=!0,e.errorMessage=t,e.executionArn=""},changeRunning(e,t){e.running=t},succeedExecution(e){e.running=!1,e.currentStep=e.steps.length+1,e.executionArn="",this.commit("changeNotification",{text:"simulation executed successfully!",autoClose:!1,color:"success"})},updateCurrentStep(e,t){const i=e.steps.map((e=>e.name));e.currentStep=i.indexOf(t.name)+1},getLocalParameters(e,t){t=(0,p._2)(t),e.parameters=t},setSelectedStepFunction(e,t){e.selectedStepFunction=t},setAvalaibleStepFunctions(e,t){e.avalaibleStepFunctions=t}},actions:{async getParameters({state:e,commit:t},i){try{const t=await $.Z.readJson(i.model,i.path);e.parameters=t}catch(e){t("changeAlert",e,{root:!0})}},async getOutputs(e){const t=e.rootState.user.model,i=e.rootState.user.scenario+"/",s=i+"outputs/";let o=await $.Z.listFiles(t,s);o=o.filter((e=>!e.endsWith("/")));const r=[];for(const e of o){const s=e.slice(i.length);if(e.endsWith(".json")||e.endsWith(".geojson")){const i=await $.Z.readJson(t,e);r.push({path:s,content:i})}else r.push({path:s,content:null})}r.length>0&&(e.commit("unloadLayers",{},{root:!0}),e.commit("loadFiles",r,{root:!0}))},getSteps({state:e,commit:t,rootState:i}){let s={stateMachineArn:e.stateMachineArnBase+i.user.model};I.H.client.post("/describe/model",s=JSON.stringify(s)).then((i=>{const s=JSON.parse(i.data.definition),o=s.StartAt;Object.keys(s.States).forEach((t=>{if("Choice"===s.States[t].Type)if(e.avalaibleStepFunctions=["default",...s.States[t].Choices.map((e=>e.StringEquals))],"default"===e.selectedStepFunction)s.States[t].Next=s.States[t].Default;else{const i=s.States[t].Choices;s.States[t].Next=i.filter((t=>t.StringEquals===e.selectedStepFunction))[0].Next}}));const r=[];let n=o;for(;"Choice"===s.States[n].Type&&(n=s.States[n].Next),r.push({name:n}),void 0!==s.States[n].Next;)n=s.States[n].Next;t("setSteps",r)})).catch((e=>{t("changeAlert",e,{root:!0})}))},startExecution({state:e,commit:t,dispatch:i,rootState:s},o){const r=e.parameters.filter((t=>Object.keys(t).includes("category")&&t.model===e.selectedStepFunction)).reduce(((e,{category:t,params:i})=>(e[t]=i.reduce(((e,{name:t,value:i,type:s})=>(e[t]="number"===s?.toLowerCase()?Number(i):i,e)),{}),e)),{});let n={input:JSON.stringify({authorization:s.user.idToken,choice:e.selectedStepFunction,scenario_path_S3:o.scenario+"/",launcher_arg:{training_folder:"/tmp",params:r},metadata:{user_email:s.user.cognitoInfo.email}}),stateMachineArn:e.stateMachineArnBase+s.user.model};I.H.client.post("",n=JSON.stringify(n)).then((t=>{e.executionArn=t.data.executionArn,i("pollExecution")})).catch((e=>{t("changeAlert",e,{root:!0})}))},pollExecution({commit:e,state:t,dispatch:i}){const s=setInterval((()=>{let o={executionArn:t.executionArn};I.H.client.post("/describe",o=JSON.stringify(o)).then((o=>{t.status=o.data.status,"SUCCEEDED"===t.status?i("getOutputs").then((()=>{e("succeedExecution"),clearInterval(s)})).catch((e=>alert(e))):["FAILED","TIMED_OUT","ABORTED"].includes(t.status)?(e("terminateExecution",JSON.parse(o.data.cause)),clearInterval(s)):void 0===t.status&&clearInterval(s)})).catch((i=>{e("changeAlert",i,{root:!0}),t.running=!1})),o={executionArn:t.executionArn,includeExecutionData:!1,reverseOrder:!0},I.H.client.post("/history",o=JSON.stringify(o)).then((t=>{for(const i in t.data.events){const s=t.data.events[i];if("TaskStateEntered"===s.type){e("updateCurrentStep",s.stateEnteredEventDetails);break}}})).catch((e=>{console.log(e)}))}),5e3)},stopExecution({state:e,commit:t}){let i={executionArn:e.executionArn};I.H.client.post("/abort",i=JSON.stringify(i)).then((e=>{t("terminateExecution",e.data)})).catch((e=>{console.log(e)}))}},getters:{steps:e=>e.steps,avalaibleStepFunctions:e=>e.avalaibleStepFunctions,selectedStepFunction:e=>e.selectedStepFunction,running:e=>e.running,currentStep:e=>e.currentStep,executionArn:e=>e.executionArn,error:e=>e.error,errorMessage:e=>e.errorMessage,synchronized:e=>e.synchronized,parameters:e=>e.parameters,parametersIsEmpty:e=>0===e.parameters.length}};var F=i(55877);const B={namespaced:!0,state:{stateMachineArn:"arn:aws:states:ca-central-1:142023388927:stateMachine:ML_MatrixRoadCaster",bucket:"matrixroadcaster",callID:"",status:"",timer:0,running:!1,executionArn:"",error:!1,errorMessage:"",parameters:{callID:"test",num_zones:100,train_size:100,date_time:"2022-12-13T08:00:21-04:00",ff_time_col:"time",max_speed:100,num_cores:1,num_random_od:1,create_zone:!0,hereApiKey:""}},mutations:{cleanRun(e){e.running=!1,e.executionArn="",e.error=!1},setCallID(e){e.callID=(0,F.v4)()},setParameters(e,t){e.parameters=t},terminateExecution(e,t){e.running=!1,e.error=!0,e.errorMessage=t,e.executionArn=""},changeRunning(e,t){e.running=t},getApproxTimer(e,t){const i=e.parameters.num_zones,s=e.parameters.train_size,o=e.parameters.num_random_od;e.timer=1.8*Math.min(i,s)+.002*t+15,e.timer+=10*o},succeedExecution(e){e.running=!1,e.executionArn="",this.commit("changeNotification",{text:"Matrix Road Caster executed successfully!",autoClose:!1,color:"success"})}},actions:{async startExecution({state:e,commit:t,dispatch:i},s){t("getApproxTimer",s.rlinks.features.length),t("setParameters",s.parameters),console.log("exporting roads to s3"),e.error=!1,e.running=!0;try{await $.Z.putObject(e.bucket,e.callID.concat("/road_links.geojson"),JSON.stringify(s.rlinks)),await $.Z.putObject(e.bucket,e.callID.concat("/road_nodes.geojson"),JSON.stringify(s.rnodes))}catch(e){t("changeAlert",e,{root:!0})}let o={input:JSON.stringify(e.parameters),name:e.callID,stateMachineArn:e.stateMachineArn};I.H.client.post("",o=JSON.stringify(o)).then((t=>{e.executionArn=t.data.executionArn,i("pollExecution")})).catch((i=>{t("changeAlert",i,{root:!0}),e.running=!1,e.status="FAILED"}))},pollExecution({commit:e,state:t,dispatch:i}){const s=setInterval((()=>{let i={executionArn:t.executionArn};t.timer=t.timer-2,I.H.client.post("/describe",i=JSON.stringify(i)).then((i=>{t.status=i.data.status,console.log(t.status),"SUCCEEDED"===t.status?(e("succeedExecution"),clearInterval(s)):["FAILED","TIMED_OUT","ABORTED"].includes(t.status)&&(e("terminateExecution",JSON.parse(i.data.cause)),clearInterval(s))})).catch((t=>{e("changeAlert",t,{root:!0})}))}),2e3)},stopExecution({state:e,commit:t}){let i={executionArn:e.executionArn};I.H.client.post("/abort",i=JSON.stringify(i)).then((e=>{t("terminateExecution",e.data)})).catch((e=>{t("changeAlert",e,{root:!0})}))}},getters:{running:e=>e.running,status:e=>e.status,executionArn:e=>e.executionArn,error:e=>e.error,errorMessage:e=>e.errorMessage,callID:e=>e.callID,bucket:e=>e.bucket,timer:e=>e.timer,parameters:e=>e.parameters}};var M=i(4644),j=i(36463);const D={namespaced:!0,state:{stateMachineArn:"arn:aws:states:ca-central-1:142023388927:stateMachine:osm-api",bucket:"quenedi-osm",callID:"",status:"",timer:0,running:!1,executionArn:"",error:!1,errorMessage:"",tags:["highway","maxspeed","lanes","name","oneway","surface"],highway:["motorway","motorway_link","trunk","trunk_link","primary","primary_link"],colorDict:j.r5,widthDict:j.GL},mutations:{cleanRun(e){e.running=!1,e.executionArn="",e.error=!1},setCallID(e){e.callID=(0,F.v4)()},terminateExecution(e,t){e.running=!1,e.error=!0,e.errorMessage=t,e.executionArn=""},changeRunning(e,t){e.running=t},changeHighway(e,t){e.highway=t},succeedExecution(e){e.running=!1,e.executionArn="",this.commit("changeNotification",{text:"OSM network imported successfully!",autoClose:!1,color:"success"})}},actions:{startExecution({state:e,commit:t,dispatch:i},s){e.running=!0,e.error=!1;let o="";o="bbox"===s.method?JSON.stringify({bbox:s.coords,highway:e.highway,callID:e.callID,elevation:!0}):JSON.stringify({poly:s.coords,highway:e.highway,callID:e.callID,elevation:!0});let r={input:o,name:e.callID,stateMachineArn:e.stateMachineArn};I.H.client.post("",r=JSON.stringify(r)).then((t=>{e.executionArn=t.data.executionArn,i("pollExecution")})).catch((i=>{t("changeAlert",i,{root:!0}),e.running=!1,e.status="FAILED"}))},async pollExecution({commit:e,state:t,dispatch:i}){const s=setInterval((()=>{let o={executionArn:t.executionArn};t.timer=t.timer-2,I.H.client.post("/describe",o=JSON.stringify(o)).then((async o=>{t.status=o.data.status,console.log(t.status),"SUCCEEDED"===t.status?(clearInterval(s),await i("downloadOSMFromS3"),e("succeedExecution")):["FAILED","TIMED_OUT","ABORTED"].includes(t.status)&&(e("terminateExecution",JSON.parse(o.data.cause)),clearInterval(s))})).catch((t=>{e("changeAlert",t,{root:!0})}))}),2e3)},stopExecution({state:e,commit:t}){let i={executionArn:e.executionArn};I.H.client.post("/abort",i=JSON.stringify(i)).then((e=>{t("terminateExecution",e.data)})).catch((e=>{t("changeAlert",e,{root:!0})}))},async downloadOSMFromS3({state:e,commit:t}){let i=await $.Z.readJson(e.bucket,e.callID.concat("/links.geojson"));i=function(t){return Object.keys(e.colorDict).forEach((i=>{t.features.filter((e=>e.properties.highway===i)).forEach((t=>{t.properties.route_width=e.widthDict[i],t.properties.route_color=e.colorDict[i]}))})),t}(i),t("appendNewrLinks",i,{root:!0}),t("appendNewrNodes",await $.Z.readJson(e.bucket,e.callID.concat("/nodes.geojson")),{root:!0}),console.log("downloaded"),M.Z.push("/Home").catch((()=>{}))}},getters:{running:e=>e.running,status:e=>e.status,executionArn:e=>e.executionArn,error:e=>e.error,errorMessage:e=>e.errorMessage,callID:e=>e.callID,bucket:e=>e.bucket,timer:e=>e.timer,highway:e=>e.highway,tags:e=>e.tags}},O={namespaced:!1,state:{cognitoInfo:{},cognitoGroup:"",bucketList:[],accesToken:"",idToken:"",expData:0,loggedIn:!1,loadingState:!0,errorLoadingState:!1,scenariosList:[],model:null,scenario:null,protected:!1},mutations:{unloadProject(e){e.model=null,e.scenario=null},setLoggedIn(e){e.loggedIn=!0},setLoggedOut(e){e.loggedIn=!1,e.cognitoInfo={}},setCognitoInfo(e,t){e.cognitoInfo=t},setCognitoGroup(e,t){e.cognitoGroup=t},setBucketList(e,t){e.bucketList=t},setAccessToken(e,t){e.accesToken=t.jwtToken,e.expDate=t.payload.exp},setIdToken(e,t){e.idToken=t},setScenariosList(e,t){e.scenariosList=t},setModel(e,t){e.model=t},setScenario(e,t){e.scenario=t.scenario,e.protected=t.protected}},actions:{async getScenario({commit:e,state:t,dispatch:i},s){e("setScenariosList",await $.Z.getScenario(s.model))},isTokenExpired({state:e,commit:t}){Math.floor(Date.now()/1e3)>e.expDate&&t("changeAlert",{name:"sign out",message:"your session has expired. please refresh the page or sign in again"},{root:!0})}},getters:{loggedIn:e=>e.loggedIn,cognitoInfo:e=>e.cognitoInfo,cognitoGroup:e=>e.cognitoGroup,bucketList:e=>e.bucketList?e.bucketList:[],accesToken:e=>e.accesToken,idToken:e=>e.idToken,scenariosList:e=>e.scenariosList,model:e=>e.model,scenario:e=>e.scenario,protected:e=>e.protected}};var P=i(55733),T=i.n(P),z=i(93162),R=i.n(z),Z=i(75997),H=i(34221);s.default.use(o.ZP);const G=new o.ZP.Store({modules:{user:O,links:m,rlinks:y,od:b,results:S,run:N,runMRC:B,runOSM:D},state:{notification:{},alert:{},darkMode:!1,loading:!1,showLeftPanel:!0,windowHeight:0,anchorMode:!1,linksPopupContent:["trip_id"],roadsPopupContent:["highway"],cyclewayMode:!1,outputName:"output",mapCenter:[-73.570337,45.49831],mapZoom:11,availableLayers:["links","rlinks","od","nodes","rnodes"],visibleRasters:[],styles:[],otherFiles:[],attributesChoices:{}},mutations:{changeNotification(e,t){e.notification=t},changeAlert(e,t){e.alert=t},changeDarkMode(e,t){e.darkMode=t,e.rlinks.rlinksDefaultColor=e.darkMode?"2196F3":"7EBAAC",e.links.linksDefaultColor=e.darkMode?"2196F3":"B5E0D6"},changeLoading(e,t){e.loading=t},changeWindowHeight(e,t){e.windowHeight=t},changeLeftPanel(e){e.showLeftPanel=!e.showLeftPanel},saveMapPosition(e,t){e.mapCenter=t.mapCenter,e.mapZoom=t.mapZoom},setAnchorMode(e,t){e.anchorMode=t},changeAnchorMode(e){e.anchorMode=!e.anchorMode},changeCyclewayMode(e,t){e.cyclewayMode=!e.cyclewayMode},loadFiles(e,t){try{let i=[],s=[];const o=t.filter((e=>e.path.startsWith("inputs/pt/")&&e.path.endsWith(".geojson")));i=t.filter((e=>!o.includes(e)));const r=i.filter((e=>e.path.startsWith("inputs/road/")&&e.path.endsWith(".geojson")));i=i.filter((e=>!r.includes(e)));const n=i.filter((e=>e.path.startsWith("inputs/od/")&&e.path.endsWith(".geojson")));i=i.filter((e=>!n.includes(e)));const a=i.filter((e=>"inputs/params.json"===e.path))[0];i=i.filter((e=>e!==a));const l=i.filter((e=>"styles.json"===e.path))[0];i=i.filter((e=>e!==l));const c=i.filter((e=>"attributesChoices.json"===e.path))[0];i=i.filter((e=>e!==c));const d=i.filter((e=>e.path.startsWith("inputs/")));if(i=i.filter((e=>!d.includes(e))),s=i.filter((e=>e.path.startsWith("outputs/"))),i=i.filter((e=>!s.includes(e))),o.length%2!=0){const e=new Error("Need the same number of links and nodes files.");throw e.name="ImportError",e}if(r.length%2!=0){const e=new Error("Need the same number of road_links and road_nodes files.");throw e.name="ImportError",e}if(this.commit("loadPTFiles",o),this.commit("loadRoadFiles",r),this.commit("od/loadODFiles",n),a&&this.commit("run/getLocalParameters",a.content),l){const t=(0,p.My)(l.content);e.styles=t}c&&this.commit("loadAttributesChoices",c.content),this.commit("loadOtherFiles",d);const u=s.filter((e=>e.path.endsWith(".geojson")));s=s.filter((e=>!u.includes(e))),this.commit("loadLayers",u);const h=s.filter((t=>t.path.endsWith(".json")&&e.availableLayers.includes(t.path.slice(0,-5))));s=s.filter((e=>!h.includes(e))),this.commit("loadMatrix",h),this.commit("loadOtherFiles",s),this.commit("changeNotification",{text:"File(s) added",autoClose:!0,color:"success"})}catch(e){this.commit("changeAlert",e)}},loadOtherFiles(e,t){const i=t.map((e=>e.path));e.otherFiles=e.otherFiles.filter((e=>!i.includes(e.path))),t.forEach((t=>e.otherFiles.push(t)))},loadAttributesChoices(e,t){Object.keys(t.pt).forEach((i=>e.attributesChoices.pt[i]=t.pt[i])),Object.keys(t.road).forEach((i=>e.attributesChoices.road[i]=t.road[i]))},setVisibleRasters(e,t){e.visibleRasters=t},loadLayers(e,t){t.forEach((e=>{const t=e.path.slice(0,-8);e.content=(0,p.GM)(e.content,e.path,null,!1),this.commit("createLayer",{fileName:t,data:e.content})}))},loadMatrix(e,t){t.forEach((e=>{const t=e.path.slice(0,-5);this.commit(`${t}/addMatrix`,e.content)}))},createLayer(e,t){const i=t.fileName;Object.keys(this._modules.root._children).includes(i)||this.registerModule(i,L),this.commit(`${i}/createLayer`,t),e.availableLayers.includes(i)||e.availableLayers.push(i)},initNetworks(e){this.commit("loadLinks",Z.Z),this.commit("loadrLinks",Z.Z),this.commit("loadNodes",H.Z),this.commit("loadrNodes",H.Z),this.commit("od/loadLayer",Z.Z),e.visibleRasters=[],e.styles=[],e.attributesChoices={pt:{},road:{oneway:["0","1"]}},e.otherFiles=[],e.cyclewayMode=!1},unloadLayers(e){Object.keys(this._modules.root._children).filter((e=>!["links","rlinks","od","results","run","user","runMRC","runOSM"].includes(e))).forEach((e=>this.unregisterModule(e))),e.availableLayers=["links","rlinks","od","nodes","rnodes"]},applySettings(e,t){e.links.linkSpeed=Number(t.linkSpeed),e.rlinks.roadSpeed=Number(t.roadSpeed),e.linksPopupContent=t.linksPopupContent,e.roadsPopupContent=t.roadsPopupContent,e.rlinks.defaultHighway=t.defaultHighway,e.outputName=t.outputName},addStyle(e,t){const i=e.styles.map((e=>e.name)).indexOf(t.name);-1!==i?e.styles[i]=t:e.styles.push(t)},deleteStyle(e,t){e.styles=e.styles.filter((e=>e.name!==t))}},actions:{async exportFiles({state:e,commit:t},i="all"){const s=new(T());let o="",r="",n="",a="",l="";if(t("applyPropertiesTypes"),"all"!==i){const t=structuredClone(e.links.links);t.features=t.features.filter((t=>e.links.selectedTrips.includes(t.properties.trip_id))),o=JSON.stringify(t);const i=t.features.map((e=>e.properties.a)),s=t.features.map((e=>e.properties.b)),c=Array.from(new Set([...i,...s])),d=structuredClone(e.links.nodes);d.features=d.features.filter((e=>c.includes(e.properties.index))),r=JSON.stringify(d),n=JSON.stringify(e.rlinks.visiblerLinks),a=JSON.stringify(e.rlinks.visiblerNodes),l=JSON.stringify(this.getters["od/visibleLayer"])}else o=JSON.stringify(e.links.links),r=JSON.stringify(e.links.nodes),n=JSON.stringify(e.rlinks.rlinks),a=JSON.stringify(e.rlinks.rnodes),l=JSON.stringify(this.getters["od/layer"]);if(JSON.parse(o).features.length>0){let e=new Blob([o],{type:"application/json"});s.file("inputs/pt/links.geojson",e),e=new Blob([r],{type:"application/json"}),s.file("inputs/pt/nodes.geojson",e)}if(JSON.parse(n).features.length>0){let e=new Blob([n],{type:"application/json"});s.file("inputs/road/road_links.geojson",e),e=new Blob([a],{type:"application/json"}),s.file("inputs/road/road_nodes.geojson",e)}if(JSON.parse(l).features.length>0){const e=new Blob([l],{type:"application/json"});s.file("inputs/od/od.geojson",e)}if("all"===i){if(!this.getters["run/parametersIsEmpty"]){const e=new Blob([JSON.stringify(this.getters["run/parameters"])],{type:"application/json"});s.file("inputs/params.json",e)}if(e.styles.length>0){const t=new Blob([JSON.stringify(e.styles)],{type:"application/json"});s.file("styles.json",t)}if('{"pt":{},"road":{"oneway":["0","1"]}}'!==JSON.stringify(e.attributesChoices)){const t=new Blob([JSON.stringify(e.attributesChoices)],{type:"application/json"});s.file("attributesChoices.json",t)}const t=Object.keys(this._modules.root._children).filter((e=>!["links","rlinks","od","results","run","user","runMRC","runOSM"].includes(e)));for(const e of t){const t=new Blob([JSON.stringify(this.getters[`${e}/layer`])],{type:"application/json"}),i=e+".geojson";if(s.file(i,t),this.getters[`${e}/mat`]){const t=new Blob([JSON.stringify(this.getters[`${e}/mat`])],{type:"application/json"}),i=e+".json";s.file(i,t)}}for(const t of e.otherFiles)if(null==t.content&&null!==e.user.model&&(t.content=await $.Z.readBytes(e.user.model,e.user.scenario+"/"+t.path)),t.content instanceof Uint8Array){const e=new Blob([t.content]);s.file(t.path,e)}else{const e=new Blob([JSON.stringify(t.content)],{type:"application/json"});s.file(t.path,e)}}s.generateAsync({type:"blob"}).then((function(t){R()(t,e.outputName+".zip")}))},async exportToS3({state:e,commit:t,dispatch:i},s){i("isTokenExpired"),this.commit("applyPropertiesTypes");const o=e.user.scenario+"/",r=e.user.model,n=o+"inputs/",a=n+"pt/",l=n+"road/",c=n+"od/",d={links:a+"links.geojson",nodes:a+"nodes.geojson",rlinks:l+"road_links.geojson",rnodes:l+"road_nodes.geojson",od:c+"od.geojson",params:o+"inputs/params.json",styles:o+"styles.json",attributesChoices:o+"attributesChoices.json"};if(e.run.parameters.length>0&&await $.Z.putObject(r,d.params,JSON.stringify(e.run.parameters)),e.styles.length>0&&await $.Z.putObject(r,d.styles,JSON.stringify(e.styles)),'{"pt":{},"road":{"oneway":["0","1"]}}'!==JSON.stringify(e.attributesChoices)&&await $.Z.putObject(r,d.attributesChoices,JSON.stringify(e.attributesChoices)),e.links.links.features.length>0?(await $.Z.putObject(r,d.links,JSON.stringify(e.links.links)),await $.Z.putObject(r,d.nodes,JSON.stringify(e.links.nodes))):$.Z.deleteFolder(r,a),e.rlinks.rlinks.features.length>0?(await $.Z.putObject(r,d.rlinks,JSON.stringify(e.rlinks.rlinks)),await $.Z.putObject(r,d.rnodes,JSON.stringify(e.rlinks.rnodes))):$.Z.deleteFolder(r,l),this.getters["od/layerIsEmpty"]?$.Z.deleteFolder(r,c):await $.Z.putObject(r,d.od,JSON.stringify(this.getters["od/layer"])),"inputs"!==s){const e=Object.keys(this._modules.root._children).filter((e=>!["links","rlinks","od","results","run","user","runMRC","runOSM"].includes(e)));for(const t of e){const e=t+".geojson";if(await $.Z.putObject(r,o+e,JSON.stringify(this.getters[`${t}/layer`])),this.getters[`${t}/mat`]){const e=t+".json";await $.Z.putObject(r,o+e,JSON.stringify(this.getters[`${t}/mat`]))}}}let p=e.otherFiles;"inputs"===s&&(p=p.filter((e=>!e.path.startsWith("outputs/"))));for(const e of p)null==e.content||(e.content instanceof Uint8Array?await $.Z.putObject(r,o+e.path,e.content):await $.Z.putObject(r,o+e.path,JSON.stringify(e.content)))},async deleteOutputsOnS3({state:e}){await $.Z.deleteFolder(e.user.model,e.user.scenario+"/outputs/")}},getters:{notification:e=>e.notification,alert:e=>e.alert,loading:e=>e.loading,mapCenter:e=>e.mapCenter,mapZoom:e=>e.mapZoom,windowHeight:e=>e.windowHeight,anchorMode:e=>e.anchorMode,showLeftPanel:e=>e.showLeftPanel,linksPopupContent:e=>e.linksPopupContent,roadsPopupContent:e=>e.roadsPopupContent,cyclewayMode:e=>e.cyclewayMode,outputName:e=>e.outputName,visibleRasters:e=>e.visibleRasters,styles:e=>e.styles,attributesChoices:e=>e.attributesChoices,otherFiles:e=>e.otherFiles,projectIsUndefined:e=>0===Object.keys(e.links.links).length,projectIsEmpty:e=>0===e.links.links.features.length&&0===e.rlinks.rlinks.features.length&&0===e.od.layer.features.length,availableLayers:e=>{let t=structuredClone(e.availableLayers);return 0===e.links.links.features.length&&(t=t.filter((e=>!["links","nodes"].includes(e)))),0===e.rlinks.rlinks.features.length&&(t=t.filter((e=>!["rlinks","rnodes"].includes(e)))),0===e.od.layer.features.length&&(t=t.filter((e=>!["od"].includes(e)))),t},mapStyle:e=>e.darkMode?"mapbox://styles/mapbox/dark-v11?optimize=true":"mapbox://styles/mapbox/light-v11?optimize=true"}})},65189:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWNgYGCQwoKxgqGgcJA5h3yFAAs8BRWVSwooAAAAAElFTkSuQmCC"},32179:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill-rule=%27evenodd%27 fill=%27%23fff%27%3E%3Cpath d=%27M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0%27/%3E%3C/svg%3E"},84026:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill-rule=%27evenodd%27%3E%3Cpath d=%27M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0%27/%3E%3C/svg%3E"},28469:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},45422:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},89387:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%2333b5e5%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27 display=%27none%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},81184:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%2333b5e5%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},60469:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23666%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 fill=%27%23f00%27/%3E%3C/svg%3E"},6437:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23999%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 fill=%27%23f00%27/%3E%3C/svg%3E"},52607:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23aaa%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 fill=%27%23f00%27/%3E%3C/svg%3E"},56621:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23e54e33%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27 display=%27none%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},55968:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23e58978%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},74414:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle id=%27dot%27 cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath id=%27stroke%27 d=%27M14 5l1 1-9 9-1-1 9-9z%27 display=%27none%27/%3E%3C/svg%3E"},45866:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E"},75363:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10.5 14l4-8 4 8h-8z%27/%3E%3Cpath id=%27south%27 d=%27M10.5 16l4 8 4-8h-8z%27 fill=%27%23ccc%27/%3E%3C/svg%3E"},95579:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E"},17378:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z%27/%3E%3C/svg%3E"},94933:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23000%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E"},97673:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E"},60661:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10.5 14l4-8 4 8h-8z%27/%3E%3Cpath id=%27south%27 d=%27M10.5 16l4 8 4-8h-8z%27 fill=%27%23ccc%27/%3E%3C/svg%3E"},51570:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E"},2931:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E"},76807:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E"},31652:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M10.5 14l4-8 4 8h-8z%27/%3E%3Cpath id=%27south%27 d=%27M10.5 16l4 8 4-8h-8z%27 fill=%27%23999%27/%3E%3C/svg%3E"},80028:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E"},60551:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z%27/%3E%3C/svg%3E"},10323:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E"},40752:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 29 29%27%3E%3Cpath d=%27M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z%27/%3E%3C/svg%3E"},26081:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27 viewBox=%270 0 88 23%27%3E%3Cdefs%3E%3Cpath id=%27logo%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27text%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27clip%27%3E%3Crect x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27 fill=%27white%27/%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/mask%3E%3Cg id=%27outline%27 opacity=%270.3%27 stroke=%27%23000%27 stroke-width=%273%27%3E%3Ccircle mask=%27url%28%23clip%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23text%27 mask=%27url%28%23clip%29%27/%3E%3C/g%3E%3Cg id=%27fill%27 opacity=%270.9%27 fill=%27%23fff%27%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/g%3E%3C/svg%3E"},4354:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27 viewBox=%270 0 88 23%27%3E%3Cdefs%3E%3Cpath id=%27logo%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27text%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27clip%27%3E%3Crect x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27 fill=%27white%27/%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/mask%3E%3Cg id=%27outline%27 opacity=%271%27 stroke=%27%23000%27 stroke-width=%273%27%3E%3Ccircle mask=%27url%28%23clip%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23text%27 mask=%27url%28%23clip%29%27/%3E%3C/g%3E%3Cg id=%27fill%27 opacity=%271%27 fill=%27%23fff%27%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/g%3E%3C/svg%3E"},45650:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27 viewBox=%270 0 88 23%27%3E%3Cdefs%3E%3Cpath id=%27logo%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27text%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27clip%27%3E%3Crect x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27 fill=%27white%27/%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/mask%3E%3Cg id=%27outline%27 opacity=%271%27 stroke=%27%23fff%27 stroke-width=%273%27 fill=%27%23fff%27%3E%3Ccircle mask=%27url%28%23clip%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23text%27 mask=%27url%28%23clip%29%27/%3E%3C/g%3E%3Cg id=%27fill%27 opacity=%271%27 fill=%27%23000%27%3E%3Cuse xlink:href=%27%23logo%27/%3E%3Cuse xlink:href=%27%23text%27/%3E%3C/g%3E%3C/svg%3E"},22317:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAhCAYAAADOHBvaAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGzSURBVHgBvZcxUsJAFIbfe2gfb4A38AhQOJbijNZwA7TXIYW9R8BeHWjFQm7AEfQIaSw0ZNdNJoyE5CXvJcSv2tl98OfN7LebINTg9vV5QARTsBAYCzf3Z5dzUEJQA0J4cKGeG3bdeOq/zzxQog6+W7yM4sCtKS/6Xo9AiToYwU5yf0J4DkpUwf7bUw+y3SZYgF661k6wtTTk13ACClBa6DZQ14TRR1kNHXaO/P5FAALEHdvQVHZkftbXIEQeDLZXWYQ4lqolCi5QiEOslii4SCG2lmAoqasM5hQqiT6RqFUZbIHGoESiVqlOEoU4nFrHTq1Pdr3sxxKFONwDl6rFdhx3a8No5Y5D9c2TEqRdFx4obMdRaHoNQmO8sgOFDdYoxII4VAUrDowqupxaVDxpRYeABE6t3OZqohAHoe37p1fLzNxuUROFOIzFwe5cpuM2uk3JqZXpOFYI2iGnViZ4LwpxuLu6MHiPCnF422rR32B/CnFsq5VsLn8xOzEQreAf2KiVdGzBqO/cumxekbFFhTgStahFhTiSF0LqYKOrrxYdooDggB4RUf19Wxe3m5fwRfNfmmG2eRYZIh0AAAAASUVORK5CYII="},76215:(e,t,i)=>{"use strict";e.exports=i.p+"22e0b7e7900ef83b711e.png"},28022:()=>{},75042:()=>{},4147:e=>{"use strict";e.exports={i8:"4.10.3"}}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}a.m=r,a.amdD=function(){throw new Error("define cannot be used indirect")},a.amdO={},e=[],a.O=(t,i,s,o)=>{if(!i){var r=1/0;for(d=0;d=o)&&Object.keys(a.O).every((e=>a.O[e](i[l])))?i.splice(l--,1):(n=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[i,s,o]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},i=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(e,s){if(1&s&&(e=this(e)),8&s)return e;if("object"==typeof e&&e){if(4&s&&e.__esModule)return e;if(16&s&&"function"==typeof e.then)return e}var o=Object.create(null);a.r(o);var r={};t=t||[null,i({}),i([]),i(i)];for(var n=2&s&&e;"object"==typeof n&&!~t.indexOf(n);n=i(n))Object.getOwnPropertyNames(n).forEach((t=>r[t]=()=>e[t]));return r.default=()=>e,a.d(o,r),o},a.d=(e,t)=>{for(var i in t)a.o(t,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,i)=>(a.f[i](e,t),t)),[])),a.u=e=>e+".build.js",a.miniCssF=e=>{},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},o="quetzal-network-editor:",a.l=(e,t,i,r)=>{if(s[e])s[e].push(t);else{var n,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),d=0;d{n.onerror=n.onload=null,clearTimeout(h);var o=s[e];if(delete s[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach((e=>e(i))),t)return t(i)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),l&&document.head.appendChild(n)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="/quetzal-network-editor/",(()=>{a.b=document.baseURI||self.location.href;var e={179:0};a.f.j=(t,i)=>{var s=a.o(e,t)?e[t]:void 0;if(0!==s)if(s)i.push(s[2]);else{var o=new Promise(((i,o)=>s=e[t]=[i,o]));i.push(s[2]=o);var r=a.p+a.u(t),n=new Error;a.l(r,(i=>{if(a.o(e,t)&&(0!==(s=e[t])&&(e[t]=void 0),s)){var o=i&&("load"===i.type?"missing":i.type),r=i&&i.target&&i.target.src;n.message="Loading chunk "+t+" failed.\n("+o+": "+r+")",n.name="ChunkLoadError",n.type=o,n.request=r,s[1](n)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,i)=>{var s,o,[r,n,l]=i,c=0;if(r.some((t=>0!==e[t]))){for(s in n)a.o(n,s)&&(a.m[s]=n[s]);if(l)var d=l(a)}for(t&&t(i);ca(20655)));l=a.O(l)})(); //# sourceMappingURL=build.js.map \ No newline at end of file diff --git a/dist/build.js.map b/dist/build.js.map index 8234f17e..476590db 100644 --- a/dist/build.js.map +++ b/dist/build.js.map @@ -1 +1 @@ -{"version":3,"file":"build.js","mappings":"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","sources":["webpack://quetzal-network-editor/webpack/runtime/chunk loaded","webpack://quetzal-network-editor/webpack/runtime/create fake namespace object","webpack://quetzal-network-editor/webpack/runtime/load script","webpack://quetzal-network-editor/./src/scss/app.scss","webpack://quetzal-network-editor/./src/App.vue?c7f3","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue?9bc5","webpack://quetzal-network-editor/./src/components/import/FilesList.vue?dac3","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue?0d85","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue?95c9","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue?5f7d","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue?1f47","webpack://quetzal-network-editor/./src/components/map/Map.vue?1cf2","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue?480f","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue?0ba7","webpack://quetzal-network-editor/./src/components/map/Settings.vue?d98f","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue?bcdb","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue?a262","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue?d557","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue?baa8","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue?a1e3","webpack://quetzal-network-editor/./src/pages/Home.vue?0769","webpack://quetzal-network-editor/./src/pages/Import.vue?aa66","webpack://quetzal-network-editor/./static/links_base.geojson","webpack://quetzal-network-editor/./static/nodes_base.geojson","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue?41f1","webpack://quetzal-network-editor/src/components/utils/MapLegend.vue","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue?631d","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue?afd3","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue","webpack://quetzal-network-editor/./src/AWSClient.js","webpack://quetzal-network-editor/./src/auth.js","webpack://quetzal-network-editor/./src/axiosClient.js","webpack://quetzal-network-editor/./src/components/utils/serializer.js","webpack://quetzal-network-editor/./src/components/utils/utils.js","webpack://quetzal-network-editor/./src/constants/highway.js","webpack://quetzal-network-editor/./src/scss/app.scss?d10e","webpack://quetzal-network-editor/./src/App.vue?848c","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue?9b26","webpack://quetzal-network-editor/./src/components/utils/Profile.vue?7f8e","webpack://quetzal-network-editor/src/components/utils/Profile.vue","webpack://quetzal-network-editor/./src/components/utils/Profile.vue?8f3a","webpack://quetzal-network-editor/./src/components/utils/Profile.vue","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue?b5e7","webpack://quetzal-network-editor/src/components/layout/ScenariosExplorer.vue","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue?9699","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue?6a7a","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue?41be","webpack://quetzal-network-editor/src/components/layout/Toolbar.vue","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue?5cfd","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue?1581","webpack://quetzal-network-editor/src/components/layout/NavigationDrawer.vue","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue?1673","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue?0a14","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue","webpack://quetzal-network-editor/./src/components/utils/Alert.vue?de2b","webpack://quetzal-network-editor/src/components/utils/Alert.vue","webpack://quetzal-network-editor/./src/components/utils/Alert.vue?6bcc","webpack://quetzal-network-editor/./src/components/utils/Alert.vue","webpack://quetzal-network-editor/src/App.vue","webpack://quetzal-network-editor/./src/App.vue?32cf","webpack://quetzal-network-editor/./src/App.vue?4058","webpack://quetzal-network-editor/./src/App.vue","webpack://quetzal-network-editor/./src/main.js","webpack://quetzal-network-editor/./src/pages/Import.vue?a3d3","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue?6810","webpack://quetzal-network-editor/src/components/import/FileLoader.vue","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue?103a","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue?08e5","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue","webpack://quetzal-network-editor/./src/components/import/FilesList.vue?4a8a","webpack://quetzal-network-editor/src/components/import/FilesList.vue","webpack://quetzal-network-editor/./src/components/import/FilesList.vue?2aa5","webpack://quetzal-network-editor/./src/components/import/FilesList.vue?43e3","webpack://quetzal-network-editor/./src/components/import/FilesList.vue","webpack://quetzal-network-editor/./src/components/import/InfoZip.vue?e91c","webpack://quetzal-network-editor/src/components/import/InfoZip.vue","webpack://quetzal-network-editor/./src/components/import/InfoZip.vue?9d99","webpack://quetzal-network-editor/./src/pages/Import.vue?c377","webpack://quetzal-network-editor/src/pages/Import.vue","webpack://quetzal-network-editor/./src/components/import/InfoZip.vue","webpack://quetzal-network-editor/./src/pages/Import.vue?27c4","webpack://quetzal-network-editor/./src/pages/Import.vue","webpack://quetzal-network-editor/./src/pages/Home.vue?9475","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue?b07b","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue?f0f9","webpack://quetzal-network-editor/src/components/map/LinksSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue?9d7d","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue?9c78","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue?37ac","webpack://quetzal-network-editor/src/components/map/RoadSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue?8c74","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue?accf","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue?d4d6","webpack://quetzal-network-editor/src/components/map/ODSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue?c034","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue?b6a3","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue?f7aa","webpack://quetzal-network-editor/src/components/map/SidePanel.vue","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue?acea","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue","webpack://quetzal-network-editor/./src/components/map/Map.vue?764a","webpack://quetzal-network-editor/./src/components/map/Settings.vue?925b","webpack://quetzal-network-editor/src/components/map/Settings.vue","webpack://quetzal-network-editor/./src/components/map/Settings.vue?8d45","webpack://quetzal-network-editor/./src/components/map/Settings.vue?4856","webpack://quetzal-network-editor/./src/components/map/Settings.vue","webpack://quetzal-network-editor/./src/components/map/StaticLinks.vue?9d3a","webpack://quetzal-network-editor/src/components/map/StaticLinks.vue","webpack://quetzal-network-editor/./src/components/map/StaticLinks.vue?c179","webpack://quetzal-network-editor/./src/components/map/StaticLinks.vue","webpack://quetzal-network-editor/./src/components/map/EditorLinks.vue?1bdd","webpack://quetzal-network-editor/src/components/map/EditorLinks.vue","webpack://quetzal-network-editor/./src/components/map/EditorLinks.vue?1669","webpack://quetzal-network-editor/./src/components/map/EditorLinks.vue","webpack://quetzal-network-editor/./src/components/map/RoadLinks.vue?ef41","webpack://quetzal-network-editor/src/components/map/RoadLinks.vue","webpack://quetzal-network-editor/./src/components/map/RoadLinks.vue?e27e","webpack://quetzal-network-editor/./src/components/map/RoadLinks.vue","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue?7eae","webpack://quetzal-network-editor/src/components/utils/StaticLayer.vue","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue?2a6b","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue?d041","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue?b696","webpack://quetzal-network-editor/src/components/utils/LayerSelector.vue","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue?2c38","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue?643c","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue","webpack://quetzal-network-editor/./src/components/map/ODMap.vue?91f0","webpack://quetzal-network-editor/src/components/map/ODMap.vue","webpack://quetzal-network-editor/./src/components/map/ODMap.vue?682d","webpack://quetzal-network-editor/./src/components/map/ODMap.vue","webpack://quetzal-network-editor/./src/components/map/Map.vue?91d5","webpack://quetzal-network-editor/src/components/map/Map.vue","webpack://quetzal-network-editor/./src/components/map/Map.vue?70d8","webpack://quetzal-network-editor/./src/components/map/Map.vue","webpack://quetzal-network-editor/./src/components/utils/ColorPicker.vue?120e","webpack://quetzal-network-editor/src/components/utils/ColorPicker.vue","webpack://quetzal-network-editor/./src/components/utils/ColorPicker.vue?6c63","webpack://quetzal-network-editor/./src/components/utils/ColorPicker.vue","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue?7b22","webpack://quetzal-network-editor/src/components/utils/MenuSelector.vue","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue?27a1","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue?dae4","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue","webpack://quetzal-network-editor/./src/constants/hints.js","webpack://quetzal-network-editor/./src/pages/Home.vue?e983","webpack://quetzal-network-editor/src/pages/Home.vue","webpack://quetzal-network-editor/./src/pages/Home.vue?9fb1","webpack://quetzal-network-editor/./src/pages/Home.vue","webpack://quetzal-network-editor/./src/router/index.js","webpack://quetzal-network-editor/./src/store/links.js","webpack://quetzal-network-editor/./src/store/rlinks.js","webpack://quetzal-network-editor/./src/store/od.js","webpack://quetzal-network-editor/./src/store/results.js","webpack://quetzal-network-editor/./src/store/layer.js","webpack://quetzal-network-editor/./src/store/api/run.js","webpack://quetzal-network-editor/./src/store/api/MatrixRoadCaster.js","webpack://quetzal-network-editor/./src/store/api/OSMImporter.js","webpack://quetzal-network-editor/./src/store/user.js","webpack://quetzal-network-editor/./src/store/index.js","webpack://quetzal-network-editor/webpack/bootstrap","webpack://quetzal-network-editor/webpack/runtime/amd define","webpack://quetzal-network-editor/webpack/runtime/amd options","webpack://quetzal-network-editor/webpack/runtime/compat get default export","webpack://quetzal-network-editor/webpack/runtime/define property getters","webpack://quetzal-network-editor/webpack/runtime/ensure chunk","webpack://quetzal-network-editor/webpack/runtime/get javascript chunk filename","webpack://quetzal-network-editor/webpack/runtime/get mini-css chunk filename","webpack://quetzal-network-editor/webpack/runtime/global","webpack://quetzal-network-editor/webpack/runtime/hasOwnProperty shorthand","webpack://quetzal-network-editor/webpack/runtime/make namespace object","webpack://quetzal-network-editor/webpack/runtime/node module decorator","webpack://quetzal-network-editor/webpack/runtime/publicPath","webpack://quetzal-network-editor/webpack/runtime/jsonp chunk loading","webpack://quetzal-network-editor/webpack/runtime/nonce","webpack://quetzal-network-editor/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"quetzal-network-editor:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `body{font-family:\"Roboto\",sans-serif;height:100vh}body::-webkit-scrollbar{display:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background-clip:padding-box;background-color:#9e9e9e;border-radius:8px}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:#2c3e4e;border-radius:8px}.v-application--wrap{flex-direction:row}.theme--light.v-application{color:#2c3e4e}.theme--light.v-icon{color:inherit !important}.theme--dark.v-label{color:#fff}.v-toolbar__content{display:flex;align-items:center;justify-content:space-between;height:100% !important;width:100%}.v-input__icon>i{font-size:14px !important;margin-right:10px}.v-navigation-drawer--fixed{z-index:200}.v-btn.primary>span{color:#2c3e4e !important}.v-snack__wrapper{margin:20px}.v-snack__content{color:#2c3e4e !important}.snackbar-error>.v-snack__wrapper{border-bottom:5px solid #e42626 !important}.snackbar-warning>.v-snack__wrapper{border-bottom:5px solid #ff7b30 !important}.snackbar-positive>.v-snack__wrapper{border-bottom:5px solid #4caf50 !important}.v-card__subtitle,.v-card__text,.v-card__title{padding:0}.v-card__title{line-height:normal}.mapboxgl-ctrl-bottom-right{right:10px;bottom:10px}.mapboxgl-popup-content{padding:10px;color:#fff;background-color:#2c3e4e}.mapboxgl-popup-tip{border-bottom-color:#2c3e4e !important;border-top-color:#2c3e4e !important}.mapboxgl-popup-close-button{right:20px;top:20px;font-size:1.5em}.mapboxgl-ctrl-attrib-inner>a{color:#2c3e4e !important}.view{padding:20px;height:calc(100% - 50px);width:100%;display:flex}.card{background-color:#fff;border-radius:5px;box-shadow:0px 5px 10px rgba(0,0,0,.05);padding:20px}.card-hover:hover{box-shadow:0px 5px 10px rgba(0,0,0,.1)}.list-enter-active,.list-leave-active{transition:all 1s}.list-enter,.list-leave-to{opacity:0;transform:translateX(300px)}.fade-leave-active{display:none !important}.fade-enter-active,.fade-leave-active{transition:opacity .5s}.fade-enter,.fade-leave-to{opacity:0 !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/scss/generic.scss\",\"webpack://./src/scss/variables.scss\",\"webpack://./src/scss/vuetify.scss\",\"webpack://./src/scss/mapboxgl.scss\",\"webpack://./src/scss/util.scss\",\"webpack://./src/scss/animations.scss\"],\"names\":[],\"mappings\":\"AAAA,KACE,+BAAA,CACA,YAAA,CAEF,wBACE,YAAA,CAEF,oBACE,SAAA,CAEF,0BACE,2BAAA,CACA,wBCJkB,CDKlB,iBAAA,CAEF,0BACE,2BAAA,CACA,wBCfkB,CDgBlB,iBAAA,CElBF,qBACE,kBAAA,CAEF,4BACE,aDFkB,CCIpB,qBACE,wBAAA,CAEF,qBACE,UAAA,CAEF,oBACE,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,sBAAA,CACA,UAAA,CAEF,iBACE,yBAAA,CACA,iBAAA,CAEF,4BACE,WAAA,CAEF,oBACE,wBAAA,CAEF,kBACE,WAAA,CAEF,kBACE,wBAAA,CAEF,kCACE,0CAAA,CAEF,oCACE,0CAAA,CAEF,qCACE,0CAAA,CAEF,+CACE,SAAA,CAEF,eACE,kBAAA,CChDF,4BACE,UAAA,CACA,WAAA,CAEF,wBACE,YAAA,CACA,UAAA,CACA,wBFLkB,CEOpB,oBACE,sCAAA,CACA,mCAAA,CAEF,6BACE,UAAA,CACA,QAAA,CACA,eAAA,CAEF,8BACE,wBAAA,CCnBF,MACE,YAAA,CACA,wBAAA,CACA,UAAA,CACA,YAAA,CAEF,MACE,qBAAA,CACA,iBAAA,CACA,uCAAA,CACA,YAAA,CAEF,kBACE,sCAAA,CCbF,sCACE,iBAAA,CAEF,2BACE,SAAA,CACA,2BAAA,CAEF,mBACE,uBAAA,CAEF,sCACE,sBAAA,CAEF,2BACE,oBAAA\",\"sourcesContent\":[\"body {\\n font-family: 'Roboto', sans-serif;\\n height: 100vh;\\n}\\nbody::-webkit-scrollbar {\\n display: none;\\n}\\n::-webkit-scrollbar {\\n width: 8px;\\n}\\n::-webkit-scrollbar-track {\\n background-clip: padding-box;\\n background-color: $grey-medium;\\n border-radius: 8px;\\n}\\n::-webkit-scrollbar-thumb {\\n background-clip: padding-box;\\n background-color: $secondary;\\n border-radius: 8px;\\n}\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\",\".v-application--wrap {\\n flex-direction: row;\\n}\\n.theme--light.v-application {\\n color: $secondary;\\n}\\n.theme--light.v-icon {\\n color: inherit !important;\\n}\\n.theme--dark.v-label {\\n color: white;\\n}\\n.v-toolbar__content {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n height: 100% !important;\\n width: 100%;\\n}\\n.v-input__icon > i {\\n font-size: 14px !important;\\n margin-right: 10px;\\n}\\n.v-navigation-drawer--fixed {\\n z-index: 200;\\n}\\n.v-btn.primary > span {\\n color: $secondary !important;\\n}\\n.v-snack__wrapper {\\n margin: 20px;\\n}\\n.v-snack__content {\\n color: $secondary !important;\\n}\\n.snackbar-error > .v-snack__wrapper {\\n border-bottom: 5px solid $negative !important;\\n}\\n.snackbar-warning > .v-snack__wrapper {\\n border-bottom: 5px solid $warning !important;\\n}\\n.snackbar-positive > .v-snack__wrapper {\\n border-bottom: 5px solid $positive !important;\\n}\\n.v-card__subtitle, .v-card__text, .v-card__title {\\n padding: 0;\\n}\\n.v-card__title {\\n line-height: normal;\\n}\\n\",\".mapboxgl-ctrl-bottom-right {\\n right: 10px;\\n bottom: 10px;\\n}\\n.mapboxgl-popup-content {\\n padding: 10px;\\n color: white;\\n background-color: $secondary;\\n}\\n.mapboxgl-popup-tip {\\n border-bottom-color: $secondary !important;\\n border-top-color: $secondary !important;\\n}\\n.mapboxgl-popup-close-button {\\n right: 20px;\\n top: 20px;\\n font-size: 1.5em;\\n}\\n.mapboxgl-ctrl-attrib-inner > a {\\n color: $secondary !important;\\n}\\n\",\".view {\\n padding: 20px;\\n height: calc(100% - 50px);\\n width: 100%;\\n display: flex;\\n}\\n.card {\\n background-color: white;\\n border-radius: 5px;\\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.05);\\n padding: 20px;\\n}\\n.card-hover:hover {\\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.10);\\n}\\n\",\".list-enter-active, .list-leave-active {\\n transition: all 1s;\\n}\\n.list-enter, .list-leave-to {\\n opacity: 0;\\n transform: translateX(300px);\\n}\\n.fade-leave-active {\\n display: none !important;\\n}\\n.fade-enter-active, .fade-leave-active {\\n transition: opacity 0.5s;\\n}\\n.fade-enter, .fade-leave-to {\\n opacity: 0 !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app[data-v-610ce914]{background-color:#f5f5f5 !important;width:100%;height:100%;overflow:hidden}.snackbar-text[data-v-610ce914]{color:var(--v-secondarydark-base)}.container[data-v-610ce914]{height:100%;margin-left:50px;width:calc(100% - 50px);max-width:calc(100% - 50px);padding:0}.container.login[data-v-610ce914]{margin-left:0;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/App.vue\"],\"names\":[],\"mappings\":\"AAEA,sBACE,mCAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CAEF,gCACE,iCAAA,CAEF,4BACE,WAAA,CACA,gBAAA,CACA,uBAAA,CACA,2BAAA,CACA,SAAA,CAEF,kCACE,aAAA,CACA,UAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.app {\\n background-color: $grey-ultralight !important;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n}\\n.snackbar-text{\\n color:var(--v-secondarydark-base);\\n}\\n.container {\\n height: 100%;\\n margin-left: 50px;\\n width: calc(100% - 50px);\\n max-width: calc(100% - 50px);\\n padding: 0;\\n}\\n.container.login {\\n margin-left: 0;\\n width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.row[data-v-d3a53384]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding-bottom:30px;padding-top:18px}.container[data-v-d3a53384]{display:flex;flex-direction:row;justify-content:space-evenly;align-items:center;padding-left:2em;padding-right:2em}.type-icon[data-v-d3a53384]{padding-right:.2em}.element[data-v-d3a53384]{margin-left:auto}.check-icon[data-v-d3a53384]{padding-left:1em}.subtitle[data-v-d3a53384]{flex:2;font-size:1.5em;font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/import/FileLoader.vue\"],\"names\":[],\"mappings\":\"AAGA,sBACE,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,mBAAA,CACA,gBAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,4BAAA,CACA,kBAAA,CACA,gBAAA,CACA,iBAAA,CAGF,4BACE,kBAAA,CAEF,0BACE,gBAAA,CAEF,6BACE,gBAAA,CAEF,2BACE,MAAA,CACA,eAAA,CACA,gBAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n\\n.row{\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n padding-bottom: 30px;\\n padding-top:18px;\\n\\n}\\n.container{\\n display: flex;\\n flex-direction: row;\\n justify-content: space-evenly;\\n align-items: center;\\n padding-left: 2em;\\n padding-right: 2em;\\n\\n}\\n.type-icon{\\n padding-right: 0.2em;\\n}\\n.element{\\n margin-left: auto;\\n}\\n.check-icon{\\n padding-left: 1em;\\n}\\n.subtitle {\\n flex:2;\\n font-size: 1.5em;\\n font-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-container[data-v-e186d29a]{height:17rem;border-radius:5px;background:var(--v-background-lighten4);display:flex;margin:10px 0px 0px 0px;flex-direction:column}.title-box[data-v-e186d29a]{display:flex;flex-direction:row;background:var(--v-background-lighten3);border-radius:5px 5px 0px 0px;padding:.5rem .5rem .5rem 1rem}.title[data-v-e186d29a]{font-size:2em !important;font-weight:bold}.upload-button[data-v-e186d29a]{margin-left:auto;margin-right:.75rem}.list-button[data-v-e186d29a]{margin-left:auto;margin-right:1rem}.list-icon[data-v-e186d29a]{margin-left:.5rem}.list[data-v-e186d29a]{font-size:1em;font-weight:bold;overflow-y:auto;padding-left:1rem;padding-top:.5rem}.list li[data-v-e186d29a]{display:flex;align-items:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/import/FilesList.vue\"],\"names\":[],\"mappings\":\"AAEA,kCACE,YAAA,CACA,iBAAA,CACA,uCAAA,CACA,YAAA,CACA,uBAAA,CACA,qBAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,uCAAA,CAEA,6BAAA,CACA,8BAAA,CAGF,wBACE,wBAAA,CACA,gBAAA,CAEF,gCACE,gBAAA,CACA,mBAAA,CAEF,8BACE,gBAAA,CACA,iBAAA,CAEF,4BACE,iBAAA,CAEF,uBACE,aAAA,CACA,gBAAA,CAEA,eAAA,CACA,iBAAA,CACA,iBAAA,CAEF,0BAEE,YAAA,CACA,kBAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.files-container{\\n height: 17rem;\\n border-radius: 5px;\\n background:var(--v-background-lighten4);\\n display: flex;\\n margin: 10px 0px 0px 00px;\\n flex-direction: column;\\n\\n}\\n.title-box {\\n display: flex;\\n flex-direction: row;\\n background:var(--v-background-lighten3);\\n\\n border-radius: 5px 5px 0px 0px;\\n padding: 0.5rem 0.5rem 0.5rem 1rem;\\n\\n}\\n.title{\\n font-size: 2em !important;\\n font-weight: bold;\\n}\\n.upload-button {\\n margin-left: auto;\\n margin-right:0.75rem\\n}\\n.list-button{\\n margin-left:auto;\\n margin-right:1rem\\n}\\n.list-icon{\\n margin-left:0.5rem\\n}\\n.list {\\n font-size: 1em;\\n font-weight: bold;\\n //border: 1px solid red;\\n overflow-y: auto;\\n padding-left: 1rem;\\n padding-top:0.5rem\\n}\\n.list li {\\n /* Add individual list item styles here */\\n display: flex; /* Use flexbox layout for each list item */\\n align-items: center; /* Align button vertically in the list item */\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.drawer[data-v-5b138161]{background-color:var(--v-secondary-base) !important}.drawer-header[data-v-5b138161]{width:100%;height:50px;border-bottom:1px solid #fff;background-color:var(--v-secondary-base);color:#fff;display:flex;align-items:center;padding-left:18px;cursor:pointer}.drawer-list[data-v-5b138161]{height:calc(100% - 50px);display:flex;flex-direction:column;padding:20px 0}.drawer-list-item[data-v-5b138161]{padding:0 13px !important;justify-content:flex-start !important;color:#fff;flex:0;transition:.3s}.version-number[data-v-5b138161]{justify-content:flex-start;color:#fff !important;margin-bottom:-1rem;flex:0}.drawer-list-item-icon[data-v-5b138161]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}.drawer-list-item-icon-disabled[data-v-5b138161]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;opacity:.4}.drawer-list-item-selected[data-v-5b138161]{background-color:var(--v-secondarydarkfix-base)}.drawer-list-item[data-v-5b138161]:hover{background-color:var(--v-secondary-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/layout/NavigationDrawer.vue\"],\"names\":[],\"mappings\":\"AAEA,yBACE,mDAAA,CAEF,gCACE,UAAA,CACA,WAAA,CACA,4BAAA,CACA,wCAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,cAAA,CAEF,8BACE,wBAAA,CACA,YAAA,CAEA,qBAAA,CACA,cAAA,CAEF,mCACE,yBAAA,CACA,qCAAA,CACA,UAAA,CACA,MAAA,CACA,cAAA,CAEF,iCACE,0BAAA,CACA,qBAAA,CACA,mBAAA,CACA,MAAA,CAEF,wCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,iDACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,4CACE,+CAAA,CAEF,yCACE,wCAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.drawer {\\n background-color: var(--v-secondary-base) !important;\\n}\\n.drawer-header {\\n width: 100%;\\n height: 50px;\\n border-bottom: 1px solid white;\\n background-color: var(--v-secondary-base);\\n color: white;\\n display: flex;\\n align-items: center;\\n padding-left: 18px;\\n cursor: pointer;\\n}\\n.drawer-list {\\n height: calc(100% - 50px);\\n display: flex;\\n\\n flex-direction: column;\\n padding: 20px 0;\\n}\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n color:white ;\\n flex: 0;\\n transition: 0.3s;\\n}\\n.version-number {\\n justify-content: flex-start ;\\n color:white !important;\\n margin-bottom:-1rem;\\n flex: 0;\\n}\\n.drawer-list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n.drawer-list-item-icon-disabled {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n opacity: 0.4;\\n}\\n.drawer-list-item-selected {\\n background-color: var(--v-secondarydarkfix-base);\\n}\\n.drawer-list-item:hover {\\n background-color: var(--v-secondary-base);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.title[data-v-dad7c1ea]{font-size:1.2em;padding-left:1.2rem;color:var(--v-secondarydark-base)}.is-active[data-v-dad7c1ea]{opacity:1;background-color:var(--v-primary-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/layout/ScenariosExplorer.vue\"],\"names\":[],\"mappings\":\"AAEA,wBACE,eAAA,CACA,mBAAA,CACA,iCAAA,CAEF,4BACE,SAAA,CACA,sCAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.title {\\n font-size: 1.2em;\\n padding-left: 1.2rem;\\n color:var(--v-secondarydark-base);\\n}\\n.is-active{\\n opacity:1;\\n background-color:var(--v-primary-base);\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-toolbar[data-v-4d444598]{z-index:100;height:50px !important;display:flex;color:#2c3e4e !important;position:relative}.login[data-v-4d444598]{padding-left:50px}.project-name[data-v-4d444598]{font-size:1.3em}.app-name[data-v-4d444598]{font-size:1.2em;padding-left:1.2rem;color:var(--v-secondarydark-base)}.copyright[data-v-4d444598]{font-size:.9rem;padding-left:5px;padding-top:1rem;color:var(--v-secondarydark-base)}.languages-container[data-v-4d444598]{display:flex}.switch[data-v-4d444598]{display:flex;padding-top:1rem;padding-left:1rem;align-items:center;justify-content:center;color:#e3e3e3;cursor:pointer}.language[data-v-4d444598]{width:50px;display:flex;align-items:center;justify-content:center;color:#e3e3e3;cursor:pointer;transition:.3s}.language.active[data-v-4d444598],.language[data-v-4d444598]:hover{color:var(--v-secondarydark-base)}.language[data-v-4d444598]:last-child{border-right:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/layout/Toolbar.vue\",\"webpack://./src/scss/variables.scss\"],\"names\":[],\"mappings\":\"AAEA,8BACE,WAAA,CACA,sBAAA,CACA,YAAA,CACA,wBAAA,CACA,iBAAA,CAEF,wBACE,iBAAA,CAEF,+BACE,eAAA,CAEF,2BACE,eAAA,CACA,mBAAA,CACA,iCAAA,CAEF,4BACE,eAAA,CACA,gBAAA,CACA,gBAAA,CACA,iCAAA,CAEF,sCACE,YAAA,CAEF,yBACE,YAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,aC5BkB,CD6BlB,cAAA,CAEF,2BACE,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,aCpCkB,CDqClB,cAAA,CACA,cAAA,CAEF,mEACE,iCAAA,CAEF,sCACE,cAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.app-toolbar {\\n z-index: 100;\\n height: 50px !important;\\n display: flex;\\n color: $secondary !important;\\n position: relative;\\n}\\n.login {\\n padding-left: 50px;\\n}\\n.project-name {\\n font-size: 1.3em;\\n}\\n.app-name {\\n font-size: 1.2em;\\n padding-left: 1.2rem;\\n color:var(--v-secondarydark-base);\\n}\\n.copyright {\\n font-size: 0.9rem;\\n padding-left: 5px;\\n padding-top: 1rem;\\n color:var(--v-secondarydark-base);\\n}\\n.languages-container {\\n display: flex;\\n}\\n.switch {\\n display: flex;\\n padding-top: 1rem;\\n padding-left:1rem;\\n align-items: center;\\n justify-content: center;\\n color: $grey-light;\\n cursor: pointer;\\n}\\n.language {\\n width: 50px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: $grey-light;\\n cursor: pointer;\\n transition: 0.3s;\\n}\\n.language.active, .language:hover {\\n color:var(--v-secondarydark-base);\\n}\\n.language:last-child {\\n border-right: 0;\\n}\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.left-panel[data-v-61e624f6]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-61e624f6]{transition:.3s}.left-panel-content[data-v-61e624f6]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-61e624f6]{padding:0}.left-panel-toggle-btn[data-v-61e624f6]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-61e624f6]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-61e624f6]{height:height;padding-left:20px}.scrollable[data-v-61e624f6]{overflow-y:scroll}.drawer-list-item[data-v-61e624f6]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-61e624f6]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}.custom-tooltip[data-v-61e624f6]{opacity:1 !important;background:var(--v-tooltip-bg, rgb(97, 97, 97)) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/LinksSidePanel.vue\",\"webpack://./src/scss/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,6BACE,WAAA,CACA,wBCJkB,CDKlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC/BkB,CDgClB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,iCACI,oBAAA,CACA,0DAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n@import \\\"src/scss/variables.scss\\\";\\n.left-panel {\\n height: 100%;\\n background-color: $primary-dark;\\n transition: 0.3s;\\n position: absolute;\\n display:flex;\\n z-index: 20;\\n\\n}\\n.left-panel-close {\\ntransition:0.3s\\n}\\n.left-panel-content {\\n display:inline-block;\\n width : 100%;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n //resize: horizontal;\\n overflow: auto;\\n\\n}\\n.v-list__tile {\\n padding: 0\\n}\\n.left-panel-toggle-btn {\\n left: 100%;\\n width: 25px;\\n z-index: 1;\\n background-color: $primary-dark;\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n height: 50px;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.left-panel-title {\\n height: 50px;\\n line-height: 55px;\\n padding-left: 20px;\\n font-size: 1.1em;\\n margin-bottom: 10px;\\n}\\n.trip-list {\\n height: height;\\n padding-left:20px\\n}\\n\\n.scrollable {\\n overflow-y:scroll;\\n\\n}\\n\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n flex: 0;\\n transition: 0.3s;\\n}\\n\\n.list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n.custom-tooltip {\\n opacity: 1!important;\\n background: var(--v-tooltip-bg, rgba(97, 97, 97, 1)) !important;\\n}\\n\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.map-view[data-v-66748ace]{width:100%}.my-custom-dialog[data-v-66748ace]{position:absolute !important;top:10px !important;right:20px !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/Map.vue\"],\"names\":[],\"mappings\":\"AAEA,2BACE,UAAA,CAGF,mCACE,4BAAA,CACA,mBAAA,CACA,qBAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.map-view {\\n width: 100%;\\n\\n}\\n.my-custom-dialog {\\n position: absolute !important;\\n top: 10px !important;\\n right: 20px !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.left-panel[data-v-56780b52]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-56780b52]{transition:.3s}.left-panel-content[data-v-56780b52]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-56780b52]{padding:0}.left-panel-toggle-btn[data-v-56780b52]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-56780b52]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-56780b52]{height:height;padding-left:20px}.scrollable[data-v-56780b52]{overflow-y:scroll}.drawer-list-item[data-v-56780b52]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-56780b52]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/ODSidePanel.vue\",\"webpack://./src/scss/variables.scss\"],\"names\":[],\"mappings\":\"AAEA,6BACE,WAAA,CACA,wBCHkB,CDIlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC9BkB,CD+BlB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.left-panel {\\n height: 100%;\\n background-color: $primary-dark;\\n transition: 0.3s;\\n position: absolute;\\n display:flex;\\n z-index: 20;\\n\\n}\\n.left-panel-close {\\ntransition:0.3s\\n}\\n.left-panel-content {\\n display:inline-block;\\n width : 100%;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n //resize: horizontal;\\n overflow: auto;\\n\\n}\\n.v-list__tile {\\n padding: 0\\n}\\n.left-panel-toggle-btn {\\n left: 100%;\\n width: 25px;\\n z-index: 1;\\n background-color: $primary-dark;\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n height: 50px;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.left-panel-title {\\n height: 50px;\\n line-height: 55px;\\n padding-left: 20px;\\n font-size: 1.1em;\\n margin-bottom: 10px;\\n}\\n.trip-list {\\n height: height;\\n padding-left:20px\\n}\\n\\n.scrollable {\\n overflow-y:scroll;\\n\\n}\\n\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n flex: 0;\\n transition: 0.3s;\\n}\\n\\n.list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.left-panel[data-v-0e528228]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-0e528228]{transition:.3s}.left-panel-content[data-v-0e528228]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-0e528228]{padding:0}.left-panel-toggle-btn[data-v-0e528228]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-0e528228]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-0e528228]{height:height;padding-left:20px}.scrollable[data-v-0e528228]{overflow-y:scroll}.drawer-list-item[data-v-0e528228]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-0e528228]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/RoadSidePanel.vue\",\"webpack://./src/scss/variables.scss\"],\"names\":[],\"mappings\":\"AAEA,6BACE,WAAA,CACA,wBCHkB,CDIlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC9BkB,CD+BlB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.left-panel {\\n height: 100%;\\n background-color: $primary-dark;\\n transition: 0.3s;\\n position: absolute;\\n display:flex;\\n z-index: 20;\\n\\n}\\n.left-panel-close {\\ntransition:0.3s\\n}\\n.left-panel-content {\\n display:inline-block;\\n width : 100%;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n //resize: horizontal;\\n overflow: auto;\\n\\n}\\n.v-list__tile {\\n padding: 0\\n}\\n.left-panel-toggle-btn {\\n left: 100%;\\n width: 25px;\\n z-index: 1;\\n background-color: $primary-dark;\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n height: 50px;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.left-panel-title {\\n height: 50px;\\n line-height: 55px;\\n padding-left: 20px;\\n font-size: 1.1em;\\n margin-bottom: 10px;\\n}\\n.trip-list {\\n height: height;\\n padding-left:20px\\n}\\n\\n.scrollable {\\n overflow-y:scroll;\\n\\n}\\n\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n flex: 0;\\n transition: 0.3s;\\n}\\n\\n.list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.setting[data-v-6c428464]{position:absolute;top:10px;right:20px}.layout[data-v-6c428464]{position:absolute;width:100%;height:calc(100% - 50px);display:flex;flex-flow:row;justify-content:center;align-items:center}.layout-overlay[data-v-6c428464]{height:100%;width:100%;background-color:rgba(0,0,0,.5);position:absolute}.card[data-v-6c428464]{width:500px;overflow-y:auto;padding:40px}.title[data-v-6c428464]{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3.5em;color:#b5e0d6 !important;font-weight:bold}.subtitle[data-v-6c428464]{font-size:2em;color:var(--v-secondarydark-base) !important;font-weight:bold;padding:1rem}.card button[data-v-6c428464]{margin-top:40px}.shake[data-v-6c428464]{animation:shake-6c428464 .5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;transform:translate3d(0, 0, 0)}@keyframes shake-6c428464{10%,90%{transform:translate3d(-1px, 0, 0)}20%,80%{transform:translate3d(2px, 0, 0)}30%,50%,70%{transform:translate3d(-4px, 0, 0)}40%,60%{transform:translate3d(4px, 0, 0)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/Settings.vue\"],\"names\":[],\"mappings\":\"AAEA,0BACE,iBAAA,CACA,QAAA,CACA,UAAA,CAGF,yBACE,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,YAAA,CACA,aAAA,CACA,sBAAA,CACA,kBAAA,CAEF,iCACE,WAAA,CACA,UAAA,CACA,+BAAA,CACA,iBAAA,CAEF,uBACE,WAAA,CACA,eAAA,CACA,YAAA,CAEF,wBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CAEF,2BACE,aAAA,CACA,4CAAA,CACA,gBAAA,CACA,YAAA,CAGF,8BACE,eAAA,CAEF,wBACE,sEAAA,CACA,8BAAA,CAEF,0BACE,QACE,iCAAA,CAEF,QACE,gCAAA,CAEF,YACE,iCAAA,CAEF,QACE,gCAAA,CAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.setting {\\n position: absolute;\\n top: 10px;\\n right: 20px;\\n}\\n\\n.layout {\\n position: absolute;\\n width: calc(100%);\\n height: calc(100% - 50px);\\n display: flex;\\n flex-flow: row;\\n justify-content: center;\\n align-items: center;\\n}\\n.layout-overlay {\\n height: 100%;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n position: absolute;\\n}\\n.card {\\n width: 500px;\\n overflow-y: auto;\\n padding: 40px;\\n}\\n.title {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n font-size: 3.5em;\\n color: $primary !important;\\n font-weight: bold;\\n}\\n.subtitle {\\n font-size: 2em;\\n color: var(--v-secondarydark-base) !important;\\n font-weight: bold;\\n padding:1rem\\n\\n}\\n.card button {\\n margin-top: 40px;\\n}\\n.shake {\\n animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;\\n transform: translate3d(0, 0, 0);\\n}\\n@keyframes shake {\\n 10%, 90% {\\n transform: translate3d(-1px, 0, 0);\\n }\\n 20%, 80% {\\n transform: translate3d(2px, 0, 0);\\n }\\n 30%, 50%, 70% {\\n transform: translate3d(-4px, 0, 0);\\n }\\n 40%, 60% {\\n transform: translate3d(4px, 0, 0);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.left-panel[data-v-5064ebfe]{height:100%;background-color:var(--v-primarydark-base);transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-5064ebfe]{transition:.3s}.left-panel-content[data-v-5064ebfe]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-5064ebfe]{padding:0}.left-panel-toggle-btn[data-v-5064ebfe]{left:100%;width:25px;z-index:1;background-color:var(--v-primarydark-base);display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-5064ebfe]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-5064ebfe]{height:height;padding-left:20px}.scrollable[data-v-5064ebfe]{overflow-y:scroll}.drawer-list-item[data-v-5064ebfe]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-5064ebfe]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/SidePanel.vue\"],\"names\":[],\"mappings\":\"AAEA,6BACE,WAAA,CACA,0CAAA,CACA,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,0CAAA,CACA,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.left-panel {\\n height: 100%;\\n background-color:var(--v-primarydark-base);\\n transition: 0.3s;\\n position: absolute;\\n display:flex;\\n z-index: 20;\\n\\n}\\n.left-panel-close {\\ntransition:0.3s\\n}\\n.left-panel-content {\\n display:inline-block;\\n width : 100%;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n //resize: horizontal;\\n overflow: auto;\\n\\n}\\n.v-list__tile {\\n padding: 0\\n}\\n.left-panel-toggle-btn {\\n left: 100%;\\n width: 25px;\\n z-index: 1;\\n background-color: var(--v-primarydark-base);\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n height: 50px;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.left-panel-title {\\n height: 50px;\\n line-height: 55px;\\n padding-left: 20px;\\n font-size: 1.1em;\\n margin-bottom: 10px;\\n}\\n.trip-list {\\n height: height;\\n padding-left:20px\\n}\\n\\n.scrollable {\\n overflow-y:scroll;\\n\\n}\\n\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n flex: 0;\\n transition: 0.3s;\\n}\\n\\n.list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.layer-button[data-v-9ae88e1e]{position:absolute;top:60px;right:20px}.card[data-v-9ae88e1e]{width:500px;overflow-y:auto;padding:40px}.subtitle[data-v-9ae88e1e]{font-size:1.5em;color:var(--v-secondarydark-base) !important;font-weight:bold;padding:1rem}.title[data-v-9ae88e1e]{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3.5em;color:#b5e0d6 !important;font-weight:bold}.custom-tooltip[data-v-9ae88e1e]{opacity:1 !important;background:var(--v-tooltip-bg, rgb(97, 97, 97)) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/utils/LayerSelector.vue\"],\"names\":[],\"mappings\":\"AAEA,+BACE,iBAAA,CACA,QAAA,CACA,UAAA,CAEF,uBACE,WAAA,CACA,eAAA,CACA,YAAA,CAEF,2BACE,eAAA,CACA,4CAAA,CACA,gBAAA,CACA,YAAA,CAGF,wBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CAEF,iCACI,oBAAA,CACA,0DAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.layer-button {\\n position: absolute;\\n top: 60px;\\n right: 20px;\\n}\\n.card {\\n width: 500px;\\n overflow-y: auto;\\n padding: 40px;\\n}\\n.subtitle {\\n font-size: 1.5em;\\n color: var(--v-secondarydark-base) !important;\\n font-weight: bold;\\n padding:1rem\\n\\n}\\n.title {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n font-size: 3.5em;\\n color: $primary !important;\\n font-weight: bold;\\n}\\n.custom-tooltip {\\n opacity: 1!important;\\n background: var(--v-tooltip-bg, rgba(97, 97, 97, 1)) !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.gradient[data-v-0de46ea8]{width:85%;white-space:nowrap;position:relative;display:inline-block;padding-top:20px;padding-bottom:15px}.gradient .domain-title[data-v-0de46ea8]{position:absolute;right:25%;left:25%;text-align:center;font-size:11px;top:6px}.gradient .domain-min[data-v-0de46ea8]{position:absolute;left:0;font-size:11px;bottom:5px}.gradient .domain-med[data-v-0de46ea8]{position:absolute;right:25%;left:25%;text-align:center;font-size:11px;bottom:5px}.gradient .domain-max[data-v-0de46ea8]{position:absolute;right:0;font-size:11px;bottom:5px}.grad-step[data-v-0de46ea8]{display:inline-block;height:20px;width:1%}.legend[data-v-0de46ea8]{width:160px;z-index:3;display:flex;position:relative;align-items:center;justify-content:center;transition:.3s;height:50px;background-color:var(--v-white-base);border:thin solid var(--v-mediumgrey-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/utils/MapLegend.vue\"],\"names\":[],\"mappings\":\"AAGA,2BACI,SAAA,CACA,kBAAA,CACA,iBAAA,CACA,oBAAA,CACA,gBAAA,CACA,mBAAA,CAIJ,yCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CACA,cAAA,CACA,OAAA,CAIJ,uCACI,iBAAA,CACA,MAAA,CACA,cAAA,CACA,UAAA,CAEJ,uCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CACA,cAAA,CACA,UAAA,CAEJ,uCACI,iBAAA,CACA,OAAA,CACA,cAAA,CACA,UAAA,CAGJ,4BACI,oBAAA,CACA,WAAA,CACA,QAAA,CAGJ,yBACE,WAAA,CACA,SAAA,CACA,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,WAAA,CACA,oCAAA,CACA,0CAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n\\n.gradient {\\n width: 85%;\\n white-space: nowrap;\\n position: relative;\\n display: inline-block;\\n padding-top: 20px;\\n padding-bottom: 15px;\\n\\n}\\n\\n.gradient .domain-title {\\n position: absolute;\\n right: 25%;\\n left: 25%;\\n text-align: center;\\n font-size: 11px;\\n top: 6px;\\n\\n}\\n\\n.gradient .domain-min {\\n position: absolute;\\n left: 0;\\n font-size: 11px;\\n bottom: 5px;\\n}\\n.gradient .domain-med {\\n position: absolute;\\n right: 25%;\\n left: 25%;\\n text-align: center;\\n font-size: 11px;\\n bottom: 5px;\\n}\\n.gradient .domain-max {\\n position: absolute;\\n right: 0;\\n font-size: 11px;\\n bottom: 5px;\\n}\\n\\n.grad-step {\\n display: inline-block;\\n height: 20px;\\n width: 1%;\\n}\\n\\n.legend {\\n width: 160px;\\n z-index: 3;\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n transition: 0.3s;\\n height: 50px;\\n background-color: var(--v-white-base);\\n border: thin solid var(--v-mediumgrey-base);\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.is-active[data-v-e63b0890]{opacity:1;background-color:var(--v-primary-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/utils/MenuSelector.vue\"],\"names\":[],\"mappings\":\"AAEA,4BACE,SAAA,CACA,sCAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.is-active{\\n opacity:1;\\n background-color:var(--v-primary-base);\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.map-legend[data-v-7dc7a5bf]{height:100%;position:absolute}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/utils/StaticLayer.vue\"],\"names\":[],\"mappings\":\"AAEA,6BACE,WAAA,CACA,iBAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.map-legend {\\n height: 100%;\\n position: absolute;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.map-view[data-v-00b02151]{height:calc(100% - 50px);width:100%;display:flex}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/pages/Home.vue\"],\"names\":[],\"mappings\":\"AAEA,2BACE,wBAAA,CACA,UAAA,CACA,YAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.map-view {\\n height: calc(100% - 50px);\\n width: 100%;\\n display: flex;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.layout[data-v-020024f7]{position:absolute;width:100%;height:calc(100% - 50px);display:flex;flex-flow:row;justify-content:center;align-items:center}.layout-overlay[data-v-020024f7]{height:100%;width:100%;background-color:var(--v-background-base);position:absolute}.card[data-v-020024f7]{width:80rem;overflow-y:hidden;padding:20px}.button-question[data-v-020024f7]{display:flex;align-items:center}.title[data-v-020024f7]{display:flex;align-items:center;justify-content:center;font-size:2em !important;color:var(--v-primary-base);font-weight:bold;margin-top:18px}.subtitle[data-v-020024f7]{font-size:1.5em;font-weight:bold;margin:20px}.card button[data-v-020024f7]{margin:.5rem}.animate-login[data-v-020024f7]{transform:translateY(-185%);transition:1s}.animate-layer[data-v-020024f7]{opacity:0;transition:1s}.button-row[data-v-020024f7]{display:flex;align-items:center;justify-content:center;margin-top:1rem;padding-top:.5rem;border-top:1px solid var(--v-lightgrey-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/pages/Import.vue\"],\"names\":[],\"mappings\":\"AAEA,yBACE,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,YAAA,CACA,aAAA,CACA,sBAAA,CACA,kBAAA,CAGF,iCACE,WAAA,CACA,UAAA,CACA,yCAAA,CAEA,iBAAA,CAEF,uBACE,WAAA,CACA,iBAAA,CACA,YAAA,CAEF,kCACE,YAAA,CACA,kBAAA,CAGF,wBACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,wBAAA,CACA,2BAAA,CACA,gBAAA,CACA,eAAA,CAEF,2BACE,eAAA,CACA,gBAAA,CACA,WAAA,CAEF,8BACE,YAAA,CAEF,gCACE,2BAAA,CACA,aAAA,CAEF,gCACE,SAAA,CACA,aAAA,CAEF,6BACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CACA,4CAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.layout {\\n position: absolute;\\n width: calc(100%);\\n height: calc(100% - 50px);\\n display: flex;\\n flex-flow: row;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.layout-overlay {\\n height: 100%;\\n width: 100%;\\n background-color:var(--v-background-base);\\n\\n position: absolute;\\n}\\n.card {\\n width:80rem;\\n overflow-y:hidden;\\n padding: 20px;\\n}\\n.button-question{\\n display: flex;\\n align-items: center ;\\n\\n}\\n.title {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 2em !important;\\n color: var(--v-primary-base);\\n font-weight: bold;\\n margin-top:18px;\\n}\\n.subtitle {\\n font-size: 1.5em;\\n font-weight: bold;\\n margin: 20px;\\n}\\n.card button {\\n margin: 0.5rem;\\n}\\n.animate-login {\\n transform: translateY(-185%);\\n transition: 1s;\\n}\\n.animate-layer {\\n opacity: 0;\\n transition: 1s;\\n}\\n.button-row{\\n display: flex;\\n align-items: center;\\n justify-content:center;\\n margin-top : 1rem;\\n padding-top:0.5rem;\\n border-top: 1px solid var(--v-lightgrey-base);\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default {type:'FeatureCollection',crs:{type:'name',properties:{name:'urn:ogc:def:crs:OGC:1.3:CRS84'}},features:[]}","export default {type:'FeatureCollection',crs:{type:'name',properties:{name:'urn:ogc:def:crs:OGC:1.3:CRS84'}},features:[]}","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !isNaN(_vm.displaySettings.minVal) &&\n !isNaN(_vm.displaySettings.minVal),\n expression:\n \"!isNaN(displaySettings.minVal) && !isNaN(displaySettings.minVal)\",\n },\n ],\n staticClass: \"legend elevation-4\",\n style: {\n top: `${_vm.windowHeight}px`,\n left: `${_vm.leftOffset}px !important`,\n },\n },\n [\n _c(\n \"div\",\n { staticClass: \"gradient\" },\n [\n _vm._l(_vm.colorScale, function (color, key) {\n return _c(\"span\", {\n key: key,\n staticClass: \"grad-step\",\n style: { backgroundColor: color },\n })\n }),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"domain-title\" }, [\n _vm._v(_vm._s(_vm.displaySettings.selectedFeature)),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"domain-min\" }, [\n _vm._v(_vm._s(Math.round(_vm.displaySettings.minVal))),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"domain-med\" }, [\n _vm._v(\n _vm._s(\n Math.round(\n (_vm.displaySettings.maxVal + _vm.displaySettings.minVal) / 2\n )\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"domain-max\" }, [\n _vm._v(_vm._s(Math.round(_vm.displaySettings.maxVal))),\n ]),\n ],\n 2\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLegend.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLegend.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLegend.vue?vue&type=style&index=0&id=0de46ea8&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLegend.vue?vue&type=style&index=0&id=0de46ea8&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./MapLegend.vue?vue&type=template&id=0de46ea8&scoped=true&\"\nimport script from \"./MapLegend.vue?vue&type=script&lang=js&\"\nexport * from \"./MapLegend.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MapLegend.vue?vue&type=style&index=0&id=0de46ea8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0de46ea8\",\n null\n \n)\n\nexport default component.exports","import { store } from '@src/store/index.js'\nimport AWS from 'aws-sdk'\nimport JSZip from 'jszip'\nimport saveAs from 'file-saver'\n\nconst USERPOOL_ID = process.env.VUE_APP_COGNITO_USERPOOL_ID\nconst IDENTITY_POOL_ID = process.env.VUE_APP_COGNITO_IDENTITY_POOL_ID\nconst REGION = process.env.VUE_APP_COGNITO_REGION\n\nAWS.config.region = REGION\nconst s3Client = new AWS.S3({\n apiVersion: '2006-03-01',\n signatureVersion: 'v4',\n params: { region: REGION },\n})\n\nasync function readJson (bucket, key) {\n const params = { Bucket: bucket, Key: key, ResponseCacheControl: 'no-cache' }\n // const params = { Bucket: bucket, Key: key }\n\n const response = await s3Client.getObject(params).promise() // await the promise\n const fileContent = JSON.parse(new TextDecoder('utf-8').decode(response.Body).trim())\n return fileContent\n}\n\nasync function readBytes (bucket, key) {\n const params = { Bucket: bucket, Key: key, ResponseCacheControl: 'no-cache' }\n // const params = { Bucket: bucket, Key: key }\n const response = await s3Client.getObject(params).promise() // await the promise\n const fileContent = response.Body // can also do 'base64' here if desired\n return fileContent\n}\nasync function downloadFolder (bucket, prefix) {\n // zip everything in a folder. keep filename. Folder structure will not work.\n const zip = new JSZip()\n const params = { Bucket: bucket, Prefix: prefix }\n const response = await s3Client.listObjectsV2(params).promise()\n if (response.Contents.length === 0) throw new Error('no params.json in base scenario')\n for (const file of response.Contents) {\n const fileName = file.Key.split('/').slice(-1)[0]\n const params = { Bucket: bucket, Key: file.Key, ResponseCacheControl: 'no-cache' }\n const response = await s3Client.getObject(params).promise()\n zip.file(fileName, response.Body)\n }\n\n zip.generateAsync({ type: 'blob' }).then(function (content) {\n saveAs(content, 'example.zip')\n })\n}\n\nasync function getBucketList () {\n // from the cognito group name. get the list of available buckets on quetzal-config.\n try {\n const bucketList = await this.readJson('quetzal-config', 'cognito_group_access.json')\n store.commit('setBucketList', bucketList[store.getters.cognitoGroup])\n } catch (err) {\n store.commit('changeAlert', err)\n }\n}\nasync function listFiles (bucket, prefix) {\n if (Array.isArray(prefix)) {\n const paths = []\n prefix.forEach(async pref => {\n const params = { Bucket: bucket, Prefix: prefix }\n const Content = await s3Client.listObjectsV2(params).promise()\n paths.push(...Content.Contents.map(item => item.Key))\n })\n return paths\n } else {\n const params = { Bucket: bucket, Prefix: prefix }\n const Content = await s3Client.listObjectsV2(params).promise()\n return Content.Contents.map(item => item.Key)\n }\n}\nasync function getImagesURL (bucket, key) {\n const presignedGETURL = s3Client.getSignedUrl('getObject', {\n Bucket: bucket,\n Key: key, // filename\n Expires: 100, // time to expire in seconds\n })\n return presignedGETURL\n}\n\nasync function copyFolder (bucket, prefix, newName) {\n const params = { Bucket: bucket, Prefix: prefix }\n const response = await s3Client.listObjectsV2(params).promise()\n response.Contents = response.Contents.filter(el => el.Key !== (prefix + '/.lock'))\n if (response.Contents.length === 0) throw new Error('no params.json in base scenario')\n for (const file of response.Contents) {\n let newFile = file.Key.split('/')\n newFile[0] = newName\n newFile = newFile.join('/')\n // need to encore special character (é for example).\n let oldPath = file.Key.split('/')\n oldPath[0] = encodeURIComponent(oldPath[0])\n oldPath = oldPath.join('/')\n\n const copyParams = {\n Bucket: bucket,\n CopySource: bucket + '/' + oldPath,\n Key: newFile,\n }\n s3Client.copyObject(copyParams, function (err, data) {\n if (err) return err // an error occurred\n })\n }\n}\n\nasync function newScenario (bucket, prefix, newName) {\n const filesToCopy = [\n prefix + '/inputs/params.json',\n prefix + '/styles.json',\n prefix + '/attributesChoices.json',\n ]\n const params = { Bucket: bucket, Prefix: prefix }\n const response = await s3Client.listObjectsV2(params).promise()\n response.Contents = response.Contents.filter(el => filesToCopy.includes(el.Key))\n\n if (response.Contents.length === 0) throw new Error('Nothing to copy in base scenario (params.json at least)')\n for (const file of response.Contents) {\n let newFile = file.Key.split('/')\n newFile[0] = newName\n newFile = newFile.join('/')\n // need to encore special character (é for example).\n let oldPath = file.Key.split('/')\n oldPath[0] = encodeURIComponent(oldPath[0])\n oldPath = oldPath.join('/')\n\n const copyParams = {\n Bucket: bucket,\n CopySource: bucket + '/' + oldPath,\n Key: newFile,\n }\n s3Client.copyObject(copyParams, function (err, data) {\n if (err) return err // an error occurred\n })\n }\n}\n\nasync function deleteFolder (bucket, prefix) {\n const params = { Bucket: bucket, Prefix: prefix }\n const response = await s3Client.listObjectsV2(params).promise()\n const arr = []\n if (response.Contents.length > 0) {\n response.Contents.forEach(file => arr.push({ Key: file.Key }))\n const deleteParams = { Bucket: bucket, Delete: { Objects: arr } }\n return s3Client.deleteObjects(deleteParams).promise()\n }\n}\n\nasync function createFolder (bucket, key) {\n // create an empty folder\n if (key.slice(-1) !== '/') key = key + '/'\n const params = { Bucket: bucket, Key: key, Body: '' }\n\n s3Client.upload(params, function (err, data) {\n if (err) {\n store.commit('changeAlert', err)\n } else {\n console.log('Successfully created a folder on S3')\n }\n })\n}\nasync function putObject (bucket, key, body = '') {\n const params = {\n Bucket: bucket,\n Key: key,\n Body: body,\n Metadata: { user_email: store.getters.cognitoInfo.email },\n ContentType: ' application/json',\n }\n const resp = await s3Client.putObject(params).promise()\n return resp\n}\nasync function putBytes (bucket, key, body = '') {\n const params = {\n Bucket: bucket,\n Key: key,\n Body: body,\n Metadata: { user_email: store.getters.cognitoInfo.email },\n }\n const resp = await s3Client.putObject(params).promise()\n return resp\n}\n\nasync function getScenario (bucket) {\n // list all files in bucket\n const params = { Bucket: bucket }\n let moreToLoad = true\n const list = []\n try {\n while (moreToLoad) {\n const { Contents, IsTruncated, NextContinuationToken } = await s3Client.listObjectsV2(params).promise()\n list.push(...Contents)\n moreToLoad = IsTruncated\n params.ContinuationToken = NextContinuationToken\n }\n } catch (err) { return [] }\n\n // get list of scenarios (unique prefix)\n const scenarios = Array.from(new Set(list.map(name => name.Key.split('/')[0])))\n // scenarios = scenarios.filter(scen => scen !== 'quenedi.config.json')\n const scenList = []\n for (const scen of scenarios) {\n const files = list.filter(item => item.Key.startsWith(scen))\n\n // if there is .lock file in the root dir of the scen. it is protected.\n const lockedList = files.filter(item => item.Key.startsWith(scen + '/.lock'))\n const isLocked = lockedList.length > 0 || scen === 'base'\n\n // let maxDate = new Date(Math.max.apply(null, dates))\n const maxDateObj = files.reduce((prev, current) => (prev.LastModified > current.LastModified) ? prev : current, [])\n const maxDate = maxDateObj.LastModified.toLocaleDateString() + ' ' + maxDateObj.LastModified.toLocaleTimeString()\n // get user email metadata on newest object. undefined if empty or error.\n let userEmail // this = undefined\n try {\n const resp = await s3Client.headObject({ Bucket: bucket, Key: maxDateObj.Key }).promise()\n // if there is no email. it was a manual changed on S3 by an admin so we put idns-canada.\n userEmail = resp.Metadata.user_email ? resp.Metadata.user_email : 'idns-canada@systra.com'\n } catch (err) { store.commit('changeAlert', err) }\n scenList.push({ model: bucket, scenario: scen, lastModified: maxDate, userEmail: userEmail, protected: isLocked })\n }\n return scenList\n}\n\nexport default {\n s3: s3Client,\n async login () {\n AWS.config.region = REGION\n AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n IdentityPoolId: IDENTITY_POOL_ID,\n Logins: {\n [`cognito-idp.${REGION}.amazonaws.com/${USERPOOL_ID}`]: store.getters.idToken,\n },\n })\n s3Client.config.credentials = AWS.config.credentials\n await this.getBucketList()\n },\n\n getScenario,\n readJson,\n readBytes,\n getBucketList,\n listFiles,\n copyFolder,\n deleteFolder,\n createFolder,\n putObject,\n putBytes,\n getImagesURL,\n downloadFolder,\n newScenario,\n\n}\n","import { CognitoAuth, StorageHelper } from 'amazon-cognito-auth-js'\nimport router from './router'\nimport { store } from '@src/store/index.js'\nimport jwtDecode from 'jwt-decode'\n\nconst CLIENT_ID = process.env.VUE_APP_COGNITO_CLIENT_ID\nconst APP_DOMAIN = process.env.VUE_APP_COGNITO_APP_DOMAIN\nconst REDIRECT_URI = process.env.VUE_APP_COGNITO_REDIRECT_URI\nconst USERPOOL_ID = process.env.VUE_APP_COGNITO_USERPOOL_ID\nconst IDENTITY_POOL_ID = process.env.VUE_APP_COGNITO_IDENTITY_POOL_ID\nconst REDIRECT_URI_SIGNOUT = process.env.VUE_APP_COGNITO_REDIRECT_URI_SIGNOUT\n\nconst authData = {\n ClientId: CLIENT_ID, // Your client id here\n AppWebDomain: APP_DOMAIN,\n TokenScopesArray: ['openid'],\n RedirectUriSignIn: REDIRECT_URI,\n RedirectUriSignOut: REDIRECT_URI_SIGNOUT,\n UserPoolId: USERPOOL_ID,\n}\nconst auth = new CognitoAuth(authData)\n\nauth.userhandler = {\n onSuccess: function (result) {\n // console.log('On Success result', result)\n const idToken = result.getIdToken().jwtToken\n const sessionIdInfo = jwtDecode(idToken)\n // TODO : trouver comment avoir une liste des bucket!!\n store.commit('setIdToken', idToken)\n store.commit('setAccessToken', result.accessToken)\n store.commit('setCognitoInfo', sessionIdInfo)\n store.commit('setLoggedIn', true)\n if (Object.keys(sessionIdInfo).includes('cognito:groups')) {\n store.commit('setCognitoGroup', sessionIdInfo['cognito:groups'][0])\n }\n },\n onFailure: function (err) {\n store.commit('setLoggedOut')\n alert('Login failed due to ' + err)\n router.go({ path: '/error', query: { message: 'Login failed due to ' + err } })\n },\n}\n\nfunction getCognitoStorageKey () {\n const keyPrefix = 'CognitoIdentityServiceProvider.' + auth.getClientId()\n const tokenUserName = auth.signInUserSession.getAccessToken().getUsername()\n const suffix = ['.userInfo', '.tokenScopesString', '.accessToken', '.idToken', '.refreshToken']\n const keys = suffix.map(s => keyPrefix + '.' + tokenUserName + s)\n keys.push(keyPrefix + '.LastAuthUser')\n keys.push(`aws.cognito.identity-id.${IDENTITY_POOL_ID}`)\n keys.push(`aws.cognito.identity-providers.${IDENTITY_POOL_ID}`)\n return keys\n}\n\nconst storageHelper = new StorageHelper()\nconst storage = storageHelper.getStorage()\nexport default {\n auth: auth,\n login () {\n auth.getSession()\n },\n logout () {\n console.log(auth.isUserSignedIn())\n if (auth.isUserSignedIn()) {\n const cognitoKeys = this.getCognitoStorageKey()\n cognitoKeys.forEach(key => storage.removeItem(key))\n auth.signOut()\n } else {\n auth.signOut()\n }\n },\n getCognitoStorageKey,\n\n}\n","import axios from 'axios'\n\nconst quetzalClient = {\n client: null,\n login (idToken) {\n this.client = axios.create({\n baseURL: 'https://z0i1paj50k.execute-api.ca-central-1.amazonaws.com/dev',\n withCredentials: false,\n headers: {\n 'Accept': '*/*',\n 'Content-Type': 'text/plain',\n 'Authorization': idToken,\n },\n })\n },\n}\n\nconst axiosClient = {\n loginAll (idToken) {\n quetzalClient.login(idToken)\n },\n}\n\nexport { quetzalClient, axiosClient }\n","// import JSZip from 'jszip'\nconst $gettext = s => s\n\nfunction serializer (geojson, name, type = null, ignoreIndex = false) {\n // check that file is not empty\n if (geojson.features.length === 0) {\n const err = new Error(name + $gettext(' is empty'))\n err.name = 'ImportError'\n throw err\n }\n // check CRS. no CRS or invalid\n if (!['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(geojson.crs?.properties.name)) {\n const err = new Error($gettext(' invalid CRS. Import aborted. use CRS84 / EPSG:4326 in ') + name)\n err.name = 'ImportError'\n throw err\n }\n // check Type (is links a linestring)\n const currentType = geojson.features[0].geometry.type\n if (currentType !== type && type !== null) {\n const err = new Error(currentType + $gettext(' imported, Expected ') +\n type + $gettext('. Import aborted in ') + name)\n err.name = 'ImportError'\n throw err\n }\n // check if there is indexes in the properties\n if (!Object.keys(geojson.features[0].properties).includes('index') && !ignoreIndex) {\n const err = new Error($gettext('there is no index in the File. you need unique index. Import aborted in ') + name)\n err.name = 'ImportError'\n throw err\n }\n // all good. return geojson.\n return geojson\n}\n\nfunction paramsSerializer (json) {\n if (!Array.isArray(json)) {\n const err = new Error($gettext('params.json should be an array of object [{category: , params: }, ...]'))\n err.name = 'ImportError'\n throw err\n }\n const params = json.filter(item => !item?.info)\n const contains = (a, b) => [...b].every(value => a.has(value))\n const expectedKeys = new Set(['category', 'params'])\n params.forEach(el => {\n if (!contains(new Set(Object.keys(el)), expectedKeys)) {\n const err = new Error($gettext('params.json should be an array of object [{category: , params: }, ...]'))\n err.name = 'ImportError'\n throw err\n }\n })\n // if model key is not present. put default everywhere.\n json.forEach(item => { if (!Object.keys(item).includes('model')) { item.model = 'default' } })\n return json\n}\n\nfunction stylesSerializer (json) {\n if (!Array.isArray(json)) {\n // eslint-disable-next-line max-len\n const err = new Error($gettext('styles.json should be an array of object with at least [{name:,layer:}]'))\n err.name = 'ImportError'\n throw err\n }\n json.forEach(el => {\n if (!(Object.keys(el).includes('name')) || !(Object.keys(el).includes('layer'))) {\n // eslint-disable-next-line max-len\n const err = new Error($gettext('styles.json should be an array of object with at least [{name:,layer:}]'))\n err.name = 'ImportError'\n throw err\n }\n })\n return json\n}\n\nexport { serializer, paramsSerializer, stylesSerializer }\n","import JSZip from 'jszip'\nimport { store } from '../../store/index.js'\nconst $gettext = s => s\n\nfunction readFileAsText (file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = function (event) {\n resolve(event.target.result)\n }\n reader.onerror = function (event) {\n reject(event.target.error)\n }\n reader.readAsText(file)\n })\n}\n\nfunction readFileAsBytes (file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = function (event) {\n const fileBytes = new Uint8Array(event.target.result)\n resolve(fileBytes)\n }\n reader.onerror = function (event) {\n reject(event.target.error)\n }\n reader.readAsArrayBuffer(file)\n })\n}\n\nfunction checkPaths (paths) {\n // check that the zip files contains with inputs/ or outputs/ (as root folders.)\n const test = paths.filter(path => path.startsWith('inputs/') || path.startsWith('outputs/'))\n if (test.length === 0) {\n const err = new Error($gettext(' root folders should be inputs/ and outputs/. not: ') + paths[0])\n err.name = 'ImportError'\n throw err\n }\n}\n\nasync function extractZip (file) {\n const ZIP = new JSZip()\n const zip = await ZIP.loadAsync(file)\n let filesNames = Object.keys(zip.files)\n filesNames = filesNames.filter(name => !name.match(/^__MACOSX\\//))\n filesNames = filesNames.filter(name => !name.endsWith('/'))\n checkPaths(filesNames)\n // process ZIP file content here\n const result = []\n for (let i = 0; i < filesNames.length; i++) {\n const str = await zip.file(filesNames[i]).async('string')\n let content = {}\n if (filesNames[i].endsWith('.json') || filesNames[i].endsWith('.geojson')) {\n try {\n content = JSON.parse(str)\n } catch (err) {\n err.name = 'ImportError in ' + filesNames[i]\n throw err\n }\n } else {\n content = await zip.file(filesNames[i]).async('uint8array')\n }\n // import with new fileStructure (inputs, outputs folder in zip)\n\n result.push({ path: filesNames[i], content: content })\n }\n return result\n}\n\nfunction getGroupForm (features, lineAttributes, uneditable) {\n const form = {}\n lineAttributes.forEach(key => {\n const val = new Set(features.map(link => link.properties[key]))\n form[key] = {\n value: val.size > 1 ? '' : [...val][0],\n disabled: uneditable.includes(key),\n placeholder: val.size > 1,\n }\n })\n return form\n}\n\nfunction indexAreUnique (geojson) {\n // check if all index are unique in a geojson (links or nodes)\n // return true if they are unique\n let indexArr = []\n if (geojson?.features.length > 0) {\n indexArr = geojson.features.map(item => item.properties.index)\n return (new Set(indexArr).size === indexArr.length)\n } else { return true } // if its empty, return true\n}\n\nfunction IndexAreDifferent (geojsonA, geojsonB) {\n // check if index are duplicated between geojsons (to append new links or nodes) (links or nodes)\n // return true if they are all unique\n const linksIndex = new Set(geojsonA.features.map(item => item.properties.index))\n const newLinksIndex = new Set(geojsonB.features.map(item => item.properties.index))\n return (new Set([...linksIndex, ...newLinksIndex]).size === (linksIndex.size + newLinksIndex.size))\n}\n\nfunction createIndex (geojson, type, prefix) {\n // not done. we should check links and node as there is nodes index in links (a,b)\n switch (type) {\n case 'PT':\n // eslint-disable-next-line no-case-declarations\n const len = store.getters.links.features.length\n // eslint-disable-next-line no-return-assign\n geojson.features.forEach((feat, index) => feat.properties.index = prefix + (index + len))\n break\n case 'road':\n break\n }\n}\n\nasync function unzip (file) {\n // unzip a file and return a json (solo json zipped)\n const ZIP = new JSZip()\n const zip = await ZIP.loadAsync(file)\n const filesNames = Object.keys(zip.files)\n const str = await zip.file(filesNames[0]).async('string')\n const content = JSON.parse(str)\n return content\n}\n\n// https://stackoverflow.com/questions/27979002/convert-csv-data-into-json-format-using-javascript\nfunction csvJSON (bytes) {\n const csv = new TextDecoder().decode(bytes)\n let lines = csv.split('\\n')\n lines = lines.filter(line => line.length > 0)\n const result = []\n // NOTE: If your columns contain commas in their values, you'll need\n // to deal with those before doing the next step\n // (you might convert them to &&& or something, then covert them back later)\n // jsfiddle showing the issue https://jsfiddle.net/\n // if (lines.length > 100000) {\n\n // return [{ error: 'too many lines' }]\n // }\n const headers = lines[0].split(',')\n for (let i = 1; i < lines.length; i++) {\n const obj = {}\n const currentline = lines[i].split(',')\n\n for (let j = 0; j < headers.length; j++) {\n // convert to number if possible\n obj[headers[j]] = Number(currentline[j]) ? Number(currentline[j]) : currentline[j]\n }\n\n result.push(obj)\n }\n // return result; //JavaScript object\n return result\n}\n\nexport {\n readFileAsText,\n readFileAsBytes,\n extractZip,\n getGroupForm,\n indexAreUnique,\n createIndex,\n IndexAreDifferent,\n unzip,\n csvJSON,\n}\n","// this files contains all available highways and associated constant.\nconst highwayList = [\n 'motorway',\n 'motorway_link',\n 'trunk',\n 'trunk_link',\n 'primary',\n 'primary_link',\n 'secondary',\n 'secondary_link',\n 'tertiary',\n 'tertiary_link',\n 'residential',\n 'living_street',\n 'service',\n 'unclassified',\n 'cycleway',\n 'pedestrian',\n]\n\nconst highwayColor = {\n motorway: 'E892A2',\n motorway_link: 'E892A2',\n trunk: 'E892A2',\n trunk_link: 'E892A2',\n primary: 'FCD6A4',\n primary_link: 'FCD6A4',\n secondary: 'F7F9BE',\n secondary_link: 'F7F9BE',\n tertiary: '808080',\n tertiary_link: '808080',\n residential: '808080',\n living_street: '808080',\n service: '808080',\n unclassified: '808080',\n cycleway: '1D8621',\n pedestrian: '1D8621',\n}\n\nconst highwayWidth = {\n motorway: 4,\n motorway_link: 4,\n trunk: 4,\n trunk_link: 4,\n primary: 4,\n primary_link: 4,\n secondary: 3,\n secondary_link: 3,\n tertiary: 2,\n tertiary_link: 2,\n residential: 2,\n living_street: 2,\n service: 2,\n unclassified: 2,\n cycleway: 2,\n pedestrian: 2,\n}\n\nexport { highwayList, highwayColor, highwayWidth }\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!./app.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!./app.scss\";\n export default content && content.locals ? content.locals : undefined;\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"v-app\",\n { staticClass: \"app\" },\n [\n _c(\"NavigationDrawer\"),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"resize\",\n rawName: \"v-resize\",\n value: _vm.onResize,\n expression: \"onResize\",\n },\n ],\n ref: \"container\",\n staticClass: \"container\",\n },\n [\n _c(\"Toolbar\"),\n _vm._v(\" \"),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [_c(\"router-view\")], 1),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-overlay\",\n { attrs: { value: _vm.loading } },\n [\n _c(\"v-progress-circular\", {\n attrs: { indeterminate: \"\", size: \"64\" },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-snackbar\",\n {\n class: `snackbar-${_vm.notification.type}`,\n attrs: {\n timeout: _vm.notification.autoClose ? 3000 : -1,\n transition: \"slide-y-reverse-transition\",\n color: _vm.notification.color ? _vm.notification.color : \"white\",\n },\n scopedSlots: _vm._u([\n {\n key: \"action\",\n fn: function ({ attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._b(\n {\n attrs: { small: \"\", color: \"secondarydark\", text: \"\" },\n on: { click: _vm.closeSnackbar },\n },\n \"v-btn\",\n attrs,\n false\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Close\")) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.snackbar,\n callback: function ($$v) {\n _vm.snackbar = $$v\n },\n expression: \"snackbar\",\n },\n },\n [\n _c(\"span\", { staticClass: \"snackbar-text\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(_vm.notification.text)) +\n \"\\n \"\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"Alert\"),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"v-toolbar\",\n { class: \"app-toolbar elevation-4\", attrs: { dense: \"\" } },\n [\n _c(\"v-img\", {\n attrs: {\n src: require(\"@static/systra_logo.png\"),\n contain: \"\",\n \"max-width\": \"6rem\",\n },\n }),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"copyright\" }, [_vm._v(\"©\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"app-name\" }, [\n _vm._v(\"\\n Quetzal Network Editor\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"div\", [_c(\"ScenariosExplorer\")], 1),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n attrs: {\n icon: \"\",\n href: \"https://github.com/systragroup/quetzal-network-editor\",\n target: \"_blank\",\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\"\\n fab fa-github\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [_vm._v(\" \"), _c(\"span\", [_vm._v(\"GitHub\")])]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"switch\" },\n [\n _c(\"v-switch\", {\n attrs: { \"append-icon\": \"fas fa-moon\" },\n model: {\n value: _vm.$vuetify.theme.dark,\n callback: function ($$v) {\n _vm.$set(_vm.$vuetify.theme, \"dark\", $$v)\n },\n expression: \"$vuetify.theme.dark\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"language active\",\n attrs: { text: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$language.current) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n _vm._l(_vm.$language.available, function (language, lang) {\n return _c(\n \"v-list-item\",\n {\n key: lang,\n class: language,\n on: { click: () => _vm.handleChangeLanguage(lang) },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(language.toUpperCase()) +\n \"\\n \"\n ),\n ]\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", [_c(\"Profile\")], 1),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _vm.loggedIn\n ? _c(\n \"v-menu\",\n {\n attrs: {\n \"close-on-content-click\": false,\n \"nudge-width\": 200,\n \"offset-x\": \"\",\n \"offset-y\": \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-avatar\",\n _vm._g(\n _vm._b(\n { attrs: { size: \"34\", color: \"primary\" } },\n \"v-avatar\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"span\", { staticClass: \"white--text text-h6\" }, [\n _vm._v(_vm._s(_vm.initial)),\n ]),\n ]\n ),\n ]\n },\n },\n ],\n null,\n false,\n 3256803526\n ),\n model: {\n value: _vm.menu,\n callback: function ($$v) {\n _vm.menu = $$v\n },\n expression: \"menu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n _vm._s(\n _vm.cognitoInfo.given_name +\n \" \" +\n _vm.cognitoInfo.family_name\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(_vm._s(_vm.cognitoInfo.email)),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm._l(_vm.bucketList, function (group) {\n return _c(\"v-list-item\", { key: group }, [\n _vm._v(\"\\n \" + _vm._s(group) + \"\\n \"),\n ])\n }),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: { click: _vm.logout },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"logout\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 2\n ),\n ],\n 1\n )\n : _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"250\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n { attrs: { icon: \"\" }, on: { click: _vm.login } },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\"\\n fas fa-sign-in-alt\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.$gettext(\"login / signin\")))]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"350\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.applyDialog.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return (() => (_vm.showDialog = false)).apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h4\" }, [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"Redirect\")) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-card-text\", { staticClass: \"text-h6\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"This will ERASE the current project\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: { click: () => (_vm.showDialog = !_vm.showDialog) },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"No\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: { click: _vm.applyDialog },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Yes\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=81b79092&scoped=true&\"\nimport script from \"./Profile.vue?vue&type=script&lang=js&\"\nexport * from \"./Profile.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"81b79092\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _vm.loggedIn && _vm.modelsList.length > 0\n ? _c(\n \"section\",\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"close-on-click\":\n !_vm.showDialog && !_vm.deleteDialog && !_vm.copyDialog,\n \"close-on-content-click\": false,\n \"max-width\": \"460px\",\n \"max-height\": _vm.windowHeight,\n \"offset-y\": \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"div\",\n _vm._g(\n _vm._b(\n { staticClass: \"title\" },\n \"div\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.scenario\n ? _vm.model + \"/\" + _vm.scenario\n : _vm.$gettext(\"Projects\")\n ) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ],\n null,\n false,\n 2682127123\n ),\n model: {\n value: _vm.menu,\n callback: function ($$v) {\n _vm.menu = $$v\n },\n expression: \"menu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-tabs\",\n {\n attrs: { \"show-arrows\": \"\", \"fixed-tabs\": \"\" },\n model: {\n value: _vm.localModel,\n callback: function ($$v) {\n _vm.localModel = $$v\n },\n expression: \"localModel\",\n },\n },\n _vm._l(_vm.modelsList, function (tab) {\n return _c(\n \"v-tab\",\n { key: tab, attrs: { href: \"#\" + tab } },\n [\n _vm._v(\n \"\\n \" + _vm._s(tab.slice(8)) + \"\\n \"\n ),\n ]\n )\n }),\n 1\n ),\n _vm._v(\" \"),\n _vm._l(_vm.scenariosList, function (scen) {\n return _c(\n \"v-list-item\",\n {\n key: scen.model + scen.scenario,\n class: {\n \"is-active\":\n _vm.modelScen === scen.model + scen.scenario,\n },\n attrs: {\n value: scen.model + scen.scenario,\n \"two-line\": \"\",\n },\n on: {\n click: function ($event) {\n return _vm.selectScenario(scen)\n },\n },\n },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(_vm._s(scen.scenario)),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(_vm._s(scen.lastModified)),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(_vm._s(scen.userEmail)),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n staticClass: \"ma-1\",\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return (() => {\n _vm.copyDialog = true\n _vm.selectedScenario = scen.scenario\n _vm.input = scen.scenario + \" copy\"\n }).apply(null, arguments)\n },\n },\n },\n [\n _c(\n \"v-icon\",\n { attrs: { small: \"\", color: \"regular\" } },\n [_vm._v(\"\\n fas fa-copy\\n \")]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n scen.model + scen.scenario === _vm.modelScen ||\n scen.protected,\n },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return (() => {\n _vm.deleteDialog = true\n _vm.scenarioToDelete = scen.scenario\n }).apply(null, arguments)\n },\n },\n },\n [\n _c(\n \"v-icon\",\n { attrs: { small: \"\", color: \"grey\" } },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n scen.protected\n ? \"fas fa-lock\"\n : \"fas fa-trash\"\n ) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loading,\n expression: \"loading\",\n },\n ],\n },\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"v-progress-circular\", {\n attrs: { color: \"primary\", indeterminate: \"\" },\n }),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { text: \"\" },\n on: {\n click: () => {\n _vm.copyDialog = true\n _vm.selectedScenario = null\n _vm.input = \"\"\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"new scenario\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 2\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"350\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.applyDialog.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancelDialog.apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h4\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Load Scenario?\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-card-text\", { staticClass: \"text-h6\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"This will ERASE the current project\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: { click: _vm.cancelDialog },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"No\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: { click: _vm.applyDialog },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Yes\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"350\" },\n on: {\n keydown: function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return (() => (_vm.deleteDialog = false)).apply(\n null,\n arguments\n )\n },\n },\n model: {\n value: _vm.deleteDialog,\n callback: function ($$v) {\n _vm.deleteDialog = $$v\n },\n expression: \"deleteDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h4\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"Delete \") + _vm.scenarioToDelete + \" ?\"\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-card-text\", { staticClass: \"text-h6\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\n \"The scenario will be permanently deleted\"\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: { click: () => (_vm.deleteDialog = false) },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"error\" },\n on: { click: _vm.deleteScenario },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Delete\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"290\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.createProject.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancel.apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.copyDialog,\n callback: function ($$v) {\n _vm.copyDialog = $$v\n },\n expression: \"copyDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.selectedScenario\n ? _vm.$gettext(\"copy\") + \" \" + _vm.selectedScenario\n : _vm.$gettext(\"New Scenario\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\n \"v-container\",\n [\n _c(\n \"v-col\",\n { attrs: { cols: \"12\" } },\n [\n _c(\"v-text-field\", {\n attrs: {\n autofocus: \"\",\n label: _vm.$gettext(\"name\"),\n },\n model: {\n value: _vm.input,\n callback: function ($$v) {\n _vm.input = $$v\n },\n expression: \"input\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n { style: { textAlign: \"center\", color: \"red\" } },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.errorMessage) + \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", text: \"\" },\n on: { click: _vm.closeCopy },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"green darken-1\", text: \"\" },\n on: { click: _vm.createProject },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"ok\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScenariosExplorer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScenariosExplorer.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScenariosExplorer.vue?vue&type=style&index=0&id=dad7c1ea&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScenariosExplorer.vue?vue&type=style&index=0&id=dad7c1ea&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ScenariosExplorer.vue?vue&type=template&id=dad7c1ea&scoped=true&\"\nimport script from \"./ScenariosExplorer.vue?vue&type=script&lang=js&\"\nexport * from \"./ScenariosExplorer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ScenariosExplorer.vue?vue&type=style&index=0&id=dad7c1ea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dad7c1ea\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toolbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toolbar.vue?vue&type=script&lang=js&\"","\n\n\n\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toolbar.vue?vue&type=style&index=0&id=4d444598&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toolbar.vue?vue&type=style&index=0&id=4d444598&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Toolbar.vue?vue&type=template&id=4d444598&scoped=true&\"\nimport script from \"./Toolbar.vue?vue&type=script&lang=js&\"\nexport * from \"./Toolbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Toolbar.vue?vue&type=style&index=0&id=4d444598&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d444598\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"transition\",\n { attrs: { name: \"fade\" } },\n [\n _c(\n \"v-navigation-drawer\",\n {\n staticClass: \"drawer elevation-4\",\n attrs: {\n app: \"\",\n stateless: \"\",\n temporary: !_vm.mini,\n \"mini-variant\": _vm.mini,\n \"mini-variant-width\": 50,\n },\n on: {\n \"update:miniVariant\": function ($event) {\n _vm.mini = $event\n },\n \"update:mini-variant\": function ($event) {\n _vm.mini = $event\n },\n },\n model: {\n value: _vm.drawer,\n callback: function ($$v) {\n _vm.drawer = $$v\n },\n expression: \"drawer\",\n },\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"drawer-header\",\n on: {\n click: function ($event) {\n _vm.mini = !_vm.mini\n },\n },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.mini ? \"fa fa-bars\" : \"fas fa-angle-left\") +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list\",\n { staticClass: \"drawer-list\", attrs: { dense: \"\" } },\n [\n _vm._l(_vm.getDisplayedRoutes(), function (item, key) {\n return _c(\n \"v-list-item\",\n {\n key: key,\n staticClass: \"drawer-list-item\",\n class: [\n _vm.$route.name === item.name\n ? \"drawer-list-item-selected\"\n : \"\",\n ],\n style: { marginTop: item.margin },\n attrs: {\n disabled:\n item.name === \"Save\" &&\n (!_vm.$store.getters.scenario || _vm.isProtected),\n },\n on: {\n click: function ($event) {\n return _vm.handleClickMenuItem(item)\n },\n },\n nativeOn: {\n click: function ($event) {\n $event.stopPropagation()\n },\n },\n },\n [\n _c(\n \"v-list-item-action\",\n {\n class:\n item.name === \"Save\" &&\n (!_vm.$store.getters.scenario || _vm.isProtected)\n ? \"drawer-list-item-icon-disabled\"\n : \"drawer-list-item-icon\",\n },\n [\n item.name === \"Run\" && _vm.running\n ? _c(\n \"v-badge\",\n {\n attrs: {\n \"offset-x\": \"12px\",\n \"offset-y\": \"10px\",\n color: \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"v-progress-circular\", {\n attrs: {\n size: \"18\",\n width: \"4\",\n color: \"primary\",\n indeterminate: \"\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n title: _vm.$gettext(item.title),\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.icon) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n )\n : item.name === \"Run\" && _vm.runWarning\n ? _c(\n \"v-badge\",\n {\n attrs: {\n \"offset-x\": \"6px\",\n \"offset-y\": \"11px\",\n color: _vm.runError ? \"error\" : \"warning\",\n icon: \"fa-solid fa-exclamation\",\n },\n },\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n title: _vm.$gettext(item.title),\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.icon) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n )\n : item.name === \"Save\" && _vm.saving\n ? _c(\n \"v-badge\",\n {\n attrs: {\n \"offset-x\": \"12px\",\n \"offset-y\": \"10px\",\n color: \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"v-progress-circular\", {\n attrs: {\n size: \"18\",\n width: \"4\",\n color: \"primary\",\n indeterminate: \"\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n title: _vm.$gettext(item.title),\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.icon) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n )\n : _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n title: _vm.$gettext(item.title),\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.icon) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-list-item-title\",\n { style: { marginLeft: \"20px\", color: \"white\" } },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(item.title)) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n staticClass: \"version-number\",\n style: { fontSize: 24 - 2 * _vm.version.length + \"px\" },\n },\n [_c(\"span\", [_vm._v(_vm._s(_vm.version))])]\n ),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=style&index=0&id=5b138161&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=style&index=0&id=5b138161&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationDrawer.vue?vue&type=template&id=5b138161&scoped=true&\"\nimport script from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavigationDrawer.vue?vue&type=style&index=0&id=5b138161&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b138161\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"text-center\" },\n [\n _c(\n \"v-bottom-sheet\",\n {\n attrs: { persistent: \"\" },\n model: {\n value: _vm.sheet,\n callback: function ($$v) {\n _vm.sheet = $$v\n },\n expression: \"sheet\",\n },\n },\n [\n _c(\"v-sheet\", { staticClass: \"text-center\" }, [\n _c(\n \"div\",\n [\n _c(\n \"v-alert\",\n { attrs: { prominent: \"\", type: \"error\" } },\n [\n _c(\n \"v-row\",\n [\n _c(\"v-col\", { staticClass: \"grow\" }, [\n _c(\"h2\", [\n _vm._v(\n \"\\n ERROR: \" +\n _vm._s(_vm.err.name) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.err.message) +\n \"\\n \"\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-col\",\n { staticClass: \"shrink\" },\n [\n _c(\n \"v-btn\",\n { attrs: { icon: \"\" }, on: { click: _vm.close } },\n [\n _c(\"v-icon\", [\n _vm._v(\n \"\\n fas fa-times\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=785f7271&scoped=true&\"\nimport script from \"./Alert.vue?vue&type=script&lang=js&\"\nexport * from \"./Alert.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"785f7271\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=610ce914&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=610ce914&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=610ce914&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=610ce914&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"610ce914\",\n null\n \n)\n\nexport default component.exports","import '@fortawesome/fontawesome-free/css/all.css'\nimport 'vuetify/dist/vuetify.min.css'\nimport 'mapbox-gl/dist/mapbox-gl.css'\nimport '@scss/app.scss'\n\nimport Vue from 'vue'\nimport GetTextPlugin from 'vue-gettext'\nimport { store } from './store'\nimport router from './router'\nimport Vuetify from 'vuetify'\nimport 'promise-polyfill/src/polyfill'\n\nimport fr from 'vuetify/es5/locale/fr'\nimport en from 'vuetify/es5/locale/en'\nimport de from 'vuetify/es5/locale/de'\nimport es from 'vuetify/es5/locale/es'\nimport pt from 'vuetify/es5/locale/pt'\n\nimport translations from './translations.json'\n\nimport App from './App.vue'\nconst mapboxPublicKey = process.env.VUE_APP_MAPBOX_PUBLIC_KEY\nconsole.assert(mapboxPublicKey)\n\nconst languageMixin = {\n methods: {\n $selectBestLanguage (browserLangs, supportedLangs) {\n if (browserLangs.length) {\n for (const lang of browserLangs) {\n const parts = lang.toLowerCase().split('-')\n if (parts.length > 1) {\n parts[1] = parts[1].toUpperCase()\n }\n const normLang = parts.join('-')\n if (supportedLangs.includes(normLang)) {\n return normLang\n } else if (parts.length > 1 && supportedLangs.includes(parts[0])) {\n return parts[0]\n }\n }\n return supportedLangs[0]\n } else {\n return supportedLangs[0]\n }\n },\n },\n}\n\nconst bestLanguage = languageMixin.methods.$selectBestLanguage(navigator.languages, ['en', 'fr', 'es', 'de', 'pt'])\nconst darkMode = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches)\n\nVue.use(Vuetify)\nVue.use(GetTextPlugin, {\n autoAddKeyAttributes: true,\n availableLanguages: {\n en: 'English',\n fr: 'Français',\n es: 'Español',\n de: 'Deutsch',\n pt: 'Português',\n },\n defaultLanguage: bestLanguage,\n translations,\n silent: true,\n})\n\nVue.config.productionTip = false\nVue.config.devtools = false\nVue.config.performance = false\n\nconst vuetify = new Vuetify({\n theme: {\n dark: !!darkMode,\n options: {\n customProperties: true,\n },\n themes: {\n\n light: {\n primary: '#B5E0D6',\n primarydark: '#7EBAAC',\n secondary: '#2C3E4E',\n secondarydark: '#1A242C',\n secondarydarkfix: '#1A242C',\n secondarylight: '#334453',\n background: '#808080',\n lightgrey: '#E3E4E6',\n white: '#fff',\n black: '#000000',\n mediumgrey: '#9E9E9E',\n darkgrey: '#5B5B5C',\n accent: '#2C3E4E',\n linksprimary: '#7EBAAC',\n linkssecondary: '#B5E0D6',\n chart: {\n lightgreen: '#CDDC39',\n darkgreen: '#4CAF50',\n lightblue: '#00BCD4',\n darkblue: '#2196F3',\n purple: '#673AB7',\n pink: '#E91E63',\n orange: '#FF7B30',\n yellow: '#FFC107',\n },\n },\n dark: {\n primary: '#2196F3',\n primarydark: '#191919',\n secondary: '#263238',\n secondarydark: '#fff',\n secondarydarkfix: '#1A242C',\n lightgrey: '#403f3f',\n mediumgrey: '#575757',\n darkgrey: '#d9d9db',\n background: '#000000',\n white: '#000000',\n black: '#fff',\n success: '#2196F3',\n accent: '#d3c1b1',\n linksprimary: '#2196F3',\n linkssecondary: '#90CAF9',\n chart: {\n lightgreen: '#CDDC39',\n darkgreen: '#4CAF50',\n lightblue: '#00BCD4',\n darkblue: '#2196F3',\n purple: '#673AB7',\n pink: '#E91E63',\n orange: '#FF7B30',\n yellow: '#FFC107',\n },\n\n },\n\n },\n },\n icons: {\n iconfont: 'fa',\n },\n lang: {\n locales: { fr, en, es, de, pt },\n current: bestLanguage,\n },\n})\n\nVue.mixin(languageMixin)\n\nVue.mixin({\n methods: {\n $flatEdges (obj, recurse = false) {\n let flatObj = obj\n if (obj.edges) {\n flatObj = obj.edges.map(edge => edge.node)\n }\n if (recurse) {\n for (const key in obj) {\n if (obj[key] !== null && typeof obj[key] === 'object') {\n obj[key] = this.$flatEdges(obj[key], true)\n }\n }\n }\n return flatObj\n },\n },\n})\n\nconst app = new Vue({\n\n router,\n store,\n vuetify,\n render: h => h(App),\n template: '',\n})\n\napp.$mount('#app')\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\"input\", {\n ref: \"zipInput\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"zip-input\", type: \"file\", accept: \".zip\" },\n on: { change: _vm.readZip },\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"layout\" },\n [\n _c(\"div\", {\n staticClass: \"layout-overlay\",\n class: { \"animate-layer\": _vm.loggedIn },\n }),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { staticClass: \"card\", class: { \"animate-login\": _vm.loggedIn } },\n [\n _c(\n \"v-row\",\n [\n _c(\n \"v-col\",\n [\n _c(\n \"v-card-text\",\n { style: { textAlign: \"center\" } },\n [\n _c(\"div\", { staticClass: \"title\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Select a Project\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\n \"Log in and select an existing project or create a new project from project navigation menu\"\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"subtitle\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"OR\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"title\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"Continue Without Project\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\n \"Start importing files individually or start with an empty project\"\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"subtitle\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"OR\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"title\" },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Load Zip\")) +\n \"\\n \"\n ),\n _c(\"InfoZip\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\n \"v-btn\",\n {\n style: { \"margin-right\": \"auto\" },\n attrs: { color: \"normal\" },\n on: {\n click: function ($event) {\n return _vm.buttonHandle(\"zip\")\n },\n },\n },\n [\n _c(\n \"v-icon\",\n { attrs: { small: \"\", left: \"\" } },\n [\n _vm._v(\n \"\\n fas fa-file-archive\\n \"\n ),\n ]\n ),\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Load Zip File\")) +\n \"\\n \"\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"subtitle\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"OR\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"title\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Load Example\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"nudge-left\": \"70\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n style: {\n \"margin-bottom\": \"2rem\",\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"Load Example\")\n ) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: () =>\n _vm.buttonHandle(\"example1\"),\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"PT & Road\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: () =>\n _vm.buttonHandle(\"example2\"),\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\n \"PT, Road, Zones, OD & Results\"\n )\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\", { attrs: { vertical: \"\" } }),\n _vm._v(\" \"),\n _c(\n \"v-col\",\n [\n _c(\"FileLoader\", {\n on: { FilesLoaded: (files) => _vm.loadNetwork(files) },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\", { attrs: { vertical: \"\" } }),\n _vm._v(\" \"),\n _c(\n \"v-col\",\n [\n _c(\"FilesList\", {\n on: { FilesLoaded: (files) => _vm.loadNetwork(files) },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"button-row\" },\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n on: {\n click: function ($event) {\n return _vm.buttonHandle(\"newProject\")\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"New Project\")) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.$gettext(\n \"Delete all network and start from scratch\"\n )\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { disabled: !_vm.filesAdded, color: \"primary\" },\n on: {\n click: function ($event) {\n return _vm.login()\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Go!\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"350\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.applyDialog.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n _vm.showDialog = false\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Overwrite current Project ?\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: {\n click: function ($event) {\n _vm.showDialog = !_vm.showDialog\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"No\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: { click: _vm.applyDialog },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Yes\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n [\n _c(\"input\", {\n ref: \"fileInput\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"file-input\", type: \"file\", accept: \".geojson\" },\n on: { change: _vm.readFile },\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n ref: \"paramsInput\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"params-input\", type: \"file\", accept: \".json\" },\n on: { change: _vm.readParams },\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n ref: \"stylesInput\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"styles-input\", type: \"file\", accept: \".json\" },\n on: { change: _vm.readStyles },\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.linksIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-project-diagram\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.linksIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"PT Network\")) +\n \"\\n \"\n ),\n !_vm.linksIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n { attrs: { icon: \"\", outlined: \"\" } },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fa-solid fa-upload\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: {\n link: \"\",\n disabled:\n _vm.loadedType == \"road\" ||\n _vm.localLinksLoaded,\n },\n on: { click: () => _vm.buttonHandle(\"PT links\") },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Links\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: {\n link: \"\",\n disabled:\n _vm.loadedType == \"road\" ||\n _vm.localNodesLoaded,\n },\n on: { click: () => _vm.buttonHandle(\"PT nodes\") },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Nodes\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.rlinksIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-project-diagram\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.rlinksIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Road Network\")) +\n \"\\n \"\n ),\n !_vm.rlinksIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n { attrs: { icon: \"\", outlined: \"\" } },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fa-solid fa-upload\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: {\n link: \"\",\n disabled:\n _vm.loadedType == \"PT\" || _vm.localLinksLoaded,\n },\n on: { click: () => _vm.buttonHandle(\"road links\") },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Links\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: {\n link: \"\",\n disabled:\n _vm.loadedType == \"PT\" || _vm.localNodesLoaded,\n },\n on: { click: () => _vm.buttonHandle(\"road nodes\") },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Nodes\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.ODIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-exchange-alt\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.ODIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Origin - Destination\")) +\n \"\\n \"\n ),\n !_vm.ODIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"od\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.paramsIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-cog\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.paramsIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Parameters\")) +\n \"\\n \"\n ),\n !_vm.paramsIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"parameters\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.stylesIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-palette\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.stylesIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Style presets\")) +\n \"\\n \"\n ),\n !_vm.stylesIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"styles\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileLoader.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileLoader.vue?vue&type=style&index=0&id=d3a53384&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileLoader.vue?vue&type=style&index=0&id=d3a53384&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileLoader.vue?vue&type=template&id=d3a53384&scoped=true&\"\nimport script from \"./FileLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./FileLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileLoader.vue?vue&type=style&index=0&id=d3a53384&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d3a53384\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\"div\", [\n _c(\"input\", {\n ref: \"otherInputs\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"other-inputs\", type: \"file\", multiple: \"multiple\" },\n on: { change: _vm.readOtherInputs },\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n ref: \"otherOutputs\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"other-outputs\", type: \"file\", multiple: \"multiple\" },\n on: { change: _vm.readOtherOutputs },\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"files-container\" }, [\n _c(\"div\", { staticClass: \"title-box\" }, [\n _c(\"h1\", { staticClass: \"title\" }, [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"Other Inputs\")) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"upload-button\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"inputs\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"list\" },\n _vm._l(_vm.inputFiles, function (path, key) {\n return _c(\n \"li\",\n { key: key },\n [\n _vm._v(\"\\n \" + _vm._s(path) + \"\\n \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"250\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"list-button\",\n attrs: { icon: \"\" },\n on: { click: () => _vm.buttonHandle(path) },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fa-solid fa-upload\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Replace file inplace\"))),\n ]),\n ]\n ),\n ],\n 1\n )\n }),\n 0\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"files-container\" }, [\n _c(\"div\", { staticClass: \"title-box\" }, [\n _c(\"h1\", { staticClass: \"title\" }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"Outputs\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"upload-button\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"outputs\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"list\" },\n [\n _vm._l(_vm.outputFiles, function (path) {\n return _c(\"li\", { key: path }, [\n _vm._v(\"\\n \" + _vm._s(path) + \"\\n \"),\n ])\n }),\n _vm._v(\" \"),\n _vm._l(_vm.layers, function (item) {\n return _c(\n \"li\",\n { key: item },\n [\n _vm._v(\"\\n \" + _vm._s(item) + \"\\n \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"250\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-icon\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"list-icon\",\n attrs: { small: \"\" },\n },\n \"v-icon\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n fa-solid fa-layer-group\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Viewable in results\"))),\n ]),\n ]\n ),\n ],\n 1\n )\n }),\n ],\n 2\n ),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=e186d29a&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=e186d29a&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=e186d29a&scoped=true&\"\nimport script from \"./FilesList.vue?vue&type=script&lang=js&\"\nexport * from \"./FilesList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=e186d29a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e186d29a\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { style: { \"margin-left\": \"10px\" } },\n [\n _c(\n \"v-btn\",\n { attrs: { icon: \"\", small: \"\" }, on: { click: _vm.show } },\n [_c(\"v-icon\", [_vm._v(\"far fa-question-circle small\")])],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { height: _vm.height, width: _vm.width },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\"v-img\", {\n attrs: {\n src: _vm.url,\n contain: \"\",\n height: _vm.height,\n width: _vm.width,\n alt: \"image\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoZip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoZip.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./InfoZip.vue?vue&type=template&id=1b5fbd9c&scoped=true&\"\nimport script from \"./InfoZip.vue?vue&type=script&lang=js&\"\nexport * from \"./InfoZip.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b5fbd9c\",\n null\n \n)\n\nexport default component.exports","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=style&index=0&id=020024f7&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=style&index=0&id=020024f7&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Import.vue?vue&type=template&id=020024f7&scoped=true&\"\nimport script from \"./Import.vue?vue&type=script&lang=js&\"\nexport * from \"./Import.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Import.vue?vue&type=style&index=0&id=020024f7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"020024f7\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n { staticClass: \"map-view\" },\n [\n _c(\n \"v-dialog\",\n {\n attrs: {\n scrollable: \"\",\n persistent: \"\",\n \"max-width\": _vm.numLinks > 1 ? \"40rem\" : \"20rem\",\n },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.applyAction.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancelAction.apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n { attrs: { \"max-height\": \"55rem\" } },\n [\n _c(\"v-card-title\", { staticClass: \"text-h5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n [\"deleteTrip\", \"deleterGroup\"].includes(_vm.action)\n ? _vm.$gettext(\"Delete\") + \" \" + _vm.message + \"?\"\n : _vm.$gettext(\"Edit Properties\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm.editForm\n ? _c(\n \"v-card-text\",\n [\n _c(\n \"v-row\",\n _vm._l(_vm.numLinks, function (n, idx) {\n return _c(\n \"v-col\",\n { key: idx },\n [\n _c(\n \"v-list\",\n [\n _vm.numLinks > 1\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-icon\",\n {\n style: {\n \"align-items\": \"center\",\n \"justify-content\": \"center\",\n transform:\n \"rotate(\" +\n _vm.linkDir[idx] +\n \"deg)\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-long-arrow-alt-up\\n \"\n ),\n ]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(\n _vm.orderedForm(idx),\n function (value, key) {\n return _c(\"v-text-field\", {\n key: key,\n attrs: {\n label: key,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.hints[key])\n : \"\",\n \"persistent-hint\": _vm.showHint,\n filled: !value[\"disabled\"],\n type: _vm.$store.getters.attributeType(\n key\n ),\n placeholder: value[\"placeholder\"]\n ? _vm.$gettext(\"multiple Values\")\n : \"\",\n \"persistent-placeholder\": value[\n \"placeholder\"\n ]\n ? true\n : false,\n disabled: value[\"disabled\"],\n },\n on: {\n wheel: function ($event) {\n return $event.target.blur()\n },\n },\n scopedSlots: _vm._u(\n [\n key === \"route_color\"\n ? {\n key: \"append\",\n fn: function () {\n return [\n _c(\"color-picker\", {\n model: {\n value: value[\"value\"],\n callback: function (\n $$v\n ) {\n _vm.$set(\n value,\n \"value\",\n $$v\n )\n },\n expression:\n \"value['value']\",\n },\n }),\n ]\n },\n proxy: true,\n }\n : Object.keys(\n _vm.attributesChoices\n ).includes(key)\n ? {\n key: \"append\",\n fn: function () {\n return [\n _c(\"MenuSelector\", {\n attrs: {\n items:\n _vm\n .attributesChoices[\n key\n ],\n },\n model: {\n value: value[\"value\"],\n callback: function (\n $$v\n ) {\n _vm.$set(\n value,\n \"value\",\n $$v\n )\n },\n expression:\n \"value['value']\",\n },\n }),\n ]\n },\n proxy: true,\n }\n : null,\n _vm.showDeleteOption\n ? {\n key: \"prepend\",\n fn: function () {\n return [\n _c(\n \"v-btn\",\n {\n attrs: {\n icon: \"\",\n \"x-small\": \"\",\n disabled:\n _vm.attributeNonDeletable(\n key\n ),\n color: \"error\",\n },\n on: {\n click: () =>\n _vm.deleteField(\n key\n ),\n },\n },\n [\n _c(\"v-icon\", [\n _vm._v(\n \"fas fa-trash small\"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n }\n : null,\n ],\n null,\n true\n ),\n model: {\n value: value[\"value\"],\n callback: function ($$v) {\n _vm.$set(value, \"value\", $$v)\n },\n expression: \"value['value']\",\n },\n })\n }\n ),\n ],\n 2\n ),\n ],\n 1\n )\n }),\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-row\",\n [\n _c(\"v-text-field\", {\n attrs: {\n label: _vm.$gettext(\"add field\"),\n placeholder: _vm.$gettext(\"new field name\"),\n filled: \"\",\n rules: _vm.rules.newField,\n },\n on: {\n keydown: function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n )\n return null\n $event.stopPropagation()\n return _vm.addField.apply(null, arguments)\n },\n wheel: function ($event) {\n return $event.target.blur()\n },\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"append-outer\",\n fn: function () {\n return [\n _c(\n \"v-btn\",\n {\n staticClass: \"text--primary\",\n attrs: {\n color: \"primary\",\n fab: \"\",\n \"x-small\": \"\",\n },\n on: { click: _vm.addField },\n },\n [_c(\"v-icon\", [_vm._v(\"fas fa-plus\")])],\n 1\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 941361224\n ),\n model: {\n value: _vm.newFieldName,\n callback: function ($$v) {\n _vm.newFieldName = $$v\n },\n expression: \"newFieldName\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n [\"cloneTrip\"].includes(_vm.action)\n ? _c(\n \"v-card-text\",\n [\n _c(\"v-text-field\", {\n attrs: { label: _vm.$gettext(\"New name\") },\n model: {\n value: _vm.cloneName,\n callback: function ($$v) {\n _vm.cloneName = $$v\n },\n expression: \"cloneName\",\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _vm.editForm\n ? _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", \"x-small\": \"\" },\n on: { click: () => (_vm.showHint = !_vm.showHint) },\n },\n [\n _c(\"v-icon\", [\n _vm._v(\"far fa-question-circle small\"),\n ]),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.editForm\n ? _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", \"x-small\": \"\" },\n on: { click: _vm.ToggleDeleteOption },\n },\n [\n _vm.showDeleteOption\n ? _c(\"v-icon\", [\n _vm._v(\n \"\\n fas fa-minus-circle fa-rotate-90\\n \"\n ),\n ])\n : _c(\"v-icon\", [\n _vm._v(\n \"\\n fas fa-minus-circle\\n \"\n ),\n ]),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", text: \"\" },\n on: { click: _vm.cancelAction },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"success\", text: \"\" },\n on: { click: _vm.applyAction },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Save\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { \"max-width\": \"300\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.duplicate()\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancelClone.apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.cloneDialog,\n callback: function ($$v) {\n _vm.cloneDialog = $$v\n },\n expression: \"cloneDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [\n _c(\"span\", { staticClass: \"text-h5\" }, [\n _vm._v(_vm._s(_vm.$gettext(\"Duplicate and reverse\"))),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"text-h5\" }, [\n _vm._v(_vm._s(_vm.message + \" ?\")),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\"v-text-field\", {\n attrs: { label: _vm.$gettext(\"New name\") },\n model: {\n value: _vm.cloneName,\n callback: function ($$v) {\n _vm.cloneName = $$v\n },\n expression: \"cloneName\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n { style: { textAlign: \"center\", color: \"red\" } },\n [_vm._v(\"\\n \" + _vm._s(_vm.errorMessage) + \"\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", text: \"\" },\n on: { click: _vm.cancelClone },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"green darken-1\", text: \"\" },\n on: {\n click: function ($event) {\n return _vm.duplicate()\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Save\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"SidePanel\", {\n attrs: {\n \"selected-trips\": _vm.selectedTrips,\n \"selectedr-group\": _vm.selectedrGroup,\n },\n on: {\n \"update-tripList\": _vm.updateSelectedTrips,\n confirmChanges: _vm.confirmChanges,\n abortChanges: _vm.abortChanges,\n deleteButton: _vm.deleteButton,\n cloneButton: _vm.cloneButton,\n propertiesButton: _vm.actionClick,\n \"change-mode\": (e) => (_vm.mode = e),\n },\n }),\n _vm._v(\" \"),\n _c(\"Map\", {\n ref: \"mapref\",\n attrs: { \"selected-trips\": _vm.selectedTrips, mode: _vm.mode },\n on: { clickFeature: _vm.actionClick },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n {\n class: _vm.showLeftPanel ? \"left-panel elevation-4\" : \"left-panel-close\",\n style: { width: _vm.showLeftPanel ? \"400px\" : \"0px\" },\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"left-panel-toggle-btn elevation-4\",\n on: {\n click: function ($event) {\n return _vm.$store.commit(\"changeLeftPanel\")\n },\n },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\", color: \"secondary\" } }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.showLeftPanel\n ? \"fas fa-chevron-left\"\n : \"fas fa-chevron-right\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showLeftPanelContent,\n expression: \"showLeftPanelContent\",\n },\n ],\n ref: \"leftPanel\",\n staticClass: \"left-panel-content\",\n attrs: { id: \"left-panel\" },\n },\n [\n _c(\"div\", [\n _c(\n \"div\",\n {\n style: {\n \"margin-top\": \"20px\",\n \"margin-bottom\": \"20px\",\n \"margin-right\": \"20px\",\n },\n },\n [\n _c(\n \"v-tabs\",\n {\n attrs: {\n \"background-color\": \"secondary\",\n dark: \"\",\n grow: \"\",\n },\n model: {\n value: _vm.tab,\n callback: function ($$v) {\n _vm.tab = $$v\n },\n expression: \"tab\",\n },\n },\n [\n _c(\"v-tab\", [_vm._v(_vm._s(_vm.$gettext(\"PT\")))]),\n _vm._v(\" \"),\n _c(\"v-tab\", [_vm._v(_vm._s(_vm.$gettext(\"Road\")))]),\n _vm._v(\" \"),\n _c(\"v-tab\", [_vm._v(_vm._s(_vm.$gettext(\"OD\")))]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"LinksSidePanel\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.tab === 0,\n expression: \"tab===0\",\n },\n ],\n attrs: {\n height: _vm.windowHeight,\n \"selected-trips\": _vm.selectedTrips,\n },\n on: {\n \"update-tripList\": (e) =>\n _vm.$emit(\"update-tripList\", {\n type: \"links\",\n data: e,\n }),\n confirmChanges: (e) => _vm.$emit(\"confirmChanges\", e),\n abortChanges: (e) => _vm.$emit(\"abortChanges\", e),\n cloneButton: (e) => _vm.$emit(\"cloneButton\", e),\n deleteButton: (e) => _vm.$emit(\"deleteButton\", e),\n propertiesButton: (e) => _vm.$emit(\"propertiesButton\", e),\n },\n }),\n _vm._v(\" \"),\n _c(\"RoadSidePanel\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.tab === 1,\n expression: \"tab===1\",\n },\n ],\n attrs: {\n height: _vm.windowHeight,\n \"selectedr-goup\": _vm.selectedrGroup,\n },\n on: {\n \"update-tripList\": (e) =>\n _vm.$emit(\"update-tripList\", {\n type: \"rlinks\",\n data: e,\n }),\n deleteButton: (e) => _vm.$emit(\"deleteButton\", e),\n propertiesButton: (e) => _vm.$emit(\"propertiesButton\", e),\n },\n }),\n _vm._v(\" \"),\n _c(\"ODSidePanel\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.tab === 2,\n expression: \"tab===2\",\n },\n ],\n attrs: { height: _vm.windowHeight },\n on: {\n deleteButton: (e) => _vm.$emit(\"deleteButton\", e),\n propertiesButton: (e) => _vm.$emit(\"propertiesButton\", e),\n },\n }),\n ],\n 1\n ),\n ]),\n ]\n ),\n ]),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"v-card-title\",\n { staticClass: \"white--text secondary\" },\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n return _vm.showAll()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.tripList == _vm.tripId\n ? \"fa-eye fa\"\n : \"fa-eye-slash fa\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.tripList == _vm.tripId\n ? _vm.$gettext(\"Hide All\")\n : _vm.$gettext(\"Show All\")\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: {\n icon: \"\",\n disabled:\n _vm.tripList.length === 0 ? true : false,\n },\n on: {\n click: function ($event) {\n return _vm.propertiesButton(_vm.tripList)\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\"\\n fas fa-list\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Edit Visibles Properties\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"span\", { style: { color: \"white\" } }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"Lines\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"open-on-hover\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\", dark: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"fa-solid fa-download\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export All\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"visibles\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export Only Visible\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n {\n staticClass: \"mx-auto scrollable\",\n attrs: {\n \"max-width\": \"100%\",\n \"min-width\": \"100%\",\n height: _vm.height,\n },\n },\n [\n _c(\n \"v-list-item\",\n [\n _c(\"v-select\", {\n attrs: {\n items: _vm.filterChoices,\n \"prepend-icon\": \"fas fa-filter\",\n label: _vm.$gettext(\"filter\"),\n \"item-color\": \"secondarydark\",\n color: \"secondarydark\",\n },\n model: {\n value: _vm.vmodelSelectedFilter,\n callback: function ($$v) {\n _vm.vmodelSelectedFilter = $$v\n },\n expression: \"vmodelSelectedFilter\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm._l(_vm.classifiedTripId, function (value, key) {\n return _c(\n \"v-list-group\",\n {\n key: String(value.name) + String(key),\n attrs: {\n color: \"secondarydark\",\n value: false,\n \"no-action\": \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function () {\n return [\n _c(\n \"v-list-item-action\",\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return _vm.showGroup(\n value.tripId\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n staticClass:\n \"list-item-icon\",\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n value.tripId.some(\n (val) =>\n _vm.tripList.includes(\n val\n )\n )\n ? \"fa-eye fa\"\n : \"fa-eye-slash fa\"\n ) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n value.tripId.some((val) =>\n _vm.tripList.includes(val)\n )\n ? _vm.$gettext(\"Hide All\")\n : _vm.$gettext(\"Show All\")\n ) +\n \"\\n \"\n ),\n ]),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _c(\"strong\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n value.name == \"undefined\"\n ? _vm.$gettext(value.name)\n : value.name\n ) +\n \"\\n \"\n ),\n ]),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n _vm.editorTrip != null\n ? true\n : false,\n },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return _vm.propertiesButton(\n value.tripId\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n { attrs: { color: \"regular\" } },\n [\n _vm._v(\n \"\\n fas fa-list\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$gettext(\"Edit Group Properties\"))\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: _vm.editorTrip\n ? true\n : false,\n },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return _vm.deleteButton({\n trip: value.tripId,\n message: value.name,\n action: \"deleteTrip\",\n })\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n color: \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-trash\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Delete Group\"))),\n ]),\n ]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"v-virtual-scroll\", {\n attrs: {\n items: value.tripId,\n \"item-height\": 45,\n height: Math.min(\n _vm.height - 220,\n 45 * value.tripId.length + 3\n ),\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function ({ item }) {\n return [\n _c(\n \"v-list-item\",\n { key: item, staticClass: \"pl-2\" },\n [\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n staticClass: \"pl-2\",\n attrs: {\n \"on-icon\": \"fa-eye fa\",\n \"off-icon\": \"fa-eye-slash fa\",\n color: \"primary\",\n value: item,\n size: \"10\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.tripList,\n callback: function ($$v) {\n _vm.tripList = $$v\n },\n expression: \"tripList\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: {\n right: \"\",\n \"open-delay\": \"300\",\n \"content-class\": \"custom-tooltip\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [\n item == _vm.editorTrip\n ? _c(\n \"v-list-item-title\",\n _vm._g({}, on),\n [\n _c(\"strong\", [\n _vm._v(_vm._s(item)),\n ]),\n ]\n )\n : _c(\n \"v-list-item-title\",\n _vm._g({}, on),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(item))]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n (item !=\n _vm.editorTrip) &\n (_vm.editorTrip !=\n null)\n ? true\n : false,\n },\n on: {\n click: function (\n $event\n ) {\n return _vm.editButton(\n item\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n color:\n item == _vm.editorTrip\n ? \"regular\"\n : \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-pen\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Edit Line\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n (item !=\n _vm.editorTrip) &\n (_vm.editorTrip !=\n null)\n ? true\n : false,\n },\n on: {\n click: function (\n $event\n ) {\n return _vm.propertiesButton(\n item\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n color:\n item == _vm.editorTrip\n ? \"regular\"\n : \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-list\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.$gettext(\"Edit Line Properties\")\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n (item !=\n _vm.editorTrip) &\n (_vm.editorTrip !=\n null)\n ? true\n : false,\n },\n on: {\n click: function (\n $event\n ) {\n return _vm.cloneButton(\n {\n trip: item,\n message: item,\n }\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n color:\n item == _vm.editorTrip\n ? \"regular\"\n : \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-clone\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Duplicate\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: _vm.editorTrip\n ? true\n : false,\n },\n on: {\n click: function (\n $event\n ) {\n return _vm.deleteButton(\n {\n trip: item,\n message: item,\n action:\n \"deleteTrip\",\n }\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n color: \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-trash\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$gettext(\"Delete Line\"))\n ),\n ]),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n }),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { staticClass: \"mx-auto\" },\n [\n (_vm.editorTrip ? true : false)\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { right: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"mx-2\",\n attrs: {\n color: _vm.$store.getters.anchorMode\n ? \"grey\"\n : \"regular\",\n },\n on: {\n click: function ($event) {\n return _vm.$store.commit(\n \"changeAnchorMode\"\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fas fa-anchor\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n false,\n 3833012906\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \" \" + _vm._s(_vm.$gettext(\"Edit Line geometry\")) + \" \"\n ),\n _c(\"b\", [_vm._v(\"(CTRL)\")]),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n on: {\n click: function ($event) {\n return _vm.$emit(\"abortChanges\")\n },\n },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\", left: \"\" } }, [\n _vm._v(\"\\n fas fa-times-circle\\n \"),\n ]),\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Abort\")) +\n \"\\n \"\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: {\n click: function ($event) {\n return _vm.$emit(\"confirmChanges\")\n },\n },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\", left: \"\" } }, [\n _vm._v(\"\\n fas fa-save\\n \"),\n ]),\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Confirm\")) +\n \"\\n \"\n ),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.editorTrip ? false : true,\n expression: \"editorTrip ? false: true\",\n },\n ],\n },\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"text--primary\",\n attrs: {\n color: \"primary\",\n fab: \"\",\n small: \"\",\n },\n on: { click: _vm.createNewLine },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"fas fa-plus\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.$gettext(\"Create new Line\")))]),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"290\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n _vm.$emit(\"confirmChanges\")\n _vm.showDialog = !_vm.showDialog\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n _vm.showDialog = false\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Save Changes?\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\", left: \"\" },\n on: {\n click: function ($event) {\n _vm.showDialog = false\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: {\n click: function ($event) {\n _vm.$emit(\"abortChanges\")\n _vm.showDialog = !_vm.showDialog\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"No\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: {\n click: function ($event) {\n _vm.$emit(\"confirmChanges\")\n _vm.showDialog = !_vm.showDialog\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Yes\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinksSidePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinksSidePanel.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinksSidePanel.vue?vue&type=style&index=0&id=61e624f6&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinksSidePanel.vue?vue&type=style&index=0&id=61e624f6&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LinksSidePanel.vue?vue&type=template&id=61e624f6&scoped=true&\"\nimport script from \"./LinksSidePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./LinksSidePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LinksSidePanel.vue?vue&type=style&index=0&id=61e624f6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61e624f6\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"v-card-title\",\n { staticClass: \"white--text secondary\" },\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n return _vm.showAll()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.tripList.length > 0\n ? \"fa-eye fa\"\n : \"fa-eye-slash fa\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.tripList.length > 0\n ? _vm.$gettext(\"Hide All\")\n : _vm.$gettext(\"Show All\")\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: {\n icon: \"\",\n disabled:\n _vm.tripList.length === 0 ? true : false,\n },\n on: {\n click: function ($event) {\n return _vm.editVisible()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\"\\n fas fa-list\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Edit Visibles Properties\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"span\", { style: { color: \"white\" } }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"Roads\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"open-on-hover\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\", dark: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"fa-solid fa-download\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"all\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export All\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"visible\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export Only Visible\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n {\n staticClass: \"mx-auto scrollable\",\n attrs: {\n \"max-width\": \"100%\",\n \"min-width\": \"100%\",\n height: _vm.height,\n },\n },\n [\n _c(\n \"v-list-item\",\n [\n _c(\"v-select\", {\n attrs: {\n items: _vm.filterChoices,\n \"prepend-icon\": \"fas fa-filter\",\n label: _vm.$gettext(\"filter\"),\n \"item-color\": \"secondarydark\",\n color: \"secondarydark\",\n },\n model: {\n value: _vm.vmodelSelectedFilter,\n callback: function ($$v) {\n _vm.vmodelSelectedFilter = $$v\n },\n expression: \"vmodelSelectedFilter\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-virtual-scroll\", {\n attrs: {\n items: _vm.filteredCat,\n \"item-height\": 45,\n height: _vm.height - 71,\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function ({ item }) {\n return [\n _c(\n \"v-list-item\",\n {\n key: _vm.vmodelSelectedFilter.concat(item),\n staticClass: \"pl-2\",\n },\n [\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n staticClass: \"pl-2\",\n attrs: {\n \"on-icon\": \"fa-eye fa\",\n \"off-icon\": \"fa-eye-slash fa\",\n color: \"primary\",\n value: item,\n size: \"10\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.tripList,\n callback: function ($$v) {\n _vm.tripList = $$v\n },\n expression: \"tripList\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" + _vm._s(item) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: false,\n },\n on: {\n click: function ($event) {\n return _vm.propertiesButton(\n item\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n { attrs: { color: \"regular\" } },\n [\n _vm._v(\n \"\\n fas fa-list\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$gettext(\"Edit Line Properties\"))\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: false,\n },\n on: {\n click: function ($event) {\n return _vm.deleteButton({\n trip: item,\n group: _vm.selectedFilter,\n message: item,\n action: \"deleterGroup\",\n })\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n color: \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-trash\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Delete Line\"))),\n ]),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n }),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { staticClass: \"mx-auto\" },\n [\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { right: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"mx-2\",\n attrs: {\n color: _vm.$store.getters.anchorMode\n ? \"grey\"\n : \"regular\",\n },\n on: {\n click: function ($event) {\n return _vm.$store.commit(\n \"changeAnchorMode\"\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fas fa-anchor\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \" \" + _vm._s(_vm.$gettext(\"Edit Line geometry\")) + \" \"\n ),\n _c(\"b\", [_vm._v(\"(CTRL)\")]),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { right: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"mx-2\",\n attrs: {\n disabled: !_vm.$store.getters.hasCycleway,\n color: _vm.$store.getters.cyclewayMode\n ? \"green\"\n : \"regular\",\n },\n on: {\n click: function ($event) {\n return _vm.$store.commit(\n \"changeCyclewayMode\"\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fas fa-biking\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$gettext(\n \"Show Cycleway direction instead of road\"\n )\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadSidePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadSidePanel.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadSidePanel.vue?vue&type=style&index=0&id=0e528228&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadSidePanel.vue?vue&type=style&index=0&id=0e528228&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RoadSidePanel.vue?vue&type=template&id=0e528228&scoped=true&\"\nimport script from \"./RoadSidePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./RoadSidePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RoadSidePanel.vue?vue&type=style&index=0&id=0e528228&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e528228\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"v-card-title\",\n { staticClass: \"white--text secondary\" },\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n return _vm.showAll()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.vmodelSelectedCat.length > 0\n ? \"fa-eye fa\"\n : \"fa-eye-slash fa\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.vmodelSelectedCat.length > 0\n ? _vm.$gettext(\"Hide All\")\n : _vm.$gettext(\"Show All\")\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: {\n icon: \"\",\n disabled:\n _vm.vmodelSelectedCat.length === 0\n ? true\n : false,\n },\n on: {\n click: function ($event) {\n return _vm.editVisible()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\"\\n fas fa-list\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Edit Visibles Properties\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"span\", { style: { color: \"white\" } }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"OD\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"open-on-hover\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\", dark: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"fa-solid fa-download\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"all\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export All\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"visible\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export Only Visible\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n {\n staticClass: \"mx-auto scrollable\",\n attrs: {\n \"max-width\": \"100%\",\n \"min-width\": \"100%\",\n height: _vm.height,\n },\n },\n [\n _c(\n \"v-list-item\",\n [\n _c(\"v-select\", {\n attrs: {\n items: _vm.filterChoices,\n \"prepend-icon\": \"fas fa-filter\",\n label: _vm.$gettext(\"filter\"),\n \"item-color\": \"secondarydark\",\n color: \"secondarydark\",\n },\n model: {\n value: _vm.vmodelSelectedFilter,\n callback: function ($$v) {\n _vm.vmodelSelectedFilter = $$v\n },\n expression: \"vmodelSelectedFilter\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-virtual-scroll\", {\n attrs: {\n items: _vm.filteredCat,\n \"item-height\": 45,\n height: _vm.height - 71,\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function ({ item }) {\n return [\n _c(\n \"v-list-item\",\n {\n key: _vm.vmodelSelectedFilter.concat(item),\n staticClass: \"pl-2\",\n },\n [\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n staticClass: \"pl-2\",\n attrs: {\n \"on-icon\": \"fa-eye fa\",\n \"off-icon\": \"fa-eye-slash fa\",\n color: \"primary\",\n value: item,\n size: \"10\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.vmodelSelectedCat,\n callback: function ($$v) {\n _vm.vmodelSelectedCat = $$v\n },\n expression: \"vmodelSelectedCat\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" + _vm._s(item) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: false,\n },\n on: {\n click: function ($event) {\n return _vm.propertiesButton(\n item\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n { attrs: { color: \"regular\" } },\n [\n _vm._v(\n \"\\n fas fa-list\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$gettext(\"Edit Line Properties\"))\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: false,\n },\n on: {\n click: function ($event) {\n return _vm.deleteButton({\n trip: item,\n group: _vm.selectedFilter,\n message: item,\n action: \"deleteODGroup\",\n })\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n color: \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-trash\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Delete Line\"))),\n ]),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n }),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { staticClass: \"mx-auto\" },\n [_c(\"v-list-item\", [_c(\"v-spacer\")], 1)],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODSidePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODSidePanel.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODSidePanel.vue?vue&type=style&index=0&id=56780b52&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODSidePanel.vue?vue&type=style&index=0&id=56780b52&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ODSidePanel.vue?vue&type=template&id=56780b52&scoped=true&\"\nimport script from \"./ODSidePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./ODSidePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ODSidePanel.vue?vue&type=style&index=0&id=56780b52&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56780b52\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidePanel.vue?vue&type=script&lang=js&\"","\n\n\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidePanel.vue?vue&type=style&index=0&id=5064ebfe&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidePanel.vue?vue&type=style&index=0&id=5064ebfe&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SidePanel.vue?vue&type=template&id=5064ebfe&scoped=true&\"\nimport script from \"./SidePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./SidePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SidePanel.vue?vue&type=style&index=0&id=5064ebfe&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5064ebfe\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"MglMap\",\n {\n key: _vm.mapStyle,\n style: { width: \"100%\" },\n attrs: {\n \"access-token\": _vm.mapboxPublicKey,\n \"map-style\": _vm.mapStyle,\n center: _vm.$store.getters.mapCenter,\n zoom: _vm.$store.getters.mapZoom,\n },\n on: {\n load: _vm.onMapLoaded,\n mousemove: _vm.draw,\n mouseout: function ($event) {\n return _vm.resetDraw()\n },\n click: _vm.addPoint,\n mouseup: _vm.rightClickMap,\n },\n },\n [\n _vm.mapIsLoaded ? [_c(\"Settings\")] : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded & (_vm.rasterFiles.length > 0)\n ? [\n _c(\"LayerSelector\", {\n attrs: {\n choices: _vm.rasterFiles,\n \"available-layers\": _vm.availableLayers,\n },\n }),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"MglScaleControl\", { attrs: { position: \"bottom-right\" } }),\n _vm._v(\" \"),\n _c(\"MglNavigationControl\", { attrs: { position: \"bottom-right\" } }),\n _vm._v(\" \"),\n _vm._l(_vm.rasterFiles, function (file) {\n return _c(\n \"div\",\n { key: file.name },\n [\n _vm.mapIsLoaded &&\n _vm.visibleRasters.includes(file.name) &&\n _vm.availableLayers.includes(file.layer)\n ? [\n _c(\"StaticLayer\", {\n attrs: {\n preset: file,\n map: _vm.map,\n order: _vm.visibleRasters.indexOf(file.name),\n },\n }),\n ]\n : _vm._e(),\n ],\n 2\n )\n }),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _c(\n \"RoadLinks\",\n _vm._g(\n {\n ref: \"roadref\",\n attrs: {\n map: _vm.map,\n \"is-editor-mode\": _vm.isEditorMode,\n \"is-road-mode\": _vm.mode === \"road\",\n \"anchor-mode\": _vm.anchorMode,\n },\n },\n _vm.isEditorMode\n ? {}\n : _vm.anchorMode\n ? { clickFeature: _vm.clickFeature }\n : {\n onHover: _vm.onHoverRoad,\n offHover: _vm.offHover,\n clickFeature: _vm.clickFeature,\n }\n )\n ),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _c(\"StaticLinks\", {\n attrs: {\n map: _vm.map,\n \"showed-trips\": _vm.selectedTrips,\n \"is-editor-mode\": _vm.isEditorMode,\n },\n on: { rightClick: (e) => _vm.$emit(\"clickFeature\", e) },\n }),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _c(\n \"EditorLinks\",\n _vm._g(\n { attrs: { map: _vm.map, \"anchor-mode\": _vm.anchorMode } },\n _vm.anchorMode\n ? { clickFeature: _vm.clickFeature }\n : {\n onHover: _vm.onHover,\n offHover: _vm.offHover,\n clickFeature: _vm.clickFeature,\n }\n )\n ),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _c(\"ODMap\", {\n attrs: {\n map: _vm.map,\n \"is-editor-mode\": _vm.isEditorMode,\n \"is-o-d-mode\": _vm.mode === \"od\",\n },\n on: { clickFeature: _vm.clickFeature },\n }),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _vm.drawMode\n ? _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"drawLink\",\n source: {\n type: \"geojson\",\n data: _vm.drawLink,\n buffer: 0,\n generateId: true,\n },\n \"layer-id\": \"drawLink\",\n layer: {\n type: \"line\",\n minzoom: 2,\n paint: {\n \"line-opacity\": 1,\n \"line-color\":\n _vm.$vuetify.theme.currentTheme.linksprimary,\n \"line-width\": [\n \"case\",\n [\"boolean\", _vm.connectedDrawLink, false],\n 5,\n 3,\n ],\n \"line-dasharray\": [\n \"case\",\n [\"boolean\", _vm.connectedDrawLink, false],\n [\"literal\", []],\n [\"literal\", [0, 2, 4]],\n ],\n },\n },\n },\n })\n : _vm._e(),\n ]\n : _vm._e(),\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"v-menu\",\n {\n attrs: {\n \"close-on-content-click\": false,\n \"close-on-click\": false,\n origin: \"top right\",\n transition: \"scale-transition\",\n \"position-y\": 30,\n \"nudge-width\": 200,\n \"offset-x\": \"\",\n \"offset-y\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n { staticClass: \"setting\", attrs: { fab: \"\", small: \"\" } },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { color: \"regular\" } }, [\n _vm._v(\"\\n fa-solid fa-cog\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.show,\n callback: function ($$v) {\n _vm.show = $$v\n },\n expression: \"show\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n {\n class: { shake: _vm.shake },\n attrs: { \"max-width\": 300 },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.submit.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancel.apply(null, arguments)\n },\n ],\n },\n },\n [\n _c(\"v-card-title\", { staticClass: \"subtitle\" }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"Settings\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\n \"v-form\",\n { ref: \"form\", attrs: { \"lazy-validation\": \"\" } },\n [\n _c(\n \"v-container\",\n [\n _c(\n \"v-col\",\n [\n _c(\"v-text-field\", {\n attrs: {\n type: _vm.linkSpeed.type,\n label: _vm.$gettext(_vm.linkSpeed.name),\n suffix: _vm.linkSpeed.units,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.linkSpeed.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n rules: _vm.rules,\n required: \"\",\n },\n on: { wheel: () => {} },\n model: {\n value: _vm.linkSpeed.value,\n callback: function ($$v) {\n _vm.$set(_vm.linkSpeed, \"value\", $$v)\n },\n expression: \"linkSpeed.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: _vm.roadSpeed.type,\n label: _vm.$gettext(_vm.roadSpeed.name),\n suffix: _vm.roadSpeed.units,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.roadSpeed.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n rules: _vm.rules,\n required: \"\",\n },\n on: { wheel: () => {} },\n model: {\n value: _vm.roadSpeed.value,\n callback: function ($$v) {\n _vm.$set(_vm.roadSpeed, \"value\", $$v)\n },\n expression: \"roadSpeed.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-select\", {\n attrs: {\n items: _vm.linksPopupContent.choices,\n label: _vm.$gettext(_vm.linksPopupContent.name),\n hint: _vm.showHint\n ? _vm.$gettext(_vm.linksPopupContent.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n \"menu-props\": { top: true, offsetY: true },\n chips: \"\",\n multiple: \"\",\n },\n model: {\n value: _vm.linksPopupContent.value,\n callback: function ($$v) {\n _vm.$set(_vm.linksPopupContent, \"value\", $$v)\n },\n expression: \"linksPopupContent.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-select\", {\n attrs: {\n items: _vm.roadsPopupContent.choices,\n label: _vm.$gettext(_vm.roadsPopupContent.name),\n hint: _vm.showHint\n ? _vm.$gettext(_vm.roadsPopupContent.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n \"menu-props\": { top: true, offsetY: true },\n chips: \"\",\n multiple: \"\",\n },\n model: {\n value: _vm.roadsPopupContent.value,\n callback: function ($$v) {\n _vm.$set(_vm.roadsPopupContent, \"value\", $$v)\n },\n expression: \"roadsPopupContent.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: _vm.defaultHighway.type,\n label: _vm.$gettext(_vm.defaultHighway.name),\n suffix: _vm.defaultHighway.units,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.defaultHighway.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n rules: _vm.zipRules,\n required: \"\",\n },\n model: {\n value: _vm.defaultHighway.value,\n callback: function ($$v) {\n _vm.$set(_vm.defaultHighway, \"value\", $$v)\n },\n expression: \"defaultHighway.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: _vm.outputName.type,\n label: _vm.$gettext(_vm.outputName.name),\n suffix: _vm.outputName.units,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.outputName.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n rules: _vm.zipRules,\n required: \"\",\n },\n model: {\n value: _vm.outputName.value,\n callback: function ($$v) {\n _vm.$set(_vm.outputName, \"value\", $$v)\n },\n expression: \"outputName.value\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", text: \"\" },\n on: { click: _vm.cancel },\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"Cancel\")) + \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"green darken-1\", text: \"\" },\n on: { click: _vm.submit },\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"Save\")) + \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", small: \"\" },\n on: {\n click: function ($event) {\n _vm.showHint = !_vm.showHint\n },\n },\n },\n [_c(\"v-icon\", [_vm._v(\"far fa-question-circle small\")])],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=6c428464&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=6c428464&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=6c428464&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=6c428464&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c428464\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"links\",\n source: {\n type: \"geojson\",\n data: _vm.visibleLinks,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"links\",\n layer: {\n interactive: true,\n type: \"line\",\n minzoom: 1,\n maxzoom: 18,\n paint: {\n \"line-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n \"line-opacity\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n 0.1,\n 1,\n ],\n \"line-width\": [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 3,\n ],\n 3,\n ],\n },\n\n layout: {\n \"line-sort-key\": [\"to-number\", [\"get\", \"route_width\"]],\n \"line-cap\": \"round\",\n },\n },\n },\n },\n _vm.isEditorMode\n ? {}\n : {\n mouseenter: _vm.enterLink,\n mouseleave: _vm.leaveLink,\n contextmenu: _vm.editLineProperties,\n }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"nodes\",\n source: {\n type: \"geojson\",\n data: _vm.visibleNodes,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"nodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: 12,\n maxzoom: 18,\n paint: {\n \"circle-color\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n _vm.$vuetify.theme.currentTheme.mediumgrey,\n _vm.$vuetify.theme.currentTheme.accent,\n ],\n \"circle-stroke-color\": _vm.$vuetify.theme.currentTheme.white,\n \"circle-stroke-width\": 1,\n \"circle-radius\": [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 3,\n ],\n 3,\n ],\n },\n },\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StaticLinks.vue?vue&type=template&id=661f6889&scoped=true&\"\nimport script from \"./StaticLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./StaticLinks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"661f6889\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"editorLinks\",\n source: {\n type: \"geojson\",\n data: _vm.$store.getters.editorLinks,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"editorLinks\",\n layer: {\n type: \"line\",\n minzoom: 2,\n paint: {\n \"line-color\": [\n \"case\",\n [\"boolean\", _vm.anchorMode, false],\n _vm.$vuetify.theme.currentTheme.linkssecondary,\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n \"line-width\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 12,\n 5,\n ],\n \"line-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 6,\n 0,\n ],\n },\n },\n },\n on: {\n click: _vm.selectClick,\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n },\n },\n _vm.anchorMode ? {} : { contextmenu: _vm.linkRightClick }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglImageLayer\", {\n attrs: {\n \"source-id\": \"editorLinks\",\n type: \"symbol\",\n source: \"editorLinks\",\n \"layer-id\": \"arrow-layer\",\n layer: {\n type: \"symbol\",\n minzoom: 5,\n layout: {\n \"symbol-placement\": \"line\",\n \"symbol-spacing\": 30,\n \"icon-ignore-placement\": true,\n \"icon-image\": \"arrow\",\n \"icon-size\": 0.5,\n \"icon-rotate\": 90,\n },\n paint: {\n \"icon-color\": [\n \"case\",\n [\"boolean\", _vm.anchorMode, false],\n _vm.$vuetify.theme.currentTheme.linkssecondary,\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n },\n },\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"editorNodes\",\n source: {\n type: \"geojson\",\n data: _vm.$store.getters.editorNodes,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"editorNodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: 2,\n paint: {\n \"circle-color\": _vm.$vuetify.theme.currentTheme.accent,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 16,\n 8,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n },\n },\n },\n on: {\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n },\n },\n _vm.anchorMode\n ? {}\n : { click: _vm.selectClick, contextmenu: _vm.contextMenuNode }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"anchorNodes\",\n source: {\n type: \"geojson\",\n data: _vm.anchorNodes,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"anchorNodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: 2,\n paint: {\n \"circle-color\": \"#ffffff\",\n \"circle-opacity\": 0.5,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 10,\n 5,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n \"circle-stroke-color\": \"#2C3E4E\",\n \"circle-stroke-width\": 2,\n },\n },\n },\n on: {\n click: _vm.selectClick,\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n contextmenu: _vm.contextMenuNode,\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglPopup\",\n {\n attrs: {\n \"close-button\": false,\n showed: _vm.popupEditor.showed,\n coordinates: _vm.popupEditor.coordinates,\n },\n on: {\n close: function ($event) {\n _vm.popupEditor.showed = false\n },\n },\n },\n [\n _c(\"span\", [\n _c(\"h3\", [_vm._v(_vm._s(_vm.popupEditor.content))]),\n _vm._v(\" \"),\n _c(\"hr\"),\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.hoveredStateId?.layerId == \"editorLinks\"\n ? _vm.$gettext(\"Left click to add a stop\")\n : _vm.$gettext(\"Hold left click to drag\")\n ) +\n \"\\n \"\n ),\n _c(\"hr\"),\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.hoveredStateId?.layerId == \"editorLinks\"\n ? _vm.$gettext(\"Right click to edit properties\")\n : _vm.$gettext(\"Right click for context menu\")\n ) +\n \"\\n \"\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"MglPopup\",\n {\n attrs: {\n \"close-button\": false,\n showed: _vm.contextMenu.showed,\n coordinates: _vm.contextMenu.coordinates,\n },\n on: {\n close: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"span\",\n {\n on: {\n mouseleave: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"v-list\",\n { attrs: { dense: \"\", flat: \"\" } },\n [\n _c(\n \"v-list-item-group\",\n _vm._l(_vm.contextMenu.actions, function (action) {\n return _c(\n \"v-list-item\",\n { key: action.id },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { outlined: \"\", small: \"\" },\n on: {\n click: function ($event) {\n return _vm.actionClick({\n action: action,\n feature: _vm.contextMenu.feature,\n coordinates:\n _vm.contextMenu.coordinates,\n })\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(action)) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditorLinks.vue?vue&type=template&id=02bf194d&scoped=true&\"\nimport script from \"./EditorLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorLinks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02bf194d\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"rlinks\",\n source: {\n type: \"geojson\",\n data: _vm.isRoadMode ? _vm.renderedrLinks : _vm.rlinks,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"rlinks\",\n layer: {\n interactive: true,\n type: \"line\",\n minzoom: _vm.minZoom.links,\n paint: {\n \"line-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n \"line-opacity\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n 0.3,\n 1,\n ],\n \"line-width\": [\n \"*\",\n [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 3,\n 1,\n ],\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n \"line-blur\": [\n \"*\",\n [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 1,\n 0,\n ],\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n },\n layout: {\n \"line-sort-key\": [\"to-number\", [\"get\", \"route_width\"]],\n },\n },\n },\n },\n _vm.isEditorMode\n ? {}\n : {\n mouseenter: _vm.onCursor,\n mouseleave: _vm.offCursor,\n click: _vm.selectClick,\n contextmenu: _vm.linkRightClick,\n }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglImageLayer\", {\n attrs: {\n \"source-id\": \"rlinks\",\n type: \"symbol\",\n source: \"rlinks\",\n \"layer-id\": \"arrow-rlinks\",\n layer: {\n type: \"symbol\",\n minzoom: _vm.minZoom.rendered,\n layout: {\n \"symbol-placement\": \"line\",\n \"symbol-spacing\": 200,\n \"icon-ignore-placement\": true,\n \"icon-image\": \"arrow\",\n \"icon-size\": _vm.ArrowSizeCondition,\n \"icon-rotate\": _vm.ArrowDirCondition,\n },\n paint: {\n \"icon-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n },\n },\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"rnodes\",\n source: {\n type: \"geojson\",\n data: _vm.isRoadMode ? _vm.renderedrNodes : _vm.rnodes,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"rnodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: _vm.minZoom.rendered,\n paint: {\n \"circle-color\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n _vm.$vuetify.theme.currentTheme.mediumgrey,\n _vm.$vuetify.theme.currentTheme.accent,\n ],\n \"circle-stroke-color\": _vm.$vuetify.theme.currentTheme.white,\n \"circle-stroke-width\": 1,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 14,\n 3,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n },\n },\n },\n },\n _vm.isEditorMode\n ? {}\n : {\n mouseenter: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n contextmenu: _vm.contextMenuNode,\n }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"anchorrNodes\",\n source: {\n type: \"geojson\",\n data: _vm.isRoadMode\n ? _vm.renderedAnchorrNodes\n : _vm.$store.getters.rnodesHeader,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"anchorrNodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: _vm.minZoom.rendered,\n paint: {\n \"circle-color\": \"#ffffff\",\n \"circle-opacity\": 0.5,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 10,\n 5,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n \"circle-stroke-color\": _vm.$vuetify.theme.currentTheme.darkgrey,\n \"circle-stroke-width\": 2,\n },\n },\n },\n on: {\n click: _vm.selectClick,\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n contextmenu: _vm.contextMenuNode,\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglPopup\",\n {\n attrs: {\n \"close-button\": false,\n showed: _vm.contextMenu.showed,\n coordinates: _vm.contextMenu.coordinates,\n },\n on: {\n close: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"span\",\n {\n on: {\n mouseleave: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"v-list\",\n { attrs: { dense: \"\", flat: \"\" } },\n [\n _c(\n \"v-list-item-group\",\n _vm._l(_vm.contextMenu.actions, function (action) {\n return _c(\n \"v-list-item\",\n { key: action.id },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { outlined: \"\", small: \"\" },\n on: {\n click: function ($event) {\n return _vm.actionClick({\n action: action,\n feature: _vm.contextMenu.feature,\n coordinates:\n _vm.contextMenu.coordinates,\n })\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(action)) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoadLinks.vue?vue&type=template&id=5bdbd7bc&scoped=true&\"\nimport script from \"./RoadLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./RoadLinks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bdbd7bc\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"div\",\n { staticClass: \"map-legend\" },\n [\n _c(\"MapLegend\", {\n attrs: {\n \"color-scale\": _vm.colorScale,\n \"display-settings\": _vm.displaySettings,\n \"base-offset\": 350,\n order: _vm.order,\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n [\"MultiPolygon\", \"Polygon\"].includes(_vm.type)\n ? _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": _vm.preset.name + \"-layer\",\n source: {\n type: \"geojson\",\n data: _vm.layer,\n },\n \"layer-id\": _vm.preset.name + \"-layer\",\n layer: {\n interactive: false,\n type: \"fill\",\n minzoom: 5,\n paint: {\n \"fill-color\": [\"get\", \"display_color\"],\n \"fill-opacity\": _vm.opacity / 100,\n },\n },\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.type == \"LineString\"\n ? _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": _vm.preset.name + \"-layer\",\n source: {\n type: \"geojson\",\n data: _vm.layer,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": _vm.preset.name + \"-layer\",\n layer: {\n interactive: true,\n type: \"line\",\n minzoom: 5,\n paint: {\n \"line-color\": [\"get\", \"display_color\"],\n \"line-opacity\": _vm.opacity / 100,\n \"line-offset\": [\n \"*\",\n _vm.offsetValue * 0.5,\n [\"to-number\", [\"get\", \"display_width\"]],\n ],\n\n \"line-width\": [\"get\", \"display_width\"],\n },\n layout: {\n \"line-sort-key\": [\"to-number\", [\"get\", \"display_width\"]],\n \"line-cap\": \"round\",\n },\n },\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.type == \"Point\"\n ? _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": _vm.preset.name + \"-layer\",\n source: {\n type: \"geojson\",\n data: _vm.layer,\n },\n \"layer-id\": _vm.preset.name + \"-layer\",\n layer: {\n interactive: false,\n type: \"circle\",\n minzoom: 5,\n paint: {\n \"circle-color\": [\"get\", \"display_color\"],\n \"circle-radius\": [\"get\", \"display_width\"],\n \"circle-opacity\": _vm.opacity / 100,\n },\n layout: {\n \"circle-sort-key\": [\"to-number\", [\"get\", \"display_width\"]],\n },\n },\n },\n })\n : _vm._e(),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLayer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLayer.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLayer.vue?vue&type=style&index=0&id=7dc7a5bf&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLayer.vue?vue&type=style&index=0&id=7dc7a5bf&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./StaticLayer.vue?vue&type=template&id=7dc7a5bf&scoped=true&\"\nimport script from \"./StaticLayer.vue?vue&type=script&lang=js&\"\nexport * from \"./StaticLayer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StaticLayer.vue?vue&type=style&index=0&id=7dc7a5bf&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7dc7a5bf\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"close-on-content-click\": false,\n \"close-on-click\": true,\n origin: \"top right\",\n transition: \"scale-transition\",\n \"position-y\": 30,\n \"nudge-width\": 200,\n \"offset-x\": \"\",\n \"offset-y\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"layer-button\",\n attrs: { fab: \"\", small: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { color: \"regular\" } }, [\n _vm._v(\"\\n fas fa-layer-group\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.show,\n callback: function ($$v) {\n _vm.show = $$v\n },\n expression: \"show\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { attrs: { \"max-width\": 300 } },\n [\n _c(\"v-card-title\", { staticClass: \"subtitle\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Static Layers\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.choices, function (item, key) {\n return _c(\n \"v-list-item\",\n { key: key },\n [\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n attrs: {\n value: item.name,\n \"off-icon\": !_vm.availableLayers.includes(\n item.layer\n )\n ? \"fas fa-exclamation-triangle\"\n : \"fa-eye-slash fa\",\n \"on-icon\": \"fa-eye fa\",\n disabled: !_vm.availableLayers.includes(item.layer),\n },\n model: {\n value: _vm.selectedLayers,\n callback: function ($$v) {\n _vm.selectedLayers = $$v\n },\n expression: \"selectedLayers\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: {\n top: \"\",\n \"open-delay\": \"300\",\n \"content-class\": \"custom-tooltip\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [\n _c(\n \"v-list-item-title\",\n _vm._g(\n { style: { cursor: \"default\" } },\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.name) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n !_vm.availableLayers.includes(item.layer)\n ? _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.$gettext(\"Data not found: \") + item.layer\n )\n ),\n ])\n : _c(\"span\", [\n _vm._v(\n _vm._s(\n item.displaySettings.selectedFeature +\n \" \" +\n _vm.$gettext(\"from\") +\n \" \" +\n item.layer\n )\n ),\n ]),\n ]\n ),\n ],\n 1\n )\n }),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayerSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayerSelector.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayerSelector.vue?vue&type=style&index=0&id=9ae88e1e&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayerSelector.vue?vue&type=style&index=0&id=9ae88e1e&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LayerSelector.vue?vue&type=template&id=9ae88e1e&scoped=true&\"\nimport script from \"./LayerSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./LayerSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LayerSelector.vue?vue&type=style&index=0&id=9ae88e1e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9ae88e1e\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"od\",\n source: {\n type: \"geojson\",\n data: _vm.layer,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"od\",\n layer: {\n interactive: true,\n type: \"line\",\n minzoom: 1,\n maxzoom: 18,\n paint: {\n \"line-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n \"line-opacity\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n 0.3,\n 1,\n ],\n \"line-width\": [\n \"*\",\n [\"case\", [\"boolean\", [\"feature-state\", \"hover\"], false], 3, 1],\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n \"line-blur\": [\n \"*\",\n [\"case\", [\"boolean\", [\"feature-state\", \"hover\"], false], 1, 0],\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n },\n\n layout: {\n \"line-sort-key\": [\"to-number\", [\"get\", \"route_width\"]],\n \"line-cap\": \"round\",\n },\n },\n },\n on: {\n contextmenu: _vm.linkRightClick,\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n },\n }),\n _vm._v(\" \"),\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"ODNodes\",\n source: {\n type: \"geojson\",\n data: _vm.isODMode\n ? _vm.nodes\n : _vm.$store.getters[\"od/layerHeader\"],\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"ODNodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n paint: {\n \"circle-color\": \"#ffffff\",\n \"circle-opacity\": 0.5,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 10,\n 5,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n \"circle-stroke-color\": _vm.$vuetify.theme.currentTheme.darkgrey,\n \"circle-stroke-width\": 2,\n },\n },\n },\n on: {\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n },\n }),\n _vm._v(\" \"),\n _c(\"MglImageLayer\", {\n attrs: {\n \"source-id\": \"od\",\n type: \"symbol\",\n source: \"od\",\n \"layer-id\": \"arrow-od\",\n layer: {\n type: \"symbol\",\n layout: {\n \"symbol-placement\": \"line\",\n \"symbol-spacing\": 200,\n \"icon-ignore-placement\": true,\n \"icon-image\": \"arrow\",\n \"icon-size\": [\n \"*\",\n 0.2,\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n \"icon-rotate\": 90,\n },\n paint: {\n \"icon-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n },\n },\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglPopup\",\n {\n attrs: {\n \"close-button\": false,\n showed: _vm.contextMenu.showed,\n coordinates: _vm.contextMenu.coordinates,\n },\n on: {\n close: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"span\",\n {\n on: {\n mouseleave: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"v-list\",\n { attrs: { dense: \"\", flat: \"\" } },\n [\n _c(\n \"v-list-item-group\",\n _vm._l(_vm.contextMenu.actions, function (action) {\n return _c(\n \"v-list-item\",\n { key: action.id },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { outlined: \"\", small: \"\" },\n on: {\n click: function ($event) {\n return _vm.actionClick({\n action: action,\n feature: _vm.contextMenu.feature,\n coordinates:\n _vm.contextMenu.coordinates,\n })\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(action)) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ODMap.vue?vue&type=template&id=af4e3bca&scoped=true&\"\nimport script from \"./ODMap.vue?vue&type=script&lang=js&\"\nexport * from \"./ODMap.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"af4e3bca\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=js&\"","\n\n\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=style&index=0&id=66748ace&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=style&index=0&id=66748ace&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Map.vue?vue&type=template&id=66748ace&scoped=true&\"\nimport script from \"./Map.vue?vue&type=script&lang=js&\"\nexport * from \"./Map.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Map.vue?vue&type=style&index=0&id=66748ace&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66748ace\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"v-menu\",\n {\n attrs: {\n top: \"\",\n \"nudge-bottom\": \"105\",\n \"nudge-left\": \"16\",\n \"close-on-content-click\": false,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [_c(\"div\", _vm._g({ style: _vm.swatchStyle }, on))]\n },\n },\n ]),\n model: {\n value: _vm.menu,\n callback: function ($$v) {\n _vm.menu = $$v\n },\n expression: \"menu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-text\",\n { staticClass: \"pa-0\" },\n [\n _c(\"v-color-picker\", {\n attrs: {\n mode: \"hexa\",\n swatches: _vm.swatches,\n \"show-swatches\": \"\",\n flat: \"\",\n },\n model: {\n value: _vm.color,\n callback: function ($$v) {\n _vm.color = $$v\n },\n expression: \"color\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", outlined: \"\" },\n on: { click: _vm.cancel },\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"cancel\")) + \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"green darken-1\", outlined: \"\" },\n on: { click: _vm.updateColor },\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"apply\")) + \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n \n \n \n \n \n \n \n \n\n \n {{ $gettext(\"cancel\") }}\n \n \n {{ $gettext(\"apply\") }}\n \n \n \n \n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ColorPicker.vue?vue&type=template&id=380a869c&scoped=true&v-slot%3Aappend=true&\"\nimport script from \"./ColorPicker.vue?vue&type=script&lang=js&\"\nexport * from \"./ColorPicker.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"380a869c\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"close-delay\": \"100\",\n \"offset-y\": \"\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n {\n attrs: { icon: \"\", color: \"regular\", \"x-small\": \"\" },\n on: {\n click: function ($event) {\n _vm.openMenu = !_vm.openMenu\n },\n },\n },\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.openMenu\n ? \"fas fa-chevron-left\"\n : \"fas fa-chevron-down\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.openMenu,\n callback: function ($$v) {\n _vm.openMenu = $$v\n },\n expression: \"openMenu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n _vm._l(_vm.items, function (val, key) {\n return _c(\n \"v-list-item\",\n {\n key: key,\n class: { \"is-active\": val === _vm.selectedVal },\n on: { click: () => _vm.$emit(\"select\", val) },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\"\\n \" + _vm._s(val) + \"\\n \"),\n ]),\n ],\n 1\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n
\n \n \n\n \n $emit('select',val)\"\n >\n \n {{ val }}\n \n \n \n \n
\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuSelector.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuSelector.vue?vue&type=style&index=0&id=e63b0890&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuSelector.vue?vue&type=style&index=0&id=e63b0890&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./MenuSelector.vue?vue&type=template&id=e63b0890&scoped=true&v-slot%3Aappend=true&\"\nimport script from \"./MenuSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./MenuSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MenuSelector.vue?vue&type=style&index=0&id=e63b0890&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e63b0890\",\n null\n \n)\n\nexport default component.exports","// this file contains Hints on the different editable attributes\n\nconst $gettext = s => s\n\nconst hints = {\n agency_id: $gettext('transit brand or transit agency'),\n direction_id: $gettext(`direction of travel for a trip. used to separate trips by directions.\n ex: 0 - Travel in one direction. 1 - Travel in the opposite direction.`),\n drop_off_type: $gettext(`0 - Regularly scheduled drop off.\n 1 - No drop off available.\n 2 - Must phone agency to arrange drop off.\n 3 - Must coordinate with driver to arrange drop off.`),\n headway: $gettext('Time between departures in seconds'),\n pickup_type: $gettext(`0 - Regularly scheduled pickup.\n 1 - No pickup available.\n 2 - Must phone agency to arrange pickup.\n 3 - Must coordinate with driver to arrange pickup`),\n route_color: $gettext('color to display on the map (i.e. FFFFFF)'),\n route_id: $gettext('Identifies a route. Often a string'),\n route_long_name: $gettext(\"Full name of a route.This name is generally more descriptive\\\n than the route_short_name and often includes the roudefaultAttributeste's destination or stop\"),\n route_short_name: $gettext(`Short name of a route. This will often be a short,\n abstract identifier like \"32\", \"100X\", or \"Green\"`),\n route_type: $gettext(`Indicates the type of transportation used on a route.\n subway, metro, rail, bus, ferry, tram, etc`),\n route_width: $gettext('width to display on the map'),\n time: $gettext('Travel time on the link. set as length / speed when a link is created or edited (seconds)'),\n trip_id: $gettext(`Line (or trip) identifier (i.e. 100 Est).\n Links are group by trip_id in Quetzal-network-editor.`),\n length: $gettext('links geometry linestring length (meters)'),\n highway: $gettext('Main identifier or any kind of road, street or path. ex: (motorway, residential, primary)'),\n speed: $gettext('speed on the link (Km/h)'),\n cycleway: $gettext('if the road contain a bike path. either yes, no or shared'),\n cycleway_reverse: $gettext('if the road contain a bike path in the opposite direction. either yes, no or shared.\\\n a road can be a oneway and have cycleway on both side.'),\n\n}\n\nexport default hints\n","import mod from \"-!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","\n\n\n\n \n \n \n \n deleteField(key)\"\n >\n fas fa-trash small\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n showHint = !showHint\"\n >\n far fa-question-circle small\n \n \n \n fas fa-minus-circle fa-rotate-90\n \n \n fas fa-minus-circle\n \n \n \n\n \n {{ $gettext(\"Cancel\") }}\n \n\n \n {{ $gettext(\"Save\") }}\n \n \n \n \n\n \n \n \n {{ $gettext('Duplicate and reverse') }}\n {{ message +' ?' }}\n \n \n \n \n \n {{ errorMessage }}\n \n \n \n \n {{ $gettext(\"Cancel\") }}\n \n\n \n {{ $gettext(\"Save\") }}\n \n \n \n \n\n mode = e\"\n />\n \n \n\n\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=00b02151&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=00b02151&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=00b02151&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=00b02151&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00b02151\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport Router from 'vue-router'\nimport Import from '@page/Import.vue'\n\nimport auth from '../auth'\nimport Home from '@page/Home.vue'\nimport { store } from '../store/index.js'\nconst Microservices = () => import('@page/Microservices.vue')\nconst ResultMap = () => import('@page/ResultMap.vue')\nconst Run = () => import('@page/Run.vue')\nconst ResultPicture = () => import('@page/ResultPicture.vue')\nconst ResultTable = () => import('@page/ResultTable.vue')\nconst basePath = process.env.VUE_APP_BASE_PATH\n\nVue.use(Router)\n\n// only used to force to see translation to vue-gettext\nconst $gettext = s => s\n\nconst router = new Router({\n linkExactActiveClass: 'active',\n mode: 'history',\n base: basePath,\n routes: [\n {\n path: '/',\n name: Import.name,\n component: Import,\n icon: 'fa-solid fa-upload',\n title: $gettext('Import'),\n },\n {\n path: '/Microservices',\n name: Microservices.name,\n component: Microservices,\n icon: 'fas fa-tachometer-alt',\n title: $gettext('Microservices'),\n beforeEnter: (to, from, next) => {\n if (!store.getters.loggedIn) {\n store.commit('changeNotification',\n {\n text: $gettext('Must be logged in'),\n autoClose: true,\n color: 'error',\n })\n } else {\n next()\n }\n },\n },\n {\n path: '/Home',\n name: Home.name,\n component: Home,\n icon: 'fa-solid fa-map',\n title: $gettext('Map'),\n },\n {\n path: '/Run',\n name: Run.name,\n component: Run,\n icon: 'fa-solid fa-play',\n title: $gettext('Parameters and Run'),\n beforeEnter: (to, from, next) => {\n if (store.getters['run/parametersIsEmpty']) {\n store.commit('changeNotification',\n {\n text: $gettext('you need parameters to enter this page'),\n autoClose: true,\n color: 'error',\n })\n } else {\n next()\n }\n },\n },\n {\n path: '/ResultMap',\n name: ResultMap.name,\n component: ResultMap,\n margin: '5rem',\n icon: 'fa-solid fa-layer-group',\n title: $gettext('Results Map'),\n },\n {\n path: '/ResultPicture',\n name: ResultPicture.name,\n component: ResultPicture,\n icon: 'fas fa-images',\n title: $gettext('Results Pictures'),\n },\n {\n path: '/ResultTable',\n name: ResultTable.name,\n component: ResultTable,\n icon: 'fas fa-table',\n title: $gettext('Result Table'),\n\n },\n {\n path: '/callback',\n name: 'callback',\n beforeEnter: (to, from, next) => {\n const currUrl = window.location.href\n auth.auth.parseCognitoWebResponse(currUrl)\n next('/')\n },\n },\n {\n path: '/signout',\n name: 'signout',\n beforeEnter: (to, from, next) => {\n next('/')\n },\n },\n ],\n})\n\n// router.replace({ 'query.s3Path': null }) // remove query in url when page is load.\n\nrouter.beforeEach((to, from, next) => {\n if ((!['Import', 'callback', 'signout'].includes(to.name)) &&\n store.getters.projectIsUndefined) {\n next({ name: 'Import' })\n } else next()\n})\n\nexport default router\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\nimport length from '@turf/length'\nimport nearestPointOnLine from '@turf/nearest-point-on-line'\nimport Linestring from 'turf-linestring'\nimport Point from 'turf-point'\nimport { serializer } from '@comp/utils/serializer.js'\nimport { IndexAreDifferent } from '@comp/utils/utils.js'\nconst $gettext = s => s\nconst short = require('short-uuid')\n\nexport default {\n state: {\n links: {},\n editorTrip: null,\n editorNodes: {},\n editorLinks: {},\n editorLineInfo: {},\n nodes: {},\n nodesHeader: {},\n linksHeader: {},\n tripId: [],\n selectedTrips: [],\n newLink: {},\n newNode: {},\n changeBounds: true,\n linkSpeed: 20, // 20KmH for time (speed/distance)\n linksDefaultColor: '2196F3',\n lineAttributes: [],\n nodeAttributes: [],\n defaultAttributes: [\n { name: 'index', type: 'String' },\n { name: 'a', type: 'String' },\n { name: 'b', type: 'String' },\n { name: 'trip_id', type: 'String' },\n { name: 'route_id', type: 'String' },\n { name: 'agency_id', type: 'String' },\n { name: 'route_short_name', type: 'String' },\n { name: 'route_type', type: 'String' },\n { name: 'route_color', type: 'String' },\n { name: 'length', type: 'Number' }, // float\n { name: 'time', type: 'Number' }, // float\n { name: 'headway', type: 'Number' }, // float\n { name: 'route_width', type: 'Number' }, // float\n { name: 'pickup_type', type: 'Number' }, // float\n { name: 'drop_off_type', type: 'Number' }, // int\n { name: 'link_sequence', type: 'Number' }, // int\n { name: 'direction_id', type: 'Number' }, // int\n ],\n },\n\n mutations: {\n loadLinks (state, payload) {\n state.links = structuredClone(payload)\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.links.crs.properties.name)) {\n const linksHeader = { ...state.links }\n linksHeader.features = []\n state.linksHeader = linksHeader\n\n state.editorLinks = linksHeader\n // limit geometry precision to 6 digit\n state.links.features.forEach(link => link.geometry.coordinates = link.geometry.coordinates.map(\n points => points.map(coord => Math.round(Number(coord) * 1000000) / 1000000)))\n this.commit('applyPropertiesTypes')\n this.commit('getTripId')\n // set all trips visible\n this.commit('changeSelectedTrips', state.tripId)\n\n this.commit('getLinksProperties')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n loadNodes (state, payload) {\n state.nodes = JSON.parse(JSON.stringify(payload))\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.nodes.crs.properties.name)) {\n const nodesHeader = { ...state.nodes }\n nodesHeader.features = []\n state.nodesHeader = nodesHeader\n state.editorNodes = nodesHeader\n // limit geometry precision to 6 digit\n state.nodes.features.forEach(node => node.geometry.coordinates = node.geometry.coordinates.map(\n coord => Math.round(Number(coord) * 1000000) / 1000000))\n\n this.commit('getNodesProperties')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n unloadFiles (state) {\n // when we reload files (some were already loaded.)\n state.links.features = []\n state.nodes.features = []\n state.editorTrip = null\n state.tripId = []\n state.selectedTrips = []\n },\n loadPTFiles (state, payload) {\n // payload = [{path,content}, ...]\n // get links. check that index are not duplicated, serialize them and then append to project\n // get nodes. check that index are not duplicated, serialize them and then append to project\n\n for (const file of payload) {\n const currentType = file.content.features[0].geometry.type\n if (currentType === 'LineString') {\n if (IndexAreDifferent(file.content, state.links)) {\n this.commit('appendNewLinks', serializer(file.content, file.path, currentType))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n } else if (currentType === 'Point') {\n if (IndexAreDifferent(file.content, state.nodes)) {\n this.commit('appendNewNodes', serializer(file.content, file.path, currentType))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n }\n }\n },\n\n appendNewLinks (state, payload) {\n // append new links to the project. payload = links geojson file\n payload.features.forEach(link => link.geometry.coordinates = link.geometry.coordinates.map(\n points => points.map(coord => Math.round(Number(coord) * 1000000) / 1000000)))\n\n // state.links.features.push(...payload.links.features) will crash with large array (stack size limit)\n payload.features.forEach(link => state.links.features.push(link))\n this.commit('applyPropertiesTypes')\n this.commit('getLinksProperties')\n this.commit('getTripId')\n this.commit('changeSelectedTrips', state.tripId)\n },\n appendNewNodes (state, payload) {\n // append new nodes to the project. payload = nodes geojson file\n payload.features.forEach(node => node.geometry.coordinates = node.geometry.coordinates.map(\n coord => Math.round(Number(coord) * 1000000) / 1000000))\n\n payload.features.forEach(node => state.nodes.features.push(node))\n this.commit('applyPropertiesTypes')\n this.commit('getNodesProperties')\n },\n\n getLinksProperties (state) {\n let header = new Set([])\n state.links.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n // header.delete('index')\n // add all default attributes\n const defaultAttributes = state.defaultAttributes.map(attr => attr.name)\n defaultAttributes.forEach(att => header.add(att))\n header = Array.from(header)\n state.lineAttributes = header\n },\n getNodesProperties (state) {\n let header = new Set([])\n state.nodes.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n // add all default attributes\n const defaultAttributes = [\n 'index',\n 'stop_code',\n 'stop_name']\n defaultAttributes.forEach(att => header.add(att))\n header = Array.from(header)\n state.nodeAttributes = header\n },\n\n addPropertie (state, payload) {\n // when a new line properties is added (in dataframe page)\n if (payload.table === 'links') {\n state.links.features.map(link => link.properties[payload.name] = null)\n state.editorLinks.features.map(link => link.properties[payload.name] = null)\n state.lineAttributes.push(payload.name) // could put that at applied. so we can cancel\n } else {\n state.nodes.features.map(node => node.properties[payload.name] = null)\n state.editorNodes.features.map(node => node.properties[payload.name] = null)\n }\n },\n deletePropertie (state, payload) {\n // when a link property is deleted\n if (payload.table === 'links') {\n state.links.features.filter(link => delete link.properties[payload.name])\n state.editorLinks.features.filter(link => delete link.properties[payload.name])\n state.lineAttributes = state.lineAttributes.filter(item => item !== payload.name)\n } else {\n state.nodes.features.filter(node => delete node.properties[payload.name])\n state.editorNodes.features.filter(node => delete node.properties[payload.name])\n }\n },\n changeSelectedTrips (state, payload) {\n // trips list of visible trip_id.\n state.selectedTrips = payload\n },\n\n setEditorTrip (state, payload) {\n // set Trip Id\n state.editorTrip = payload.tripId\n state.changeBounds = payload.changeBounds\n // set editor links corresponding to trip id\n // var filtered = {...state.links}\n const filtered = JSON.parse(JSON.stringify(state.links))\n filtered.features = filtered.features.filter(link => link.properties.trip_id === state.editorTrip)\n state.editorLinks = filtered\n // get the corresponding nodes\n this.commit('getEditorNodes', { nodes: state.nodes })\n this.commit('getEditorLineInfo')\n },\n\n cloneTrip (state, payload) {\n // clone and reversed a trip.\n const cloned = structuredClone(state.links)\n cloned.features = cloned.features.filter(link => link.properties.trip_id === payload.tripId)\n\n let linkSequence = cloned.features.length\n for (const link of cloned.features) {\n link.properties.trip_id = payload.name\n // mettre dans l'autre sens » inverser 0 et 1 et leur coordonées\n link.geometry.coordinates.reverse()//\n // inverser node a et b (propriétés)\n link.properties.a = [link.properties.b, link.properties.b = link.properties.a][0]\n // changer le link-sequence de tous les objets\n link.properties.link_sequence = linkSequence\n linkSequence -= 1\n // changer la direction\n if (link.properties.direction_id === 0) {\n link.properties.direction_id = 1\n } else {\n link.properties.direction_id = 0\n }\n // changer nom de l'index\n link.properties.index = 'link_' + short.generate()\n }\n // inverser l'ordre des features\n cloned.features.reverse()\n state.links.features.push(...cloned.features)\n this.commit('getTripId')\n },\n getEditorNodes (state, payload) {\n // payload contain nodes. state.nodes or state.editorNodes\n // find the nodes in the editor links\n const a = state.editorLinks.features.map(item => item.properties.a)\n const b = state.editorLinks.features.map(item => item.properties.b)\n const editorNodesList = new Set([...a, ...b])\n // set nodes corresponding to trip id\n const filtered = JSON.parse(JSON.stringify(payload.nodes))\n filtered.features = filtered.features.filter(node => editorNodesList.has(node.properties.index))\n state.editorNodes = filtered\n },\n\n getEditorLineInfo (state) {\n const form = {}\n const uneditable = ['index', 'length', 'a', 'b', 'link_sequence']\n // empty trip, when its a newLine\n if (state.editorLinks.features.length === 0) {\n const defaultValue = {\n route_id: 'Q1',\n agency_id: 'QUENEDI',\n route_short_name: 'Q1',\n route_type: 'quenedi',\n route_color: state.linksDefaultColor,\n route_width: 3,\n headway: 600,\n pickup_type: 0,\n drop_off_type: 0,\n direction_id: 0,\n }\n\n state.lineAttributes.forEach(key => {\n form[key] = {\n value: defaultValue[key],\n disabled: uneditable.includes(key),\n placeholder: false,\n }\n })\n\n form.trip_id = { value: state.editorTrip, disabled: false, placeholder: false }\n } else {\n const features = state.editorLinks.features\n\n state.lineAttributes.forEach(key => {\n const val = new Set(features.map(link => link.properties[key]))\n form[key] = {\n value: val.size > 1 ? '' : [...val][0],\n disabled: uneditable.includes(key),\n placeholder: val.size > 1,\n }\n })\n }\n state.editorLineInfo = form\n },\n\n getTripId (state) {\n state.tripId = Array.from(new Set(state.links.features.map(item => item.properties.trip_id)))\n },\n\n setNewLink (state, payload) {\n // copy editor links geoJSON, only take first (or last) link.\n // delete some properties like id and index.\n const uncopiedPropeties = {\n index: null,\n length: null,\n time: null,\n pickup_type: 0,\n drop_off_type: 0,\n }\n // create link\n const tempLink = structuredClone(state.editorLinks)\n // if there is no link to copy, create one. (new Line)\n if (tempLink.features.length === 0) {\n // copy Line properties.\n const linkProperties = {}\n Object.keys(state.editorLineInfo).forEach((key) => {\n linkProperties[key] = state.editorLineInfo[key].value\n })\n // set default links values\n const defaultValue = {\n index: 'link_' + short.generate(),\n a: state.editorNodes.features[0].properties.index,\n b: state.editorNodes.features[0].properties.index,\n length: null,\n time: null,\n pickup_type: 0,\n drop_off_type: 0,\n link_sequence: 0,\n }\n Object.keys(defaultValue).forEach((key) => {\n linkProperties[key] = defaultValue[key]\n })\n\n const linkGeometry = {\n coordinates: [state.editorNodes.features[0].geometry.coordinates,\n state.editorNodes.features[0].geometry.coordinates],\n type: 'LineString',\n }\n const linkFeature = { geometry: linkGeometry, properties: linkProperties, type: 'Feature' }\n tempLink.features = [linkFeature]\n }\n\n if (payload.action === 'Extend Line Upward') {\n // Take last link and copy properties\n // eslint-disable-next-line no-var\n var features = tempLink.features[tempLink.features.length - 1]\n Object.assign(features.properties, uncopiedPropeties)\n // sequence +1\n features.properties.link_sequence = features.properties.link_sequence + 1\n // replace node a by b and delete node a\n features.properties.a = features.properties.b\n features.geometry.coordinates[0] = features.geometry.coordinates.slice(-1)[0]\n // new node index (hash)\n payload.nodeCopyId = features.properties.a\n this.commit('setNewNode', payload)\n\n features.properties.b = state.newNode.features[0].properties.index\n features.properties.index = 'link_' + short.generate()\n } else if (payload.action === 'Extend Line Downward') {\n // Take first link and copy properties\n // eslint-disable-next-line no-var, no-redeclare\n var features = tempLink.features[0]\n Object.assign(features.properties, uncopiedPropeties)\n // sequence + 1\n features.properties.link_sequence = features.properties.link_sequence - 1\n // replace node b by a and delete node b\n features.properties.b = features.properties.a\n features.geometry.coordinates[1] = features.geometry.coordinates[0]\n // new node index (hash)\n payload.nodeCopyId = features.properties.b\n this.commit('setNewNode', payload)\n features.properties.a = state.newNode.features[0].properties.index\n features.properties.index = 'link_' + short.generate()\n }\n tempLink.features = [features]\n state.newLink = tempLink\n state.newLink.action = payload.action\n },\n createNewNode (state, payload) {\n const nodeProperties = {}\n state.nodeAttributes.forEach(key => {\n nodeProperties[key] = null\n })\n nodeProperties.index = 'node_' + short.generate()\n const nodeGeometry = {\n coordinates: payload,\n type: 'Point',\n }\n // Copy specified nodenewNode\n const nodeFeatures = { geometry: nodeGeometry, properties: nodeProperties, type: 'Feature' }\n state.editorNodes.features = [nodeFeatures]\n },\n\n setNewNode (state, payload) {\n const { coordinates = [null, null] } = payload\n const uncopiedPropeties = {}\n state.nodeAttributes.forEach(key => {\n uncopiedPropeties[key] = null\n })\n // Copy specified node\n const tempNode = JSON.parse(JSON.stringify(state.editorNodes))\n const features = tempNode.features.filter(node => node.properties.index === payload.nodeCopyId)[0]\n Object.assign(features.properties, uncopiedPropeties)\n features.properties.index = 'node_' + short.generate()\n features.geometry.coordinates = coordinates\n tempNode.features = [features]\n state.newNode = tempNode\n },\n\n editNewLink (state, payload) {\n // for realtime viz. this method change the linestring to the payload (mouse position)\n // for some reason, it doesnt work when i only apply payload to coordinates[1]\n state.newNode.features[0].geometry.coordinates = payload\n if (state.newLink.action === 'Extend Line Upward') {\n state.newLink.features[0].geometry.coordinates = [state.newLink.features[0].geometry.coordinates[0], payload]\n } else {\n state.newLink.features[0].geometry.coordinates = [payload, state.newLink.features[0].geometry.coordinates[1]]\n }\n },\n\n applyNewLink (state, payload) {\n // nodeId: this.selectedNodeId, geom: pointGeom, action: Extend Line Upward\n // get linestring length in km\n this.commit('setNewLink', { action: payload.action })\n this.commit('editNewLink', payload.geom)\n\n const distance = length(state.newLink)\n state.newLink.features[0].properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.linkSpeed * 3600 // 20kmh hard code speed. time in secs\n\n state.newLink.features[0].properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n\n const action = state.newLink.action\n if (action === 'Extend Line Upward') {\n state.editorLinks.features.push(state.newLink.features[0])\n state.editorNodes.features.push(state.newNode.features[0])\n } else if (action === 'Extend Line Downward') {\n state.editorLinks.features.splice(0, 0, state.newLink.features[0])\n state.editorNodes.features.splice(0, 0, state.newNode.features[0])\n state.editorLinks.features.forEach(link => link.properties.link_sequence += 1)\n }\n },\n\n deleteNode (state, payload) {\n const nodeIndex = payload.selectedNode.index\n // remove node\n state.editorNodes.features = state.editorNodes.features.filter(node => node.properties.index !== nodeIndex)\n // changing link1 change editorLinks as it is an observer.\n const link1 = state.editorLinks.features.filter(link => link.properties.b === nodeIndex)[0] // link is extented\n const link2 = state.editorLinks.features.filter(link => link.properties.a === nodeIndex)[0] // link is deleted\n // if the last or first node is selected, there is only one link. The node and the link are deleted.\n if (!link1) {\n state.editorLinks.features = state.editorLinks.features.filter(\n link => link.properties.index !== link2.properties.index)\n // a link was remove, link_sequence -1\n state.editorLinks.features.forEach(link => link.properties.link_sequence -= 1)\n } else if (!link2) {\n state.editorLinks.features = state.editorLinks.features.filter(\n link => link.properties.index !== link1.properties.index)\n // the node is inbetween 2 links. 1 link is deleted, and the other is extented.\n } else {\n link1.geometry.coordinates = [\n ...link1.geometry.coordinates.slice(0, -1),\n ...link2.geometry.coordinates.slice(1)]\n link1.properties.b = link2.properties.b\n link1.properties.length = Number(link1.properties.length) + Number(link2.properties.length)\n link1.properties.time = Number(link1.properties.time) + Number(link2.properties.time)\n // find removed link index. drop everylinks link_sequence after by 1\n const featureIndex = state.editorLinks.features.findIndex(\n link => link.properties.index === link2.properties.index)\n state.editorLinks.features.slice(featureIndex).forEach(\n link => link.properties.link_sequence -= 1)\n // delete link2\n state.editorLinks.features = state.editorLinks.features.filter(\n link => link.properties.index !== link2.properties.index)\n }\n },\n\n splitLink (state, payload) {\n const linkIndex = payload.selectedLink.index\n const featureIndex = state.editorLinks.features.findIndex(link => link.properties.index === linkIndex)\n // changing link1 change editorLinks as it is an observer.\n const link1 = state.editorLinks.features[featureIndex] // this link is extented\n const link2 = structuredClone(link1)\n // distance du point (entre 0 et 1) sur le lien original\n const ratio = payload.offset\n\n link1.properties.b = state.newNode.features[0].properties.index\n link1.geometry.coordinates = [\n ...link1.geometry.coordinates.slice(0, payload.sliceIndex),\n state.newNode.features[0].geometry.coordinates,\n ]\n\n link1.properties.index = 'link_' + short.generate() // link1.properties.index+ '-1'\n link1.properties.length = link1.properties.length * ratio\n link1.properties.time = link1.properties.time * ratio\n\n link2.properties.a = state.newNode.features[0].properties.index\n link2.geometry.coordinates = [\n state.newNode.features[0].geometry.coordinates,\n ...link2.geometry.coordinates.slice(payload.sliceIndex),\n ]\n link2.properties.index = 'link_' + short.generate() // link2.properties.index+ '-2'\n link2.properties.length = link2.properties.length * (1 - ratio)\n link2.properties.time = link2.properties.time * (1 - ratio)\n\n state.editorLinks.features.splice(featureIndex + 1, 0, link2)\n state.editorNodes.features.push(state.newNode.features[0])\n\n // add +1 to every link sequence afer link1\n const seq = link1.properties.link_sequence\n // everything after link1 except link2\n state.editorLinks.features.filter(link => link.properties.link_sequence > seq).forEach(\n link => link.properties.link_sequence += 1)\n // add link2 sequence after.\n link2.properties.link_sequence += 1\n },\n\n addNodeInline (state, payload) {\n // payload contain selectedLink and event.lngLat (clicked point)\n let linkGeom = state.editorLinks.features.filter((link) => link.properties.index === payload.selectedLink.index)\n const nodeCopyId = linkGeom[0].properties.a\n linkGeom = Linestring(linkGeom[0].geometry.coordinates)\n const clickedPoint = Point(Object.values(payload.lngLat))\n const snapped = nearestPointOnLine(linkGeom, clickedPoint, { units: 'kilometers' })\n const dist = length(linkGeom, { units: 'kilometers' }) // dist\n // for multiString, gives the index of the closest one, add +1 for the slice.\n const sliceIndex = snapped.properties.index + 1\n const offset = snapped.properties.location / dist\n if (payload.nodes === 'editorNodes') {\n this.commit('setNewNode', { coordinates: snapped.geometry.coordinates, nodeCopyId: nodeCopyId })\n this.commit('splitLink', { selectedLink: payload.selectedLink, offset: offset, sliceIndex: sliceIndex })\n // Anchor Nodes\n } else {\n this.commit('addAnchorNode', {\n selectedLink: payload.selectedLink,\n coordinates: snapped.geometry.coordinates,\n sliceIndex: sliceIndex,\n })\n }\n\n // this.commit('setNewNode', null) // init new node to null\n },\n addAnchorNode (state, payload) {\n const linkIndex = payload.selectedLink.index\n const featureIndex = state.editorLinks.features.findIndex(link => link.properties.index === linkIndex)\n // changing link change editorLinks as it is an observer.\n const link = state.editorLinks.features[featureIndex]\n link.geometry.coordinates.splice(payload.sliceIndex, 0, payload.coordinates)\n },\n deleteAnchorNode (state, payload) {\n const linkIndex = payload.selectedNode.linkIndex\n const coordinatedIndex = payload.selectedNode.coordinatedIndex\n const link = state.editorLinks.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n },\n moveAnchor (state, payload) {\n const linkIndex = payload.selectedNode.properties.linkIndex\n const coordinatedIndex = payload.selectedNode.properties.coordinatedIndex\n const link = state.editorLinks.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n payload.lngLat,\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n\n // update time and distance\n const distance = length(link)\n link.properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.linkSpeed * 3600 // 20kmh hard code speed. time in secs\n link.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n },\n\n moveNode (state, payload) {\n const nodeIndex = payload.selectedNode.properties.index\n // remove node\n const newNode = state.editorNodes.features.filter(node => node.properties.index === nodeIndex)[0]\n newNode.geometry.coordinates = payload.lngLat\n\n // changing links\n const link1 = state.editorLinks.features.filter(link => link.properties.b === nodeIndex)[0]\n const link2 = state.editorLinks.features.filter(link => link.properties.a === nodeIndex)[0]\n // update links geometry. check if exist first (if we take the first|last node there is only 1 link)\n if (link1) {\n // note: props are unchanged. even tho the length change, the time and length are unchanged.\n link1.geometry.coordinates = [...link1.geometry.coordinates.slice(0, -1), payload.lngLat]\n // update time and distance\n const distance = length(link1)\n link1.properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.linkSpeed * 3600 // 20kmh hard code speed. time in secs\n link1.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n }\n if (link2) {\n link2.geometry.coordinates = [payload.lngLat, ...link2.geometry.coordinates.slice(1)]\n // update time and distance\n const distance = length(link2)\n link2.properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.linkSpeed * 3600 // 20kmh hard code speed. time in secs\n link2.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n }\n },\n\n cutLineFromNode (state, payload) {\n // Filter links from selected line\n const nodeId = payload.selectedNode.index\n state.editorLinks.features.sort((a, b) => a.properties.link_sequence - b.properties.link_sequence)\n\n let toDelete = []\n for (const [i, link] of state.editorLinks.features.entries()) {\n if (link.properties.b === nodeId) {\n toDelete = state.editorLinks.features.slice(i + 1)\n break\n }\n }\n // Delete links\n state.editorLinks.features = state.editorLinks.features.filter(item => !toDelete.includes(item))\n this.commit('getEditorNodes', { nodes: state.editorNodes })\n },\n\n cutLineAtNode (state, payload) {\n // Filter links from selected line\n const nodeId = payload.selectedNode.index\n state.editorLinks.features.sort((a, b) => a.properties.link_sequence - b.properties.link_sequence)\n\n let toDelete = []\n for (const [i, link] of state.editorLinks.features.entries()) {\n if (link.properties.a === nodeId) {\n toDelete = state.editorLinks.features.slice(0, i)\n break\n }\n }\n // Delete links\n state.editorLinks.features = state.editorLinks.features.filter(item => !toDelete.includes(item))\n this.commit('getEditorNodes', { nodes: state.editorNodes })\n },\n\n editLineInfo (state, payload) {\n state.editorLineInfo = payload\n // get only keys that are not unmodified multipled Values (value=='' and placeholder==true)\n const props = Object.keys(payload).filter(key =>\n ((payload[key].value !== '') || !payload[key].placeholder) && (!payload[key].disabled))\n // add new line info to each links of each trips.\n state.editorLinks.features.forEach(\n (features) => props.forEach((key) => features.properties[key] = payload[key].value))\n },\n\n editLinkInfo (state, payload) {\n // get selected link in editorLinks and modify the changes attributes.\n const { selectedLinkId, info } = payload\n const props = Object.keys(info)\n state.editorLinks.features.filter(\n function (link) {\n if (link.properties.index === selectedLinkId) {\n props.forEach((key) => link.properties[key] = info[key].value)\n }\n },\n )\n this.commit('getEditorLineInfo')\n },\n\n editNodeInfo (state, payload) {\n // get selected node in editorNodes and modify the changes attributes.\n const { selectedNodeId, info } = payload\n const props = Object.keys(info)\n state.editorNodes.features.filter(\n // eslint-disable-next-line array-callback-return\n function (node) {\n if (node.properties.index === selectedNodeId) {\n props.forEach((key) => node.properties[key] = info[key].value)\n }\n },\n )\n },\n\n editGroupInfo (state, payload) {\n // edit line info on multiple trips at once.\n const editorGroupInfo = payload.info\n const groupTripIds = payload.groupTripIds\n // get only keys that are not unmodified multipled Values (value=='' and placeholder==true)\n const props = Object.keys(editorGroupInfo).filter(key =>\n ((editorGroupInfo[key].value !== '') || !editorGroupInfo[key].placeholder))\n // add new line info to each links of each trips.\n const tempLinks = state.links.features.filter(link => groupTripIds.includes(link.properties.trip_id))\n tempLinks.forEach(\n (features) => props.forEach((key) => features.properties[key] = editorGroupInfo[key].value))\n // get tripId list\n this.commit('getTripId')\n },\n deleteUnusedNodes (state) {\n // delete every every nodes not in links\n const a = state.links.features.map(item => item.properties.a)\n const b = state.links.features.map(item => item.properties.b)\n const nodesInLinks = new Set([...a, ...b])\n state.nodes.features = state.nodes.features.filter(node => nodesInLinks.has(node.properties.index))\n },\n\n confirmChanges (state) { // apply change to Links\n const filtered = { ...state.links }\n\n filtered.features = filtered.features.filter(link => link.properties.trip_id === state.editorTrip)\n const toDelete = filtered.features.filter(item => !state.editorLinks.features.includes(item))\n // find index of soon to be deleted links\n if (state.tripId.includes(state.editorTrip)) {\n // eslint-disable-next-line no-var\n var index = state.links.features.findIndex(link => link.properties.trip_id === state.editorTrip)\n } else {\n // eslint-disable-next-line no-var, no-redeclare\n var index = 0\n }\n // delete links that were edited.\n state.links.features = state.links.features.filter(item => !toDelete.includes(item))\n // add edited links to links.\n\n state.links.features.splice(index, 0, ...state.editorLinks.features)\n // all new nodes.\n const nodesList = state.nodes.features.map(item => item.properties.index)\n const newNodes = { ...state.editorNodes }\n newNodes.features = newNodes.features.filter(node => !nodesList.includes(node.properties.index))\n state.nodes.features.push(...newNodes.features)\n\n // for each editor nodes, apply new properties.\n state.nodes.features.filter(\n function (node) {\n state.editorNodes.features.forEach(\n function (eNode) {\n if (node.properties.index === eNode.properties.index) {\n node.properties = eNode.properties\n node.geometry = eNode.geometry\n }\n })\n })\n\n // delete every every nodes not in links\n this.commit('deleteUnusedNodes')\n\n // For every Links containing an editor Nodes. update Geometry.\n // (this is necessary when we move a node that is share between multiplde lines)\n // get a list of all links (excluding editorLinks) that contain the selected node\n const editorNodesList = new Set(state.editorNodes.features.map(item => item.properties.index))\n // get list of link with a node A modifieed\n const linksA = state.links.features.filter(\n link => link.properties.trip_id !== state.editorTrip).filter(\n item => editorNodesList.has(item.properties.a))\n // apply new node geometry\n linksA.forEach(link => link.geometry.coordinates = [\n state.editorNodes.features.filter(node => node.properties.index === link.properties.a)[0].geometry.coordinates,\n ...link.geometry.coordinates.slice(1),\n ])\n // same for nodes b\n const linksB = state.links.features.filter(\n link => link.properties.trip_id !== state.editorTrip).filter(\n item => editorNodesList.has(item.properties.b))\n linksB.forEach(link => link.geometry.coordinates = [\n ...link.geometry.coordinates.slice(0, -1),\n state.editorNodes.features.filter(node => node.properties.index === link.properties.b)[0].geometry.coordinates,\n ])\n\n state.newLink = {}\n state.newNode = {}\n\n this.commit('applyPropertiesTypes')\n\n // get tripId list\n this.commit('getTripId')\n this.commit('getLinksProperties')\n },\n\n deleteTrip (state, payload) {\n // payload = a single trip_id or a list or trips_id\n // if its a list : delete all of them. else: delete single trip\n if (typeof payload === 'object') {\n state.links.features = state.links.features.filter(link => !payload.includes(link.properties.trip_id))\n } else {\n state.links.features = state.links.features.filter(link => link.properties.trip_id !== payload)\n }\n // delete every every nodes not in links\n this.commit('deleteUnusedNodes')\n // get tripId list\n this.commit('getTripId')\n },\n applyPropertiesTypes (state) {\n state.defaultAttributes.forEach(attr => {\n if (attr.type === 'String') {\n state.links.features.forEach(link => link.properties[attr.name] = String(link.properties[attr.name]))\n } else if (attr.type === 'Number') {\n state.links.features.forEach(link => link.properties[attr.name] = Number(link.properties[attr.name]))\n }\n })\n },\n },\n\n getters: {\n links: (state) => state.links,\n nodes: (state) => state.nodes,\n linkSpeed: (state) => state.linkSpeed,\n linksIsEmpty: (state) => state.links.features.length === 0,\n route_id: (state) => state.route_id,\n editorTrip: (state) => state.editorTrip,\n editorLinks: (state) => state.editorLinks,\n editorNodes: (state) => state.editorNodes,\n tripId: (state) => state.tripId,\n selectedTrips: (state) => state.selectedTrips,\n editorLineInfo: (state) => state.editorLineInfo,\n newLink: (state) => state.newLink,\n newNode: (state) => state.newNode,\n firstNodeId: (state) => state.editorNodes.features.length > 1\n ? state.editorLinks.features[0].properties.a\n : state.editorNodes.features[0].properties.index,\n lastNodeId: (state) => state.editorNodes.features.length > 1\n ? state.editorLinks.features.slice(-1)[0].properties.b\n : state.editorNodes.features[0].properties.index,\n firstNode: (state, getters) => state.editorTrip\n ? state.editorNodes.features.filter(\n (node) => node.properties.index === getters.firstNodeId)[0]\n : null,\n lastNode: (state, getters) => state.editorTrip\n ? state.editorNodes.features.filter(\n (node) => node.properties.index === getters.lastNodeId)[0]\n : null,\n lineAttributes: (state) => state.lineAttributes.sort(),\n nodeAttributes: (state) => state.nodeAttributes,\n changeBounds: (state) => state.changeBounds,\n nodesHeader: (state) => state.nodesHeader,\n linksHeader: (state) => state.linksHeader,\n anchorNodes: (state) => {\n const nodes = structuredClone(state.nodesHeader)\n state.editorLinks.features.filter(link => link.geometry.coordinates.length > 2).forEach(\n feature => {\n const linkIndex = feature.properties.index\n feature.geometry.coordinates.slice(1, -1).forEach(\n (point, idx) => nodes.features.push({\n properties: { index: short.generate(), linkIndex: linkIndex, coordinatedIndex: idx + 1 },\n geometry: { coordinates: point, type: 'Point' },\n }),\n )\n },\n )\n\n return nodes\n },\n // this return the attribute type, of undefined.\n attributeType: (state) => (name) => state.defaultAttributes.filter(attr => attr.name === name)[0]?.type,\n defaultAttributesNames: (state) => state.defaultAttributes.map(attr => attr.name),\n },\n}\n","/* eslint-disable no-case-declarations */\n/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\nimport length from '@turf/length'\nimport nearestPointOnLine from '@turf/nearest-point-on-line'\nimport booleanContains from '@turf/boolean-contains'\nimport booleanCrosses from '@turf/boolean-crosses'\nimport Linestring from 'turf-linestring'\nimport Point from 'turf-point'\nimport bearing from '@turf/bearing'\nimport { serializer } from '@comp/utils/serializer.js'\nimport { IndexAreDifferent } from '@comp/utils/utils.js'\n\nconst $gettext = s => s\n\nconst short = require('short-uuid')\n\nexport default {\n state: {\n rlinks: {},\n rnodes: {},\n rlinksHeader: {},\n rnodesHeader: {},\n selectedrFilter: '',\n selectedrGroup: [],\n filteredrCategory: [],\n rlineAttributes: [],\n rnodeAttributes: [],\n newrNode: {},\n visiblerLinks: {},\n renderedrLinks: {},\n visiblerNodes: {},\n renderedrNodes: {},\n connectedLinks: [],\n defaultHighway: 'quenedi',\n roadSpeed: 20,\n rlinksDefaultColor: '2196F3',\n // those are the list of attributes we do not want to duplicated with _r.\n rcstAttributes: ['a', 'b', 'index', 'length', 'route_color', 'oneway', 'route_width', 'highway', 'cycleway', 'cycleway_reverse', 'incline'],\n rundeletable: ['index', 'a', 'b', 'length', 'route_color', 'oneway', 'time', 'speed', 'time_r', 'speed_r'],\n reversedAttributes: [],\n },\n\n mutations: {\n loadrLinks (state, payload) {\n state.rlinks = structuredClone(payload)\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.rlinks.crs.properties.name)) {\n const rlinksHeader = { ...state.rlinks }\n rlinksHeader.features = []\n state.rlinksHeader = rlinksHeader\n state.visiblerLinks = structuredClone(rlinksHeader)\n state.renderedrLinks = structuredClone(rlinksHeader)\n // limit geometry precision to 6 digit\n state.rlinks.features.forEach(link => link.geometry.coordinates = link.geometry.coordinates.map(\n points => points.map(coord => Math.round(Number(coord) * 1000000) / 1000000)))\n state.filteredrCategory = []\n state.selectedrGroup = []\n this.commit('getrLinksProperties')\n this.commit('splitOneway')\n // set all trips visible\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n loadrNodes (state, payload) {\n state.rnodes = JSON.parse(JSON.stringify(payload))\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.rnodes.crs.properties.name)) {\n const rnodesHeader = { ...state.rnodes }\n rnodesHeader.features = []\n state.rnodesHeader = rnodesHeader\n state.visiblerNodes = structuredClone(rnodesHeader)\n state.renderedrNodes = structuredClone(rnodesHeader)\n // limit geometry precision to 6 digit\n state.rnodes.features.forEach(node => node.geometry.coordinates = node.geometry.coordinates.map(\n coord => Math.round(Number(coord) * 1000000) / 1000000))\n\n this.commit('getrNodesProperties')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n loadRoadFiles (state, payload) {\n // payload = [{path,content},...]\n // get rlinks. check that index are not duplicated, serialize them and then append to project\n // get rnodes. check that index are not duplicated, serialize them and then append to project\n\n for (const file of payload) {\n const currentType = file.content.features[0].geometry.type\n if (currentType === 'LineString') {\n if (IndexAreDifferent(file.content, state.rlinks)) {\n this.commit('appendNewrLinks', serializer(file.content, file.path, currentType))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n } else if (currentType === 'Point') {\n if (IndexAreDifferent(file.content, state.rnodes)) {\n this.commit('appendNewrNodes', serializer(file.content, file.path, currentType))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n }\n }\n },\n\n appendNewrLinks (state, payload) {\n // append new links and node to the project (import page)\n payload.features.forEach(link => link.geometry.coordinates = link.geometry.coordinates.map(\n points => points.map(coord => Math.round(Number(coord) * 1000000) / 1000000)))\n\n payload.features.forEach(link => state.rlinks.features.push(link))\n this.commit('getrLinksProperties')\n this.commit('splitOneway')\n this.commit('getFilteredrCat')\n },\n\n appendNewrNodes (state, payload) {\n // append new links and node to the project (import page)\n payload.features.forEach(node => node.geometry.coordinates = node.geometry.coordinates.map(\n coord => Math.round(Number(coord) * 1000000) / 1000000))\n\n payload.features.forEach(node => state.rnodes.features.push(node))\n this.commit('splitOneway')\n this.commit('getrNodesProperties')\n },\n\n getrLinksProperties (state) {\n let header = new Set([])\n state.rlinks.features.forEach(element => {\n Object.keys(element.properties).forEach(key => { if (!key.endsWith('_r')) header.add(key) })\n })\n // header.delete('index')\n // add all default attributes\n const defaultAttributes = [\n 'index', 'a', 'b', 'route_color']\n defaultAttributes.forEach(att => header.add(att))\n header = Array.from(header)\n state.rlineAttributes = header\n if (header.includes('highway')) {\n state.selectedrFilter = 'highway'\n } else {\n state.selectedrFilter = header[0]\n }\n },\n getrNodesProperties (state) {\n let header = new Set([])\n state.rnodes.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n // add all default attributes\n const defaultAttributes = ['index']\n defaultAttributes.forEach(att => header.add(att))\n header = Array.from(header)\n state.rnodeAttributes = header\n },\n addRoadPropertie (state, payload) {\n // when a new line properties is added (in dataframe page)\n if (payload.table === 'rlinks') {\n state.rlinks.features.map(link => link.properties[payload.name] = null)\n state.visiblerLinks.features.map(link => link.properties[payload.name] = null)\n state.rlineAttributes.push(payload.name) // could put that at applied. so we can cancel\n // add reverse attribute if its not one we dont want to duplicated (ex: route_width)\n if (!state.rcstAttributes.includes(payload.name)) {\n state.reversedAttributes.push(payload.name + '_r')\n }\n } else {\n state.rnodes.features.map(node => node.properties[payload.name] = null)\n state.visiblerNodes.features.map(node => node.properties[payload.name] = null)\n state.rnodeAttributes.push(payload.name)\n }\n },\n deleteRoadPropertie (state, payload) {\n if (payload.table === 'rlinks') {\n state.rlinks.features.filter(link => delete link.properties[payload.name])\n state.rlinks.features.filter(link => delete link.properties[payload.name + '_r'])\n state.visiblerLinks.features.filter(link => delete link.properties[payload.name])\n state.visiblerLinks.features.filter(link => delete link.properties[payload.name + '_r'])\n\n state.rlineAttributes = state.rlineAttributes.filter(item => item !== payload.name)\n state.reversedAttributes = state.reversedAttributes.filter(item => item !== payload.name + '_r')\n } else {\n state.rnodes.features.filter(node => delete node.properties[payload.name])\n state.visiblerNodes.features.filter(node => delete node.properties[payload.name])\n }\n },\n\n changeSelectedrFilter (state, payload) {\n state.selectedrFilter = payload\n this.commit('getFilteredrCat')\n },\n getFilteredrCat (state) {\n // for a given filter (key) get array of unique value\n // e.g. get ['bus','subway'] for route_type\n const val = Array.from(new Set(state.rlinks.features.map(\n item => item.properties[state.selectedrFilter])))\n state.filteredrCategory = val\n },\n splitOneway (state) {\n if (state.rlineAttributes.includes('oneway')) {\n state.rlinks.features.forEach(link => {\n if ([true, 'true', '1', 1].includes(link.properties.oneway)) {\n link.properties.oneway = '1'\n } else {\n link.properties.oneway = '0'\n }\n })\n // const oneways = state.rlinks.features.filter(link => !link.properties.oneway)\n state.reversedAttributes = state.rlineAttributes.filter(\n attr => !state.rcstAttributes.includes(attr)).map(\n attr => attr + '_r')\n state.rlinks.features.forEach(link => {\n if (link.properties.oneway === '0') {\n state.reversedAttributes.forEach(attr => {\n if (!link.properties[attr]) link.properties[attr] = link.properties[attr.slice(0, -2)]\n })\n }\n },\n )\n }\n },\n\n changeVisibleRoads (state, payload) {\n // trips list of visible trip_id.\n const method = payload.method\n const data = payload.data\n const cat = payload.category\n state.selectedrFilter = cat\n let tempLinks = null\n switch (method) {\n case 'showAll':\n state.selectedrGroup = data\n // need to slice. so it doest change if we append to rlinks.\n state.visiblerLinks.features = state.rlinks.features.slice()\n break\n case 'hideAll':\n state.selectedrGroup = data\n state.visiblerLinks.features = []\n break\n case 'add':\n if (!state.selectedrGroup.includes(data[0])) {\n state.selectedrGroup.push(data[0])\n }\n tempLinks = state.rlinks.features.filter(\n link => link.properties[cat] === data[0])\n // state.visiblerLinks.features.push(...tempLinks) will crash with large array (stack size limit)\n tempLinks.forEach(link => state.visiblerLinks.features.push(link))\n break\n case 'remove':\n state.selectedrGroup = state.selectedrGroup.filter(el => el !== data[0])\n tempLinks = new Set(state.visiblerLinks.features.filter(\n link => link.properties[cat] === data[0]))\n state.visiblerLinks.features = state.visiblerLinks.features.filter(link => !tempLinks.has(link))\n break\n }\n this.commit('getVisiblerNodes', { method: method })\n },\n\n refreshVisibleRoads (state) {\n const group = new Set(state.selectedrGroup)\n const cat = state.selectedrFilter\n state.visiblerLinks.features = state.rlinks.features.filter(link => group.has(link.properties[cat]))\n this.commit('getVisiblerNodes', { method: 'add' })\n // when we rename a group (highway => test), are rename many group.\n // remove nonexistant group in the selected group.\n const possibleGroups = new Set(state.visiblerLinks.features.map(\n item => item.properties[cat]))\n state.selectedrGroup = [...possibleGroups].filter(x => group.has(x))\n },\n getVisiblerNodes (state, payload) {\n // payload contain nodes. state.nodes or state.editorNodes\n // find the nodes in the editor links\n let a = []\n let b = []\n let rNodesList = []\n switch (payload.method) {\n case 'showAll':\n state.visiblerNodes.features = state.rnodes.features\n break\n case 'hideAll':\n state.visiblerNodes.features = []\n break\n case 'add':\n // cannot simply remove the nodes from the deleted links. they can be used by others visibles links\n a = state.visiblerLinks.features.map(item => item.properties.a)\n b = state.visiblerLinks.features.map(item => item.properties.b)\n rNodesList = new Set([...a, ...b])\n // use rnodes as they are new to visiblerNodes\n state.visiblerNodes.features = state.rnodes.features.filter(\n node => rNodesList.has(node.properties.index))\n break\n case 'remove' :\n // cannot simply remove the nodes from the deleted links. they can be used by others visibles links\n a = state.visiblerLinks.features.map(item => item.properties.a)\n b = state.visiblerLinks.features.map(item => item.properties.b)\n rNodesList = new Set([...a, ...b])\n // use visibleRnodes, as they are already inside of it.\n state.visiblerNodes.features = state.visiblerNodes.features.filter(\n node => rNodesList.has(node.properties.index))\n break\n // case 'refresh'\n }\n },\n getRenderedrLinks (state, payload) {\n state.renderedrLinks.features = state.visiblerLinks.features.filter(\n link => (booleanContains(payload.bbox, link) || booleanCrosses(payload.bbox, link)))\n this.commit('getRenderedrNodes')\n },\n getRenderedrNodes (state) { // get rendered nodes\n const a = state.renderedrLinks.features.map(item => item.properties.a)\n const b = state.renderedrLinks.features.map(item => item.properties.b)\n const rNodesList = new Set([...a, ...b])\n // filter with rnodesList\n state.renderedrNodes.features = state.visiblerNodes.features.filter(node => rNodesList.has(node.properties.index))\n },\n setRenderedrLinks (state, payload) {\n if (payload.method === 'visible') {\n state.renderedrLinks.features = state.visiblerLinks.features\n state.renderedrNodes.features = []\n } else {\n state.renderedrLinks.features = []\n state.renderedrNodes.features = []\n }\n },\n\n editrLinkInfo (state, payload) {\n // get selected link in editorLinks and modify the changes attributes.\n const { selectedLinkId, info } = payload\n for (let i = 0; i < selectedLinkId.length; i++) {\n const props = Object.keys(info[i])\n const link = state.renderedrLinks.features.filter((link) => link.properties.index === selectedLinkId[i])[0]\n // if we change a one way to a 2 way, copy one way properties to the reverse one.\n if ((info[i].oneway?.value !== link.properties.oneway) && (info[i].oneway?.value === '0')) {\n state.reversedAttributes.forEach(\n (rkey) => link.properties[rkey] = info[i][rkey.slice(0, -2)].value)\n } else if ((info[i].oneway?.value !== link.properties.oneway) && (info[i].oneway?.value === '1')) {\n state.reversedAttributes.forEach(\n (rkey) => delete link.properties[rkey])\n }\n // applied all properties.\n props.forEach((key) => link.properties[key] = info[i][key].value)\n }\n },\n\n editrNodeInfo (state, payload) {\n // get selected node in editorNodes and modify the changes attributes.\n const { selectedNodeId, info } = payload\n const props = Object.keys(info)\n state.rnodes.features.filter(\n // eslint-disable-next-line array-callback-return\n function (node) {\n if (node.properties.index === selectedNodeId) {\n props.forEach((key) => node.properties[key] = info[key].value)\n }\n },\n )\n },\n\n createNewrNode (state, payload) {\n const newNode = structuredClone(state.rnodesHeader)\n const nodeProperties = {}\n state.rnodeAttributes.forEach(key => {\n nodeProperties[key] = null\n })\n nodeProperties.index = 'rnode_' + short.generate()\n const nodeGeometry = {\n coordinates: payload,\n type: 'Point',\n }\n // Copy specified node\n const nodeFeatures = { geometry: nodeGeometry, properties: nodeProperties, type: 'Feature' }\n newNode.features = [nodeFeatures]\n state.newrNode = newNode\n },\n splitrLink (state, payload) {\n // changing link1 change editorLinks as it is an observer.\n const link1 = payload.selectedFeature\n const link2 = structuredClone(link1)\n // distance du point (entre 0 et 1) sur le lien original\n const ratio = payload.offset\n\n link1.properties.b = state.newrNode.features[0].properties.index\n link1.geometry.coordinates = [\n ...link1.geometry.coordinates.slice(0, payload.sliceIndex),\n state.newrNode.features[0].geometry.coordinates,\n ]\n\n link1.properties.index = 'link_' + short.generate() // link1.properties.index+ '-1'\n link1.properties.length = link1.properties.length * ratio\n link1.properties.time = link1.properties.time * ratio\n if (link1.properties.length_r) link1.properties.length_r = link1.properties.length\n if (link1.properties.time_r) link1.properties.time_r = link1.properties.time\n\n link2.properties.a = state.newrNode.features[0].properties.index\n link2.geometry.coordinates = [\n state.newrNode.features[0].geometry.coordinates,\n ...link2.geometry.coordinates.slice(payload.sliceIndex),\n ]\n link2.properties.index = 'rlink_' + short.generate() // link2.properties.index+ '-2'\n link2.properties.length = link2.properties.length * (1 - ratio)\n link2.properties.time = link2.properties.time * (1 - ratio)\n if (link2.properties.length_r) link2.properties.length_r = link2.properties.length\n if (link2.properties.time_r) link2.properties.time_r = link2.properties.time\n\n state.visiblerLinks.features.push(link2)\n state.renderedrLinks.features.push(link2)\n // update actual rlinks and rnodes\n state.rlinks.features.filter((link) => link.properties.index === link1.properties.index)[0] = link1\n state.rlinks.features.push(link2)\n },\n\n addRoadNodeInline (state, payload) {\n // selectedLink : list of links index\n // lngLat : object wit click geometry\n // nodes : str. name of node to add (rnode, anchorrNodeS)\n const selectedFeatures = state.renderedrLinks.features\n .filter((link) => payload.selectedIndex.includes(link.properties.index))\n // for loop. for each selectedc links add the node and split.\n for (let i = 0; i < selectedFeatures.length; i++) {\n const linkGeom = Linestring(selectedFeatures[i].geometry.coordinates)\n const clickedPoint = Point(Object.values(payload.lngLat))\n const snapped = nearestPointOnLine(linkGeom, clickedPoint, { units: 'kilometers' })\n const dist = length(linkGeom, { units: 'kilometers' }) // dist\n // for multiString, gives the index of the closest one, add +1 for the slice.\n const sliceIndex = snapped.properties.index + 1\n const offset = snapped.properties.location / dist\n if (payload.nodes === 'rnodes') {\n // only add one node, takes the first one.\n if (i === 0) {\n this.commit('createNewrNode', snapped.geometry.coordinates)\n state.rnodes.features.push(state.newrNode.features[0])\n state.visiblerNodes.features.push(state.newrNode.features[0])\n state.renderedrNodes.features.push(state.newrNode.features[0])\n }\n this.commit('splitrLink', { selectedFeature: selectedFeatures[i], offset: offset, sliceIndex: sliceIndex })\n\n // Anchor Nodes\n } else {\n this.commit('addAnchorrNode', {\n selectedLink: selectedFeatures[i],\n coordinates: snapped.geometry.coordinates,\n sliceIndex: sliceIndex,\n })\n }\n }\n },\n addAnchorrNode (state, payload) {\n const linkIndex = payload.selectedLink.properties.index\n const featureIndex = state.renderedrLinks.features.findIndex(link => link.properties.index === linkIndex)\n // changing link change visible rLinks as it is an observer.\n const link = state.renderedrLinks.features[featureIndex]\n link.geometry.coordinates.splice(payload.sliceIndex, 0, payload.coordinates)\n },\n createrLink (state, payload) {\n // nodeIdA: node id, nodeIdB: node id, geom: array geom where we clicked, layerId: str. the layer id rnodes, rlinks\n // 3 cases.\n // 1) click on the map. create a node b then connect.\n // 2) click on a node. create a link between node a and b\n // 3) click on a link. create node inline b then create link a to b.\n // create a node if we click on the map (case 1)\n if (!payload.nodeIdB) {\n this.commit('createNewrNode', payload.geom)\n state.visiblerNodes.features.push(state.newrNode.features[0])\n state.renderedrNodes.features.push(state.newrNode.features[0])\n state.rnodes.features.push(state.newrNode.features[0])\n payload.nodeIdB = state.newrNode.features[0].properties.index\n } else if (payload.layerId === 'rlinks') {\n // create a node inline and then the new link\n this.commit('addRoadNodeInline', { selectedIndex: payload.nodeIdB, lngLat: payload.geom, nodes: 'rnodes' })\n payload.nodeIdB = state.newrNode.features[0].properties.index\n }\n const rnodeA = state.visiblerNodes.features.filter(node => node.properties.index === payload.nodeIdA)[0]\n const rnodeB = state.visiblerNodes.features.filter(node => node.properties.index === payload.nodeIdB)[0]\n\n const linkGeometry = {\n coordinates: [rnodeA.geometry.coordinates, rnodeB.geometry.coordinates],\n type: 'LineString',\n }\n\n const linkProperties = {}\n // set default links values\n state.rlineAttributes.forEach((key) => linkProperties[key] = null)\n linkProperties.index = 'rlink_' + short.generate()\n linkProperties.a = payload.nodeIdA\n linkProperties.b = payload.nodeIdB\n linkProperties.highway = state.defaultHighway // quenedi\n linkProperties.route_color = state.rlinksDefaultColor\n // add length, speed, time now that we have a geometry.\n const distance = length(linkGeometry)\n const time = distance / state.roadSpeed * 3600 // 20kmh hard code speed. time in secs\n linkProperties.length = Number((distance * 1000).toFixed(0)) // metres\n linkProperties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n linkProperties.speed = Number(state.roadSpeed) // rounded to 0 decimals\n if (state.rlineAttributes.includes('oneway')) {\n linkProperties.oneway = '0'\n state.reversedAttributes.forEach(\n (rkey) => linkProperties[rkey] = linkProperties[rkey.slice(0, -2)])\n }\n\n const linkFeature = { geometry: linkGeometry, properties: linkProperties, type: 'Feature' }\n state.rlinks.features.push(linkFeature)\n\n // add newly generated group (i.e. highway == quenedi), to visibles checked groups.\n const newLinkGroup = linkProperties[state.selectedrFilter]\n if (!state.filteredrCategory.includes(newLinkGroup)) {\n state.filteredrCategory.push(newLinkGroup)\n }\n if (!state.selectedrGroup.includes(newLinkGroup)) {\n // if its not already selected, push it.\n state.visiblerLinks.features.push(linkFeature)\n state.renderedrLinks.features.push(linkFeature)\n state.selectedrGroup.push(newLinkGroup)\n } else {\n state.visiblerLinks.features.push(linkFeature)\n state.renderedrLinks.features.push(linkFeature)\n }\n },\n\n getConnectedLinks (state, payload) {\n const nodeIndex = payload.selectedNode.properties.index\n // get links connected to the node\n // use rLinks as we could moidified links that are not visible moving a node.\n state.connectedLinks = {\n b: state.rlinks.features.filter(link => link.properties.b === nodeIndex),\n a: state.rlinks.features.filter(link => link.properties.a === nodeIndex),\n }\n },\n moverNode (state, payload) {\n const nodeIndex = payload.selectedNode.properties.index\n // remove node\n const newNode = state.renderedrNodes.features.filter(node => node.properties.index === nodeIndex)[0]\n newNode.geometry.coordinates = payload.lngLat\n\n // changing links\n\n // update links geometry. check if exist first (if we take the first|last node there is only 1 link)\n state.connectedLinks.b.forEach(link => {\n // note: props are unchanged. even tho the length change, the time and length are unchanged.\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, -1), payload.lngLat]\n // update time and distance\n const distance = length(link)\n link.properties.length = Number((distance * 1000).toFixed(0)) // metres\n // const time = distance / state.roadSpeed * 3600 // 20kmh hard code speed. time in secs\n const time = distance / link.properties.speed * 3600\n link.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n // add reverse direction time and length if it exist on the link\n if (link.properties.time_r) {\n const rtime = distance / link.properties.speed_r * 3600\n link.properties.time_r = Number(rtime.toFixed(0)) // rounded to 0 decimals\n }\n if (link.properties.length_r) link.properties.length_r = link.properties.length\n })\n state.connectedLinks.a.forEach(link => {\n link.geometry.coordinates = [payload.lngLat, ...link.geometry.coordinates.slice(1)]\n // update time and distance\n const distance = length(link)\n link.properties.length = Number((distance * 1000).toFixed(0)) // metres\n // const time = distance / state.roadSpeed * 3600 // 20kmh hard code speed. time in secs\n const time = distance / link.properties.speed * 3600\n link.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n // add reverse direction time and length if it exist on the link\n if (link.properties.time_r) {\n const rtime = distance / link.properties.speed_r * 3600\n link.properties.time_r = Number(rtime.toFixed(0)) // rounded to 0 decimals\n }\n if (link.properties.length_r) link.properties.length_r = link.properties.length\n })\n },\n moverAnchor (state, payload) {\n const linkIndex = payload.selectedNode.properties.linkIndex\n const coordinatedIndex = payload.selectedNode.properties.coordinatedIndex\n const link = state.renderedrLinks.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n payload.lngLat,\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n\n // update time and distance\n const distance = length(link)\n link.properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.roadSpeed * 3600 // 20kmh hard code speed. time in secs\n link.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n },\n deleteAnchorrNode (state, payload) {\n const linkIndex = payload.selectedNode.linkIndex\n const coordinatedIndex = payload.selectedNode.coordinatedIndex\n const link = state.renderedrLinks.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n },\n deleterLink (state, payload) {\n const linkArr = new Set(payload.selectedIndex)\n state.rlinks.features = state.rlinks.features.filter(link => !linkArr.has(link.properties.index))\n state.visiblerLinks.features = state.visiblerLinks.features.filter(link => !linkArr.has(link.properties.index))\n state.renderedrLinks.features = state.renderedrLinks.features.filter(link => !linkArr.has(link.properties.index))\n this.commit('deleteUnusedrNodes')\n this.commit('getVisiblerNodes', { method: 'remove' })\n this.commit('getRenderedrNodes')\n this.commit('getFilteredrCat')\n },\n deleterGroup (state, payload) {\n const group = payload\n const cat = state.selectedrFilter\n state.rlinks.features = state.rlinks.features.filter(link => link.properties[cat] !== group)\n this.commit('refreshVisibleRoads')\n this.commit('deleteUnusedrNodes')\n this.commit('getFilteredrCat')\n },\n deleteUnusedrNodes (state) {\n // delete every every nodes not in links\n const a = state.rlinks.features.map(item => item.properties.a)\n const b = state.rlinks.features.map(item => item.properties.b)\n const nodesInLinks = new Set([...a, ...b])\n state.rnodes.features = state.rnodes.features.filter(node => nodesInLinks.has(node.properties.index))\n },\n\n editrGroupInfo (state, payload) {\n // edit line info on multiple trips at once.\n const groupInfo = payload.info\n const selectedLinks = payload.selectedLinks // observer of state.links\n // get only keys that are not unmodified multipled Values (value=='' and placeholder==true)\n const props = Object.keys(groupInfo).filter(key =>\n ((groupInfo[key].value !== '') || !groupInfo[key].placeholder))\n\n // if we change everything to 2 way. init links thats were one way with thoses values (ex:speed_r = speed)\n if (groupInfo.oneway?.value === '0') {\n const linksToSplit = selectedLinks.filter(link => link.properties.oneway === '1')\n linksToSplit.forEach(link => {\n state.reversedAttributes.forEach(\n (rkey) => link.properties[rkey] = link.properties[rkey.slice(0, -2)])\n })\n // delete reverse attribute for links going from 2 ways to one way\n } else if (groupInfo.oneway?.value === '1') {\n const linksToSplit = selectedLinks.filter(link => link.properties.oneway === '0')\n linksToSplit.forEach(link => {\n state.reversedAttributes.forEach(\n (rkey) => delete link.properties[rkey])\n })\n }\n\n // this is an oberver. modification will be applied to state.links.\n selectedLinks.forEach(\n (features) => props.forEach((key) => features.properties[key] = groupInfo[key].value))\n // apply the group modification to the reverse links too (ex: speed = 10 and speed_r = 10)\n if (state.rlineAttributes.includes('oneway')) {\n const reversedProps = state.reversedAttributes.filter(rkey => props.includes(rkey.slice(0, -2)))\n selectedLinks.filter(link => link.properties.oneway === '0').forEach(\n (features) => reversedProps.forEach((rkey) => features.properties[rkey] = groupInfo[rkey.slice(0, -2)].value),\n )\n }\n this.commit('refreshVisibleRoads')\n this.commit('getFilteredrCat')\n },\n\n },\n\n getters: {\n rlinks: (state) => state.rlinks,\n rnodes: (state) => state.rnodes,\n roadSpeed: (state) => state.roadSpeed,\n rlinksHeader: (state) => state.rlinksHeader,\n rnodesHeader: (state) => state.rnodesHeader,\n rlineAttributes: (state) => state.rlineAttributes.sort(),\n selectedrGroup: (state) => state.selectedrGroup,\n selectedrFilter: (state) => state.selectedrFilter,\n filteredrCategory: (state) => state.filteredrCategory,\n visiblerLinks: (state) => state.visiblerLinks,\n renderedrLinks: (state) => state.renderedrLinks,\n renderedrNodes: (state) => state.renderedrNodes,\n visiblerNodes: (state) => state.visiblerNodes,\n defaultHighway: (state) => state.defaultHighway,\n rlinksIsEmpty: (state) => state.rlinks.features.length === 0,\n rcstAttributes: (state) => state.rcstAttributes,\n newrNode: (state) => state.newrNode,\n rundeletable: (state) => state.rundeletable,\n hasCycleway: (state) => state.rlineAttributes.includes('cycleway'),\n\n anchorrNodes: (state) => {\n const nodes = structuredClone(state.rnodesHeader)\n state.renderedrLinks.features.filter(link => link.geometry.coordinates.length > 2).forEach(\n feature => {\n const linkIndex = feature.properties.index\n feature.geometry.coordinates.slice(1, -1).forEach(\n (point, idx) => nodes.features.push(Point(\n point,\n { index: short.generate(), linkIndex: linkIndex, coordinatedIndex: idx + 1 },\n ),\n ),\n\n )\n },\n )\n\n return nodes\n },\n rlinkDirection: (state) => (indexList, reversed = false) => {\n const links = state.rlinks.features.filter(link => indexList.includes(link.properties.index))\n const res = []\n links.forEach(link => {\n const geom = link.geometry.coordinates\n if (reversed) {\n res.push(bearing(geom[geom.length - 1], geom[0]))\n } else {\n res.push(bearing(geom[0], geom[geom.length - 1]))\n }\n })\n return res\n },\n grouprLinks: (state) => (category, group) => {\n return state.rlinks.features.filter(link => group === link.properties[category])\n },\n onewayIndex: (state) => {\n return new Set(state.rlinks.features.filter(\n link => link.properties.oneway === '0').map(\n link => link.properties.index))\n },\n rlinksForm: (state) => (linkIndex) => {\n const uneditable = ['a', 'b', 'index']\n const editorForm = state.visiblerLinks.features.filter(\n (link) => link.properties.index === linkIndex)[0].properties\n\n // filter properties to only the one that are editable.\n const form = {}\n state.rlineAttributes.forEach(key => {\n form[key] = {\n value: editorForm[key],\n disabled: uneditable.includes(key),\n placeholder: false,\n }\n })\n return form\n },\n reversedrLinksForm: (state) => (linkIndex) => {\n const uneditable = ['a', 'b', 'index']\n const editorForm = state.visiblerLinks.features.filter(\n (link) => link.properties.index === linkIndex)[0].properties\n\n // filter properties to only the one that are editable.\n const form = {}\n state.reversedAttributes.forEach(key => {\n form[key] = {\n value: editorForm[key],\n disabled: uneditable.includes(key),\n placeholder: false,\n }\n })\n return form\n },\n },\n}\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\nimport Point from 'turf-point'\nimport { serializer } from '@comp/utils/serializer.js'\nimport { IndexAreDifferent } from '@comp/utils/utils.js'\nconst short = require('short-uuid')\nconst $gettext = s => s\n\nexport default {\n namespaced: true,\n state: {\n layer: {},\n visibleLayer: {},\n layerHeader: {}, // empty geojson\n layerAttributes: [], // all the available attributes (columns in pandas)\n filteredCategory: [], // all possible category (to be in selectedCat)\n selectedFilter: '', // ex: highway\n selectedCategory: [], // ex: [motorway, residential] visible one.\n\n },\n\n mutations: {\n loadLayer (state, payload) {\n state.layer = structuredClone(payload)\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.layer.crs.properties.name)) {\n const layerHeader = { ...state.layer }\n layerHeader.features = []\n state.layerHeader = layerHeader\n state.visibleLayer = structuredClone(layerHeader)\n // set all trips visible\n // this.commit('results/changeSelectedTrips', state.tripId)\n this.commit('od/getProperties')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n loadODFiles (state, payload) {\n // payload = [{path,content},...]\n for (const file of payload) {\n if (IndexAreDifferent(file.content, state.layer)) {\n this.commit('od/appendNewOD', serializer(file.content, file.path, 'LineString'))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n }\n },\n\n appendNewOD (state, payload) {\n // append new links and node to the project (import page)\n function getFirstAndLast (arr) {\n return [arr[0], arr[arr.length - 1]]\n }\n\n payload.features.forEach(link => link.geometry.coordinates = getFirstAndLast(link.geometry.coordinates))\n\n payload.features.forEach(link => state.layer.features.push(link))\n this.commit('od/getProperties')\n this.commit('od/getFilteredCategory')\n this.commit('od/refreshVisibleLayer')\n },\n\n changeSelectedFilter (state, payload) {\n state.selectedFilter = payload\n this.commit('od/refreshVisibleLayer')\n this.commit('od/getFilteredCategory')\n },\n changeSelectedCategory (state, payload) {\n state.selectedCategory = payload\n this.commit('od/refreshVisibleLayer')\n },\n\n getProperties (state) {\n const header = new Set([])\n state.layer.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n // add all default attributes\n const defaultAttributes = [\n 'index', ' name']\n defaultAttributes.forEach(att => header.add(att))\n state.layerAttributes = Array.from(header)\n state.selectedFilter = state.layerAttributes[0]\n state.selectedCategory = Array.from(new Set(state.layer.features.map(\n item => item.properties[state.selectedFilter])))\n },\n\n refreshVisibleLayer (state) {\n const group = new Set(state.selectedCategory)\n const cat = state.selectedFilter\n state.visibleLayer.features = state.layer.features.filter(link => group.has(link.properties[cat]))\n },\n getFilteredCategory (state) {\n // for a given filter (key) get array of unique value\n // e.g. get ['bus','subway'] for route_type\n const val = Array.from(new Set(state.layer.features.map(\n item => item.properties[state.selectedFilter])))\n state.filteredCategory = val\n },\n\n // actions\n deleteOD (state, payload) {\n const linkArr = new Set(payload.selectedIndex)\n state.layer.features = state.layer.features.filter(link => !linkArr.has(link.properties.index))\n this.commit('od/refreshVisibleLayer')\n this.commit('od/getFilteredCategory')\n },\n\n deleteGroup (state, payload) {\n const group = payload\n const cat = state.selectedFilter\n state.layer.features = state.layer.features.filter(link => link.properties[cat] !== group)\n this.commit('od/refreshVisibleLayer')\n this.commit('od/getFilteredCategory')\n },\n\n moveNode (state, payload) {\n const linkIndex = payload.selectedFeature.properties.linkIndex\n const coordinatedIndex = payload.selectedFeature.properties.coordinatedIndex\n\n const link = state.visibleLayer.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n payload.lngLat,\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n },\n\n createNewLink (state, payload) {\n const linkGeometry = {\n coordinates: [payload.lngLat, payload.lngLat],\n type: 'LineString',\n }\n\n const linkProperties = {}\n // set default links values\n state.layerAttributes.forEach((key) => linkProperties[key] = null)\n linkProperties.index = payload.index\n // linkProperties.route_color = state.rlinksDefaultColor\n const linkFeature = { geometry: linkGeometry, properties: linkProperties, type: 'Feature' }\n state.layer.features.push(linkFeature)\n\n this.commit('od/getFilteredCategory')\n // add newly create link to the visible\n const newCat = linkProperties[state.selectedFilter]\n const selectedCategorySet = new Set(state.selectedCategory)\n if (!selectedCategorySet.has(newCat)) {\n state.selectedCategory.push(newCat)\n }\n this.commit('od/refreshVisibleLayer')\n },\n\n editLinkInfo (state, payload) {\n // get selected node in editorNodes and modify the changes attributes.\n const { selectedLinkId, info } = payload\n const props = Object.keys(info)\n state.visibleLayer.features.filter(\n // eslint-disable-next-line array-callback-return\n function (link) {\n if (link.properties.index === selectedLinkId) {\n props.forEach((key) => link.properties[key] = info[key].value)\n }\n },\n )\n this.commit('od/getFilteredCategory')\n },\n\n editGroupInfo (state, payload) {\n // edit line info on multiple trips at once.\n const groupInfo = payload.info\n const selectedLinks = payload.selectedLinks // observer of state.links\n // get only keys that are not unmodified multipled Values (value=='' and placeholder==true)\n const props = Object.keys(groupInfo).filter(key =>\n ((groupInfo[key].value !== '') || !groupInfo[key].placeholder))\n // this is an oberver. modification will be applied to state.links.\n selectedLinks.forEach(\n (features) => props.forEach((key) => features.properties[key] = groupInfo[key].value))\n\n this.commit('od/getFilteredCategory')\n this.commit('od/refreshVisibleLayer')\n },\n addPropertie (state, payload) {\n // payload = name\n // when a new line properties is added (in dataframe page)\n state.layer.features.map(link => link.properties[payload] = null)\n state.visibleLayer.features.map(link => link.properties[payload] = null)\n state.layerAttributes.push(payload)\n },\n deletePropertie (state, payload) {\n // when a link property is deleted\n state.layer.features.filter(link => delete link.properties[payload.name])\n state.visibleLayer.features.filter(link => delete link.properties[payload.name])\n state.layerAttributes = state.layerAttributes.filter(item => item !== payload.name)\n },\n },\n\n getters: {\n layer: (state) => state.layer,\n visibleLayer: (state) => state.visibleLayer,\n layerIsEmpty: (state) => state.layer.features.length === 0,\n layerHeader: (state) => state.layerHeader,\n selectedTrips: (state) => state.selectedTrips,\n layerAttributes: (state) => state.layerAttributes.sort(),\n selectedFilter: (state) => state.selectedFilter,\n filteredCategory: (state) => state.filteredCategory,\n selectedCategory: (state) => state.selectedCategory,\n groupLayer: (state) => (category, group) => {\n return state.layer.features.filter(link => group === link.properties[category])\n },\n linkForm: (state) => (linkIndex) => {\n const uneditable = ['index']\n const editorForm = state.visibleLayer.features.filter(\n (link) => link.properties.index === linkIndex)[0].properties\n\n // filter properties to only the one that are editable.\n const form = {}\n state.layerAttributes.forEach(key => {\n form[key] = {\n value: editorForm[key],\n disabled: uneditable.includes(key),\n placeholder: false,\n }\n })\n return form\n },\n nodes: (state) => (layer) => {\n const nodes = structuredClone(state.layerHeader)\n layer.features.forEach(\n feature => {\n const Index = feature.properties.index\n feature.geometry.coordinates.forEach(\n (point, idx) => nodes.features.push(Point(\n point,\n { index: short.generate(), linkIndex: Index, coordinatedIndex: idx },\n ),\n ),\n\n )\n },\n )\n\n return nodes\n },\n\n },\n}\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\n\nimport chroma from 'chroma-js'\nconst seedrandom = require('seedrandom')\n\nfunction isHexColor (variable) {\n const hexRegex = /^#([0-9A-Fa-f]{3}){1,2}$/i\n return hexRegex.test(variable)\n}\nfunction remap (val, minVal, maxVal, reverse, scale, isWidth) {\n if (typeof (val) === 'string') {\n if (isWidth) {\n return 0\n } else {\n const rng = seedrandom(val)\n return rng()\n }\n }\n let res = val\n if (scale === 'log') {\n minVal = minVal > 0 ? Math.log10(minVal) : 0\n maxVal = maxVal > 0 ? Math.log10(maxVal) : 0\n res = val > 0 ? Math.log10(val) : 0\n } else if (scale === 'sqrt') {\n minVal = Math.sqrt(minVal)\n maxVal = Math.sqrt(maxVal)\n res = Math.sqrt(val)\n } else if (scale === 'exp') {\n // need to normalize first. 10**big number is not working\n minVal = minVal / maxVal\n val = val / maxVal\n maxVal = 1\n minVal = 10 ** (minVal)\n maxVal = 10 ** (maxVal)\n res = 10 ** (val)\n } else if (scale === 'quad') {\n // need to normalize first. 10**big number is not working\n minVal = (minVal) ** 2\n maxVal = (maxVal) ** 2\n res = (val) ** 2\n }\n\n if (reverse) {\n res = (-res + maxVal) / (maxVal - minVal)\n } else {\n res = (res - minVal) / (maxVal - minVal)\n }\n return res\n}\n\nconst defaultSettings = {\n selectedFeature: null,\n maxWidth: 10,\n minWidth: 1,\n numStep: 100,\n scale: 'linear', // 'log', 'sqrt'\n fixScale: false,\n minVal: 0, // option to blocked them. so its an input and its not recompute\n maxVal: 1,\n cmap: 'OrRd',\n opacity: 100,\n offset: false,\n showNaN: true,\n reverseColor: false,\n}\n\nexport default {\n namespaced: true,\n state: {\n type: 'links',\n links: {},\n visibleLinks: {},\n NaNLinks: {},\n linksHeader: {},\n lineAttributes: [],\n selectedFilter: '',\n selectedCategory: [],\n displaySettings: defaultSettings,\n\n },\n\n mutations: {\n unload (state) {\n state.type = 'links'\n state.links = {}\n state.visibleLinks = {}\n state.NaNLinks = {}\n state.linksHeader = {}\n state.lineAttributes = []\n state.selectedFilter = ''\n state.selectedCategory = []\n state.displaySettings = defaultSettings\n },\n loadLinks (state, payload) {\n state.links = payload.geojson\n state.type = payload.type\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.links.crs.properties.name)) {\n const linksHeader = structuredClone(state.links)\n linksHeader.features = []\n state.linksHeader = linksHeader\n state.visibleLinks = structuredClone(linksHeader)\n state.NaNLinks = structuredClone(linksHeader)\n // set all trips visible\n this.commit('results/getLinksProperties')\n if (state.lineAttributes.includes(payload.selectedFeature)) {\n state.displaySettings.selectedFeature = payload.selectedFeature\n } else {\n state.displaySettings.selectedFeature = null\n }\n this.commit('results/refreshVisibleLinks')\n this.commit('results/updateSelectedFeature')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n updateLinks (state, payload) {\n state.links = payload\n this.commit('results/refreshVisibleLinks')\n this.commit('results/updateSelectedFeature')\n },\n changeSelectedFilter (state, payload) {\n state.selectedFilter = payload\n // set all vvisible\n state.selectedCategory = Array.from(new Set(state.links.features.map(\n item => item.properties[state.selectedFilter])))\n this.commit('results/refreshVisibleLinks')\n },\n changeSelectedCategory (state, payload) {\n state.selectedCategory = payload\n this.commit('results/refreshVisibleLinks')\n },\n\n getLinksProperties (state) {\n const header = new Set([])\n state.links.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n state.lineAttributes = Array.from(header)\n state.lineAttributes = state.lineAttributes.filter(attr => !['display_width', 'display_color'].includes(attr))\n\n // eslint-disable-next-line max-len\n state.selectedFilter = header.has('route_type') ? 'route_type' : header.has('highway') ? 'highway' : state.lineAttributes[0]\n state.selectedCategory = Array.from(new Set(state.links.features.map(\n item => item.properties[state.selectedFilter])))\n },\n applySettings (state, payload) {\n const keys = Object.keys(payload)\n // apply all payload settings to state.displaySettings\n keys.forEach(key => state.displaySettings[key] = payload[key])\n this.commit('results/refreshVisibleLinks')\n this.commit('results/updateSelectedFeature')\n },\n\n updateSelectedFeature (state) {\n const key = state.displaySettings.selectedFeature\n const maxWidth = state.displaySettings.maxWidth\n const minWidth = state.displaySettings.minWidth\n const scale = state.displaySettings.scale\n const numStep = state.displaySettings.numStep\n const cmap = state.displaySettings.cmap\n const featureArr = state.visibleLinks.features.filter(\n link => link.properties[key]).map(\n link => link.properties[key])\n if (!state.displaySettings.fixScale) {\n const arrayMinMax = (arr) =>\n arr.reduce(([min, max], val) => [Math.min(min, val), Math.max(max, val)], [\n Number.POSITIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n ])\n\n const [minV, maxV] = arrayMinMax(featureArr)\n state.displaySettings.minVal = Math.round(minV * 100) / 100\n state.displaySettings.maxVal = Math.round(maxV * 100) / 100\n }\n const minVal = state.displaySettings.minVal\n const maxVal = state.displaySettings.maxVal\n const reverse = state.displaySettings.reverseColor\n\n state.visibleLinks.features.forEach(\n link => {\n let val = link.properties[key]\n if (val < minVal) {\n link.properties.display_width = minWidth\n } else if (val > maxVal) {\n link.properties.display_width = maxWidth\n } else {\n val = remap(val, minVal, maxVal, false, scale, true)\n link.properties.display_width = (maxWidth - minWidth) * val + minWidth\n }\n },\n )\n\n const colorScale = chroma.scale(cmap).padding([0.1, 0])\n .domain([0, 1], scale).classes(numStep)\n\n state.visibleLinks.features.forEach(\n link => {\n const val = link.properties[key]\n if (isHexColor(val)) {\n console.log(val)\n link.properties.display_color = val\n } else {\n link.properties.display_color = colorScale(\n remap(val, minVal, maxVal, reverse, scale, false)).hex()\n }\n },\n )\n },\n refreshVisibleLinks (state) {\n const group = new Set(state.selectedCategory)\n const cat = state.selectedFilter\n const key = state.displaySettings.selectedFeature\n state.visibleLinks.features = state.links.features.filter(link => group.has(link.properties[cat]))\n if (!state.displaySettings.showNaN) {\n // keep track of NaN links to display them when we have a polygon\n state.NaNLinks.features = state.visibleLinks.features.filter(link => !link.properties[key])\n state.visibleLinks.features = state.visibleLinks.features.filter(link => link.properties[key])\n }\n },\n },\n\n getters: {\n type: (state) => state.type,\n links: (state) => state.links,\n visibleLinks: (state) => state.visibleLinks,\n displayLinks: (state) => {\n const layer = structuredClone(state.linksHeader)\n layer.features = state.visibleLinks.features.map(obj => {\n return {\n geometry: obj.geometry,\n properties: {\n display_color: obj.properties.display_color,\n display_width: obj.properties.display_width,\n },\n\n }\n })\n return layer\n },\n NaNLinks: (state) => state.NaNLinks,\n linksHeader: (state) => state.linksHeader,\n lineAttributes: (state) => state.lineAttributes.sort(),\n selectedFilter: (state) => state.selectedFilter,\n selectedCategory: (state) => state.selectedCategory,\n displaySettings: (state) => state.displaySettings,\n selectedFeature: (state) => state.displaySettings.selectedFeature,\n maxWidth: (state) => state.displaySettings.maxWidth,\n minWidth: (state) => state.displaySettings.minWidth,\n numStep: (state) => state.displaySettings.numStep,\n scale: (state) => state.displaySettings.scale,\n opacity: (state) => state.displaySettings.opacity,\n colorScale: (state) => {\n const arr = []\n const colorScale = chroma.scale(state.displaySettings.cmap).padding([0.1, 0])\n .domain([0, 1]).classes(state.displaySettings.numStep)\n for (let i = 0; i < 100; i++) {\n arr.push(colorScale(remap(i, 0, 100, state.displaySettings.reverseColor, state.displaySettings.scale, false)))\n }\n return arr\n },\n },\n}\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\n\nexport default {\n namespaced: true,\n state: () => ({\n layer: {},\n mat: {},\n properties: [],\n type: null,\n }),\n\n mutations: {\n createLayer (state, payload) {\n state.layer = structuredClone(payload.data)\n state.type = state.layer.features[0].geometry.type\n // change Multipolygon to polygon type. just as they the same for mapbox and the app.\n state.type = state.type === 'MultiPolygon' ? 'Polygon' : state.type\n },\n addMatrix (state, payload) {\n // payload is a matrix\n Object.keys(payload).forEach(key => { state.mat[key + ' (OD)'] = payload[key] })\n state.properties = Object.keys(state.mat)\n // if init with nothing, do nothing.\n if (state.layer.features.length > 0) {\n // for each properties in matrix, init the zones to null.\n state.properties.forEach(\n prop =>\n state.layer.features.forEach(\n zone => zone.properties[prop] = null,\n ),\n )\n }\n },\n\n changeZone (state, payload) {\n const selectedProperty = payload.selectedProperty\n\n if (state.properties.includes(selectedProperty)) {\n const index = payload.index\n const row = state.mat[selectedProperty][index]\n // apply new value to each zone. (zone_1 is selected, apply time to zone_1 to every zone)\n // if there is no data, put null (ex: sparse matrix)\n state.layer.features.forEach(\n zone => zone.properties[selectedProperty] = row ? row[zone.properties.index] : null)\n }\n },\n\n },\n\n getters: {\n layer: (state) => state.layer,\n type: (state) => state.type,\n properties: (state) => state.properties,\n hasOD: (state) => state.properties.length > 0,\n mat: (state) => {\n // remove OD in matrix names.\n // return null if there is no od.\n const keys = Object.keys(state.mat)\n if (keys.length > 0) {\n const res = {}\n keys.forEach(\n key => { res[key.slice(0, -5)] = state.mat[key] })\n return res\n } else return null\n },\n },\n}\n","import { quetzalClient } from '@src/axiosClient.js'\nimport { paramsSerializer } from '@src/components/utils/serializer.js'\nimport s3 from '@src/AWSClient'\nconst $gettext = s => s\n\nexport default {\n namespaced: true,\n state: {\n stateMachineArnBase: 'arn:aws:states:ca-central-1:142023388927:stateMachine:',\n steps: [{ name: 'Loading Steps...' }],\n selectedStepFunction: 'default', // default or comparision,\n avalaibleStepFunctions: ['default'],\n running: false,\n executionArn: '',\n currentStep: 0,\n error: false,\n errorMessage: '',\n synchronized: true,\n parameters: [],\n },\n mutations: {\n cleanRun (state) {\n state.steps = [{ name: 'Loading Steps...' }]\n state.selectedStepFunction = 'default'\n state.avalaibleStepFunctions = ['default']\n state.running = false\n state.executionArn = ''\n state.currentStep = 0\n state.error = false\n state.synchronized = true\n state.parameters = []\n },\n setSteps (state, payload) {\n state.steps = payload\n state.steps.splice(0, 0, { name: 'Saving Networks' })\n state.steps.push({ name: 'Loading Results' })\n },\n startExecution (state) {\n state.error = false\n state.running = true\n state.currentStep = 1\n },\n terminateExecution (state, payload) {\n state.running = false\n state.error = true\n state.errorMessage = payload\n state.executionArn = ''\n },\n changeRunning (state, payload) {\n state.running = payload\n },\n succeedExecution (state) {\n state.running = false\n state.currentStep = state.steps.length + 1\n state.executionArn = ''\n this.commit('changeNotification',\n { text: $gettext('simulation executed successfully!'), autoClose: false, color: 'success' })\n },\n updateCurrentStep (state, payload) {\n const stepNames = state.steps.map(a => a.name)\n state.currentStep = stepNames.indexOf(payload.name) + 1\n },\n getLocalParameters (state, payload) {\n payload = paramsSerializer(payload)\n state.parameters = payload\n },\n setSelectedStepFunction (state, payload) {\n state.selectedStepFunction = payload\n },\n setAvalaibleStepFunctions (state, payload) {\n state.avalaibleStepFunctions = payload\n },\n },\n actions: {\n async getParameters ({ state, commit }, payload) {\n // only for the reset button.\n try {\n const params = await s3.readJson(payload.model, payload.path)\n state.parameters = params\n } catch (err) {\n commit('changeAlert', err, { root: true })\n }\n },\n async getOutputs (context) {\n const model = context.rootState.user.model\n const scen = context.rootState.user.scenario + '/'\n const path = scen + 'outputs/'\n let filesList = await s3.listFiles(model, path)\n filesList = filesList.filter(name => !name.endsWith('/'))\n const res = []\n for (const file of filesList) {\n const name = file.slice(scen.length) // remove scen name from file\n if (file.endsWith('.json') || file.endsWith('.geojson')) {\n const content = await s3.readJson(model, file)\n res.push({ path: name, content: content })\n } else {\n res.push({ path: name, content: null })\n }\n }\n\n if (res.length > 0) {\n // unload all results Layers\n context.commit('unloadLayers', {}, { root: true })\n context.commit('loadFiles', res, { root: true })\n // load new Results\n }\n },\n getSteps ({ state, commit, rootState }) {\n let data = { stateMachineArn: state.stateMachineArnBase + rootState.user.model }\n quetzalClient.client.post('/describe/model',\n data = JSON.stringify(data),\n ).then(\n response => {\n const def = JSON.parse(response.data.definition)\n const firstStep = def.StartAt\n\n // check if there is a choice in the definition.\n // if So. Get all choices in state.availableStepFunctions\n // replace the Next of the choice step with the selected one.\n Object.keys(def.States).forEach((key) => {\n if (def.States[key].Type === 'Choice') {\n // could be a list of choices\n state.avalaibleStepFunctions = ['default', ...def.States[key].Choices.map(el => el.StringEquals)]\n if (state.selectedStepFunction === 'default') {\n def.States[key].Next = def.States[key].Default\n } else {\n // if not default. select the one in the list\n const choices = def.States[key].Choices\n def.States[key].Next = choices.filter(el => el.StringEquals === state.selectedStepFunction)[0].Next\n }\n }\n })\n // if there is a choice\n\n // let next = def.States[firstStep].Next\n const steps = []\n let next = firstStep\n while (true) {\n // if there is a choice\n if (def.States[next].Type === 'Choice') {\n next = def.States[next].Next\n }\n steps.push({ name: next })\n if (def.States[next].Next === undefined) break\n next = def.States[next].Next\n }\n\n commit('setSteps', steps)\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n })\n },\n startExecution ({ state, commit, dispatch, rootState }, payload) {\n const filteredParams = state.parameters.filter(param =>\n (Object.keys(param).includes('category')) && param.model === state.selectedStepFunction)\n const paramsDict = filteredParams.reduce((acc, { category, params }) => {\n acc[category] = params.reduce((paramAcc, { name, value, type }) => {\n paramAcc[name] = type?.toLowerCase() === 'number' ? Number(value) : value\n return paramAcc\n }, {})\n return acc\n }, {})\n let data = {\n // eslint-disable-next-line no-useless-escape\n input: JSON.stringify({\n authorization: rootState.user.idToken,\n choice: state.selectedStepFunction,\n scenario_path_S3: payload.scenario + '/',\n launcher_arg: {\n training_folder: '/tmp',\n params: paramsDict,\n },\n metadata: {\n user_email: rootState.user.cognitoInfo.email,\n },\n }),\n stateMachineArn: state.stateMachineArnBase + rootState.user.model,\n }\n quetzalClient.client.post('',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.executionArn = response.data.executionArn\n dispatch('pollExecution')\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n })\n },\n pollExecution ({ commit, state, dispatch }) {\n const intervalId = setInterval(() => {\n let data = { executionArn: state.executionArn }\n quetzalClient.client.post('/describe',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.status = response.data.status\n if (state.status === 'SUCCEEDED') {\n dispatch('getOutputs').then(\n () => {\n commit('succeedExecution')\n clearInterval(intervalId)\n },\n ).catch(err => alert(err))\n } else if (['FAILED', 'TIMED_OUT', 'ABORTED'].includes(state.status)) {\n commit('terminateExecution', JSON.parse(response.data.cause))\n clearInterval(intervalId)\n } else if (state.status === undefined) {\n clearInterval(intervalId)\n }\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n state.running = false\n })\n data = { executionArn: state.executionArn, includeExecutionData: false, reverseOrder: true }\n quetzalClient.client.post('/history',\n data = JSON.stringify(data),\n ).then(\n response => {\n for (const e in response.data.events) {\n const event = response.data.events[e]\n if (event.type === 'TaskStateEntered') {\n commit('updateCurrentStep', event.stateEnteredEventDetails)\n break\n }\n }\n }).catch(\n err => {\n console.log(err)\n })\n }, 5000)\n },\n stopExecution ({ state, commit }) {\n let data = { executionArn: state.executionArn }\n quetzalClient.client.post('/abort',\n data = JSON.stringify(data),\n ).then(\n response => {\n commit('terminateExecution', response.data)\n // Maybe we sould wait for back to say that execution is terminated (but the wait is awkward)\n }).catch(\n err => {\n console.log(err)\n })\n },\n },\n getters: {\n steps: (state) => state.steps,\n avalaibleStepFunctions: (state) => state.avalaibleStepFunctions,\n selectedStepFunction: (state) => state.selectedStepFunction,\n running: (state) => state.running,\n currentStep: (state) => state.currentStep,\n executionArn: (state) => state.executionArn,\n error: (state) => state.error,\n errorMessage: (state) => state.errorMessage,\n synchronized: (state) => state.synchronized,\n parameters: (state) => state.parameters,\n parametersIsEmpty: (state) => state.parameters.length === 0,\n },\n}\n","import { quetzalClient } from '@src/axiosClient.js'\nimport s3 from '@src/AWSClient'\nimport { v4 as uuid } from 'uuid'\n\nconst $gettext = s => s\n\nexport default {\n namespaced: true,\n state: {\n stateMachineArn: 'arn:aws:states:ca-central-1:142023388927:stateMachine:ML_MatrixRoadCaster',\n bucket: 'matrixroadcaster',\n callID: '',\n status: '',\n timer: 0,\n running: false,\n executionArn: '',\n error: false,\n errorMessage: '',\n parameters: {\n callID: 'test',\n num_zones: 100,\n train_size: 100,\n date_time: '2022-12-13T08:00:21-04:00',\n ff_time_col: 'time',\n max_speed: 100,\n num_cores: 1,\n num_random_od: 1,\n create_zone: true,\n hereApiKey: '',\n },\n },\n mutations: {\n cleanRun (state) {\n state.running = false\n state.executionArn = ''\n state.error = false\n },\n setCallID (state) { state.callID = uuid() },\n setParameters (state, payload) { state.parameters = payload },\n terminateExecution (state, payload) {\n state.running = false\n state.error = true\n state.errorMessage = payload\n state.executionArn = ''\n },\n changeRunning (state, payload) {\n state.running = payload\n },\n getApproxTimer (state, payload) {\n // payload is number of road links\n const numZones = state.parameters.num_zones\n const trainSize = state.parameters.train_size\n const numPlotOD = state.parameters.num_random_od\n // API call time (1.8sec per call), 15 iteration X number of links, loadning saving, plotting 15sec.\n state.timer = Math.min(numZones, trainSize) * 1.8 + payload * 0.002 + 15\n state.timer += 10 * numPlotOD // 10 sec per plots\n },\n succeedExecution (state) {\n state.running = false\n state.executionArn = ''\n this.commit('changeNotification',\n { text: $gettext('Matrix Road Caster executed successfully!'), autoClose: false, color: 'success' })\n },\n\n },\n actions: {\n async startExecution ({ state, commit, dispatch }, payload) {\n commit('getApproxTimer', payload.rlinks.features.length)\n commit('setParameters', payload.parameters)\n console.log('exporting roads to s3')\n state.error = false\n state.running = true\n try {\n await s3.putObject(\n state.bucket,\n state.callID.concat('/road_links.geojson'),\n JSON.stringify(payload.rlinks))\n await s3.putObject(\n state.bucket,\n state.callID.concat('/road_nodes.geojson'),\n JSON.stringify(payload.rnodes))\n } catch (err) { commit('changeAlert', err, { root: true }) }\n let data = {\n input: JSON.stringify(state.parameters),\n name: state.callID,\n stateMachineArn: state.stateMachineArn,\n }\n quetzalClient.client.post('',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.executionArn = response.data.executionArn\n dispatch('pollExecution')\n }).catch(err => {\n commit('changeAlert', err, { root: true })\n state.running = false\n state.status = 'FAILED'\n })\n },\n pollExecution ({ commit, state, dispatch }) {\n const intervalId = setInterval(() => {\n let data = { executionArn: state.executionArn }\n state.timer = state.timer - 2\n quetzalClient.client.post('/describe',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.status = response.data.status\n console.log(state.status)\n if (state.status === 'SUCCEEDED') {\n commit('succeedExecution')\n clearInterval(intervalId)\n } else if (['FAILED', 'TIMED_OUT', 'ABORTED'].includes(state.status)) {\n commit('terminateExecution', JSON.parse(response.data.cause))\n clearInterval(intervalId)\n }\n }).catch(err => { commit('changeAlert', err, { root: true }) })\n }, 2000)\n },\n stopExecution ({ state, commit }) {\n let data = { executionArn: state.executionArn }\n quetzalClient.client.post('/abort',\n data = JSON.stringify(data),\n ).then(\n response => {\n commit('terminateExecution', response.data)\n // Maybe we sould wait for back to say that execution is terminated (but the wait is awkward)\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n })\n },\n },\n getters: {\n running: (state) => state.running,\n status: (state) => state.status,\n executionArn: (state) => state.executionArn,\n error: (state) => state.error,\n errorMessage: (state) => state.errorMessage,\n callID: (state) => state.callID,\n bucket: (state) => state.bucket,\n timer: (state) => state.timer,\n parameters: (state) => state.parameters,\n },\n}\n","import s3 from '@src/AWSClient'\nimport { quetzalClient } from '@src/axiosClient.js'\nimport { v4 as uuid } from 'uuid'\nimport router from '../../router'\nimport { highwayColor, highwayWidth } from '@constants/highway.js'\n\nconst $gettext = s => s\n\nexport default {\n namespaced: true,\n state: {\n stateMachineArn: 'arn:aws:states:ca-central-1:142023388927:stateMachine:osm-api',\n bucket: 'quenedi-osm',\n callID: '',\n status: '',\n timer: 0,\n running: false,\n executionArn: '',\n error: false,\n errorMessage: '',\n tags: ['highway', 'maxspeed', 'lanes', 'name', 'oneway', 'surface'],\n highway: [\n 'motorway',\n 'motorway_link',\n 'trunk',\n 'trunk_link',\n 'primary',\n 'primary_link',\n ],\n colorDict: highwayColor,\n widthDict: highwayWidth,\n },\n mutations: {\n cleanRun (state) {\n state.running = false\n state.executionArn = ''\n state.error = false\n },\n setCallID (state) { state.callID = uuid() },\n\n terminateExecution (state, payload) {\n state.running = false\n state.error = true\n state.errorMessage = payload\n state.executionArn = ''\n },\n changeRunning (state, payload) {\n state.running = payload\n },\n changeHighway (state, payload) {\n state.highway = payload\n },\n succeedExecution (state) {\n state.running = false\n state.executionArn = ''\n this.commit('changeNotification',\n { text: $gettext('OSM network imported successfully!'), autoClose: false, color: 'success' })\n },\n\n },\n actions: {\n startExecution ({ state, commit, dispatch }, payload) {\n // commit('setParameters', payload.parameters)\n state.running = true\n state.error = false\n let input = ''\n if (payload.method === 'bbox') {\n input = JSON.stringify({\n bbox: payload.coords,\n highway: state.highway,\n callID: state.callID,\n elevation: true,\n })\n } else {\n input = JSON.stringify({\n poly: payload.coords,\n highway: state.highway,\n callID: state.callID,\n elevation: true,\n })\n }\n let data = {\n input: input,\n name: state.callID,\n stateMachineArn: state.stateMachineArn,\n }\n quetzalClient.client.post('',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.executionArn = response.data.executionArn\n dispatch('pollExecution')\n }).catch(err => {\n commit('changeAlert', err, { root: true })\n state.running = false\n state.status = 'FAILED'\n })\n },\n async pollExecution ({ commit, state, dispatch }) {\n const intervalId = setInterval(() => {\n let data = { executionArn: state.executionArn }\n state.timer = state.timer - 2\n quetzalClient.client.post('/describe',\n data = JSON.stringify(data),\n ).then(\n async response => {\n state.status = response.data.status\n console.log(state.status)\n if (state.status === 'SUCCEEDED') {\n clearInterval(intervalId)\n await dispatch('downloadOSMFromS3')\n commit('succeedExecution')\n } else if (['FAILED', 'TIMED_OUT', 'ABORTED'].includes(state.status)) {\n commit('terminateExecution', JSON.parse(response.data.cause))\n clearInterval(intervalId)\n }\n }).catch(err => { commit('changeAlert', err, { root: true }) })\n }, 2000)\n },\n stopExecution ({ state, commit }) {\n let data = { executionArn: state.executionArn }\n quetzalClient.client.post('/abort',\n data = JSON.stringify(data),\n ).then(\n response => {\n commit('terminateExecution', response.data)\n // Maybe we sould wait for back to say that execution is terminated (but the wait is awkward)\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n })\n },\n async downloadOSMFromS3 ({ state, commit }) {\n function applyDict (links) {\n // 00BCD4\n Object.keys(state.colorDict).forEach(highway => {\n links.features.filter(link => link.properties.highway === highway).forEach(\n link => {\n link.properties.route_width = state.widthDict[highway]\n link.properties.route_color = state.colorDict[highway]\n })\n })\n return links\n }\n\n let rlinks = await s3.readJson(state.bucket, state.callID.concat('/links.geojson'))\n rlinks = applyDict(rlinks)\n commit('appendNewrLinks', rlinks, { root: true })\n const rnodes = await s3.readJson(state.bucket, state.callID.concat('/nodes.geojson'))\n commit('appendNewrNodes', rnodes, { root: true })\n console.log('downloaded')\n router.push('/Home').catch(() => {})\n },\n },\n getters: {\n running: (state) => state.running,\n status: (state) => state.status,\n executionArn: (state) => state.executionArn,\n error: (state) => state.error,\n errorMessage: (state) => state.errorMessage,\n callID: (state) => state.callID,\n bucket: (state) => state.bucket,\n timer: (state) => state.timer,\n highway: (state) => state.highway,\n tags: (state) => state.tags,\n },\n}\n","import s3 from '../AWSClient'\nconst $gettext = s => s\n\nexport default {\n namespaced: false,\n state: {\n cognitoInfo: {},\n cognitoGroup: '',\n bucketList: [],\n accesToken: '',\n idToken: '',\n expData: 0,\n loggedIn: false,\n loadingState: true,\n errorLoadingState: false,\n scenariosList: [],\n model: null,\n scenario: null,\n protected: false,\n },\n mutations: {\n unloadProject (state) {\n state.model = null\n state.scenario = null\n },\n setLoggedIn (state) {\n state.loggedIn = true\n },\n setLoggedOut (state) {\n state.loggedIn = false\n state.cognitoInfo = {}\n },\n setCognitoInfo (state, payload) {\n state.cognitoInfo = payload\n },\n setCognitoGroup (state, payload) {\n state.cognitoGroup = payload\n },\n setBucketList (state, payload) {\n state.bucketList = payload\n },\n setAccessToken (state, payload) {\n state.accesToken = payload.jwtToken\n state.expDate = payload.payload.exp\n },\n setIdToken (state, payload) {\n state.idToken = payload\n },\n setScenariosList (state, payload) {\n state.scenariosList = payload\n },\n setModel (state, payload) {\n state.model = payload\n },\n setScenario (state, payload) {\n state.scenario = payload.scenario\n state.protected = payload.protected\n },\n\n },\n\n actions: {\n async getScenario ({ commit, state, dispatch }, payload) {\n const res = await s3.getScenario(payload.model)\n commit('setScenariosList', res)\n },\n isTokenExpired ({ state, commit }) {\n const currentTime = Math.floor(Date.now() / 1000) // Convert to seconds\n if (currentTime > state.expDate) {\n commit('changeAlert', {\n name: $gettext('sign out'),\n message: $gettext('your session has expired. please refresh the page or sign in again'),\n }, { root: true })\n }\n },\n\n },\n\n getters: {\n loggedIn: (state) => state.loggedIn,\n cognitoInfo: (state) => state.cognitoInfo,\n cognitoGroup: (state) => state.cognitoGroup,\n bucketList: (state) => state.bucketList ? state.bucketList : [],\n accesToken: (state) => state.accesToken,\n idToken: (state) => state.idToken,\n scenariosList: (state) => state.scenariosList,\n model: (state) => state.model,\n scenario: (state) => state.scenario,\n protected: (state) => state.protected,\n },\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport linksModule from './links.js'\nimport rlinksModule from './rlinks.js'\nimport odModule from './od.js'\nimport resultsModule from './results.js'\nimport layerModule from './layer.js'\nimport runModule from './api/run.js'\nimport MatrixRoadCasterModule from './api/MatrixRoadCaster.js'\nimport OSMImporterModule from './api/OSMImporter.js'\nimport userModule from './user.js'\nimport JSZip from 'jszip'\nimport saveAs from 'file-saver'\nimport s3 from '../AWSClient'\nimport { serializer, stylesSerializer } from '../components/utils/serializer.js'\n\nimport linksBase from '@static/links_base.geojson'\nimport nodesBase from '@static/nodes_base.geojson'\nVue.use(Vuex)\nconst $gettext = s => s\n\nexport const store = new Vuex.Store({\n modules: {\n user: userModule,\n links: linksModule,\n rlinks: rlinksModule,\n od: odModule,\n results: resultsModule,\n run: runModule,\n runMRC: MatrixRoadCasterModule,\n runOSM: OSMImporterModule,\n },\n\n state: {\n notification: {},\n alert: {},\n darkMode: false,\n loading: false,\n showLeftPanel: true,\n windowHeight: 0,\n anchorMode: false,\n linksPopupContent: ['trip_id'],\n roadsPopupContent: ['highway'],\n cyclewayMode: false,\n outputName: 'output',\n mapCenter: [-73.570337, 45.498310],\n mapZoom: 11,\n availableLayers: ['links', 'rlinks', 'od', 'nodes', 'rnodes'],\n visibleRasters: [], // list of rasterFiles path.\n styles: [], // list of styling for results [{name,layer, displaySettings:{...}}, ...]\n otherFiles: [], // [{path, content}]\n attributesChoices: {}, // { pt: {}, road: { oneway: ['0', '1'] } }\n },\n mutations: {\n changeNotification (state, payload) {\n state.notification = payload\n },\n changeAlert (state, payload) {\n /// payload {name,message}, or just alert\n state.alert = payload\n },\n changeDarkMode (state, payload) {\n state.darkMode = payload\n state.rlinks.rlinksDefaultColor = state.darkMode ? '2196F3' : '7EBAAC' // its the primary color.\n state.links.linksDefaultColor = state.darkMode ? '2196F3' : 'B5E0D6' // its the primary color.\n },\n changeLoading (state, payload) {\n state.loading = payload\n },\n changeWindowHeight (state, payload) {\n state.windowHeight = payload\n },\n changeLeftPanel (state) {\n state.showLeftPanel = !state.showLeftPanel\n },\n saveMapPosition (state, payload) {\n state.mapCenter = payload.mapCenter\n state.mapZoom = payload.mapZoom\n },\n setAnchorMode (state, payload) {\n state.anchorMode = payload\n },\n changeAnchorMode (state) {\n state.anchorMode = !state.anchorMode\n },\n changeCyclewayMode (state, payload) {\n state.cyclewayMode = !state.cyclewayMode\n },\n\n loadFiles (state, payload) {\n // payload: res.push({ path: inputs/pt/links.geojson, content: Array() | null })\n try {\n let otherFiles = []\n let outputFiles = []\n\n const ptFiles = payload.filter(el => el.path.startsWith('inputs/pt/') && el.path.endsWith('.geojson'))\n otherFiles = payload.filter(el => !ptFiles.includes(el))\n\n const roadFiles = otherFiles.filter(el => el.path.startsWith('inputs/road/') && el.path.endsWith('.geojson'))\n otherFiles = otherFiles.filter(el => !roadFiles.includes(el))\n\n const ODFiles = otherFiles.filter(el => el.path.startsWith('inputs/od/') && el.path.endsWith('.geojson'))\n otherFiles = otherFiles.filter(el => !ODFiles.includes(el))\n\n const paramFile = otherFiles.filter(el => el.path === 'inputs/params.json')[0]\n otherFiles = otherFiles.filter(el => el !== paramFile)\n\n const stylesFile = otherFiles.filter(el => el.path === 'styles.json')[0]\n otherFiles = otherFiles.filter(el => el !== stylesFile)\n\n const attributesChoicesFile = otherFiles.filter(el => el.path === 'attributesChoices.json')[0]\n otherFiles = otherFiles.filter(el => el !== attributesChoicesFile)\n\n const inputFiles = otherFiles.filter(el => el.path.startsWith('inputs/'))\n otherFiles = otherFiles.filter(el => !inputFiles.includes(el))\n\n outputFiles = otherFiles.filter(el => el.path.startsWith('outputs/'))\n otherFiles = otherFiles.filter(el => !outputFiles.includes(el))\n\n // PT files should be in pair of 2 (links and nodes)\n if (ptFiles.length % 2 !== 0) {\n const err = new Error($gettext('Need the same number of links and nodes files.'))\n err.name = 'ImportError'\n throw err\n }\n // road files should be in pair of 2 (links and nodes)\n if (roadFiles.length % 2 !== 0) {\n const err = new Error($gettext('Need the same number of road_links and road_nodes files.'))\n err.name = 'ImportError'\n throw err\n }\n this.commit('loadPTFiles', ptFiles)\n this.commit('loadRoadFiles', roadFiles)\n this.commit('od/loadODFiles', ODFiles)\n if (paramFile) this.commit('run/getLocalParameters', paramFile.content)\n if (stylesFile) {\n const json = stylesSerializer(stylesFile.content)\n state.styles = json\n }\n if (attributesChoicesFile) { this.commit('loadAttributesChoices', attributesChoicesFile.content) }\n\n this.commit('loadOtherFiles', inputFiles)\n\n // get outputs geojson files and create Layer with them.\n const layerFiles = outputFiles.filter(el => el.path.endsWith('.geojson'))\n outputFiles = outputFiles.filter(el => !layerFiles.includes(el))\n this.commit('loadLayers', layerFiles)\n\n // get JSON files with the same name as Modules (they are matrix)\n const matrixFiles = outputFiles.filter(el => el.path.endsWith('.json') &&\n state.availableLayers.includes(el.path.slice(0, -5)),\n )\n outputFiles = outputFiles.filter(el => !matrixFiles.includes(el))\n\n this.commit('loadMatrix', matrixFiles)\n\n // load the rest\n this.commit('loadOtherFiles', outputFiles)\n this.commit('changeNotification',\n { text: $gettext('File(s) added'), autoClose: true, color: 'success' })\n } catch (err) {\n this.commit('changeAlert', err)\n }\n },\n\n loadOtherFiles (state, payload) {\n // payload = [{path, content, type}]\n // if a file is updated with the same path (already exist). remove it\n const newPaths = payload.map(file => file.path)\n state.otherFiles = state.otherFiles.filter(file => !newPaths.includes(file.path))\n // push files\n payload.forEach(file => state.otherFiles.push(file))\n },\n\n loadAttributesChoices (state, payload) {\n // eslint-disable-next-line no-return-assign\n Object.keys(payload.pt).forEach(key => state.attributesChoices.pt[key] = payload.pt[key])\n // eslint-disable-next-line no-return-assign\n Object.keys(payload.road).forEach(key => state.attributesChoices.road[key] = payload.road[key])\n },\n setVisibleRasters (state, payload) {\n state.visibleRasters = payload\n },\n\n loadLayers (state, payload) {\n payload.forEach(\n file => {\n const fileName = file.path.slice(0, -8) // remove .geojson\n // let matData = payload.files.filter(json => json?.fileName.slice(0, -5) === fileName)[0]?.data\n // if matDataExist does not exist, we want to ignore index as they are only needed for a OD mat.\n file.content = serializer(file.content, file.path, null, false)\n\n this.commit('createLayer', {\n fileName: fileName,\n data: file.content,\n })\n })\n },\n loadMatrix (state, payload) {\n // payload : [{path,content}]\n payload.forEach(\n file => {\n const moduleName = file.path.slice(0, -5)\n this.commit(`${moduleName}/addMatrix`, file.content)\n },\n )\n },\n\n createLayer (state, payload) {\n const moduleName = payload.fileName\n if (!Object.keys(this._modules.root._children).includes(moduleName)) {\n this.registerModule(moduleName, layerModule)\n }\n this.commit(`${moduleName}/createLayer`, payload)\n if (!state.availableLayers.includes(moduleName)) {\n state.availableLayers.push(moduleName)\n }\n },\n initNetworks (state) {\n this.commit('loadLinks', linksBase)\n this.commit('loadrLinks', linksBase)\n this.commit('loadNodes', nodesBase)\n this.commit('loadrNodes', nodesBase)\n this.commit('od/loadLayer', linksBase)\n state.visibleRasters = []\n state.styles = []\n // default Values. if changed, change the export condition as it check this is changed to export.\n state.attributesChoices = { pt: {}, road: { oneway: ['0', '1'] } }\n state.otherFiles = []\n state.cyclewayMode = false\n },\n unloadLayers (state) {\n const moduleToDelete = Object.keys(this._modules.root._children).filter(\n x => !['links', 'rlinks', 'od', 'results', 'run', 'user', 'runMRC', 'runOSM'].includes(x))\n moduleToDelete.forEach(moduleName => this.unregisterModule(moduleName))\n state.availableLayers = ['links', 'rlinks', 'od', 'nodes', 'rnodes']\n },\n applySettings (state, payload) {\n state.links.linkSpeed = Number(payload.linkSpeed)\n state.rlinks.roadSpeed = Number(payload.roadSpeed)\n state.linksPopupContent = payload.linksPopupContent\n state.roadsPopupContent = payload.roadsPopupContent\n state.rlinks.defaultHighway = payload.defaultHighway\n state.outputName = payload.outputName\n },\n addStyle (state, payload) {\n // payload: styling for results {name,layer, displaySettings:{...}}\n const names = state.styles.map(el => el.name)\n const idx = names.indexOf(payload.name)\n if (idx !== -1) {\n state.styles[idx] = payload\n } else {\n state.styles.push(payload)\n }\n },\n deleteStyle (state, payload) {\n // payload = name of the preset to delete\n state.styles = state.styles.filter(el => el.name !== payload)\n },\n\n },\n actions: {\n async exportFiles ({ state, commit }, payload = 'all') {\n const zip = new JSZip()\n let links = ''\n let nodes = ''\n let rlinks = ''\n let rnodes = ''\n let od = ''\n // export only visible line (line selected)\n commit('applyPropertiesTypes')\n if (payload !== 'all') {\n const tempLinks = structuredClone(state.links.links)\n tempLinks.features = tempLinks.features.filter(\n link => state.links.selectedTrips.includes(link.properties.trip_id))\n links = JSON.stringify(tempLinks)\n // delete every every nodes not in links\n const a = tempLinks.features.map(item => item.properties.a)\n const b = tempLinks.features.map(item => item.properties.b)\n const nodesInLinks = Array.from(new Set([...a, ...b]))\n const tempNodes = structuredClone(state.links.nodes)\n tempNodes.features = tempNodes.features.filter(node => nodesInLinks.includes(node.properties.index))\n nodes = JSON.stringify(tempNodes)\n\n rlinks = JSON.stringify(state.rlinks.visiblerLinks)\n rnodes = JSON.stringify(state.rlinks.visiblerNodes)\n od = JSON.stringify(this.getters['od/visibleLayer'])\n // export everything\n } else {\n links = JSON.stringify(state.links.links)\n nodes = JSON.stringify(state.links.nodes)\n rlinks = JSON.stringify(state.rlinks.rlinks)\n rnodes = JSON.stringify(state.rlinks.rnodes)\n od = JSON.stringify(this.getters['od/layer'])\n }\n // export only if not empty\n if (JSON.parse(links).features.length > 0) {\n let blob = new Blob([links], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/pt/links.geojson', blob)\n blob = new Blob([nodes], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/pt/nodes.geojson', blob)\n }\n if (JSON.parse(rlinks).features.length > 0) {\n let blob = new Blob([rlinks], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/road/road_links.geojson', blob)\n blob = new Blob([rnodes], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/road/road_nodes.geojson', blob)\n }\n if (JSON.parse(od).features.length > 0) {\n const blob = new Blob([od], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/od/od.geojson', blob)\n }\n if (payload === 'all') {\n if (!this.getters['run/parametersIsEmpty']) {\n const blob = new Blob([JSON.stringify(this.getters['run/parameters'])], { type: 'application/json' })\n zip.file('inputs/params.json', blob)\n }\n if (state.styles.length > 0) {\n const blob = new Blob([JSON.stringify(state.styles)], { type: 'application/json' })\n zip.file('styles.json', blob)\n }\n if (JSON.stringify(state.attributesChoices) !== '{\"pt\":{},\"road\":{\"oneway\":[\"0\",\"1\"]}}') {\n const blob = new Blob([JSON.stringify(state.attributesChoices)], { type: 'application/json' })\n zip.file('attributesChoices.json', blob)\n }\n\n const staticLayers = Object.keys(this._modules.root._children).filter(\n x => !['links', 'rlinks', 'od', 'results', 'run', 'user', 'runMRC', 'runOSM'].includes(x))\n for (const layer of staticLayers) {\n const blob = new Blob([JSON.stringify(this.getters[`${layer}/layer`])], { type: 'application/json' })\n const name = layer + '.geojson'\n // zip name = layer.replace('/', '_') + '.geojson'\n zip.file(name, blob)\n if (this.getters[`${layer}/mat`]) {\n const blob = new Blob([JSON.stringify(this.getters[`${layer}/mat`])], { type: 'application/json' })\n const name = layer + '.json'\n zip.file(name, blob)\n }\n }\n\n for (const file of state.otherFiles) {\n // if others file loaded from S3 (they are not loaded yet. need to download them.)\n if (file.content == null && state.user.model !== null) {\n file.content = await s3.readBytes(state.user.model, state.user.scenario + '/' + file.path)\n }\n if (file.content instanceof Uint8Array) {\n const blob = new Blob([file.content]) // { type: 'text/csv' }\n zip.file(file.path, blob)\n } else {\n const blob = new Blob([JSON.stringify(file.content)], { type: 'application/json' })\n zip.file(file.path, blob)\n }\n }\n }\n zip.generateAsync({ type: 'blob' })\n .then(function (content) {\n // see FileSaver.js\n saveAs(content, state.outputName + '.zip')\n })\n },\n\n async exportToS3 ({ state, commit, dispatch }, payload) {\n // payload = 'inputs'. only export inputs\n // else no payload to export all.\n dispatch('isTokenExpired')\n this.commit('applyPropertiesTypes')\n const scen = state.user.scenario + '/'\n const bucket = state.user.model\n const inputFolder = scen + 'inputs/'\n const ptFolder = inputFolder + 'pt/'\n const roadFolder = inputFolder + 'road/'\n const odFolder = inputFolder + 'od/'\n const paths = {\n links: ptFolder + 'links.geojson',\n nodes: ptFolder + 'nodes.geojson',\n rlinks: roadFolder + 'road_links.geojson',\n rnodes: roadFolder + 'road_nodes.geojson',\n od: odFolder + 'od.geojson',\n params: scen + 'inputs/params.json',\n styles: scen + 'styles.json',\n attributesChoices: scen + 'attributesChoices.json',\n }\n // save params\n if (state.run.parameters.length > 0) {\n await s3.putObject(bucket, paths.params, JSON.stringify(state.run.parameters))\n }\n // save styles if changed\n if (state.styles.length > 0) {\n await s3.putObject(bucket, paths.styles, JSON.stringify(state.styles))\n }\n // save attributes choices if changed\n if (JSON.stringify(state.attributesChoices) !== '{\"pt\":{},\"road\":{\"oneway\":[\"0\",\"1\"]}}') {\n await s3.putObject(bucket, paths.attributesChoices, JSON.stringify(state.attributesChoices))\n }\n // save PT\n if (state.links.links.features.length > 0) {\n await s3.putObject(bucket, paths.links, JSON.stringify(state.links.links))\n await s3.putObject(bucket, paths.nodes, JSON.stringify(state.links.nodes))\n } else {\n // if its deleted in quenedi. delete it on s3. function works with nothing to delete too.\n s3.deleteFolder(bucket, ptFolder)\n }\n // save Roads\n if (state.rlinks.rlinks.features.length > 0) {\n await s3.putObject(bucket, paths.rlinks, JSON.stringify(state.rlinks.rlinks))\n await s3.putObject(bucket, paths.rnodes, JSON.stringify(state.rlinks.rnodes))\n } else {\n // if its deleted in quenedi. delete it on s3. function works with nothing to delete too.\n s3.deleteFolder(bucket, roadFolder)\n }\n // save ods\n if (!this.getters['od/layerIsEmpty']) {\n await s3.putObject(bucket, paths.od, JSON.stringify(this.getters['od/layer']))\n } else {\n // if its deleted in quenedi. delete it on s3. function works with nothing to delete too.\n s3.deleteFolder(bucket, odFolder)\n }\n // save outputs Layers\n if (payload !== 'inputs') {\n const staticLayers = Object.keys(this._modules.root._children).filter(\n x => !['links', 'rlinks', 'od', 'results', 'run', 'user', 'runMRC', 'runOSM'].includes(x))\n for (const layer of staticLayers) {\n const name = layer + '.geojson'\n await s3.putObject(bucket, scen + name, JSON.stringify(this.getters[`${layer}/layer`]))\n if (this.getters[`${layer}/mat`]) {\n const name = layer + '.json'\n await s3.putObject(bucket, scen + name, JSON.stringify(this.getters[`${layer}/mat`]))\n }\n }\n }\n // save others layers\n // if payload === inputs. only export inputs/ files.\n let otherFiles = state.otherFiles\n if (payload === 'inputs') {\n otherFiles = otherFiles.filter(file => !file.path.startsWith('outputs/'))\n }\n for (const file of otherFiles) {\n // if others file loaded from S3 (they are not loaded yet. need to download them.)\n if (file.content == null) {\n // pass\n } else if (file.content instanceof Uint8Array) {\n await s3.putObject(bucket, scen + file.path, file.content)\n } else {\n await s3.putObject(bucket, scen + file.path, JSON.stringify(file.content))\n }\n }\n // console.log(res)\n // commit('setScenariosList', res)\n },\n async deleteOutputsOnS3 ({ state }) {\n await s3.deleteFolder(state.user.model, state.user.scenario + '/outputs/')\n },\n\n },\n getters: {\n notification: (state) => state.notification,\n alert: (state) => state.alert,\n loading: (state) => state.loading,\n mapCenter: (state) => state.mapCenter,\n mapZoom: (state) => state.mapZoom,\n windowHeight: (state) => state.windowHeight,\n anchorMode: (state) => state.anchorMode,\n showLeftPanel: (state) => state.showLeftPanel,\n linksPopupContent: (state) => state.linksPopupContent,\n roadsPopupContent: (state) => state.roadsPopupContent,\n cyclewayMode: (state) => state.cyclewayMode,\n outputName: (state) => state.outputName,\n visibleRasters: (state) => state.visibleRasters,\n styles: (state) => state.styles,\n attributesChoices: (state) => state.attributesChoices,\n otherFiles: (state) => state.otherFiles,\n projectIsUndefined: (state) => Object.keys(state.links.links).length === 0,\n projectIsEmpty: (state) => {\n return (state.links.links.features.length === 0 &&\n state.rlinks.rlinks.features.length === 0 &&\n state.od.layer.features.length === 0)\n },\n availableLayers: (state) => {\n // do not return empty links or rlinks or OD as available.\n let filteredLayers = structuredClone(state.availableLayers)\n if (state.links.links.features.length === 0) {\n filteredLayers = filteredLayers.filter(layer => !['links', 'nodes'].includes(layer))\n }\n if (state.rlinks.rlinks.features.length === 0) {\n filteredLayers = filteredLayers.filter(layer => !['rlinks', 'rnodes'].includes(layer))\n }\n if (state.od.layer.features.length === 0) {\n filteredLayers = filteredLayers.filter(layer => !['od'].includes(layer))\n }\n return filteredLayers\n },\n mapStyle: (state) => {\n if (state.darkMode) {\n return 'mapbox://styles/mapbox/dark-v11?optimize=true'\n } else {\n return 'mapbox://styles/mapbox/light-v11?optimize=true'\n }\n },\n\n },\n})\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".build.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/quetzal-network-editor/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkquetzal_network_editor\"] = self[\"webpackChunkquetzal_network_editor\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [418], () => (__webpack_require__(40114)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","type","crs","properties","name","features","render","_vm","this","_c","_self","directives","rawName","value","isNaN","displaySettings","minVal","expression","staticClass","style","top","windowHeight","left","leftOffset","_l","colorScale","color","key","backgroundColor","_v","_s","selectedFeature","Math","round","maxVal","_withStripped","components","props","Array","default","Object","baseOffset","Number","order","data","computed","$store","getters","showLeftPanel","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","REGION","region","s3Client","apiVersion","signatureVersion","params","s3","async","credentials","IdentityPoolId","Logins","idToken","config","getBucketList","getScenario","bucket","Bucket","moreToLoad","list","Contents","IsTruncated","NextContinuationToken","listObjectsV2","promise","ContinuationToken","err","scenarios","from","Set","map","Key","split","scenList","scen","files","filter","item","startsWith","isLocked","length","maxDateObj","reduce","prev","current","LastModified","maxDate","toLocaleDateString","toLocaleTimeString","userEmail","resp","headObject","Metadata","user_email","commit","model","scenario","lastModified","protected","readJson","ResponseCacheControl","response","getObject","JSON","parse","TextDecoder","decode","Body","trim","readBytes","bucketList","cognitoGroup","listFiles","prefix","isArray","paths","forEach","Prefix","Content","copyFolder","newName","el","Error","file","newFile","join","oldPath","encodeURIComponent","copyParams","CopySource","copyObject","deleteFolder","arr","deleteParams","Delete","Objects","deleteObjects","createFolder","slice","upload","console","log","putObject","body","cognitoInfo","email","ContentType","putBytes","getImagesURL","getSignedUrl","Expires","downloadFolder","zip","fileName","generateAsync","then","content","newScenario","filesToCopy","includes","IDENTITY_POOL_ID","auth","ClientId","AppWebDomain","TokenScopesArray","RedirectUriSignIn","RedirectUriSignOut","UserPoolId","userhandler","onSuccess","result","getIdToken","jwtToken","sessionIdInfo","accessToken","keys","onFailure","alert","go","path","query","message","storage","getStorage","login","getSession","logout","isUserSignedIn","getCognitoStorageKey","removeItem","signOut","keyPrefix","getClientId","tokenUserName","signInUserSession","getAccessToken","getUsername","s","quetzalClient","client","create","baseURL","withCredentials","headers","axiosClient","loginAll","$gettext","serializer","geojson","ignoreIndex","currentType","geometry","paramsSerializer","json","info","expectedKeys","a","b","every","has","stylesSerializer","readFileAsText","Promise","resolve","reject","reader","FileReader","onload","event","target","onerror","error","readAsText","readFileAsBytes","fileBytes","Uint8Array","readAsArrayBuffer","extractZip","ZIP","loadAsync","filesNames","match","endsWith","checkPaths","i","str","getGroupForm","lineAttributes","uneditable","form","val","link","size","disabled","placeholder","IndexAreDifferent","geojsonA","geojsonB","linksIndex","index","newLinksIndex","unzip","csvJSON","bytes","lines","line","obj","currentline","j","highwayList","highwayColor","motorway","motorway_link","trunk","trunk_link","primary","primary_link","secondary","secondary_link","tertiary","tertiary_link","residential","living_street","service","unclassified","cycleway","pedestrian","highwayWidth","onResize","ref","attrs","loading","indeterminate","class","notification","timeout","autoClose","transition","scopedSlots","_u","fn","_b","small","text","on","click","closeSnackbar","snackbar","callback","$$v","dense","src","contain","bottom","_g","icon","href","$vuetify","theme","dark","$set","$language","available","language","lang","handleChangeLanguage","toUpperCase","loggedIn","initial","menu","given_name","family_name","group","persistent","keydown","$event","indexOf","_k","keyCode","applyDialog","apply","arguments","showDialog","events","action","projectIsEmpty","watch","methods","modelsList","deleteDialog","copyDialog","localModel","tab","scenariosList","modelScen","selectScenario","stopPropagation","selectedScenario","input","scenarioToDelete","cancelDialog","deleteScenario","createProject","cancel","cols","autofocus","label","textAlign","errorMessage","closeCopy","_e","localScen","sort","localeCompare","undefined","sensitivity","dispatch","mounted","loadProject","$router","s3Path","catch","p","base","setTimeout","Profile","dialog","app","stateless","temporary","mini","drawer","getDisplayedRoutes","$route","marginTop","margin","isProtected","handleClickMenuItem","nativeOn","running","width","proxy","title","runWarning","runError","saving","marginLeft","fontSize","version","leftSidenav","menuItems","runSychronized","created","routes","concat","o","getRouteTitle","route","tpl","$gettextInterpolate","sheet","prominent","close","Toolbar","NavigationDrawer","Alert","$refs","container","clientHeight","assert","languageMixin","$selectBestLanguage","browserLangs","supportedLangs","parts","toLowerCase","normLang","bestLanguage","navigator","languages","darkMode","window","matchMedia","matches","use","autoAddKeyAttributes","availableLanguages","en","fr","es","de","pt","defaultLanguage","translations","silent","productionTip","devtools","performance","customProperties","themes","light","primarydark","secondarydark","secondarydarkfix","secondarylight","background","lightgrey","white","black","mediumgrey","darkgrey","accent","linksprimary","linkssecondary","chart","lightgreen","darkgreen","lightblue","darkblue","purple","pink","orange","yellow","success","icons","iconfont","locales","mixin","$flatEdges","recurse","flatObj","edges","edge","node","router","store","vuetify","h","App","template","$mount","staticStyle","display","accept","change","readZip","buttonHandle","vertical","FilesLoaded","loadNetwork","filesAdded","readFile","readParams","readStyles","opacity","linksIsEmpty","outlined","loadedType","localLinksLoaded","localNodesLoaded","rlinksIsEmpty","ODIsEmpty","paramsIsEmpty","stylesIsEmpty","loadedLinks","loadedNodes","choice","styles","localFilesAreLoaded","$emit","paramsInput","document","getElementById","stylesInput","fileInput","multiple","readOtherInputs","readOtherOutputs","inputFiles","outputFiles","layers","filesPanel","loadedFiles","otherFiles","availableLayers","otherOutputs","otherInputs","fileList","show","height","url","alt","img","Image","FileLoader","InfoZip","FilesList","loadFilesFromS3","zipInput","loadExample","newProject","zfiles","replace","res","filesList","filesToLoads","fetch","blob","scrollable","numLinks","applyAction","cancelAction","editForm","n","idx","transform","linkDir","orderedForm","hint","showHint","hints","filled","attributeType","wheel","blur","attributesChoices","items","showDeleteOption","attributeNonDeletable","deleteField","rules","newField","addField","fab","newFieldName","cloneName","ToggleDeleteOption","duplicate","cancelClone","cloneDialog","selectedTrips","selectedrGroup","updateSelectedTrips","confirmChanges","abortChanges","deleteButton","cloneButton","propertiesButton","actionClick","e","mode","clickFeature","showLeftPanelContent","grow","showAll","tripList","tripId","filterChoices","vmodelSelectedFilter","classifiedTripId","String","showGroup","some","editorTrip","trip","min","right","editButton","anchorMode","createNewLine","selectedFilter","arrayUniqueTripId","Map","links","trip_id","values","filteredCat","undefinedCat","c","newVal","oldVal","newTrip","dict","$nextTick","changeBounds","lingering","tripIds","generate","editVisible","hasCycleway","cyclewayMode","selectedrGoup","rlineAttributes","filteredrCategory","changes","method","category","structuredClone","selectedrFilter","vmodelSelectedCat","layer","selectedCat","LinksSidePanel","RoadSidePanel","ODSidePanel","mapStyle","mapboxPublicKey","center","mapCenter","zoom","mapZoom","load","onMapLoaded","mousemove","draw","mouseout","resetDraw","addPoint","mouseup","rightClickMap","mapIsLoaded","rasterFiles","choices","position","visibleRasters","preset","isEditorMode","onHover","onHoverRoad","offHover","rightClick","drawMode","source","drawLink","buffer","generateId","minzoom","paint","currentTheme","connectedDrawLink","origin","shake","submit","linkSpeed","suffix","units","required","roadSpeed","linksPopupContent","offsetY","chips","roadsPopupContent","defaultHighway","zipRules","outputName","v","localShow","validate","payload","visibleLinks","promoteId","interactive","maxzoom","layout","mouseenter","enterLink","mouseleave","leaveLink","contextmenu","editLineProperties","visibleNodes","MglGeojsonLayer","selectedFeatures","selectedPopupContent","nodes","showedTrips","setHiddenFeatures","off","selectLine","linksHeader","nodesHeader","getCanvas","cursor","mapboxEvent","popup","isOpen","remove","htmlContent","prop","closeButton","setLngLat","lngLat","lng","lat","setHTML","addTo","showedTripsSet","ab","widthArr","route_width","widthDict","add","totSet","x","newNodes","preventDefault","bbox","point","y","queryRenderedFeatures","editorLinks","selectClick","mouseover","onCursor","offCursor","linkRightClick","editorNodes","mousedown","moveNode","contextMenuNode","anchorNodes","showed","popupEditor","coordinates","hoveredStateId","layerId","contextMenu","flat","actions","feature","MglPopup","MglImageLayer","disablePopup","keepHovering","dragNode","querySourceFeatures","setFeatureState","hover","selectedId","selectedNode","firstNodeId","lastNodeId","originalEvent","button","onMove","stopMovingNode","loaded","isRoadMode","renderedrLinks","rlinks","minZoom","rendered","ArrowSizeCondition","ArrowDirCondition","renderedrNodes","rnodes","renderedAnchorrNodes","rnodesHeader","editorRnodes","visiblerNodes","visiblerLinks","anchorrNodes","defaultCondition","getRouteWidth","getBounds","beforeDestroy","removeLayer","bounds","_sw","_ne","getZoom","uniqueArray","selectedIndex","offsetValue","MapLegend","getLayer","moveLayer","offset","changeLayer","selectedCategory","selectedLayer","selectedLayers","selectedOpacity","isODMode","test","linkIndex","coordinatedIndex","MglMap","MglNavigationControl","MglScaleControl","LayerSelector","StaticLayer","StaticLinks","EditorLinks","RoadLinks","Settings","ODMap","hoverId","hoverLayer","mapDiv","firstNode","lastNode","resize","saveMapPosition","extend","fitBounds","padding","getStyle","setLayoutProperty","getCenter","loadImage","arrow","image","addImage","sdf","dragRotate","disable","pointGeom","nodeIdA","nodeIdB","geom","nodeId","swatchStyle","swatches","updateColor","pcolor","tempArr","openMenu","selectedVal","agency_id","direction_id","drop_off_type","headway","pickup_type","route_color","route_id","route_long_name","route_short_name","route_type","time","highway","speed","cycleway_reverse","SidePanel","ColorPicker","MenuSelector","selectedLink","editorForm","cursorPosition","tripToDelete","tripToClone","groupTripIds","addEventListener","editorLineInfo","linkId","rlinksForm","rlinkDirection","onewayIndex","reversedrLinksForm","grouprLinks","selectedLinks","filtered","selectedLinkId","selectedNodeId","selection","rcstAttributes","table","field","substr","defaultAttributesNames","rundeletable","Microservices","ResultMap","Run","ResultPicture","ResultTable","linkExactActiveClass","Import","component","beforeEnter","to","next","Home","currUrl","location","parseCognitoWebResponse","beforeEach","projectIsUndefined","state","newLink","newNode","linksDefaultColor","nodeAttributes","defaultAttributes","mutations","loadLinks","points","coord","loadNodes","stringify","unloadFiles","loadPTFiles","appendNewLinks","appendNewNodes","getLinksProperties","header","element","attr","att","getNodesProperties","addPropertie","deletePropertie","changeSelectedTrips","setEditorTrip","cloneTrip","cloned","linkSequence","reverse","link_sequence","getEditorNodes","editorNodesList","getEditorLineInfo","defaultValue","getTripId","setNewLink","uncopiedPropeties","tempLink","linkProperties","linkFeature","assign","nodeCopyId","createNewNode","nodeProperties","nodeFeatures","setNewNode","tempNode","editNewLink","applyNewLink","distance","toFixed","splice","deleteNode","nodeIndex","link1","link2","featureIndex","findIndex","splitLink","ratio","sliceIndex","seq","addNodeInline","linkGeom","clickedPoint","snapped","dist","addAnchorNode","deleteAnchorNode","moveAnchor","cutLineFromNode","toDelete","entries","cutLineAtNode","editLineInfo","editLinkInfo","editNodeInfo","editGroupInfo","editorGroupInfo","deleteUnusedNodes","nodesInLinks","nodesList","eNode","deleteTrip","applyPropertiesTypes","rlinksHeader","rnodeAttributes","newrNode","connectedLinks","rlinksDefaultColor","reversedAttributes","loadrLinks","loadrNodes","loadRoadFiles","appendNewrLinks","appendNewrNodes","getrLinksProperties","getrNodesProperties","addRoadPropertie","deleteRoadPropertie","changeSelectedrFilter","getFilteredrCat","splitOneway","oneway","changeVisibleRoads","cat","tempLinks","refreshVisibleRoads","possibleGroups","getVisiblerNodes","rNodesList","getRenderedrLinks","getRenderedrNodes","setRenderedrLinks","editrLinkInfo","rkey","editrNodeInfo","createNewrNode","splitrLink","length_r","time_r","addRoadNodeInline","addAnchorrNode","createrLink","rnodeA","rnodeB","linkGeometry","newLinkGroup","getConnectedLinks","moverNode","rtime","speed_r","moverAnchor","deleteAnchorrNode","deleterLink","linkArr","deleterGroup","deleteUnusedrNodes","editrGroupInfo","groupInfo","reversedProps","indexList","reversed","namespaced","visibleLayer","layerHeader","layerAttributes","filteredCategory","loadLayer","loadODFiles","appendNewOD","changeSelectedFilter","changeSelectedCategory","getProperties","refreshVisibleLayer","getFilteredCategory","deleteOD","deleteGroup","createNewLink","newCat","layerIsEmpty","groupLayer","linkForm","Index","seedrandom","remap","scale","isWidth","rng","log10","sqrt","defaultSettings","maxWidth","minWidth","numStep","fixScale","cmap","showNaN","reverseColor","NaNLinks","unload","updateLinks","applySettings","updateSelectedFeature","featureArr","arrayMinMax","max","POSITIVE_INFINITY","NEGATIVE_INFINITY","minV","maxV","display_width","domain","classes","display_color","hex","refreshVisibleLinks","displayLinks","mat","createLayer","addMatrix","zone","changeZone","selectedProperty","row","hasOD","stateMachineArnBase","steps","selectedStepFunction","avalaibleStepFunctions","executionArn","currentStep","synchronized","parameters","cleanRun","setSteps","startExecution","terminateExecution","changeRunning","succeedExecution","updateCurrentStep","stepNames","getLocalParameters","setSelectedStepFunction","setAvalaibleStepFunctions","root","context","rootState","user","getSteps","stateMachineArn","post","def","definition","firstStep","StartAt","States","Type","Choices","StringEquals","Next","Default","paramsDict","param","acc","paramAcc","authorization","scenario_path_S3","launcher_arg","training_folder","metadata","pollExecution","intervalId","setInterval","status","clearInterval","cause","includeExecutionData","reverseOrder","stateEnteredEventDetails","stopExecution","parametersIsEmpty","callID","timer","num_zones","train_size","date_time","ff_time_col","max_speed","num_cores","num_random_od","create_zone","hereApiKey","setCallID","uuid","setParameters","getApproxTimer","numZones","trainSize","numPlotOD","tags","colorDict","changeHighway","coords","elevation","poly","applyDict","accesToken","expData","loadingState","errorLoadingState","unloadProject","setLoggedIn","setLoggedOut","setCognitoInfo","setCognitoGroup","setBucketList","setAccessToken","expDate","exp","setIdToken","setScenariosList","setModel","setScenario","isTokenExpired","floor","Date","now","modules","od","results","run","runMRC","MatrixRoadCaster","runOSM","OSMImporter","changeNotification","changeAlert","changeDarkMode","changeLoading","changeWindowHeight","changeLeftPanel","setAnchorMode","changeAnchorMode","changeCyclewayMode","loadFiles","ptFiles","roadFiles","ODFiles","paramFile","stylesFile","attributesChoicesFile","layerFiles","matrixFiles","loadOtherFiles","newPaths","loadAttributesChoices","road","setVisibleRasters","loadLayers","loadMatrix","moduleName","_modules","_children","registerModule","initNetworks","unloadLayers","unregisterModule","addStyle","deleteStyle","tempNodes","Blob","staticLayers","inputFolder","ptFolder","roadFolder","odFolder","filteredLayers","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","__webpack_modules__","call","m","amdD","amdO","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","r","getter","__esModule","d","getPrototypeOf","t","ns","getOwnPropertyNames","defineProperty","enumerable","get","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","nc","setAttribute","onScriptComplete","clearTimeout","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","nmd","children","baseURI","self","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"build.js","mappings":"UAAIA,ECCAC,EADAC,ECAAC,EACAC,E,oFCEAC,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,o7DAAq7D,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oCAAoC,sCAAsC,oCAAoC,qCAAqC,iCAAiC,wCAAwC,MAAQ,GAAG,SAAW,kyBAAkyB,eAAiB,CAAC,mZAAmZ,4nBAA4nB,khCAAkhC,0bAA0b,4SAA4S,sVAAsV,WAAa,MAEzoM,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,wVAAyV,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2BAA2B,MAAQ,GAAG,SAAW,uJAAuJ,eAAiB,CAAC,mZAAqZ,WAAa,MAEzhC,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,qeAAse,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,MAAQ,GAAG,SAAW,wOAAwO,eAAiB,CAAC,iiBAAmiB,WAAa,MAE95C,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,kuBAAmuB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mDAAmD,MAAQ,GAAG,SAAW,+TAA+T,eAAiB,CAAC,g9BAAk9B,WAAa,MAEhqE,S,kFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,8lCAA+lC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,0DAA0D,MAAQ,GAAG,SAAW,4aAA4a,eAAiB,CAAC,stCAAwtC,WAAa,MAEt5F,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,8KAA+K,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2DAA2D,MAAQ,GAAG,SAAW,mEAAmE,eAAiB,CAAC,mNAAqN,WAAa,MAE3nB,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,44BAA64B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gDAAgD,uCAAuC,MAAQ,GAAG,SAAW,4YAA4Y,eAAiB,CAAC,q9BAAu9B,6nBAA6nB,WAAa,MAE7jG,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4pCAA6pC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,uCAAuC,MAAQ,GAAG,SAAW,whBAAwhB,eAAiB,CAAC,63CAAi4C,6nBAA6nB,WAAa,MAEv4H,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,mJAAoJ,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,0CAA0C,MAAQ,GAAG,SAAW,yDAAyD,eAAiB,CAAC,uLAAyL,WAAa,MAEziB,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,2iCAA4iC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iDAAiD,uCAAuC,MAAQ,GAAG,SAAW,4fAA4f,eAAiB,CAAC,kuCAAouC,6nBAA6nB,WAAa,MAE1lH,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,2iCAA4iC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mDAAmD,uCAAuC,MAAQ,GAAG,SAAW,4fAA4f,eAAiB,CAAC,kuCAAouC,6nBAA6nB,WAAa,MAE5lH,S,kFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,qgCAAsgC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+CAA+C,MAAQ,GAAG,SAAW,mcAAmc,eAAiB,CAAC,grCAAkrC,WAAa,MAEnyF,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,+kCAAglC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gDAAgD,MAAQ,GAAG,SAAW,sfAAsf,eAAiB,CAAC,0vCAA4vC,WAAa,MAE3+F,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,8gBAA+gB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sDAAsD,MAAQ,GAAG,SAAW,wOAAwO,eAAiB,CAAC,mmBAAqmB,WAAa,MAE3gD,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,o1BAAq1B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kDAAkD,MAAQ,GAAG,SAAW,mcAAmc,eAAiB,CAAC,yjCAA2jC,WAAa,MAE9/E,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,gFAAiF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qDAAqD,MAAQ,GAAG,SAAW,6BAA6B,eAAiB,CAAC,kHAAoH,WAAa,MAEhZ,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,8DAA+D,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,MAAQ,GAAG,SAAW,6BAA6B,eAAiB,CAAC,iGAAmG,WAAa,MAE5W,S,kFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,+EAAgF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kCAAkC,MAAQ,GAAG,SAAW,uCAAuC,eAAiB,CAAC,yHAA2H,WAAa,MAE7Y,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,48BAA68B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oCAAoC,MAAQ,GAAG,SAAW,mcAAmc,eAAiB,CAAC,qkCAAukC,WAAa,MAEpnF,S,gDCPA,SAAgBC,KAAK,oBAAoBC,IAAI,CAACD,KAAK,OAAOE,WAAW,CAACC,KAAK,kCAAkCC,SAAS,G,gDCAtH,SAAgBJ,KAAK,oBAAoBC,IAAI,CAACD,KAAK,OAAOE,WAAW,CAACC,KAAK,kCAAkCC,SAAS,G,gDCAtH,IAAIC,EAAS,WACX,IAAIC,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,MACA,CACEE,WAAY,CACV,CACEP,KAAM,OACNQ,QAAS,SACTC,OACGC,MAAMP,EAAIQ,gBAAgBC,UAC1BF,MAAMP,EAAIQ,gBAAgBC,QAC7BC,WACE,qEAGNC,YAAa,qBACbC,MAAO,CACLC,IAAK,GAAGb,EAAIc,iBACZC,KAAM,GAAGf,EAAIgB,4BAGjB,CACEd,EACE,MACA,CAAES,YAAa,YACf,CACEX,EAAIiB,GAAGjB,EAAIkB,YAAY,SAAUC,EAAOC,GACtC,OAAOlB,EAAG,OAAQ,CAChBkB,IAAKA,EACLT,YAAa,YACbC,MAAO,CAAES,gBAAiBF,IAE9B,IACAnB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAES,YAAa,gBAAkB,CAC1CX,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIQ,gBAAgBgB,oBAEpCxB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAES,YAAa,cAAgB,CACxCX,EAAIsB,GAAGtB,EAAIuB,GAAGE,KAAKC,MAAM1B,EAAIQ,gBAAgBC,YAE/CT,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAES,YAAa,cAAgB,CACxCX,EAAIsB,GACFtB,EAAIuB,GACFE,KAAKC,OACF1B,EAAIQ,gBAAgBmB,OAAS3B,EAAIQ,gBAAgBC,QAAU,OAKpET,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAES,YAAa,cAAgB,CACxCX,EAAIsB,GAAGtB,EAAIuB,GAAGE,KAAKC,MAAM1B,EAAIQ,gBAAgBmB,aAGjD,IAIR,EAEA5B,EAAO6B,eAAgB,EC9DvB,MCFgI,EDEhI,CACE/B,KAAM,YACNgC,WAAY,CACZ,EACAC,MAAO,CACLZ,WAAY,CACVxB,KAAMqC,MACNC,QAAS,IAAM,IAEjBxB,gBAAiB,CACfd,KAAMuC,OACND,QAAS,QAEXE,WAAY,CACVxC,KAAMyC,OACNH,QAAS,IAAM,KAEjBI,MAAO,CACL1C,KAAMyC,OACNH,QAAS,IAAM,IAGnBK,KAAK,KACI,CAEP,GAGFC,SAAU,CACRxB,eAAkB,OAAOb,KAAKsC,OAAOC,QAAQ1B,aAAe,EAAG,EAC/DE,aACE,OAAOf,KAAKsC,OAAOC,QAAQC,cAAgB,GAAM,IAAMxC,KAAKmC,MAASnC,KAAKiC,WAAa,GAAM,IAAMjC,KAAKmC,KAC1G,I,qIEvBAM,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,OCP1D,SAXgB,E,SAAA,GACd,EACAjD,EJqDoB,IInDpB,EACA,KACA,WACA,MAI8B,O,2HCdhC,MAEMkD,EAAS,eAEf,WAAWC,OAASD,EACpB,MAAME,EAAW,IAAI,QAAO,CAC1BC,WAAY,aACZC,iBAAkB,KAClBC,OAAQ,CAAEJ,OAAQD,KAoNpB,GACEM,GAAIJ,EACJK,cACE,WAAWN,OAASD,EACpB,WAAWQ,YAAc,IAAI,gCAA+B,CAC1DC,eAhOmB,oDAiOnBC,OAAQ,CACN,CAAC,eAAeV,0CAAwC,IAAMT,QAAQoB,WAG1ET,EAASU,OAAOJ,YAAc,WAAWA,kBACnCxD,KAAK6D,eACb,EAEAC,YAtDFP,eAA4BQ,GAE1B,MAAMV,EAAS,CAAEW,OAAQD,GACzB,IAAIE,GAAa,EACjB,MAAMC,EAAO,GACb,IACE,KAAOD,GAAY,CACjB,MAAM,SAAEE,EAAQ,YAAEC,EAAW,sBAAEC,SAAgCnB,EAASoB,cAAcjB,GAAQkB,UAC9FL,EAAK5E,QAAQ6E,GACbF,EAAaG,EACbf,EAAOmB,kBAAoBH,CAC7B,CACF,CAAE,MAAOI,GAAO,MAAO,EAAG,CAG1B,MAAMC,EAAY5C,MAAM6C,KAAK,IAAIC,IAAIV,EAAKW,KAAIjF,GAAQA,EAAKkF,IAAIC,MAAM,KAAK,OAEpEC,EAAW,GACjB,IAAK,MAAMC,KAAQP,EAAW,CAC5B,MAAMQ,EAAQhB,EAAKiB,QAAOC,GAAQA,EAAKN,IAAIO,WAAWJ,KAIhDK,EADaJ,EAAMC,QAAOC,GAAQA,EAAKN,IAAIO,WAAWJ,EAAO,YACvCM,OAAS,GAAc,SAATN,EAGpCO,EAAaN,EAAMO,QAAO,CAACC,EAAMC,IAAaD,EAAKE,aAAeD,EAAQC,aAAgBF,EAAOC,GAAS,IAC1GE,EAAUL,EAAWI,aAAaE,qBAAuB,IAAMN,EAAWI,aAAaG,qBAE7F,IAAIC,EACJ,IACE,MAAMC,QAAa/C,EAASgD,WAAW,CAAElC,OAAQD,EAAQe,IAAKU,EAAWV,MAAOP,UAEhFyB,EAAYC,EAAKE,SAASC,WAAaH,EAAKE,SAASC,WAAa,wBACpE,CAAE,MAAO3B,GAAO,IAAM4B,OAAO,cAAe5B,EAAK,CACjDO,EAAS1F,KAAK,CAAEgH,MAAOvC,EAAQwC,SAAUtB,EAAMuB,aAAcX,EAASG,UAAWA,EAAWS,UAAWnB,GACzG,CACA,OAAON,CACT,EAiBE0B,SAhOFnD,eAAyBQ,EAAQ5C,GAC/B,MAAMkC,EAAS,CAAEW,OAAQD,EAAQe,IAAK3D,EAAKwF,qBAAsB,YAG3DC,QAAiB1D,EAAS2D,UAAUxD,GAAQkB,UAElD,OADoBuC,KAAKC,MAAM,IAAIC,YAAY,SAASC,OAAOL,EAASM,MAAMC,OAEhF,EA0NEC,UAxNF7D,eAA0BQ,EAAQ5C,GAChC,MAAMkC,EAAS,CAAEW,OAAQD,EAAQe,IAAK3D,EAAKwF,qBAAsB,YAIjE,aAFuBzD,EAAS2D,UAAUxD,GAAQkB,WACrB2C,IAE/B,EAmNErD,cAhMFN,iBAEE,IACE,MAAM8D,QAAmBrH,KAAK0G,SAAS,iBAAkB,6BACzD,IAAML,OAAO,gBAAiBgB,EAAW,IAAM9E,QAAQ+E,cACzD,CAAE,MAAO7C,GACP,IAAM4B,OAAO,cAAe5B,EAC9B,CACF,EAyLE8C,UAxLFhE,eAA0BQ,EAAQyD,GAChC,GAAI1F,MAAM2F,QAAQD,GAAS,CACzB,MAAME,EAAQ,GAMd,OALAF,EAAOG,SAAQpE,UACb,MAAMF,EAAS,CAAEW,OAAQD,EAAQ6D,OAAQJ,GACnCK,QAAgB3E,EAASoB,cAAcjB,GAAQkB,UACrDmD,EAAMpI,QAAQuI,EAAQ1D,SAASU,KAAIO,GAAQA,EAAKN,MAAI,IAE/C4C,CACT,CAAO,CACL,MAAMrE,EAAS,CAAEW,OAAQD,EAAQ6D,OAAQJ,GAEzC,aADsBtE,EAASoB,cAAcjB,GAAQkB,WACtCJ,SAASU,KAAIO,GAAQA,EAAKN,KAC3C,CACF,EA2KEgD,WAjKFvE,eAA2BQ,EAAQyD,EAAQO,GACzC,MAAM1E,EAAS,CAAEW,OAAQD,EAAQ6D,OAAQJ,GACnCZ,QAAiB1D,EAASoB,cAAcjB,GAAQkB,UAEtD,GADAqC,EAASzC,SAAWyC,EAASzC,SAASgB,QAAO6C,GAAMA,EAAGlD,MAAS0C,EAAS,WACvC,IAA7BZ,EAASzC,SAASoB,OAAc,MAAM,IAAI0C,MAAM,mCACpD,IAAK,MAAMC,KAAQtB,EAASzC,SAAU,CACpC,IAAIgE,EAAUD,EAAKpD,IAAIC,MAAM,KAC7BoD,EAAQ,GAAKJ,EACbI,EAAUA,EAAQC,KAAK,KAEvB,IAAIC,EAAUH,EAAKpD,IAAIC,MAAM,KAC7BsD,EAAQ,GAAKC,mBAAmBD,EAAQ,IACxCA,EAAUA,EAAQD,KAAK,KAEvB,MAAMG,EAAa,CACjBvE,OAAQD,EACRyE,WAAYzE,EAAS,IAAMsE,EAC3BvD,IAAKqD,GAEPjF,EAASuF,WAAWF,GAAY,SAAU9D,EAAKrC,GAC7C,GAAIqC,EAAK,OAAOA,CAClB,GACF,CACF,EA2IEiE,aA1GFnF,eAA6BQ,EAAQyD,GACnC,MAAMnE,EAAS,CAAEW,OAAQD,EAAQ6D,OAAQJ,GACnCZ,QAAiB1D,EAASoB,cAAcjB,GAAQkB,UAChDoE,EAAM,GACZ,GAAI/B,EAASzC,SAASoB,OAAS,EAAG,CAChCqB,EAASzC,SAASwD,SAAQO,GAAQS,EAAIrJ,KAAK,CAAEwF,IAAKoD,EAAKpD,QACvD,MAAM8D,EAAe,CAAE5E,OAAQD,EAAQ8E,OAAQ,CAAEC,QAASH,IAC1D,OAAOzF,EAAS6F,cAAcH,GAAcrE,SAC9C,CACF,EAkGEyE,aAhGFzF,eAA6BQ,EAAQ5C,GAEb,MAAlBA,EAAI8H,OAAO,KAAY9H,GAAY,KACvC,MAAMkC,EAAS,CAAEW,OAAQD,EAAQe,IAAK3D,EAAK+F,KAAM,IAEjDhE,EAASgG,OAAO7F,GAAQ,SAAUoB,EAAKrC,GACjCqC,EACF,IAAM4B,OAAO,cAAe5B,GAE5B0E,QAAQC,IAAI,sCAEhB,GACF,EAqFEC,UApFF9F,eAA0BQ,EAAQ5C,EAAKmI,EAAO,IAC5C,MAAMjG,EAAS,CACbW,OAAQD,EACRe,IAAK3D,EACL+F,KAAMoC,EACNnD,SAAU,CAAEC,WAAY,IAAM7D,QAAQgH,YAAYC,OAClDC,YAAa,qBAGf,aADmBvG,EAASmG,UAAUhG,GAAQkB,SAEhD,EA2EEmF,SA1EFnG,eAAyBQ,EAAQ5C,EAAKmI,EAAO,IAC3C,MAAMjG,EAAS,CACbW,OAAQD,EACRe,IAAK3D,EACL+F,KAAMoC,EACNnD,SAAU,CAAEC,WAAY,IAAM7D,QAAQgH,YAAYC,QAGpD,aADmBtG,EAASmG,UAAUhG,GAAQkB,SAEhD,EAkEEoF,aA/KFpG,eAA6BQ,EAAQ5C,GAMnC,OALwB+B,EAAS0G,aAAa,YAAa,CACzD5F,OAAQD,EACRe,IAAK3D,EACL0I,QAAS,KAGb,EAyKEC,eA1NFvG,eAA+BQ,EAAQyD,GAErC,MAAMuC,EAAM,IAAI,KACV1G,EAAS,CAAEW,OAAQD,EAAQ6D,OAAQJ,GACnCZ,QAAiB1D,EAASoB,cAAcjB,GAAQkB,UACtD,GAAiC,IAA7BqC,EAASzC,SAASoB,OAAc,MAAM,IAAI0C,MAAM,mCACpD,IAAK,MAAMC,KAAQtB,EAASzC,SAAU,CACpC,MAAM6F,EAAW9B,EAAKpD,IAAIC,MAAM,KAAKkE,OAAO,GAAG,GACzC5F,EAAS,CAAEW,OAAQD,EAAQe,IAAKoD,EAAKpD,IAAK6B,qBAAsB,YAChEC,QAAiB1D,EAAS2D,UAAUxD,GAAQkB,UAClDwF,EAAI7B,KAAK8B,EAAUpD,EAASM,KAC9B,CAEA6C,EAAIE,cAAc,CAAExK,KAAM,SAAUyK,MAAK,SAAUC,GACjD,IAAOA,EAAS,cAClB,GACF,EA2MEC,YA/IF7G,eAA4BQ,EAAQyD,EAAQO,GAC1C,MAAMsC,EAAc,CAClB7C,EAAS,sBACTA,EAAS,eACTA,EAAS,2BAELnE,EAAS,CAAEW,OAAQD,EAAQ6D,OAAQJ,GACnCZ,QAAiB1D,EAASoB,cAAcjB,GAAQkB,UAGtD,GAFAqC,EAASzC,SAAWyC,EAASzC,SAASgB,QAAO6C,GAAMqC,EAAYC,SAAStC,EAAGlD,OAE1C,IAA7B8B,EAASzC,SAASoB,OAAc,MAAM,IAAI0C,MAAM,2DACpD,IAAK,MAAMC,KAAQtB,EAASzC,SAAU,CACpC,IAAIgE,EAAUD,EAAKpD,IAAIC,MAAM,KAC7BoD,EAAQ,GAAKJ,EACbI,EAAUA,EAAQC,KAAK,KAEvB,IAAIC,EAAUH,EAAKpD,IAAIC,MAAM,KAC7BsD,EAAQ,GAAKC,mBAAmBD,EAAQ,IACxCA,EAAUA,EAAQD,KAAK,KAEvB,MAAMG,EAAa,CACjBvE,OAAQD,EACRyE,WAAYzE,EAAS,IAAMsE,EAC3BvD,IAAKqD,GAEPjF,EAASuF,WAAWF,GAAY,SAAU9D,EAAKrC,GAC7C,GAAIqC,EAAK,OAAOA,CAClB,GACF,CACF,E,+FCpIA,MAIM8F,EAAmB,oDAWnBC,EAAO,IAAI,KARA,CACfC,SARgB,6BAShBC,aARiB,8CASjBC,iBAAkB,CAAC,UACnBC,kBATmB,gEAUnBC,mBAP2B,+DAQ3BC,WAVkB,2BAcpBN,EAAKO,YAAc,CACjBC,UAAW,SAAUC,GAEnB,MAAMtH,EAAUsH,EAAOC,aAAaC,SAC9BC,GAAgB,OAAUzH,GAEhC,IAAM0C,OAAO,aAAc1C,GAC3B,IAAM0C,OAAO,iBAAkB4E,EAAOI,aACtC,IAAMhF,OAAO,iBAAkB+E,GAC/B,IAAM/E,OAAO,eAAe,GACxBrE,OAAOsJ,KAAKF,GAAed,SAAS,mBACtC,IAAMjE,OAAO,kBAAmB+E,EAAc,kBAAkB,GAEpE,EACAG,UAAW,SAAU9G,GACnB,IAAM4B,OAAO,gBACbmF,MAAM,uBAAyB/G,GAC/B,IAAOgH,GAAG,CAAEC,KAAM,SAAUC,MAAO,CAAEC,QAAS,uBAAyBnH,IACzE,GAcF,MACMoH,GADgB,IAAI,MACIC,aAC9B,GACEtB,KAAMA,EACNuB,QACEvB,EAAKwB,YACP,EACAC,SACE9C,QAAQC,IAAIoB,EAAK0B,kBACb1B,EAAK0B,kBACalM,KAAKmM,uBACbxE,SAAQxG,GAAO0K,EAAQO,WAAWjL,KAC9CqJ,EAAK6B,WAEL7B,EAAK6B,SAET,EACAF,qBA5BF,WACE,MAAMG,EAAY,kCAAoC9B,EAAK+B,cACrDC,EAAgBhC,EAAKiC,kBAAkBC,iBAAiBC,cAExDrB,EADS,CAAC,YAAa,qBAAsB,eAAgB,WAAY,iBAC3DzG,KAAI+H,GAAKN,EAAY,IAAME,EAAgBI,IAI/D,OAHAtB,EAAKhM,KAAKgN,EAAY,iBACtBhB,EAAKhM,KAAK,2BAA2BiL,KACrCe,EAAKhM,KAAK,kCAAkCiL,KACrCe,CACT,E,uEClDA,MAAMuB,EAAgB,CACpBC,OAAQ,KACRf,MAAOpI,GACL3D,KAAK8M,OAAS,IAAMC,OAAO,CACzBC,QAAS,gEACTC,iBAAiB,EACjBC,QAAS,CACP,OAAU,MACV,eAAgB,aAChB,cAAiBvJ,IAGvB,GAGIwJ,EAAc,CAClBC,SAAUzJ,GACRkJ,EAAcd,MAAMpI,EACtB,E,mECnBF,MAAM0J,EAAWT,GAAKA,EAEtB,SAASU,EAAYC,EAAS3N,EAAMH,EAAO,KAAM+N,GAAc,GAE7D,GAAgC,IAA5BD,EAAQ1N,SAAS0F,OAAc,CACjC,MAAMd,EAAM,IAAIwD,MAAMrI,EAAOyN,EAAS,cAEtC,MADA5I,EAAI7E,KAAO,cACL6E,CACR,CAEA,IAAK,CAAC,gCAAiC,aAAa6F,SAASiD,EAAQ7N,KAAKC,WAAWC,MAAO,CAC1F,MAAM6E,EAAM,IAAIwD,MAAMoF,EAAS,2DAA6DzN,GAE5F,MADA6E,EAAI7E,KAAO,cACL6E,CACR,CAEA,MAAMgJ,EAAcF,EAAQ1N,SAAS,GAAG6N,SAASjO,KACjD,GAAIgO,IAAgBhO,GAAiB,OAATA,EAAe,CACzC,MAAMgF,EAAM,IAAIwD,MAAMwF,EAAcJ,EAAS,wBAC7C5N,EAAO4N,EAAS,wBAA0BzN,GAE1C,MADA6E,EAAI7E,KAAO,cACL6E,CACR,CAEA,IAAKzC,OAAOsJ,KAAKiC,EAAQ1N,SAAS,GAAGF,YAAY2K,SAAS,WAAakD,EAAa,CAClF,MAAM/I,EAAM,IAAIwD,MAAMoF,EAAS,4EAA8EzN,GAE7G,MADA6E,EAAI7E,KAAO,cACL6E,CACR,CAEA,OAAO8I,CACT,CAEA,SAASI,EAAkBC,GACzB,IAAK9L,MAAM2F,QAAQmG,GAAO,CACxB,MAAMnJ,EAAM,IAAIwD,MAAMoF,EAAS,2EAE/B,MADA5I,EAAI7E,KAAO,cACL6E,CACR,CACA,MAAMpB,EAASuK,EAAKzI,QAAOC,IAASA,GAAMyI,OAEpCC,EAAe,IAAIlJ,IAAI,CAAC,WAAY,WAU1C,OATAvB,EAAOsE,SAAQK,IACb,GAHgB+F,EAGF,IAAInJ,IAAI5C,OAAOsJ,KAAKtD,IAHfgG,EAGqBF,GAHf,IAAIE,GAAGC,OAAM5N,GAAS0N,EAAEG,IAAI7N,KAGE,CACrD,MAAMoE,EAAM,IAAIwD,MAAMoF,EAAS,2EAE/B,MADA5I,EAAI7E,KAAO,cACL6E,CACR,CAPe,IAACsJ,EAAGC,CAOnB,IAGFJ,EAAKjG,SAAQvC,IAAepD,OAAOsJ,KAAKlG,GAAMkF,SAAS,WAAYlF,EAAKkB,MAAQ,UAAU,IACnFsH,CACT,CAEA,SAASO,EAAkBP,GACzB,IAAK9L,MAAM2F,QAAQmG,GAAO,CAExB,MAAMnJ,EAAM,IAAIwD,MAAMoF,EAAS,4EAE/B,MADA5I,EAAI7E,KAAO,cACL6E,CACR,CASA,OARAmJ,EAAKjG,SAAQK,IACX,IAAMhG,OAAOsJ,KAAKtD,GAAIsC,SAAS,UAActI,OAAOsJ,KAAKtD,GAAIsC,SAAS,SAAW,CAE/E,MAAM7F,EAAM,IAAIwD,MAAMoF,EAAS,4EAE/B,MADA5I,EAAI7E,KAAO,cACL6E,CACR,KAEKmJ,CACT,C,wICrEA,MAAMP,EAAWT,GAAKA,EAEtB,SAASwB,EAAgBlG,GACvB,OAAO,IAAImG,SAAQ,CAACC,EAASC,KAC3B,MAAMC,EAAS,IAAIC,WACnBD,EAAOE,OAAS,SAAUC,GACxBL,EAAQK,EAAMC,OAAO3D,OACvB,EACAuD,EAAOK,QAAU,SAAUF,GACzBJ,EAAOI,EAAMC,OAAOE,MACtB,EACAN,EAAOO,WAAW7G,EAAI,GAE1B,CAEA,SAAS8G,EAAiB9G,GACxB,OAAO,IAAImG,SAAQ,CAACC,EAASC,KAC3B,MAAMC,EAAS,IAAIC,WACnBD,EAAOE,OAAS,SAAUC,GACxB,MAAMM,EAAY,IAAIC,WAAWP,EAAMC,OAAO3D,QAC9CqD,EAAQW,EACV,EACAT,EAAOK,QAAU,SAAUF,GACzBJ,EAAOI,EAAMC,OAAOE,MACtB,EACAN,EAAOW,kBAAkBjH,EAAI,GAEjC,CAYA3E,eAAe6L,EAAYlH,GACzB,MAAMmH,EAAM,IAAI,KACVtF,QAAYsF,EAAIC,UAAUpH,GAChC,IAAIqH,EAAavN,OAAOsJ,KAAKvB,EAAI7E,OACjCqK,EAAaA,EAAWpK,QAAOvF,IAASA,EAAK4P,MAAM,iBACnDD,EAAaA,EAAWpK,QAAOvF,IAASA,EAAK6P,SAAS,OAfxD,SAAqB/H,GAGnB,GAAoB,IADPA,EAAMvC,QAAOuG,GAAQA,EAAKrG,WAAW,YAAcqG,EAAKrG,WAAW,cACvEE,OAAc,CACrB,MAAMd,EAAM,IAAIwD,MAAMoF,EAAS,uDAAyD3F,EAAM,IAE9F,MADAjD,EAAI7E,KAAO,cACL6E,CACR,CACF,CAQEiL,CAAWH,GAEX,MAAMtE,EAAS,GACf,IAAK,IAAI0E,EAAI,EAAGA,EAAIJ,EAAWhK,OAAQoK,IAAK,CAC1C,MAAMC,QAAY7F,EAAI7B,KAAKqH,EAAWI,IAAIpM,MAAM,UAChD,IAAI4G,EAAU,CAAC,EACf,GAAIoF,EAAWI,GAAGF,SAAS,UAAYF,EAAWI,GAAGF,SAAS,YAC5D,IACEtF,EAAUrD,KAAKC,MAAM6I,EACvB,CAAE,MAAOnL,GAEP,MADAA,EAAI7E,KAAO,kBAAoB2P,EAAWI,GACpClL,CACR,MAEA0F,QAAgBJ,EAAI7B,KAAKqH,EAAWI,IAAIpM,MAAM,cAIhD0H,EAAO3L,KAAK,CAAEoM,KAAM6D,EAAWI,GAAIxF,QAASA,GAC9C,CACA,OAAOc,CACT,CAEA,SAAS4E,EAAchQ,EAAUiQ,EAAgBC,GAC/C,MAAMC,EAAO,CAAC,EASd,OARAF,EAAenI,SAAQxG,IACrB,MAAM8O,EAAM,IAAIrL,IAAI/E,EAASgF,KAAIqL,GAAQA,EAAKvQ,WAAWwB,MACzD6O,EAAK7O,GAAO,CACVd,MAAO4P,EAAIE,KAAO,EAAI,GAAK,IAAIF,GAAK,GACpCG,SAAUL,EAAWzF,SAASnJ,GAC9BkP,YAAaJ,EAAIE,KAAO,EAC1B,IAEKH,CACT,CAYA,SAASM,EAAmBC,EAAUC,GAGpC,MAAMC,EAAa,IAAI7L,IAAI2L,EAAS1Q,SAASgF,KAAIO,GAAQA,EAAKzF,WAAW+Q,SACnEC,EAAgB,IAAI/L,IAAI4L,EAAS3Q,SAASgF,KAAIO,GAAQA,EAAKzF,WAAW+Q,SAC5E,OAAQ,IAAI9L,IAAI,IAAI6L,KAAeE,IAAgBR,OAAUM,EAAWN,KAAOQ,EAAcR,IAC/F,CAgBA5M,eAAeqN,EAAO1I,GAEpB,MAAMmH,EAAM,IAAI,KACVtF,QAAYsF,EAAIC,UAAUpH,GAC1BqH,EAAavN,OAAOsJ,KAAKvB,EAAI7E,OAC7B0K,QAAY7F,EAAI7B,KAAKqH,EAAW,IAAIhM,MAAM,UAEhD,OADgBuD,KAAKC,MAAM6I,EAE7B,CAGA,SAASiB,EAASC,GAEhB,IAAIC,GADQ,IAAI/J,aAAcC,OAAO6J,GACrB/L,MAAM,MACtBgM,EAAQA,EAAM5L,QAAO6L,GAAQA,EAAKzL,OAAS,IAC3C,MAAM0F,EAAS,GASTiC,EAAU6D,EAAM,GAAGhM,MAAM,KAC/B,IAAK,IAAI4K,EAAI,EAAGA,EAAIoB,EAAMxL,OAAQoK,IAAK,CACrC,MAAMsB,EAAM,CAAC,EACPC,EAAcH,EAAMpB,GAAG5K,MAAM,KAEnC,IAAK,IAAIoM,EAAI,EAAGA,EAAIjE,EAAQ3H,OAAQ4L,IAElCF,EAAI/D,EAAQiE,IAAMjP,OAAOgP,EAAYC,IAAMjP,OAAOgP,EAAYC,IAAMD,EAAYC,GAGlFlG,EAAO3L,KAAK2R,EACd,CAEA,OAAOhG,CACT,C,mECxJA,MAAMmG,EAAc,CAClB,WACA,gBACA,QACA,aACA,UACA,eACA,YACA,iBACA,WACA,gBACA,cACA,gBACA,UACA,eACA,WACA,cAGIC,EAAe,CACnBC,SAAU,SACVC,cAAe,SACfC,MAAO,SACPC,WAAY,SACZC,QAAS,SACTC,aAAc,SACdC,UAAW,SACXC,eAAgB,SAChBC,SAAU,SACVC,cAAe,SACfC,YAAa,SACbC,cAAe,SACfC,QAAS,SACTC,aAAc,SACdC,SAAU,SACVC,WAAY,UAGRC,EAAe,CACnBhB,SAAU,EACVC,cAAe,EACfC,MAAO,EACPC,WAAY,EACZC,QAAS,EACTC,aAAc,EACdC,UAAW,EACXC,eAAgB,EAChBC,SAAU,EACVC,cAAe,EACfC,YAAa,EACbC,cAAe,EACfC,QAAS,EACTC,aAAc,EACdC,SAAU,EACVC,WAAY,E,+LC5CV5P,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,O,y0oBC1B1D,IAAIjD,EAAS,WACX,IAAIC,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,QACA,CAAES,YAAa,OACf,CACET,EAAG,oBACHF,EAAIsB,GAAG,KACPpB,EACE,MACA,CACEE,WAAY,CACV,CACEP,KAAM,SACNQ,QAAS,WACTC,MAAON,EAAIwS,SACX9R,WAAY,aAGhB+R,IAAK,YACL9R,YAAa,aAEf,CACET,EAAG,WACHF,EAAIsB,GAAG,KACPpB,EAAG,aAAc,CAAEwS,MAAO,CAAE7S,KAAM,SAAY,CAACK,EAAG,gBAAiB,IAErE,GAEFF,EAAIsB,GAAG,KACPpB,EACE,YACA,CAAEwS,MAAO,CAAEpS,MAAON,EAAI2S,UACtB,CACEzS,EAAG,sBAAuB,CACxBwS,MAAO,CAAEE,cAAe,GAAIxC,KAAM,SAGtC,GAEFpQ,EAAIsB,GAAG,KACPpB,EACE,aACA,CACE2S,MAAO,YAAY7S,EAAI8S,aAAapT,OACpCgT,MAAO,CACLK,QAAS/S,EAAI8S,aAAaE,UAAY,KAAQ,EAC9CC,WAAY,6BACZ9R,MAAOnB,EAAI8S,aAAa3R,MAAQnB,EAAI8S,aAAa3R,MAAQ,SAE3D+R,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,SACLgS,GAAI,UAAU,MAAEV,IACd,MAAO,CACLxS,EACE,QACAF,EAAIqT,GACF,CACEX,MAAO,CAAEY,MAAO,GAAInS,MAAO,gBAAiBoS,KAAM,IAClDC,GAAI,CAAEC,MAAOzT,EAAI0T,gBAEnB,QACAhB,GACA,GAEF,CACE1S,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,UACpB,cAKZ,KAGJ/G,MAAO,CACLjG,MAAON,EAAI2T,SACXC,SAAU,SAAUC,GAClB7T,EAAI2T,SAAWE,CACjB,EACAnT,WAAY,aAGhB,CACER,EAAG,OAAQ,CAAES,YAAa,iBAAmB,CAC3CX,EAAIsB,GACF,WACEtB,EAAIuB,GAAGvB,EAAIsN,SAAStN,EAAI8S,aAAaS,OACrC,cAKVvT,EAAIsB,GAAG,KACPpB,EAAG,UAEL,EAEJ,EAEAH,EAAO6B,eAAgB,ECxGvB,IAAI,EAAS,WACX,IAAI5B,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,YACA,CAAE2S,MAAO,0BAA2BH,MAAO,CAAEoB,MAAO,KACpD,CACE5T,EAAG,QAAS,CACVwS,MAAO,CACLqB,IAAK,EAAQ,OACbC,QAAS,GACT,YAAa,UAGjBhU,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAES,YAAa,aAAe,CAACX,EAAIsB,GAAG,OACjDtB,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,YAAc,CACrCX,EAAIsB,GAAG,sCAETtB,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAACA,EAAG,sBAAuB,GACrCF,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,MACA,CACEA,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,IACjBf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACEX,MAAO,CACLyB,KAAM,GACNC,KAAM,wDACNvF,OAAQ,WAGZ,QACA6D,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CACXF,EAAIsB,GAAG,8CAGX,GAGN,MAIN,CAACtB,EAAIsB,GAAG,KAAMpB,EAAG,OAAQ,CAACF,EAAIsB,GAAG,eAGrC,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,UACf,CACET,EAAG,WAAY,CACbwS,MAAO,CAAE,cAAe,eACxBnM,MAAO,CACLjG,MAAON,EAAIqU,SAASC,MAAMC,KAC1BX,SAAU,SAAUC,GAClB7T,EAAIwU,KAAKxU,EAAIqU,SAASC,MAAO,OAAQT,EACvC,EACAnT,WAAY,0BAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EACE,MACA,CACEA,EACE,SACA,CACEwS,MAAO,CACL,WAAY,GACZ,cAAe,MACfO,WAAY,sBAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAYI,GAAIA,EAAId,MAAOA,IAC7B,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,kBACb+R,MAAO,CAAEa,KAAM,KAEjB,QACAb,GACA,GAEFc,GAEF,CACExT,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIyU,UAAU7O,SACrB,gBAKZ,MAIN,CACE5F,EAAIsB,GAAG,KACPpB,EACE,SACAF,EAAIiB,GAAGjB,EAAIyU,UAAUC,WAAW,SAAUC,EAAUC,GAClD,OAAO1U,EACL,cACA,CACEkB,IAAKwT,EACL/B,MAAO8B,EACPnB,GAAI,CAAEC,MAAO,IAAMzT,EAAI6U,qBAAqBD,KAE9C,CACE5U,EAAIsB,GACF,eACEtB,EAAIuB,GAAGoT,EAASG,eAChB,eAIV,IACA,IAGJ,IAGJ,GAEF9U,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAACA,EAAG,YAAa,IAE7B,EAEJ,EAEA,EAAO0B,eAAgB,EC3KvB,IAAI,EAAS,WACX,IAAI5B,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEF,EAAI+U,SACA7U,EACE,SACA,CACEwS,MAAO,CACL,0BAA0B,EAC1B,cAAe,IACf,WAAY,GACZ,WAAY,IAEdQ,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,WACAF,EAAIkU,GACFlU,EAAIqT,GACF,CAAEX,MAAO,CAAEtC,KAAM,KAAMjP,MAAO,YAC9B,WACAuR,GACA,GAEFc,GAEF,CACEtT,EAAG,OAAQ,CAAES,YAAa,uBAAyB,CACjDX,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIgV,cAK5B,IAGJ,MACA,EACA,YAEFzO,MAAO,CACLjG,MAAON,EAAIiV,KACXrB,SAAU,SAAUC,GAClB7T,EAAIiV,KAAOpB,CACb,EACAnT,WAAY,SAGhB,CACEV,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,SACA,CACEA,EACE,cACA,CACEA,EACE,sBACA,CACEA,EAAG,oBAAqB,CACtBF,EAAIsB,GACFtB,EAAIuB,GACFvB,EAAIwJ,YAAY0L,WACd,IACAlV,EAAIwJ,YAAY2L,gBAIxBnV,EAAIsB,GAAG,KACPpB,EAAG,uBAAwB,CACzBF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIwJ,YAAYC,WAGlC,IAGJ,IAGJ,GAEFzJ,EAAIsB,GAAG,KACPpB,EAAG,aACHF,EAAIsB,GAAG,KACPtB,EAAIiB,GAAGjB,EAAIsH,YAAY,SAAU8N,GAC/B,OAAOlV,EAAG,cAAe,CAAEkB,IAAKgU,GAAS,CACvCpV,EAAIsB,GAAG,aAAetB,EAAIuB,GAAG6T,GAAS,aAE1C,IACApV,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,UAAWoS,KAAM,IACjCC,GAAI,CAAEC,MAAOzT,EAAIkM,SAEnB,CACElM,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,WACpB,iBAKV,IAGJ,IAGJ,GAEFpN,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CAAEX,MAAO,CAAEyB,KAAM,IAAMX,GAAI,CAAEC,MAAOzT,EAAIgM,QACxC,QACA0G,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CACXF,EAAIsB,GAAG,+CAGX,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAACF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,wBAG/CtN,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CAAE2C,WAAY,GAAI,YAAa,OACtC7B,GAAI,CACF8B,QAAS,CACP,SAAUC,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,QAAS,GAAIH,EAAOnU,IAAK,SAEzC,KACFpB,EAAI2V,YAAYC,MAAM,KAAMC,UACrC,EACA,SAAUN,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGK,MACF,IAAQpB,EAAI8V,YAAa,GAAQF,MAAM,KAAMC,UACtD,IAGJtP,MAAO,CACLjG,MAAON,EAAI8V,WACXlC,SAAU,SAAUC,GAClB7T,EAAI8V,WAAajC,CACnB,EACAnT,WAAY,eAGhB,CACER,EACE,SACA,CACEA,EAAG,eAAgB,CAAES,YAAa,WAAa,CAC7CX,EAAIsB,GACF,aAAetB,EAAIuB,GAAGvB,EAAIsN,SAAS,aAAe,cAGtDtN,EAAIsB,GAAG,KACPpB,EAAG,cAAe,CAAES,YAAa,WAAa,CAC5CX,EAAIsB,GACF,aACEtB,EAAIuB,GACFvB,EAAIsN,SAAS,wCAEf,cAGNtN,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CAAEC,MAAO,IAAOzT,EAAI8V,YAAc9V,EAAI8V,aAE5C,CACE9V,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,OACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CAAEC,MAAOzT,EAAI2V,cAEnB,CACE3V,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,QACpB,iBAKV,IAGJ,IAGJ,IAGJ,EAEJ,EAEA,EAAO1L,eAAgB,E,eC1QvB,MCH8H,EDG9H,CACE/B,KAAM,UACNgC,WAAY,CAEZ,EAEAC,MAAO,GACPiU,OAAQ,CAAC,UACT1T,KAAK,KACI,CACL4S,MAAM,EACNa,YAAY,EACZE,OAAQ,UAGZ1T,SAAU,CACR2T,iBAAoB,OAAOhW,KAAKsC,OAAOC,QAAQyT,cAAe,EAC9DlB,WAAc,OAAO9U,KAAKsC,OAAOC,QAAQuS,QAAS,EAClDvL,cAAiB,OAAOvJ,KAAKsC,OAAOC,QAAQgH,WAAY,EACxDlC,aAAgB,OAAOrH,KAAKsC,OAAOC,QAAQ8E,UAAW,EAEtD0N,UAAa,OAAQ/U,KAAKuJ,aAAa0L,WAAW,GAAKjV,KAAKuJ,aAAa2L,YAAY,IAAIL,aAAc,GAEzGoB,MAAO,CAEP,EAEAC,QAAS,CAEPnK,QACM/L,KAAKgW,eACPxL,EAAA,EAAKuB,SAEL/L,KAAK+V,OAAS,QACd/V,KAAK6V,YAAa,EAEtB,EACA5J,SACMjM,KAAKgW,gBACPhW,KAAKgV,MAAO,EACZxK,EAAA,EAAKyB,WAELjM,KAAK+V,OAAS,SACd/V,KAAK6V,YAAa,EAEtB,EACAH,cACE1V,KAAKgV,MAAO,EACZhV,KAAK6V,YAAa,EACE,UAAhB7V,KAAK+V,QAAoBvL,EAAA,EAAKuB,QACd,WAAhB/L,KAAK+V,QAAqBvL,EAAA,EAAKyB,QACrC,I,eEpCJ,SAXgB,OACd,EACA,EHmQoB,IGjQpB,EACA,KACA,WACA,MAI8B,QClBhC,IAAI,EAAS,WACX,IAAIlM,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOF,EAAI+U,UAAY/U,EAAIoW,WAAW5Q,OAAS,EAC3CtF,EACE,UACA,CACEA,EACE,SACA,CACEwS,MAAO,CACL,kBACG1S,EAAI8V,aAAe9V,EAAIqW,eAAiBrW,EAAIsW,WAC/C,0BAA0B,EAC1B,YAAa,QACb,aAActW,EAAIc,aAClB,WAAY,IAEdoS,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,MACAF,EAAIkU,GACFlU,EAAIqT,GACF,CAAE1S,YAAa,SACf,MACA+R,GACA,GAEFc,GAEF,CACExT,EAAIsB,GACF,aACEtB,EAAIuB,GACFvB,EAAIwG,SACAxG,EAAIuG,MAAQ,IAAMvG,EAAIwG,SACtBxG,EAAIsN,SAAS,aAEnB,cAKZ,IAGJ,MACA,EACA,YAEF/G,MAAO,CACLjG,MAAON,EAAIiV,KACXrB,SAAU,SAAUC,GAClB7T,EAAIiV,KAAOpB,CACb,EACAnT,WAAY,SAGhB,CACEV,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,SACA,CACEwS,MAAO,CAAE,cAAe,GAAI,aAAc,IAC1CnM,MAAO,CACLjG,MAAON,EAAIuW,WACX3C,SAAU,SAAUC,GAClB7T,EAAIuW,WAAa1C,CACnB,EACAnT,WAAY,eAGhBV,EAAIiB,GAAGjB,EAAIoW,YAAY,SAAUI,GAC/B,OAAOtW,EACL,QACA,CAAEkB,IAAKoV,EAAK9D,MAAO,CAAE0B,KAAM,IAAMoC,IACjC,CACExW,EAAIsB,GACF,eAAiBtB,EAAIuB,GAAGiV,EAAItN,MAAM,IAAM,eAIhD,IACA,GAEFlJ,EAAIsB,GAAG,KACPtB,EAAIiB,GAAGjB,EAAIyW,eAAe,SAAUvR,GAClC,OAAOhF,EACL,cACA,CACEkB,IAAK8D,EAAKqB,MAAQrB,EAAKsB,SACvBqM,MAAO,CACL,YACE7S,EAAI0W,YAAcxR,EAAKqB,MAAQrB,EAAKsB,UAExCkM,MAAO,CACLpS,MAAO4E,EAAKqB,MAAQrB,EAAKsB,SACzB,WAAY,IAEdgN,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAI2W,eAAezR,EAC5B,IAGJ,CACEhF,EACE,sBACA,CACEA,EAAG,oBAAqB,CACtBF,EAAIsB,GAAGtB,EAAIuB,GAAG2D,EAAKsB,aAErBxG,EAAIsB,GAAG,KACPpB,EAAG,uBAAwB,CACzBF,EAAIsB,GAAGtB,EAAIuB,GAAG2D,EAAKuB,iBAErBzG,EAAIsB,GAAG,KACPpB,EAAG,uBAAwB,CACzBF,EAAIsB,GAAGtB,EAAIuB,GAAG2D,EAAKe,eAGvB,GAEFjG,EAAIsB,GAAG,KACPpB,EACE,QACA,CACES,YAAa,OACb+R,MAAO,CAAEyB,KAAM,IACfX,GAAI,CACFC,MAAO,SAAU8B,GAEf,OADAA,EAAOqB,mBACA,KACL5W,EAAIsW,YAAa,EACjBtW,EAAI6W,iBAAmB3R,EAAKsB,SAC5BxG,EAAI8W,MAAQ5R,EAAKsB,SAAW,OAC7B,GAAEoP,MAAM,KAAMC,UACjB,IAGJ,CACE3V,EACE,SACA,CAAEwS,MAAO,CAAEY,MAAO,GAAInS,MAAO,YAC7B,CAACnB,EAAIsB,GAAG,4CAGZ,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,QACA,CACES,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,SACEnL,EAAKqB,MAAQrB,EAAKsB,WAAaxG,EAAI0W,WACnCxR,EAAKwB,WAET8M,GAAI,CACFC,MAAO,SAAU8B,GAEf,OADAA,EAAOqB,mBACA,KACL5W,EAAIqW,cAAe,EACnBrW,EAAI+W,iBAAmB7R,EAAKsB,QAC7B,GAAEoP,MAAM,KAAMC,UACjB,IAGJ,CACE3V,EACE,SACA,CAAEwS,MAAO,CAAEY,MAAO,GAAInS,MAAO,SAC7B,CACEnB,EAAIsB,GACF,iBACEtB,EAAIuB,GACF2D,EAAKwB,UACD,cACA,gBAEN,mBAKV,IAGJ,EAEJ,IACA1G,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEE,WAAY,CACV,CACEP,KAAM,OACNQ,QAAS,SACTC,MAAON,EAAI2S,QACXjS,WAAY,aAIlB,CACER,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EAAG,sBAAuB,CACxBwS,MAAO,CAAEvR,MAAO,UAAWyR,cAAe,MAE5C5S,EAAIsB,GAAG,KACPpB,EAAG,aAEL,GAEFF,EAAIsB,GAAG,KACPpB,EAAG,aACHF,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEA,EACE,QACA,CACEwS,MAAO,CAAEa,KAAM,IACfC,GAAI,CACFC,MAAO,KACLzT,EAAIsW,YAAa,EACjBtW,EAAI6W,iBAAmB,KACvB7W,EAAI8W,MAAQ,MAIlB,CACE9W,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,iBACpB,iBAKV,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CAAE2C,WAAY,GAAI,YAAa,OACtC7B,GAAI,CACF8B,QAAS,CACP,SAAUC,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,QAAS,GAAIH,EAAOnU,IAAK,SAEzC,KACFpB,EAAI2V,YAAYC,MAAM,KAAMC,UACrC,EACA,SAAUN,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGK,KACFpB,EAAIgX,aAAapB,MAAM,KAAMC,UACtC,IAGJtP,MAAO,CACLjG,MAAON,EAAI8V,WACXlC,SAAU,SAAUC,GAClB7T,EAAI8V,WAAajC,CACnB,EACAnT,WAAY,eAGhB,CACER,EACE,SACA,CACEA,EAAG,eAAgB,CAAES,YAAa,WAAa,CAC7CX,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,mBACpB,cAGNtN,EAAIsB,GAAG,KACPpB,EAAG,cAAe,CAAES,YAAa,WAAa,CAC5CX,EAAIsB,GACF,aACEtB,EAAIuB,GACFvB,EAAIsN,SAAS,wCAEf,cAGNtN,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CAAEC,MAAOzT,EAAIgX,eAEnB,CACEhX,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,OACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CAAEC,MAAOzT,EAAI2V,cAEnB,CACE3V,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,QACpB,iBAKV,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CAAE2C,WAAY,GAAI,YAAa,OACtC7B,GAAI,CACF8B,QAAS,SAAUC,GACjB,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGK,MACF,IAAQpB,EAAIqW,cAAe,GAAQT,MACxC,KACAC,UAEJ,GAEFtP,MAAO,CACLjG,MAAON,EAAIqW,aACXzC,SAAU,SAAUC,GAClB7T,EAAIqW,aAAexC,CACrB,EACAnT,WAAY,iBAGhB,CACER,EACE,SACA,CACEA,EAAG,eAAgB,CAAES,YAAa,WAAa,CAC7CX,EAAIsB,GACF,aACEtB,EAAIuB,GACFvB,EAAIsN,SAAS,WAAatN,EAAI+W,iBAAmB,MAEnD,cAGN/W,EAAIsB,GAAG,KACPpB,EAAG,cAAe,CAAES,YAAa,WAAa,CAC5CX,EAAIsB,GACF,aACEtB,EAAIuB,GACFvB,EAAIsN,SACF,6CAGJ,cAGNtN,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CAAEC,MAAO,IAAOzT,EAAIqW,cAAe,IAEzC,CACErW,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,WACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,SAChBqS,GAAI,CAAEC,MAAOzT,EAAIiX,iBAEnB,CACEjX,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,WACpB,iBAKV,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CAAE2C,WAAY,GAAI,YAAa,OACtC7B,GAAI,CACF8B,QAAS,CACP,SAAUC,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,QAAS,GAAIH,EAAOnU,IAAK,SAEzC,KACFpB,EAAIkX,cAActB,MAAM,KAAMC,UACvC,EACA,SAAUN,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGK,KACFpB,EAAImX,OAAOvB,MAAM,KAAMC,UAChC,IAGJtP,MAAO,CACLjG,MAAON,EAAIsW,WACX1C,SAAU,SAAUC,GAClB7T,EAAIsW,WAAazC,CACnB,EACAnT,WAAY,eAGhB,CACER,EACE,SACA,CACEA,EAAG,eAAgB,CAAES,YAAa,WAAa,CAC7CX,EAAIsB,GACF,aACEtB,EAAIuB,GACFvB,EAAI6W,iBACA7W,EAAIsN,SAAS,QAAU,IAAMtN,EAAI6W,iBACjC7W,EAAIsN,SAAS,iBAEnB,cAGNtN,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEA,EACE,cACA,CACEA,EACE,QACA,CAAEwS,MAAO,CAAE0E,KAAM,OACjB,CACElX,EAAG,eAAgB,CACjBwS,MAAO,CACL2E,UAAW,GACXC,MAAOtX,EAAIsN,SAAS,SAEtB/G,MAAO,CACLjG,MAAON,EAAI8W,MACXlD,SAAU,SAAUC,GAClB7T,EAAI8W,MAAQjD,CACd,EACAnT,WAAY,YAIlB,IAGJ,IAGJ,GAEFV,EAAIsB,GAAG,KACPpB,EACE,cACA,CAAEU,MAAO,CAAE2W,UAAW,SAAUpW,MAAO,QACvC,CACEnB,EAAIsB,GACF,aAAetB,EAAIuB,GAAGvB,EAAIwX,cAAgB,cAIhDxX,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,OAAQoS,KAAM,IAC9BC,GAAI,CAAEC,MAAOzT,EAAIyX,YAEnB,CACEzX,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,WACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,iBAAkBoS,KAAM,IACxCC,GAAI,CAAEC,MAAOzT,EAAIkX,gBAEnB,CACElX,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,OACpB,iBAKV,IAGJ,IAGJ,IAGJ,GAEFtN,EAAI0X,IACV,EAEA,EAAO9V,eAAgB,E,eCxlBvB,MCHwI,EDKxI,CACE/B,KAAM,oBACNgC,WAAY,CAEZ,EAEAC,MAAO,GACPiU,OAAQ,GACR1T,KAAK,KACI,CACL4S,MAAM,EACNa,YAAY,EACZY,UAAW,GACXH,WAAY,GACZoB,UAAW,GACXH,aAAc,GACdlB,YAAY,EACZO,iBAAkB,KAClBE,iBAAkB,KAClBD,MAAO,GACPT,cAAc,EACd1D,SAAS,EACTjM,WAAW,IAIfpE,SAAU,CACRxB,eAAkB,OAAOb,KAAKsC,OAAOC,QAAQ1B,YAAa,EAC1DmV,iBAAoB,OAAOhW,KAAKsC,OAAOC,QAAQyT,cAAe,EAC9DlB,WAAc,OAAO9U,KAAKsC,OAAOC,QAAQuS,QAAS,EAClD0B,gBAGE,OADYxW,KAAKsC,OAAOC,QAAQiU,cACrBmB,MAAK,CAAC5J,EAAGC,IACdD,EAAEtH,YAAcuH,EAAEvH,UACbsH,EAAExH,SAASqR,cAAc5J,EAAEzH,cAAUsR,EAAW,CAAEC,YAAa,SAC7D/J,EAAEtH,WACH,EAED,GAGb,EACA0P,aAAgB,OAAOnW,KAAKsC,OAAOC,QAAQ8E,UAAW,EACtDf,QAAW,OAAOtG,KAAKsC,OAAOC,QAAQ+D,KAAM,EAC5CC,WAAc,OAAOvG,KAAKsC,OAAOC,QAAQgE,QAAS,GAEpD0P,MAAO,CACL1S,WAAa0M,GACPA,IACFjQ,KAAKsC,OAAOyV,SAAS,kBAErB/X,KAAK0S,SAAU,QACT1S,KAAKsC,OAAOyV,SAAS,cAAe,CAAEzR,MAAOtG,KAAKsW,aACxDtW,KAAK0S,SAAU,EAEnB,EACAnP,iBAAkB0M,GAEhBjQ,KAAKsC,OAAO+D,OAAO,mBAAoB,IACvCrG,KAAK0S,SAAU,QACT1S,KAAKsC,OAAOyV,SAAS,cAAe,CAAEzR,MAAO2J,IACnDjQ,KAAK0S,SAAU,CACjB,EACAnP,mBAGEvD,KAAKsW,WAAatW,KAAKmW,WAAW,SAC5BnW,KAAKsC,OAAOyV,SAAS,cAAe,CAAEzR,MAAOtG,KAAKsW,YAC1D,EACA/P,SAAU0J,GACJA,IAAQjQ,KAAK0X,YACf1X,KAAK0X,UAAY,GACjB1X,KAAKyW,UAAY,GAErB,GAGFuB,UACEhY,KAAKsW,WAAatW,KAAKmW,WAAW,EACpC,EAEAD,QAAS,CACPQ,eAAgBzG,GACdjQ,KAAKyW,UAAYxG,EAAI3J,MAAQ2J,EAAI1J,SACjCvG,KAAK0X,UAAYzH,EAAI1J,SACrBvG,KAAKyG,UAAYwJ,EAAIxJ,UACjBwJ,EAAI1J,WACFvG,KAAKgW,eACPhW,KAAKiY,cAELjY,KAAK6V,YAAa,EAGxB,EACAtS,oBACEvD,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,WAAYrG,KAAKsW,YACpCtW,KAAKsC,OAAO+D,OAAO,cAAe,CAAEE,SAAUvG,KAAK0X,UAAWjR,UAAWzG,KAAKyG,YAC9EzG,KAAKkY,QAAQ5Y,KAAK,CAAEM,KAAM,SAAU+L,MAAO,CAAEwM,OAAQnY,KAAKsW,cAC1DtW,KAAKgV,MAAO,CACd,EAEAU,cACE1V,KAAKgV,MAAO,EACZhV,KAAK6V,YAAa,EAClB7V,KAAKiY,aACP,EACAlB,eAEE/W,KAAKyW,UAAYzW,KAAKsG,MAAQtG,KAAKuG,SACnCvG,KAAK0X,UAAY1X,KAAKuG,SACtBvG,KAAK6V,YAAa,EAClB7V,KAAKgV,MAAO,CACd,EACAgC,iBACEhX,KAAKoW,cAAe,EACpB,IAAG1N,aAAa1I,KAAKsW,WAAYtW,KAAK8W,iBAAmB,KAAK5M,MAAKjE,IACjEjG,KAAKoW,cAAe,EACpBpW,KAAKsC,OAAOyV,SAAS,cAAe,CAAEzR,MAAOtG,KAAKsW,aAClDtW,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,mBAAqBP,WAAW,EAAM7R,MAAO,WAAW,IAC1EkX,OAAO3T,IACRzE,KAAKoW,cAAe,EACpBjN,QAAQ2F,MAAMrK,GACdzE,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,mBAAqBP,WAAW,EAAM7R,MAAO,SAAS,GAE7E,EACAqC,sBACE,GAAmB,KAAfvD,KAAK6W,MACP7W,KAAKuX,aAAe,2BACf,GAAIvX,KAAK6W,MAAMvM,SAAS,KAC7BtK,KAAKuX,aAAe,6BACf,GAAIvX,KAAKwW,cAAc3R,KAAIwT,GAAKA,EAAE9R,WAAU+D,SAAStK,KAAK6W,OAC/D7W,KAAKuX,aAAe,4BACf,CACL,IACE,GAAIvX,KAAK4W,uBAED,IAAG9O,WAAW9H,KAAKsW,WAAYtW,KAAK4W,iBAAmB,IAAK5W,KAAK6W,OACvE7W,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,+BAAiCP,WAAW,EAAM7R,MAAO,gBACvE,CAIL,MAAMoX,EAAOtY,KAAKwW,cAAc,GAAGjQ,eAC7B,IAAG6D,YAAYpK,KAAKsW,WAAYgC,EAAMtY,KAAK6W,OACjD7W,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,mBAAqBP,WAAW,EAAM7R,MAAO,WAClE,CACF,CAAE,MAAOuD,GAAOzE,KAAKsC,OAAO+D,OAAO,cAAe5B,GAAMzE,KAAK4W,iBAAmB,IAAK,CACrF5W,KAAKwX,YACLxX,KAAK0S,SAAU,EAEf6F,YAAW,KACTvY,KAAKsC,OAAOyV,SAAS,cAAe,CAAEzR,MAAOtG,KAAKsW,aAAcpM,MAAK,KAAQlK,KAAK0S,SAAU,KACzF0F,OAAO3T,IAAUzE,KAAKsC,OAAO+D,OAAO,cAAe5B,GAAMzE,KAAK0S,SAAU,IAAO,GACjF,IACL,CACF,EAEA8E,YACExX,KAAKqW,YAAa,EAClBrW,KAAK6W,MAAQ,GACb7W,KAAK4W,iBAAmB,KACxB5W,KAAKuX,aAAe,EACtB,I,eElKA,EAAU,CAAC,EAEf,EAAQ7U,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,MCnB8H,ECG9H,CACEnD,KAAM,UACNgC,WAAY,CAAE4W,QAAO,qBFGP,OACd,EACA,EJglBoB,II9kBpB,EACA,KACA,WACA,MAI8B,SEb9BpW,KAAK,KACI,CACLqW,QAAQ,IAIZxC,MAAO,CACL,sBAAuBhG,GACrBjQ,KAAKsC,OAAO+D,OAAO,iBAAkB4J,EACvC,GAGFiG,QAAS,CACPtB,qBAAsBD,GACpB3U,KAAKoU,SAASO,KAAKhP,QAAUgP,EAC7B3U,KAAKwU,UAAU7O,QAAUgP,CAC3B,I,eCXA,EAAU,CAAC,EAEf,EAAQjS,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,SAXgB,OACd,EACA,EbgKoB,Ia9JpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,EAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,aACA,CAAEwS,MAAO,CAAE7S,KAAM,SACjB,CACEK,EACE,sBACA,CACES,YAAa,qBACb+R,MAAO,CACLiG,IAAK,GACLC,UAAW,GACXC,WAAY7Y,EAAI8Y,KAChB,eAAgB9Y,EAAI8Y,KACpB,qBAAsB,IAExBtF,GAAI,CACF,qBAAsB,SAAU+B,GAC9BvV,EAAI8Y,KAAOvD,CACb,EACA,sBAAuB,SAAUA,GAC/BvV,EAAI8Y,KAAOvD,CACb,GAEFhP,MAAO,CACLjG,MAAON,EAAI+Y,OACXnF,SAAU,SAAUC,GAClB7T,EAAI+Y,OAASlF,CACf,EACAnT,WAAY,WAGhB,CACER,EACE,MACA,CACES,YAAa,gBACb6S,GAAI,CACFC,MAAO,SAAU8B,GACfvV,EAAI8Y,MAAQ9Y,EAAI8Y,IAClB,IAGJ,CACE5Y,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAI8Y,KAAO,aAAe,qBACjC,eAIR,GAEF9Y,EAAIsB,GAAG,KACPpB,EACE,SACA,CAAES,YAAa,cAAe+R,MAAO,CAAEoB,MAAO,KAC9C,CACE9T,EAAIiB,GAAGjB,EAAIgZ,sBAAsB,SAAU3T,EAAMjE,GAC/C,OAAOlB,EACL,cACA,CACEkB,IAAKA,EACLT,YAAa,mBACbkS,MAAO,CACL7S,EAAIiZ,OAAOpZ,OAASwF,EAAKxF,KACrB,4BACA,IAENe,MAAO,CAAEsY,UAAW7T,EAAK8T,QACzBzG,MAAO,CACLrC,SACgB,SAAdhL,EAAKxF,QACHG,EAAIuC,OAAOC,QAAQgE,UAAYxG,EAAIoZ,cAEzC5F,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIqZ,oBAAoBhU,EACjC,GAEFiU,SAAU,CACR7F,MAAO,SAAU8B,GACfA,EAAOqB,iBACT,IAGJ,CACE1W,EACE,qBACA,CACE2S,MACgB,SAAdxN,EAAKxF,MACHG,EAAIuC,OAAOC,QAAQgE,WAAYxG,EAAIoZ,YAEjC,wBADA,kCAGR,CACgB,QAAd/T,EAAKxF,MAAkBG,EAAIuZ,QACvBrZ,EACE,UACA,CACEwS,MAAO,CACL,WAAY,OACZ,WAAY,OACZvR,MAAO,IAET+R,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,QACLgS,GAAI,WACF,MAAO,CACLlT,EAAG,sBAAuB,CACxBwS,MAAO,CACLtC,KAAM,KACNoJ,MAAO,IACPrY,MAAO,UACPyR,cAAe,MAIvB,EACA6G,OAAO,IAGX,MACA,IAGJ,CACEzZ,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEwS,MAAO,CACLY,MAAO,GACPoG,MAAO1Z,EAAIsN,SAASjI,EAAKqU,SAG7B,CACE1Z,EAAIsB,GACF,mBACEtB,EAAIuB,GAAG8D,EAAK8O,MACZ,qBAKV,GAEY,QAAd9O,EAAKxF,MAAkBG,EAAI2Z,WAC3BzZ,EACE,UACA,CACEwS,MAAO,CACL,WAAY,MACZ,WAAY,OACZvR,MAAOnB,EAAI4Z,SAAW,QAAU,UAChCzF,KAAM,4BAGV,CACEjU,EACE,SACA,CACEwS,MAAO,CACLY,MAAO,GACPoG,MAAO1Z,EAAIsN,SAASjI,EAAKqU,SAG7B,CACE1Z,EAAIsB,GACF,mBACEtB,EAAIuB,GAAG8D,EAAK8O,MACZ,qBAKV,GAEY,SAAd9O,EAAKxF,MAAmBG,EAAI6Z,OAC5B3Z,EACE,UACA,CACEwS,MAAO,CACL,WAAY,OACZ,WAAY,OACZvR,MAAO,IAET+R,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,QACLgS,GAAI,WACF,MAAO,CACLlT,EAAG,sBAAuB,CACxBwS,MAAO,CACLtC,KAAM,KACNoJ,MAAO,IACPrY,MAAO,UACPyR,cAAe,MAIvB,EACA6G,OAAO,IAGX,MACA,IAGJ,CACEzZ,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEwS,MAAO,CACLY,MAAO,GACPoG,MAAO1Z,EAAIsN,SAASjI,EAAKqU,SAG7B,CACE1Z,EAAIsB,GACF,mBACEtB,EAAIuB,GAAG8D,EAAK8O,MACZ,qBAKV,GAEFjU,EACE,SACA,CACEwS,MAAO,CACLY,MAAO,GACPoG,MAAO1Z,EAAIsN,SAASjI,EAAKqU,SAG7B,CACE1Z,EAAIsB,GACF,iBACEtB,EAAIuB,GAAG8D,EAAK8O,MACZ,mBAKd,GAEFnU,EAAIsB,GAAG,KACPpB,EACE,sBACA,CACEA,EACE,oBACA,CAAEU,MAAO,CAAEkZ,WAAY,OAAQ3Y,MAAO,UACtC,CACEnB,EAAIsB,GACF,iBACEtB,EAAIuB,GAAGvB,EAAIsN,SAASjI,EAAKqU,QACzB,mBAKV,IAGJ,EAEJ,IACA1Z,EAAIsB,GAAG,KACPpB,EACE,cACA,CACES,YAAa,iBACbC,MAAO,CAAEmZ,SAAU,GAAK,EAAI/Z,EAAIga,QAAQxU,OAAS,OAEnD,CAACtF,EAAG,OAAQ,CAACF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIga,eAGnC,IAGJ,IAGJ,EAEJ,EAEA,EAAOpY,eAAgB,ECxSvB,MAAMoY,EAAU,WCFuH,EDIvI,CACEna,KAAM,mBACNwC,KAAK,KACI,CACL4X,aAAa,EACblB,QAAQ,EACRD,MAAM,EACNoB,UAAW,GACXF,QAASA,EACTH,QAAQ,IAGZvX,SAAU,CACRiX,UAAa,OAAOtZ,KAAKsC,OAAOC,QAAQ,cAAe,EACvDoX,WAAc,OAAO3Z,KAAKsC,OAAOC,QAAQ,YAAa,EACtD2X,iBAAoB,OAAOla,KAAKsC,OAAOC,QAAQ,mBAAoB,EACnEmX,aAAgB,OAAQ1Z,KAAK2Z,WAAa3Z,KAAKka,cAAgB,EAC/Df,cACE,OAAOnZ,KAAKsC,OAAOC,QAAQkE,SAC7B,GAEF0T,UACEna,KAAKia,UAAY,IAAOxX,QAAQ2X,OAAOC,OAAO,CAC5Cza,KAAM,OACNsU,KAAM,mBACNgF,OAAQ,OACRO,MAAOzZ,KAAKqN,SAAS,UAEvBrN,KAAKia,UAAYja,KAAKia,UAAUI,OAAO,CACrCza,KAAM,SACNsU,KAAM,uBACNuF,MAAOzZ,KAAKqN,SAAS,WAEzB,EACA6I,QAAS,CACP6C,qBACE,OAAO/Y,KAAKia,UAAU9U,QAAOmV,GAAKA,EAAEpG,MACtC,EACAqG,cAAeC,GACb,MAAMC,EAAMza,KAAKqN,SAAS,QAC1B,OAAOrN,KAAK0a,oBAAoBD,EAAK,CAAE7N,EAAG4N,EAAMf,OAClD,EACAL,oBAAqBoB,GACnB,OAAQA,EAAM5a,MACZ,IAAK,SACHI,KAAKsC,OAAOyV,SAAS,cAAe,OACpC,MACF,IAAK,OACH/X,KAAK4Z,QAAS,EACd5Z,KAAKsC,OAAOyV,SAAS,cAAc7N,MACjC,KACElK,KAAK4Z,QAAS,EACd5Z,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAMtT,KAAKqN,SAAS,kBAAmB0F,WAAW,EAAM7R,MAAO,WAAW,IAC7EkX,OACH3T,IACEzE,KAAK4Z,QAAS,EACd5Z,KAAKsC,OAAO+D,OAAO,cAAe5B,EAAG,IAEzC,MACF,QACEzE,KAAKkY,QAAQ5Y,KAAKkb,EAAM9O,MAAM0M,OAAM,SACpCpY,KAAK6Y,MAAO,EAGlB,I,cE1DA,EAAU,CAAC,EAEf,EAAQnW,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,SAXgB,OACd,EACA,EJ+RoB,II7RpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,EAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,MACA,CAAES,YAAa,eACf,CACET,EACE,iBACA,CACEwS,MAAO,CAAE2C,WAAY,IACrB9O,MAAO,CACLjG,MAAON,EAAI4a,MACXhH,SAAU,SAAUC,GAClB7T,EAAI4a,MAAQ/G,CACd,EACAnT,WAAY,UAGhB,CACER,EAAG,UAAW,CAAES,YAAa,eAAiB,CAC5CT,EACE,MACA,CACEA,EACE,UACA,CAAEwS,MAAO,CAAEmI,UAAW,GAAInb,KAAM,UAChC,CACEQ,EACE,QACA,CACEA,EAAG,QAAS,CAAES,YAAa,QAAU,CACnCT,EAAG,KAAM,CACPF,EAAIsB,GACF,4BACEtB,EAAIuB,GAAGvB,EAAI0E,IAAI7E,MACf,sBAGNG,EAAIsB,GAAG,KACPpB,EAAG,IAAK,CACNF,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAI0E,IAAImH,SACf,wBAIR7L,EAAIsB,GAAG,KACPpB,EACE,QACA,CAAES,YAAa,UACf,CACET,EACE,QACA,CAAEwS,MAAO,CAAEyB,KAAM,IAAMX,GAAI,CAAEC,MAAOzT,EAAI8a,QACxC,CACE5a,EAAG,SAAU,CACXF,EAAIsB,GACF,yDAIN,IAGJ,IAGJ,IAGJ,IAGJ,MAIN,IAGJ,EAEJ,EAEA,EAAOM,eAAgB,ECrFvB,MCD4H,EDC5H,CACE/B,KAAM,QACNgC,WAAY,CAEZ,EAEAC,MAAO,GACPiU,OAAQ,GACR1T,KAAK,KACI,CACLuY,OAAO,IAIXtY,SAAU,CACRoC,MACE,OAAOzE,KAAKsC,OAAOC,QAAQiJ,KAC7B,GAEFyK,MAAO,CACLxR,IAAKwL,GACCA,EAAIrQ,OACNI,KAAK2a,OAAQ,EACbxR,QAAQ2F,MAAMmB,GAElB,GAEFiG,QAAS,CACP2E,QACE7a,KAAKsC,OAAO+D,OAAO,cAAe,CAAC,GACnCrG,KAAK2a,OAAS3a,KAAK2a,KACrB,IEdJ,IAXgB,OACd,EACA,EH4EoB,IG1EpB,EACA,KACA,WACA,MAI8B,Q,gBCVhC,MCRoH,GDQpH,CACE/a,KAAM,MACNgC,WAAY,CACVkZ,QAAO,EACPC,iBAAgB,EAChBC,MAAK,IAEP5Y,KAAK,KACI,CACLsR,UAAU,IAGdrR,SAAU,CACRwQ,eACE,OAAO7S,KAAKsC,OAAOC,QAAQsQ,YAC7B,EACAH,UACE,OAAO1S,KAAKsC,OAAOC,QAAQmQ,OAC7B,GAEFuD,MAAO,CACLpD,eACE7S,KAAK0T,WAAa1T,KAAK6S,aAAaS,IACtC,GAEF/P,gBAEEvD,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,iBAAkBrG,KAAKoU,SAASC,MAAMC,MAErD9J,EAAA,EAAKA,KAAK0B,yBACN1B,EAAA,EAAKuB,cACL,IAAGA,QACToB,GAAA,EAAYC,SAASpN,KAAKsC,OAAOC,QAAQoB,SAE7C,EACAuS,QAAS,CACPzC,gBACEzT,KAAK0T,UAAW,EAChB1T,KAAKsC,OAAOuQ,aAAe,CAAC,CAC9B,EACAN,WAEEvS,KAAKsC,OAAO+D,OAAO,qBAAsBrG,KAAKib,MAAMC,UAAUC,aAAe,GAC/E,I,gBEzCA,GAAU,CAAC,EAEf,GAAQzY,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,GACAjD,E3B6FoB,I2B3FpB,EACA,KACA,WACA,MAI8B,QCGhCqJ,QAAQiS,OADgB,6FAGxB,MAAMC,GAAgB,CACpBnF,QAAS,CACPoF,oBAAqBC,EAAcC,GACjC,GAAID,EAAahW,OAAQ,CACvB,IAAK,MAAMoP,KAAQ4G,EAAc,CAC/B,MAAME,EAAQ9G,EAAK+G,cAAc3W,MAAM,KACnC0W,EAAMlW,OAAS,IACjBkW,EAAM,GAAKA,EAAM,GAAG5G,eAEtB,MAAM8G,EAAWF,EAAMrT,KAAK,KAC5B,GAAIoT,EAAelR,SAASqR,GAC1B,OAAOA,EACF,GAAIF,EAAMlW,OAAS,GAAKiW,EAAelR,SAASmR,EAAM,IAC3D,OAAOA,EAAM,EAEjB,CACA,OAAOD,EAAe,EACxB,CACE,OAAOA,EAAe,EAE1B,IAIEI,GAAeP,GAAcnF,QAAQoF,oBAAoBO,UAAUC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,OACvGC,GAAYC,OAAOC,YAAcD,OAAOC,WAAW,gCAAgCC,QAEzF,UAAIC,IAAI,KACR,UAAIA,IAAI,IAAe,CACrBC,sBAAsB,EACtBC,mBAAoB,CAClBC,GAAI,UACJC,GAAI,WACJC,GAAI,UACJC,GAAI,UACJC,GAAI,aAENC,gBAAiBf,GACjBgB,aAAY,EACZC,QAAQ,IAGV,UAAIjZ,OAAOkZ,eAAgB,EAC3B,UAAIlZ,OAAOmZ,UAAW,EACtB,UAAInZ,OAAOoZ,aAAc,EAEzB,MAAM,GAAU,IAAI,IAAJ,CAAY,CAC1B3I,MAAO,CACLC,OAAQyH,GACRtZ,QAAS,CACPwa,kBAAkB,GAEpBC,OAAQ,CAENC,MAAO,CACLzL,QAAS,UACT0L,YAAa,UACbxL,UAAW,UACXyL,cAAe,UACfC,iBAAkB,UAClBC,eAAgB,UAChBC,WAAY,UACZC,UAAW,UACXC,MAAO,OACPC,MAAO,UACPC,WAAY,UACZC,SAAU,UACVC,OAAQ,UACRC,aAAc,UACdC,eAAgB,UAChBC,MAAO,CACLC,WAAY,UACZC,UAAW,UACXC,UAAW,UACXC,SAAU,UACVC,OAAQ,UACRC,KAAM,UACNC,OAAQ,UACRC,OAAQ,YAGZnK,KAAM,CACJ5C,QAAS,UACT0L,YAAa,UACbxL,UAAW,UACXyL,cAAe,OACfC,iBAAkB,UAClBG,UAAW,UACXG,WAAY,UACZC,SAAU,UACVL,WAAY,UACZE,MAAO,UACPC,MAAO,OACPe,QAAS,UACTZ,OAAQ,UACRC,aAAc,UACdC,eAAgB,UAChBC,MAAO,CACLC,WAAY,UACZC,UAAW,UACXC,UAAW,UACXC,SAAU,UACVC,OAAQ,UACRC,KAAM,UACNC,OAAQ,UACRC,OAAQ,cAOhBE,MAAO,CACLC,SAAU,MAEZjK,KAAM,CACJkK,QAAS,CAAEtC,GAAE,OAAI,OAAI,OAAI,OAAI,KAC7B5W,QAASiW,MAIb,UAAIkD,MAAMzD,IAEV,UAAIyD,MAAM,CACR5I,QAAS,CACP6I,WAAY9N,EAAK+N,GAAU,GACzB,IAAIC,EAAUhO,EAId,GAHIA,EAAIiO,QACND,EAAUhO,EAAIiO,MAAMra,KAAIsa,GAAQA,EAAKC,QAEnCJ,EACF,IAAK,MAAM7d,KAAO8P,EACC,OAAbA,EAAI9P,IAAqC,iBAAb8P,EAAI9P,KAClC8P,EAAI9P,GAAOnB,KAAK+e,WAAW9N,EAAI9P,IAAM,IAI3C,OAAO8d,CACT,KAIQ,IAAI,UAAI,CAElBI,OAAM,IACNC,MAAK,IACLC,QAAO,GACPzf,OAAQ0f,GAAKA,EAAEC,IACfC,SAAU,WAGRC,OAAO,O,0EC/KP7f,EAAS,WACX,IAAIC,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EAAG,QAAS,CACVuS,IAAK,WACLoN,YAAa,CAAEC,QAAS,QACxBpN,MAAO,CAAEjT,GAAI,YAAaC,KAAM,OAAQqgB,OAAQ,QAChDvM,GAAI,CAAEwM,OAAQhgB,EAAIigB,WAEpBjgB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,UACf,CACET,EAAG,MAAO,CACRS,YAAa,iBACbkS,MAAO,CAAE,gBAAiB7S,EAAI+U,YAEhC/U,EAAIsB,GAAG,KACPpB,EACE,SACA,CAAES,YAAa,OAAQkS,MAAO,CAAE,gBAAiB7S,EAAI+U,WACrD,CACE7U,EACE,QACA,CACEA,EACE,QACA,CACEA,EACE,cACA,CAAEU,MAAO,CAAE2W,UAAW,WACtB,CACErX,EAAG,MAAO,CAAES,YAAa,SAAW,CAClCX,EAAIsB,GACF,mBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,qBACpB,oBAGNtN,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CACRF,EAAIsB,GACF,mBACEtB,EAAIuB,GACFvB,EAAIsN,SACF,+FAGJ,oBAGNtN,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,YAAc,CACrCX,EAAIsB,GACF,mBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,OACpB,oBAGNtN,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,SAAW,CAClCX,EAAIsB,GACF,mBACEtB,EAAIuB,GACFvB,EAAIsN,SAAS,6BAEf,oBAGNtN,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CACRF,EAAIsB,GACF,mBACEtB,EAAIuB,GACFvB,EAAIsN,SACF,sEAGJ,oBAGNtN,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,YAAc,CACrCX,EAAIsB,GACF,mBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,OACpB,oBAGNtN,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,SACf,CACEX,EAAIsB,GACF,mBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,aACpB,oBAEJpN,EAAG,YAEL,GAEFF,EAAIsB,GAAG,KACPpB,EACE,MACA,CACEA,EACE,QACA,CACEU,MAAO,CAAE,eAAgB,QACzB8R,MAAO,CAAEvR,MAAO,UAChBqS,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIkgB,aAAa,MAC1B,IAGJ,CACEhgB,EACE,SACA,CAAEwS,MAAO,CAAEY,MAAO,GAAIvS,KAAM,KAC5B,CACEf,EAAIsB,GACF,+DAINtB,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,kBACpB,qBAGN,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,YAAc,CACrCX,EAAIsB,GACF,mBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,OACpB,oBAGNtN,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,SAAW,CAClCX,EAAIsB,GACF,mBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,iBACpB,oBAGNtN,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEwS,MAAO,CACL,WAAY,GACZ,aAAc,KACd,cAAe,MACfO,WAAY,sBAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAYI,GAAIA,EAAId,MAAOA,IAC7B,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACEzS,MAAO,CACL,gBAAiB,SAGrB,QACA8R,GACA,GAEFc,GAEF,CACExT,EAAIsB,GACF,uBACEtB,EAAIuB,GACFvB,EAAIsN,SAAS,iBAEf,wBAKZ,MAIN,CACEtN,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,cACA,CACEwS,MAAO,CAAEvC,KAAM,IACfqD,GAAI,CACFC,MAAO,IACLzT,EAAIkgB,aAAa,cAGvB,CACEhgB,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,yBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,cACpB,2BAIR,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEwS,MAAO,CAAEvC,KAAM,IACfqD,GAAI,CACFC,MAAO,IACLzT,EAAIkgB,aAAa,cAGvB,CACEhgB,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,yBACEtB,EAAIuB,GACFvB,EAAIsN,SACF,kCAGJ,2BAIR,IAGJ,IAGJ,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EAAG,YAAa,CAAEwS,MAAO,CAAEyN,SAAU,MACrCngB,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEA,EAAG,aAAc,CACfsT,GAAI,CAAE4M,YAAcjb,GAAUnF,EAAIqgB,YAAYlb,OAGlD,GAEFnF,EAAIsB,GAAG,KACPpB,EAAG,YAAa,CAAEwS,MAAO,CAAEyN,SAAU,MACrCngB,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEA,EAAG,YAAa,CACdsT,GAAI,CAAE4M,YAAcjb,GAAUnF,EAAIqgB,YAAYlb,OAGlD,IAGJ,GAEFnF,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,cACf,CACET,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACEG,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIkgB,aAAa,aAC1B,IAGJ,QACAxN,GACA,GAEFc,GAEF,CACExT,EAAIsB,GACF,mBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,gBACpB,oBAKZ,MAIN,CACEtN,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GACFvB,EAAIsN,SACF,mDAOZtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAErC,UAAWrQ,EAAIsgB,WAAYnf,MAAO,WAC3CqS,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIgM,OACb,IAGJ,CACEhM,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,QACpB,iBAKV,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CAAE2C,WAAY,GAAI,YAAa,OACtC7B,GAAI,CACF8B,QAAS,CACP,SAAUC,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,QAAS,GAAIH,EAAOnU,IAAK,SAEzC,KACFpB,EAAI2V,YAAYC,MAAM,KAAMC,UACrC,EACA,SAAUN,GACR,IACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGF,OAAO,KACTpB,EAAI8V,YAAa,CACnB,IAGJvP,MAAO,CACLjG,MAAON,EAAI8V,WACXlC,SAAU,SAAUC,GAClB7T,EAAI8V,WAAajC,CACnB,EACAnT,WAAY,eAGhB,CACER,EACE,SACA,CACEA,EAAG,eAAgB,CAAES,YAAa,WAAa,CAC7CX,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,gCACpB,cAGNtN,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CACFC,MAAO,SAAU8B,GACfvV,EAAI8V,YAAc9V,EAAI8V,UACxB,IAGJ,CACE9V,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,OACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CAAEC,MAAOzT,EAAI2V,cAEnB,CACE3V,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,QACpB,iBAKV,IAGJ,IAGJ,IAGJ,EAEJ,EAEAvN,EAAO6B,eAAgB,E,0BC9dnB,EAAS,WACX,IAAI5B,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,MACA,CACEA,EAAG,QAAS,CACVuS,IAAK,YACLoN,YAAa,CAAEC,QAAS,QACxBpN,MAAO,CAAEjT,GAAI,aAAcC,KAAM,OAAQqgB,OAAQ,YACjDvM,GAAI,CAAEwM,OAAQhgB,EAAIugB,YAEpBvgB,EAAIsB,GAAG,KACPpB,EAAG,QAAS,CACVuS,IAAK,cACLoN,YAAa,CAAEC,QAAS,QACxBpN,MAAO,CAAEjT,GAAI,eAAgBC,KAAM,OAAQqgB,OAAQ,SACnDvM,GAAI,CAAEwM,OAAQhgB,EAAIwgB,cAEpBxgB,EAAIsB,GAAG,KACPpB,EAAG,QAAS,CACVuS,IAAK,cACLoN,YAAa,CAAEC,QAAS,QACxBpN,MAAO,CAAEjT,GAAI,eAAgBC,KAAM,OAAQqgB,OAAQ,SACnDvM,GAAI,CAAEwM,OAAQhgB,EAAIygB,cAEpBzgB,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,OAAS,CAChCT,EACE,MACA,CAAES,YAAa,aACf,CACET,EACE,SACA,CACES,YAAa,YACbC,MAAO,CAAE8f,QAAS1gB,EAAI2gB,aAAe,OAAS,MAEhD,CAAC3gB,EAAIsB,GAAG,8CAEVtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CACES,YAAa,WACbC,MAAO,CAAE8f,QAAS1gB,EAAI2gB,aAAe,OAAS,MAEhD,CACE3gB,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,eACpB,cAEHtN,EAAI2gB,aASD3gB,EAAI0X,KARJxX,EACE,SACA,CACES,YAAa,aACb+R,MAAO,CAAEvR,MAAO,YAElB,CAACnB,EAAIsB,GAAG,yCAIhB,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,WACf,CACET,EACE,SACA,CACEwS,MAAO,CACL,WAAY,GACZ,cAAe,MACfO,WAAY,sBAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAYI,GAAIA,EAAId,MAAOA,IAC7B,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CAAEX,MAAO,CAAEyB,KAAM,GAAIyM,SAAU,KAC/B,QACAlO,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GACF,2DAIN,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,cACA,CACEwS,MAAO,CACLvC,KAAM,GACNE,SACoB,QAAlBrQ,EAAI6gB,YACJ7gB,EAAI8gB,kBAERtN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,cAEtC,CACEhgB,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,UACpB,uBAIR,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEwS,MAAO,CACLvC,KAAM,GACNE,SACoB,QAAlBrQ,EAAI6gB,YACJ7gB,EAAI+gB,kBAERvN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,cAEtC,CACEhgB,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,UACpB,uBAIR,IAGJ,IAGJ,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,aACf,CACET,EACE,SACA,CACES,YAAa,YACbC,MAAO,CAAE8f,QAAS1gB,EAAIghB,cAAgB,OAAS,MAEjD,CAAChhB,EAAIsB,GAAG,8CAEVtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CACES,YAAa,WACbC,MAAO,CAAE8f,QAAS1gB,EAAIghB,cAAgB,OAAS,MAEjD,CACEhhB,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,iBACpB,cAEHtN,EAAIghB,cASDhhB,EAAI0X,KARJxX,EACE,SACA,CACES,YAAa,aACb+R,MAAO,CAAEvR,MAAO,YAElB,CAACnB,EAAIsB,GAAG,yCAIhB,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,WACf,CACET,EACE,SACA,CACEwS,MAAO,CACL,WAAY,GACZ,cAAe,MACfO,WAAY,sBAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAYI,GAAIA,EAAId,MAAOA,IAC7B,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CAAEX,MAAO,CAAEyB,KAAM,GAAIyM,SAAU,KAC/B,QACAlO,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GACF,2DAIN,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,cACA,CACEwS,MAAO,CACLvC,KAAM,GACNE,SACoB,MAAlBrQ,EAAI6gB,YAAsB7gB,EAAI8gB,kBAElCtN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,gBAEtC,CACEhgB,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,UACpB,uBAIR,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEwS,MAAO,CACLvC,KAAM,GACNE,SACoB,MAAlBrQ,EAAI6gB,YAAsB7gB,EAAI+gB,kBAElCvN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,gBAEtC,CACEhgB,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,UACpB,uBAIR,IAGJ,IAGJ,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,aACf,CACET,EACE,SACA,CACES,YAAa,YACbC,MAAO,CAAE8f,QAAS1gB,EAAIihB,UAAY,OAAS,MAE7C,CAACjhB,EAAIsB,GAAG,2CAEVtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CACES,YAAa,WACbC,MAAO,CAAE8f,QAAS1gB,EAAIihB,UAAY,OAAS,MAE7C,CACEjhB,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,yBACpB,cAEHtN,EAAIihB,UASDjhB,EAAI0X,KARJxX,EACE,SACA,CACES,YAAa,aACb+R,MAAO,CAAEvR,MAAO,YAElB,CAACnB,EAAIsB,GAAG,yCAIhB,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,WACf,CACET,EACE,QACA,CACEwS,MAAO,CAAEyB,KAAM,GAAIyM,SAAU,IAC7BpN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,QAEtC,CACEhgB,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GAAG,mDAGX,IAGJ,IAGJ,KAGJtB,EAAIsB,GAAG,KACPpB,EAAG,aACHF,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,OAAS,CAChCT,EACE,MACA,CAAES,YAAa,aACf,CACET,EACE,SACA,CACES,YAAa,YACbC,MAAO,CAAE8f,QAAS1gB,EAAIkhB,cAAgB,OAAS,MAEjD,CAAClhB,EAAIsB,GAAG,kCAEVtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CACES,YAAa,WACbC,MAAO,CAAE8f,QAAS1gB,EAAIkhB,cAAgB,OAAS,MAEjD,CACElhB,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,eACpB,cAEHtN,EAAIkhB,cASDlhB,EAAI0X,KARJxX,EACE,SACA,CACES,YAAa,aACb+R,MAAO,CAAEvR,MAAO,YAElB,CAACnB,EAAIsB,GAAG,yCAIhB,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,WACf,CACET,EACE,QACA,CACEwS,MAAO,CAAEyB,KAAM,GAAIyM,SAAU,IAC7BpN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,gBAEtC,CACEhgB,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GAAG,mDAGX,IAGJ,IAGJ,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,aACf,CACET,EACE,SACA,CACES,YAAa,YACbC,MAAO,CAAE8f,QAAS1gB,EAAImhB,cAAgB,OAAS,MAEjD,CAACnhB,EAAIsB,GAAG,sCAEVtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CACES,YAAa,WACbC,MAAO,CAAE8f,QAAS1gB,EAAImhB,cAAgB,OAAS,MAEjD,CACEnhB,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,kBACpB,cAEHtN,EAAImhB,cASDnhB,EAAI0X,KARJxX,EACE,SACA,CACES,YAAa,aACb+R,MAAO,CAAEvR,MAAO,YAElB,CAACnB,EAAIsB,GAAG,yCAIhB,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,WACf,CACET,EACE,QACA,CACEwS,MAAO,CAAEyB,KAAM,GAAIyM,SAAU,IAC7BpN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,YAEtC,CACEhgB,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GAAG,mDAGX,IAGJ,IAGJ,MAIN,EAEJ,EAEA,EAAOM,eAAgB,E,eCzfvB,MCPiI,EDOjI,CACE/B,KAAM,aACNkW,OAAQ,CAAC,eAET1T,KAAK,KACI,CACL+e,YAAa,CAAC,EACdC,YAAa,CAAC,EACdR,WAAY,GACZS,OAAQ,KAIZhf,SAAU,CACR0e,gBAAmB,OAAO/gB,KAAKsC,OAAOC,QAAQwe,aAAc,EAC5DL,eAAkB,OAAO1gB,KAAKsC,OAAOC,QAAQme,YAAa,EAC1DM,YAAe,OAAOhhB,KAAKsC,OAAOC,QAAQ,kBAAmB,EAC7D0e,gBAAmB,OAAOjhB,KAAKsC,OAAOC,QAAQ,wBAAyB,EACvE2e,gBAAmB,OAA6C,IAAtClhB,KAAKsC,OAAOC,QAAQ+e,OAAO/b,MAAa,EAClEsb,mBAAsB,OAAgD,IAAzC7e,OAAOsJ,KAAKtL,KAAKmhB,aAAa5b,MAAa,EACxEub,mBAAsB,OAAgD,IAAzC9e,OAAOsJ,KAAKtL,KAAKohB,aAAa7b,MAAa,EACxEgc,sBACE,OAAQvhB,KAAK6gB,kBAAoB7gB,KAAK8gB,gBACxC,GAGF7K,MAAO,CAELsL,oBAAqBtR,GACnB,GAAIA,EAAK,CACP,IAAI/K,EAAQ,GAEVA,EADsB,OAApBlF,KAAK4gB,WACC,CACN,CAAElV,KAAM,0BAA2BvB,QAASnK,KAAKmhB,aACjD,CAAEzV,KAAM,0BAA2BvB,QAASnK,KAAKohB,cAG3C,CACN,CAAE1V,KAAM,4BAA6BvB,QAASnK,KAAKmhB,aACnD,CAAEzV,KAAM,4BAA6BvB,QAASnK,KAAKohB,cAGvDphB,KAAKwhB,MAAM,cAAetc,GAC1BlF,KAAKmhB,YAAc,CAAC,EACpBnhB,KAAKohB,YAAc,CAAC,EACpBphB,KAAK4gB,WAAa,EACpB,CACF,GAIF1K,QAAS,CACP+J,aAAcoB,GACZrhB,KAAKqhB,OAASA,EACM,eAAhBrhB,KAAKqhB,QACPrhB,KAAKib,MAAMwG,YAAYjO,QACvBkO,SAASC,eAAe,gBAAgBthB,MAAQ,IACvB,WAAhBL,KAAKqhB,QACdrhB,KAAKib,MAAM2G,YAAYpO,QACvBkO,SAASC,eAAe,gBAAgBthB,MAAQ,IACvC,CAAC,WAAY,WAAY,aAAc,aAAc,MAAMiK,SAAStK,KAAKqhB,UAClFrhB,KAAKib,MAAM4G,UAAUrO,QACrBkO,SAASC,eAAe,cAActhB,MAAQ,GAElD,EAEAkD,iBAAkBoL,GAChB3O,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpC,MAAMnB,EAAQyJ,EAAMC,OAAO1J,MAC3B,IACE,IAAI9C,QAAa,QAAe8C,EAAM,IACtC9C,EAAO0E,KAAKC,MAAM3E,GAClBpC,KAAKwhB,MAAM,cAAe,CAAC,CAAE9V,KAAM,qBAAsBvB,QAAS/H,KAClEpC,KAAKsC,OAAO+D,OAAO,iBAAiB,EACtC,CAAE,MAAO5B,GACPzE,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKsC,OAAO+D,OAAO,cAAe5B,EACpC,CACF,EACAlB,iBAAkBoL,GAChB3O,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpC,MAAMnB,EAAQyJ,EAAMC,OAAO1J,MAC3B,IACE,IAAI9C,QAAa,QAAe8C,EAAM,IACtC9C,EAAO0E,KAAKC,MAAM3E,GAClBpC,KAAKwhB,MAAM,cAAe,CAAC,CAAE9V,KAAM,cAAevB,QAAS/H,KAC3DpC,KAAKsC,OAAO+D,OAAO,iBAAiB,EACtC,CAAE,MAAO5B,GACPzE,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKsC,OAAO+D,OAAO,cAAe5B,EACpC,CACF,EACAlB,eAAgBoL,GACd3O,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpC,MAAMnB,EAAQyJ,EAAMC,OAAO1J,MAE3B,GAAgC,YAA5BA,EAAM,GAAGtF,KAAKqJ,OAAO,GAGvB,OAFAjJ,KAAKsC,OAAO+D,OAAO,iBAAiB,QACpCrG,KAAKsC,OAAO+D,OAAO,cAAe,CAAEzG,KAAM,cAAegM,QAAS,2BAGpE,MAAMhM,EAAOsF,EAAM,GAAGtF,KAEtB,IACE,IAAIwC,QAAa,QAAe8C,EAAM,IAEtC,OADA9C,EAAO0E,KAAKC,MAAM3E,GACVpC,KAAKqhB,QACX,IAAK,WACHrhB,KAAKmhB,aAAc,EAAA7T,EAAA,IAAWlL,EAAMxC,EAAM,cAC1CI,KAAK4gB,WAAa,KAClB,MACF,IAAK,WACH5gB,KAAKohB,aAAc,EAAA9T,EAAA,IAAWlL,EAAMxC,EAAM,SAC1CI,KAAK4gB,WAAa,KAClB,MACF,IAAK,aACH5gB,KAAKmhB,aAAc,EAAA7T,EAAA,IAAWlL,EAAMxC,EAAM,cAC1CI,KAAK4gB,WAAa,OAClB,MACF,IAAK,aACH5gB,KAAKohB,aAAc,EAAA9T,EAAA,IAAWlL,EAAMxC,EAAM,SAC1CI,KAAK4gB,WAAa,OAClB,MACF,IAAK,KACH5gB,KAAKwhB,MAAM,cAAe,CAAC,CAAE9V,KAAM,uBAAwBvB,QAAS/H,KACpE,MACF,QACE+G,QAAQC,IAAI,SAEhBpJ,KAAKsC,OAAO+D,OAAO,iBAAiB,EACtC,CAAE,MAAO5B,GACPzE,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKsC,OAAO+D,OAAO,cAAe5B,EACpC,CACF,I,qIElIAhC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,O,eCP1D,SAXgB,OACd,EACA,EJqfoB,IInfpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,EAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EAAG,MAAO,CACfA,EAAG,QAAS,CACVuS,IAAK,cACLoN,YAAa,CAAEC,QAAS,QACxBpN,MAAO,CAAEjT,GAAI,eAAgBC,KAAM,OAAQqiB,SAAU,YACrDvO,GAAI,CAAEwM,OAAQhgB,EAAIgiB,mBAEpBhiB,EAAIsB,GAAG,KACPpB,EAAG,QAAS,CACVuS,IAAK,eACLoN,YAAa,CAAEC,QAAS,QACxBpN,MAAO,CAAEjT,GAAI,gBAAiBC,KAAM,OAAQqiB,SAAU,YACtDvO,GAAI,CAAEwM,OAAQhgB,EAAIiiB,oBAEpBjiB,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,mBAAqB,CAC5CT,EAAG,MAAO,CAAES,YAAa,aAAe,CACtCT,EAAG,KAAM,CAAES,YAAa,SAAW,CACjCX,EAAIsB,GACF,aAAetB,EAAIuB,GAAGvB,EAAIsN,SAAS,iBAAmB,cAG1DtN,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,iBACf,CACET,EACE,QACA,CACEwS,MAAO,CAAEyB,KAAM,GAAIyM,SAAU,IAC7BpN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,YAEtC,CACEhgB,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GAAG,mDAGX,IAGJ,KAGJtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,QACfX,EAAIiB,GAAGjB,EAAIkiB,YAAY,SAAUvW,EAAMvK,GACrC,OAAOlB,EACL,KACA,CAAEkB,IAAKA,GACP,CACEpB,EAAIsB,GAAG,aAAetB,EAAIuB,GAAGoK,GAAQ,cACrCzL,EACE,YACA,CACEwS,MAAO,CAAE7R,IAAK,GAAI,aAAc,OAChCqS,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,cACb+R,MAAO,CAAEyB,KAAM,IACfX,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAavU,KAEtC,QACA+G,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GACF,2DAIN,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,+BAKnC,EAEJ,IACA,KAGJtN,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CAAES,YAAa,mBAAqB,CAC5CT,EAAG,MAAO,CAAES,YAAa,aAAe,CACtCT,EAAG,KAAM,CAAES,YAAa,SAAW,CACjCX,EAAIsB,GAAG,aAAetB,EAAIuB,GAAGvB,EAAIsN,SAAS,YAAc,cAE1DtN,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,iBACf,CACET,EACE,QACA,CACEwS,MAAO,CAAEyB,KAAM,GAAIyM,SAAU,IAC7BpN,GAAI,CAAEC,MAAO,IAAMzT,EAAIkgB,aAAa,aAEtC,CACEhgB,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GAAG,mDAGX,IAGJ,KAGJtB,EAAIsB,GAAG,KACPpB,EACE,MACA,CAAES,YAAa,QACf,CACEX,EAAIiB,GAAGjB,EAAImiB,aAAa,SAAUxW,GAChC,OAAOzL,EAAG,KAAM,CAAEkB,IAAKuK,GAAQ,CAC7B3L,EAAIsB,GAAG,aAAetB,EAAIuB,GAAGoK,GAAQ,aAEzC,IACA3L,EAAIsB,GAAG,KACPtB,EAAIiB,GAAGjB,EAAIoiB,QAAQ,SAAU/c,GAC3B,OAAOnF,EACL,KACA,CAAEkB,IAAKiE,GACP,CACErF,EAAIsB,GAAG,aAAetB,EAAIuB,GAAG8D,GAAQ,cACrCnF,EACE,YACA,CACEwS,MAAO,CAAE7R,IAAK,GAAI,aAAc,OAChCqS,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,SACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,YACb+R,MAAO,CAAEY,MAAO,KAElB,SACAZ,GACA,GAEFc,GAEF,CACExT,EAAIsB,GACF,2DAKV,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,8BAKnC,EAEJ,KAEF,MAIR,EAEA,EAAO1L,eAAgB,ECjNvB,MCLgI,EDKhI,CACE/B,KAAM,YACNkW,OAAQ,CAAC,eAET1T,KAAK,KACI,CACLggB,WAAY,CAAC,EAAG,KAIpB/f,SAAU,CACRggB,cAAiB,OAAOriB,KAAKsC,OAAOC,QAAQ+f,WAAWzd,KAAIqD,GAAQA,EAAKwD,MAAM,EAC9EuW,aAAgB,OAAOjiB,KAAKqiB,YAAYld,QAAO+C,GAAQA,EAAK7C,WAAW,UAAU,EACjF6c,cAAiB,OAAOliB,KAAKqiB,YAAYld,QAAO+C,GAAQA,EAAK7C,WAAW,WAAW,EACnF8c,SAEE,MAAMA,EAASniB,KAAKsC,OAAOC,QAAQggB,gBAAgBpd,QAAOvF,GAAQA,EAAKyF,WAAW,cAC5EnB,EAAO,GACb,IAAK,MAAMtE,KAAQuiB,EACjBje,EAAK5E,KAAKM,EAAO,YACbI,KAAKsC,OAAOC,QAAQ,GAAG3C,YACzBsE,EAAK5E,KAAKM,EAAO,SAGrB,OAAOsE,CACT,GAGF8T,UACA,EACA9B,QAAS,CACP+J,aAAcoB,GACZrhB,KAAKqhB,OAASA,EACM,YAAhBrhB,KAAKqhB,QACPrhB,KAAKib,MAAMuH,aAAahP,QACxBkO,SAASC,eAAe,iBAAiBthB,MAAQ,IACxCL,KAAKqhB,OAAOhc,WAAW,YAEhCrF,KAAKib,MAAMwH,YAAYjP,QACvBkO,SAASC,eAAe,gBAAgBthB,MAAQ,GAEpD,EACAkD,sBAAuBoL,GAErB3O,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpC,MAAMqc,EAAW,GACXxd,EAAQyJ,EAAMC,OAAO1J,MAE3B,IAAK,MAAMgD,KAAQhD,EAAO,CACxB,IAAItF,EAAO,UAAYsI,EAAKtI,KAER,WAAhBI,KAAKqhB,SACPzhB,EAAOI,KAAKqhB,QAEd,IACE,MAAMlX,QAAgB,QAAgBjC,GACtCwa,EAASpjB,KAAK,CAAE6K,QAASA,EAASuB,KAAM9L,IACxCI,KAAKsC,OAAO+D,OAAO,iBAAiB,EACtC,CAAE,MAAO5B,GACPzE,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKsC,OAAO+D,OAAO,cAAe5B,EACpC,CACF,CACAzE,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKwhB,MAAM,cAAekB,EAG5B,EACAnf,uBAAwBoL,GAEtB3O,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpC,MAAMqc,EAAW,GACXxd,EAAQyJ,EAAMC,OAAO1J,MAC3B,IAAK,MAAMgD,KAAQhD,EAAO,CACxB,MAAMtF,EAAO,WAAasI,EAAKtI,KAC/B,IACE,GAAIsI,EAAKtI,KAAK6P,SAAS,aAAevH,EAAKtI,KAAK6P,SAAS,SAAU,CACjE,IAAItF,QAAgB,QAAejC,GACnCiC,EAAUrD,KAAKC,MAAMoD,GACrBuY,EAASpjB,KAAK,CAAE6K,QAASA,EAASuB,KAAM9L,GAC1C,KAAO,CACL,MAAMuK,QAAgB,QAAgBjC,GACtCwa,EAASpjB,KAAK,CAAE6K,QAASA,EAASuB,KAAM9L,GAC1C,CAEAI,KAAKsC,OAAO+D,OAAO,iBAAiB,EACtC,CAAE,MAAO5B,GACPzE,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKsC,OAAO+D,OAAO,cAAe5B,EACpC,CACF,CACAzE,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKwhB,MAAM,cAAekB,EAC5B,I,eEvFA,EAAU,CAAC,EAEf,EAAQhgB,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,SAXgB,OACd,EACA,EJ2MoB,IIzMpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,EAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,MACA,CAAEU,MAAO,CAAE,cAAe,SAC1B,CACEV,EACE,QACA,CAAEwS,MAAO,CAAEyB,KAAM,GAAIb,MAAO,IAAME,GAAI,CAAEC,MAAOzT,EAAI4iB,OACnD,CAAC1iB,EAAG,SAAU,CAACF,EAAIsB,GAAG,mCACtB,GAEFtB,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CAAEmQ,OAAQ7iB,EAAI6iB,OAAQrJ,MAAOxZ,EAAIwZ,OACxCjT,MAAO,CACLjG,MAAON,EAAI8V,WACXlC,SAAU,SAAUC,GAClB7T,EAAI8V,WAAajC,CACnB,EACAnT,WAAY,eAGhB,CACER,EAAG,QAAS,CACVwS,MAAO,CACLqB,IAAK/T,EAAI8iB,IACT9O,QAAS,GACT6O,OAAQ7iB,EAAI6iB,OACZrJ,MAAOxZ,EAAIwZ,MACXuJ,IAAK,YAIX,IAGJ,EAEJ,EAEA,EAAOnhB,eAAgB,ECvCvB,MCL8H,EDK9H,CACE/B,KAAM,UAENwC,KAAK,KACI,CACLyT,YAAY,EACZgN,IAAK,wGACLtJ,MAAO,KACPqJ,OAAQ,MAIZ3M,MAAO,CACP,EAEAC,QAAS,CACPyM,OAGE,GAFA3iB,KAAK6V,YAAc7V,KAAK6V,YAEA,IAApB7V,KAAK6V,WAAqB,CAC5B,MAAMkN,EAAM,IAAIC,MAChBD,EAAIrU,OAAS,KACX1O,KAAKuZ,MAAQwJ,EAAIxJ,MAAQvZ,KAAKuZ,MAAQvZ,KAAKuZ,MAAQwJ,EAAIxJ,MACvDvZ,KAAK4iB,OAASG,EAAIH,OAAS5iB,KAAK4iB,OAAS5iB,KAAK4iB,OAASG,EAAIH,QAE7DG,EAAIjP,IAAM9T,KAAK6iB,GACjB,CACF,IEhCsH,ECU1H,CAEEjjB,KAAM,SACNgC,WAAY,CACVqhB,WAAU,EACVC,SCRY,OACd,EACA,ELkCoB,IKhCpB,EACA,KACA,WACA,MAI8B,QDF5BC,UAAS,GAGX/gB,KAAK,KACI,CACL0S,UAAU,EACVuM,OAAQ,KACRxL,YAAY,EACZwK,YAAY,IAIhBhe,SAAU,CACR2T,iBAAoB,OAAOhW,KAAKsC,OAAOC,QAAQyT,cAAe,EAC9DmC,SAAY,OAAOnY,KAAKgZ,OAAOrN,MAAMwM,MAAO,GAG9ClC,MAAO,CACLkC,OAAQlI,GACFA,GAAKjQ,KAAKojB,gBAAgBnT,EAChC,GAGF+H,UACEhY,KAAKsC,OAAO+D,OAAO,qBAAsB,IACrCrG,KAAKmY,QAAQnY,KAAKojB,gBAAgBpjB,KAAKmY,OAC7C,EACAjC,QAAS,CACPnK,QAEEwM,YAAW,KACTvY,KAAKkY,QAAQ5Y,KAAK,SAAS8Y,OAAM,QAAQ,GACxC,IACL,EAEA6H,aAAcoB,GAEZ,OADArhB,KAAKqhB,OAASA,EACNrhB,KAAKqhB,QACX,IAAK,MACHrhB,KAAKib,MAAMoI,SAAS7P,QACpBkO,SAASC,eAAe,aAAathB,MAAQ,GAC7C,MACF,IAAK,WACHL,KAAKgW,eAAiBhW,KAAKsjB,YAAY,CAAC,KAAM,SAAWtjB,KAAK6V,YAAa,EAC3E,MACF,IAAK,WACH7V,KAAKgW,eAAiBhW,KAAKsjB,YAAY,CAAC,KAAM,OAAQ,SAAU,UAAYtjB,KAAK6V,YAAa,EAC9F,MACF,IAAK,aACH7V,KAAKgW,eAAiBhW,KAAKujB,aAAevjB,KAAK6V,YAAa,EAGlE,EAEAH,cAGE1V,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,iBACnBrG,KAAKsC,OAAO+D,OAAO,gBAEC,aAAhBrG,KAAKqhB,OACPrhB,KAAKsjB,YAAY,CAAC,KAAM,SACC,aAAhBtjB,KAAKqhB,OACdrhB,KAAKsjB,YAAY,CAAC,KAAM,OAAQ,SAAU,UACjB,eAAhBtjB,KAAKqhB,QACdrhB,KAAKujB,aAEPvjB,KAAK6V,YAAc7V,KAAK6V,UAC1B,EAEA0N,aACEvjB,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,iBACnBrG,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,qBAAuBP,WAAW,EAAM7R,MAAO,WACpE,EAEAkf,YAAalb,GACXlF,KAAKsC,OAAO+D,OAAO,YAAanB,GAChClF,KAAKqgB,YAAa,EAClBrgB,KAAKsC,OAAO+D,OAAO,iBAAiB,EACtC,EAEA9C,cAAeoL,GACb,IACE3O,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpC,MAAMmd,EAAS7U,EAAMC,OAAO1J,MAE5B,IAAKse,EAAOje,OAEV,YADAvF,KAAKsC,OAAO+D,OAAO,iBAAiB,GAItC,GAAiC,QAA7Bmd,EAAO,GAAG5jB,KAAKqJ,OAAO,GAGxB,OAFAjJ,KAAKsC,OAAO+D,OAAO,iBAAiB,QACpCrG,KAAKsC,OAAO+D,OAAO,cAAe,CAAEzG,KAAM,cAAegM,QAAkB,sBAG7E,MAAM1G,QAAc,QAAWse,EAAO,IACtCxjB,KAAKogB,YAAYlb,EACnB,CAAE,MAAOT,GACPzE,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKsC,OAAO+D,OAAO,cAAe5B,EACpC,CACF,EAEAlB,wBACOvD,KAAKgW,iBACRhW,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,gBACnBrG,KAAKsC,OAAO+D,OAAO,iBAErBrG,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKkY,QAAQuL,QAAQ,CAAE9X,MAAO,OAE9B,MAAMrF,EAAQtG,KAAKsC,OAAOC,QAAQ+D,MAC5BrB,EAAOjF,KAAKsC,OAAOC,QAAQgE,SAAW,IAEtCmd,EAAM,GACZ,IACE,IAAIC,QAAkB,IAAGpc,UAAUjB,EAAOrB,GAC1C0e,EAAYA,EAAUxe,QAAOvF,IAASA,EAAK6P,SAAS,OAEpD,IAAK,MAAMvH,KAAQyb,EAAW,CAC5B,MAAM/jB,EAAOsI,EAAKe,MAAMhE,EAAKM,QAC7B,GAAK3F,EAAKyF,WAAW,aAAgBzF,EAAKyF,WAAW,WAS9C,GAAI6C,EAAKuH,SAAS,UAAYvH,EAAKuH,SAAS,YAAa,CAC9D,MAAMtF,QAAgB,IAAGzD,SAASJ,EAAO4B,GACzCwb,EAAIpkB,KAAK,CAAEoM,KAAM9L,EAAMuK,QAASA,GAClC,MACEuZ,EAAIpkB,KAAK,CAAEoM,KAAM9L,EAAMuK,QAAS,WAb+B,CAC/D,GAAa,gBAATvK,EAAwB,CAC1B,MAAMuK,QAAgB,IAAGzD,SAASJ,EAAO4B,GACzCwb,EAAIpkB,KAAK,CAAEoM,KAAM9L,EAAMuK,QAASA,GAClC,CACA,GAAa,2BAATvK,EAAmC,CACrC,MAAMuK,QAAgB,IAAGzD,SAASJ,EAAO4B,GACzCwb,EAAIpkB,KAAK,CAAEoM,KAAM9L,EAAMuK,QAASA,GAClC,CACF,CAMF,CACAnK,KAAKogB,YAAYsD,EACnB,CAAE,MAAOjf,GACPzE,KAAKsC,OAAO+D,OAAO,cAAe5B,GAClCzE,KAAKsC,OAAO+D,OAAO,iBAAiB,EACtC,CACF,EAEA9C,kBAAmBqgB,GACjB5jB,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpC,MAAMwc,EAAM,uFACNa,EAAM,GACZ,IAAIvZ,EAAU,CAAC,EAEf,IACMyZ,EAAatZ,SAAS,QACxBH,QAAgB0Z,MAAMhB,EAAM,yBAAyB3Y,MAAKwZ,GAAOA,EAAI9V,SACrE8V,EAAIpkB,KAAK,CAAEoM,KAAM,0BAA2BvB,QAASA,IACrDA,QAAgB0Z,MAAMhB,EAAM,yBAAyB3Y,MAAKwZ,GAAOA,EAAI9V,SACrE8V,EAAIpkB,KAAK,CAAEoM,KAAM,0BAA2BvB,QAASA,KAGnDyZ,EAAatZ,SAAS,UACxBH,QAAgB0Z,MAAMhB,EAAM,8BAA8B3Y,MAAKwZ,GAAOA,EAAI9V,SAC1E8V,EAAIpkB,KAAK,CAAEoM,KAAM,4BAA6BvB,QAASA,IACvDA,QAAgB0Z,MAAMhB,EAAM,8BAA8B3Y,MAAKwZ,GAAOA,EAAI9V,SAC1E8V,EAAIpkB,KAAK,CAAEoM,KAAM,4BAA6BvB,QAASA,KAGrDyZ,EAAatZ,SAAS,YACxBH,QAAgB0Z,MAAMhB,EAAM,wBAAwB3Y,MAAKwZ,GAAOA,EAAI9V,SACpE8V,EAAIpkB,KAAK,CAAEoM,KAAM,+BAAgCvB,QAASA,IAC1DA,QAAgB0Z,MAAMhB,EAAM,wBAAwB3Y,MAAKwZ,GAAOA,EAAI9V,SACpE8V,EAAIpkB,KAAK,CAAEoM,KAAM,+BAAgCvB,QAASA,KAGxDyZ,EAAatZ,SAAS,WACxBH,QAAgB0Z,MAAMhB,EAAM,iBAAiB3Y,MAAKwZ,GAAOA,EAAI9V,SAC7D8V,EAAIpkB,KAAK,CAAEoM,KAAM,wBAAyBvB,QAASA,IACnDA,QAAgB0Z,MAAMhB,EAAM,aAAa3Y,MAAKwZ,IAAO,QAAMA,EAAII,UAC/DJ,EAAIpkB,KAAK,CAAEoM,KAAM,qBAAsBvB,QAASA,KAIlDnK,KAAKogB,YAAYsD,EAGnB,CAAE,MACA1jB,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKsC,OAAO+D,OAAO,cAAe,CAChCzG,KAAM,cACNgM,QAA2B,6CAE/B,CACF,I,eE3MA,EAAU,CAAC,EAEf,EAAQlJ,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,SAXgB,OACd,EACAjD,ElBmdoB,IkBjdpB,EACA,KACA,WACA,MAI8B,Q,eCnB5B,EAAS,WACX,IAAIC,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CAAES,YAAa,YACf,CACET,EACE,WACA,CACEwS,MAAO,CACLsR,WAAY,GACZ3O,WAAY,GACZ,YAAarV,EAAIikB,SAAW,EAAI,QAAU,SAE5CzQ,GAAI,CACF8B,QAAS,CACP,SAAUC,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,QAAS,GAAIH,EAAOnU,IAAK,SAEzC,KACFpB,EAAIkkB,YAAYtO,MAAM,KAAMC,UACrC,EACA,SAAUN,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGK,KACFpB,EAAImkB,aAAavO,MAAM,KAAMC,UACtC,IAGJtP,MAAO,CACLjG,MAAON,EAAI8V,WACXlC,SAAU,SAAUC,GAClB7T,EAAI8V,WAAajC,CACnB,EACAnT,WAAY,eAGhB,CACER,EACE,SACA,CAAEwS,MAAO,CAAE,aAAc,UACzB,CACExS,EAAG,eAAgB,CAAES,YAAa,WAAa,CAC7CX,EAAIsB,GACF,aACEtB,EAAIuB,GACF,CAAC,aAAc,gBAAgBgJ,SAASvK,EAAIgW,QACxChW,EAAIsN,SAAS,UAAY,IAAMtN,EAAI6L,QAAU,IAC7C7L,EAAIsN,SAAS,oBAEnB,cAGNtN,EAAIsB,GAAG,KACPpB,EAAG,aACHF,EAAIsB,GAAG,KACPtB,EAAIokB,SACAlkB,EACE,cACA,CACEA,EACE,QACAF,EAAIiB,GAAGjB,EAAIikB,UAAU,SAAUI,EAAGC,GAChC,OAAOpkB,EACL,QACA,CAAEkB,IAAKkjB,GACP,CACEpkB,EACE,SACA,CACEF,EAAIikB,SAAW,EACX/jB,EACE,cACA,CACEA,EACE,SACA,CACEU,MAAO,CACL,cAAe,SACf,kBAAmB,SACnB2jB,UACE,UACAvkB,EAAIwkB,QAAQF,GACZ,SAGN,CACEtkB,EAAIsB,GACF,qEAKR,GAEFtB,EAAI0X,KACR1X,EAAIsB,GAAG,KACPtB,EAAIiB,GACFjB,EAAIykB,YAAYH,IAChB,SAAUhkB,EAAOc,GACf,OAAOlB,EAAG,eAAgB,CACxBkB,IAAKA,EACLsR,MAAO,CACL4E,MAAOlW,EACPsjB,KAAM1kB,EAAI2kB,SACN3kB,EAAIsN,SAAStN,EAAI4kB,MAAMxjB,IACvB,GACJ,kBAAmBpB,EAAI2kB,SACvBE,QAASvkB,EAAgB,SACzBZ,KAAMM,EAAIuC,OAAOC,QAAQsiB,cACvB1jB,GAEFkP,YAAahQ,EAAmB,YAC5BN,EAAIsN,SAAS,mBACb,GACJ,2BAA0BhN,EAE1B,YAGA+P,SAAU/P,EAAgB,UAE5BkT,GAAI,CACFuR,MAAO,SAAUxP,GACf,OAAOA,EAAO1G,OAAOmW,MACvB,GAEF9R,YAAalT,EAAImT,GACf,CACU,gBAAR/R,EACI,CACEA,IAAK,SACLgS,GAAI,WACF,MAAO,CACLlT,EAAG,eAAgB,CACjBqG,MAAO,CACLjG,MAAOA,EAAa,MACpBsT,SAAU,SACRC,GAEA7T,EAAIwU,KACFlU,EACA,QACAuT,EAEJ,EACAnT,WACE,oBAIV,EACA+Y,OAAO,GAETxX,OAAOsJ,KACLvL,EAAIilB,mBACJ1a,SAASnJ,GACX,CACEA,IAAK,SACLgS,GAAI,WACF,MAAO,CACLlT,EAAG,eAAgB,CACjBwS,MAAO,CACLwS,MACEllB,EACGilB,kBACD7jB,IAGNmF,MAAO,CACLjG,MAAOA,EAAa,MACpBsT,SAAU,SACRC,GAEA7T,EAAIwU,KACFlU,EACA,QACAuT,EAEJ,EACAnT,WACE,oBAIV,EACA+Y,OAAO,GAET,KACJzZ,EAAImlB,iBACA,CACE/jB,IAAK,UACLgS,GAAI,WACF,MAAO,CACLlT,EACE,QACA,CACEwS,MAAO,CACLyB,KAAM,GACN,UAAW,GACX9D,SACErQ,EAAIolB,sBACFhkB,GAEJD,MAAO,SAETqS,GAAI,CACFC,MAAO,IACLzT,EAAIqlB,YACFjkB,KAIR,CACElB,EAAG,SAAU,CACXF,EAAIsB,GACF,yBAIN,GAGN,EACAmY,OAAO,GAET,MAEN,MACA,GAEFlT,MAAO,CACLjG,MAAOA,EAAa,MACpBsT,SAAU,SAAUC,GAClB7T,EAAIwU,KAAKlU,EAAO,QAASuT,EAC3B,EACAnT,WAAY,mBAGlB,KAGJ,IAGJ,EAEJ,IACA,GAEFV,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEA,EAAG,eAAgB,CACjBwS,MAAO,CACL4E,MAAOtX,EAAIsN,SAAS,aACpBgD,YAAatQ,EAAIsN,SAAS,kBAC1BuX,OAAQ,GACRS,MAAOtlB,EAAIslB,MAAMC,UAEnB/R,GAAI,CACF8B,QAAS,SAAUC,GACjB,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GACFF,EAAOG,QACP,QACA,GACAH,EAAOnU,IACP,SAGK,MACTmU,EAAOqB,kBACA5W,EAAIwlB,SAAS5P,MAAM,KAAMC,WAClC,EACAkP,MAAO,SAAUxP,GACf,OAAOA,EAAO1G,OAAOmW,MACvB,GAEF9R,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,eACLgS,GAAI,WACF,MAAO,CACLlT,EACE,QACA,CACES,YAAa,gBACb+R,MAAO,CACLvR,MAAO,UACPskB,IAAK,GACL,UAAW,IAEbjS,GAAI,CAAEC,MAAOzT,EAAIwlB,WAEnB,CAACtlB,EAAG,SAAU,CAACF,EAAIsB,GAAG,kBACtB,GAGN,EACAmY,OAAO,IAGX,MACA,EACA,WAEFlT,MAAO,CACLjG,MAAON,EAAI0lB,aACX9R,SAAU,SAAUC,GAClB7T,EAAI0lB,aAAe7R,CACrB,EACAnT,WAAY,mBAIlB,IAGJ,GAEFV,EAAI0X,KACR1X,EAAIsB,GAAG,KACP,CAAC,aAAaiJ,SAASvK,EAAIgW,QACvB9V,EACE,cACA,CACEA,EAAG,eAAgB,CACjBwS,MAAO,CAAE4E,MAAOtX,EAAIsN,SAAS,aAC7B/G,MAAO,CACLjG,MAAON,EAAI2lB,UACX/R,SAAU,SAAUC,GAClB7T,EAAI2lB,UAAY9R,CAClB,EACAnT,WAAY,gBAIlB,GAEFV,EAAI0X,KACR1X,EAAIsB,GAAG,KACPpB,EAAG,aACHF,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEF,EAAIokB,SACAlkB,EACE,QACA,CACEwS,MAAO,CAAEyB,KAAM,GAAI,UAAW,IAC9BX,GAAI,CAAEC,MAAO,IAAOzT,EAAI2kB,UAAY3kB,EAAI2kB,WAE1C,CACEzkB,EAAG,SAAU,CACXF,EAAIsB,GAAG,mCAGX,GAEFtB,EAAI0X,KACR1X,EAAIsB,GAAG,KACPtB,EAAIokB,SACAlkB,EACE,QACA,CACEwS,MAAO,CAAEyB,KAAM,GAAI,UAAW,IAC9BX,GAAI,CAAEC,MAAOzT,EAAI4lB,qBAEnB,CACE5lB,EAAImlB,iBACAjlB,EAAG,SAAU,CACXF,EAAIsB,GACF,gEAGJpB,EAAG,SAAU,CACXF,EAAIsB,GACF,oDAIV,GAEFtB,EAAI0X,KACR1X,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,OAAQoS,KAAM,IAC9BC,GAAI,CAAEC,MAAOzT,EAAImkB,eAEnB,CACEnkB,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,WACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,UAAWoS,KAAM,IACjCC,GAAI,CAAEC,MAAOzT,EAAIkkB,cAEnB,CACElkB,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,SACpB,iBAKV,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CAAE,YAAa,OACtBc,GAAI,CACF8B,QAAS,CACP,SAAUC,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,QAAS,GAAIH,EAAOnU,IAAK,SAEzC,KACFpB,EAAI6lB,WACb,EACA,SAAUtQ,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGK,KACFpB,EAAI8lB,YAAYlQ,MAAM,KAAMC,UACrC,IAGJtP,MAAO,CACLjG,MAAON,EAAI+lB,YACXnS,SAAU,SAAUC,GAClB7T,EAAI+lB,YAAclS,CACpB,EACAnT,WAAY,gBAGhB,CACER,EACE,SACA,CACEA,EAAG,eAAgB,CACjBA,EAAG,OAAQ,CAAES,YAAa,WAAa,CACrCX,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,6BAE7BtN,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAES,YAAa,WAAa,CACrCX,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAI6L,QAAU,WAGhC7L,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEA,EAAG,eAAgB,CACjBwS,MAAO,CAAE4E,MAAOtX,EAAIsN,SAAS,aAC7B/G,MAAO,CACLjG,MAAON,EAAI2lB,UACX/R,SAAU,SAAUC,GAClB7T,EAAI2lB,UAAY9R,CAClB,EACAnT,WAAY,gBAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EACE,cACA,CAAEU,MAAO,CAAE2W,UAAW,SAAUpW,MAAO,QACvC,CAACnB,EAAIsB,GAAG,aAAetB,EAAIuB,GAAGvB,EAAIwX,cAAgB,cAEpDxX,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,OAAQoS,KAAM,IAC9BC,GAAI,CAAEC,MAAOzT,EAAI8lB,cAEnB,CACE9lB,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,WACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,iBAAkBoS,KAAM,IACxCC,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAI6lB,WACb,IAGJ,CACE7lB,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,SACpB,iBAKV,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EAAG,YAAa,CACdwS,MAAO,CACL,iBAAkB1S,EAAIgmB,cACtB,kBAAmBhmB,EAAIimB,gBAEzBzS,GAAI,CACF,kBAAmBxT,EAAIkmB,oBACvBC,eAAgBnmB,EAAImmB,eACpBC,aAAcpmB,EAAIomB,aAClBC,aAAcrmB,EAAIqmB,aAClBC,YAAatmB,EAAIsmB,YACjBC,iBAAkBvmB,EAAIwmB,YACtB,cAAgBC,GAAOzmB,EAAI0mB,KAAOD,KAGtCzmB,EAAIsB,GAAG,KACPpB,EAAG,MAAO,CACRuS,IAAK,SACLC,MAAO,CAAE,iBAAkB1S,EAAIgmB,cAAeU,KAAM1mB,EAAI0mB,MACxDlT,GAAI,CAAEmT,aAAc3mB,EAAIwmB,gBAG5B,EAEJ,EAEA,EAAO5kB,eAAgB,EC1kBvB,IAAI,EAAS,WACX,IAAI5B,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACE2S,MAAO7S,EAAIyC,cAAgB,yBAA2B,mBACtD7B,MAAO,CAAE4Y,MAAOxZ,EAAIyC,cAAgB,QAAU,QAEhD,CACEvC,EACE,MACA,CACES,YAAa,oCACb6S,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAO+D,OAAO,kBAC3B,IAGJ,CACEpG,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,GAAInS,MAAO,cAAiB,CACzDnB,EAAIsB,GACF,WACEtB,EAAIuB,GACFvB,EAAIyC,cACA,sBACA,wBAEN,aAIR,GAEFzC,EAAIsB,GAAG,KACPpB,EAAG,aAAc,CAAEwS,MAAO,CAAE7S,KAAM,SAAY,CAC5CK,EACE,MACA,CACEE,WAAY,CACV,CACEP,KAAM,OACNQ,QAAS,SACTC,MAAON,EAAI4mB,qBACXlmB,WAAY,yBAGhB+R,IAAK,YACL9R,YAAa,qBACb+R,MAAO,CAAEjT,GAAI,eAEf,CACES,EAAG,MAAO,CACRA,EACE,MACA,CACEU,MAAO,CACL,aAAc,OACd,gBAAiB,OACjB,eAAgB,SAGpB,CACEV,EACE,SACA,CACEwS,MAAO,CACL,mBAAoB,YACpB6B,KAAM,GACNsS,KAAM,IAERtgB,MAAO,CACLjG,MAAON,EAAIwW,IACX5C,SAAU,SAAUC,GAClB7T,EAAIwW,IAAM3C,CACZ,EACAnT,WAAY,QAGhB,CACER,EAAG,QAAS,CAACF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,UACxCtN,EAAIsB,GAAG,KACPpB,EAAG,QAAS,CAACF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,YACxCtN,EAAIsB,GAAG,KACPpB,EAAG,QAAS,CAACF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,WAE1C,GAEFtN,EAAIsB,GAAG,KACPpB,EAAG,iBAAkB,CACnBE,WAAY,CACV,CACEP,KAAM,OACNQ,QAAS,SACTC,MAAmB,IAAZN,EAAIwW,IACX9V,WAAY,YAGhBgS,MAAO,CACLmQ,OAAQ7iB,EAAIc,aACZ,iBAAkBd,EAAIgmB,eAExBxS,GAAI,CACF,kBAAoBiT,GAClBzmB,EAAIyhB,MAAM,kBAAmB,CAC3B/hB,KAAM,QACN2C,KAAMokB,IAEVN,eAAiBM,GAAMzmB,EAAIyhB,MAAM,iBAAkBgF,GACnDL,aAAeK,GAAMzmB,EAAIyhB,MAAM,eAAgBgF,GAC/CH,YAAcG,GAAMzmB,EAAIyhB,MAAM,cAAegF,GAC7CJ,aAAeI,GAAMzmB,EAAIyhB,MAAM,eAAgBgF,GAC/CF,iBAAmBE,GAAMzmB,EAAIyhB,MAAM,mBAAoBgF,MAG3DzmB,EAAIsB,GAAG,KACPpB,EAAG,gBAAiB,CAClBE,WAAY,CACV,CACEP,KAAM,OACNQ,QAAS,SACTC,MAAmB,IAAZN,EAAIwW,IACX9V,WAAY,YAGhBgS,MAAO,CACLmQ,OAAQ7iB,EAAIc,aACZ,iBAAkBd,EAAIimB,gBAExBzS,GAAI,CACF,kBAAoBiT,GAClBzmB,EAAIyhB,MAAM,kBAAmB,CAC3B/hB,KAAM,SACN2C,KAAMokB,IAEVJ,aAAeI,GAAMzmB,EAAIyhB,MAAM,eAAgBgF,GAC/CF,iBAAmBE,GAAMzmB,EAAIyhB,MAAM,mBAAoBgF,MAG3DzmB,EAAIsB,GAAG,KACPpB,EAAG,cAAe,CAChBE,WAAY,CACV,CACEP,KAAM,OACNQ,QAAS,SACTC,MAAmB,IAAZN,EAAIwW,IACX9V,WAAY,YAGhBgS,MAAO,CAAEmQ,OAAQ7iB,EAAIc,cACrB0S,GAAI,CACF6S,aAAeI,GAAMzmB,EAAIyhB,MAAM,eAAgBgF,GAC/CF,iBAAmBE,GAAMzmB,EAAIyhB,MAAM,mBAAoBgF,OAI7D,UAOZ,EAEJ,EAEA,EAAO7kB,eAAgB,ECxKvB,IAAI,EAAS,WACX,IAAI5B,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EACE,eACA,CAAES,YAAa,yBACf,CACET,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CAAEyB,KAAM,IACfX,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAI8mB,SACb,IAGJ,QACApU,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAES,YAAa,kBAAoB,CAC9CX,EAAIsB,GACF,iBACEtB,EAAIuB,GACFvB,EAAI+mB,UAAY/mB,EAAIgnB,OAChB,YACA,mBAEN,mBAIR,GAGN,MAIN,CACEhnB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GACFvB,EAAI+mB,UAAY/mB,EAAIgnB,OAChBhnB,EAAIsN,SAAS,YACbtN,EAAIsN,SAAS,kBAM3BtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CACLyB,KAAM,GACN9D,SAC0B,IAAxBrQ,EAAI+mB,SAASvhB,QAEjBgO,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIumB,iBAAiBvmB,EAAI+mB,SAClC,IAGJ,QACArU,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAES,YAAa,kBAAoB,CAC9CX,EAAIsB,GAAG,4CAGX,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,kCAIjCtN,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAEU,MAAO,CAAEO,MAAO,UAAa,CACxCnB,EAAIsB,GAAG,WAAatB,EAAIuB,GAAGvB,EAAIsN,SAAS,UAAY,YAEtDtN,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEwS,MAAO,CACL,WAAY,GACZ,gBAAiB,GACjB,cAAe,MACfO,WAAY,sBAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAYI,GAAIA,EAAId,MAAOA,IAC7B,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CAAEyB,KAAM,GAAII,KAAM,KAE3B,QACA7B,GACA,GAEFc,GAEF,CAACtT,EAAG,SAAU,CAACF,EAAIsB,GAAG,2BACtB,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,cACA,CACEwS,MAAO,CAAEvC,KAAM,IACfqD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAOyV,SAAS,cAC7B,IAGJ,CACE9X,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,iBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,eACpB,mBAIR,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEwS,MAAO,CAAEvC,KAAM,IACfqD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAOyV,SAAS,cAAe,WAC5C,IAGJ,CACE9X,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,iBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,wBACpB,mBAIR,IAGJ,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,SACA,CACES,YAAa,qBACb+R,MAAO,CACL,YAAa,OACb,YAAa,OACbmQ,OAAQ7iB,EAAI6iB,SAGhB,CACE3iB,EACE,cACA,CACEA,EAAG,WAAY,CACbwS,MAAO,CACLwS,MAAOllB,EAAIinB,cACX,eAAgB,gBAChB3P,MAAOtX,EAAIsN,SAAS,UACpB,aAAc,gBACdnM,MAAO,iBAEToF,MAAO,CACLjG,MAAON,EAAIknB,qBACXtT,SAAU,SAAUC,GAClB7T,EAAIknB,qBAAuBrT,CAC7B,EACAnT,WAAY,2BAIlB,GAEFV,EAAIsB,GAAG,KACPtB,EAAIiB,GAAGjB,EAAImnB,kBAAkB,SAAU7mB,EAAOc,GAC5C,OAAOlB,EACL,eACA,CACEkB,IAAKgmB,OAAO9mB,EAAMT,MAAQunB,OAAOhmB,GACjCsR,MAAO,CACLvR,MAAO,gBACPb,OAAO,EACP,YAAa,IAEf4S,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,WACF,MAAO,CACLlT,EACE,qBACA,CACEA,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACEX,MAAO,CAAEyB,KAAM,IACfX,GAAI,CACFC,MAAO,SAAU8B,GAEf,OADAA,EAAOqB,kBACA5W,EAAIqnB,UACT/mB,EAAM0mB,OAEV,IAGJ,QACAtU,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CACES,YACE,kBAEJ,CACEX,EAAIsB,GACF,uBACEtB,EAAIuB,GACFjB,EAAM0mB,OAAOM,MACVpX,GACClQ,EAAI+mB,SAASxc,SACX2F,KAGF,YACA,mBAEN,yBAKV,GAGN,IAGJ,MACA,IAGJ,CACElQ,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACF,mBACEtB,EAAIuB,GACFjB,EAAM0mB,OAAOM,MAAMpX,GACjBlQ,EAAI+mB,SAASxc,SAAS2F,KAEpBlQ,EAAIsN,SAAS,YACbtN,EAAIsN,SAAS,aAEnB,uBAMZ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,sBACA,CACEA,EAAG,oBAAqB,CACtBA,EAAG,SAAU,CACXF,EAAIsB,GACF,mBACEtB,EAAIuB,GACY,aAAdjB,EAAMT,KACFG,EAAIsN,SAAShN,EAAMT,MACnBS,EAAMT,MAEZ,uBAKV,GAEFG,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,SACoB,MAAlBrQ,EAAIunB,YAIR/T,GAAI,CACFC,MAAO,SAAU8B,GAEf,OADAA,EAAOqB,kBACA5W,EAAIumB,iBACTjmB,EAAM0mB,OAEV,IAGJ,QACAtU,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CAAEwS,MAAO,CAAEvR,MAAO,YAClB,CACEnB,EAAIsB,GACF,oDAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GAAGvB,EAAIsN,SAAS,+BAK5BtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,WAAUrQ,EAAIunB,YAIhB/T,GAAI,CACFC,MAAO,SAAU8B,GAEf,OADAA,EAAOqB,kBACA5W,EAAIqmB,aAAa,CACtBmB,KAAMlnB,EAAM0mB,OACZnb,QAASvL,EAAMT,KACfmW,OAAQ,cAEZ,IAGJ,QACAtD,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CACEwS,MAAO,CACLY,MAAO,GACPnS,MAAO,YAGX,CACEnB,EAAIsB,GACF,qDAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,sBAKrC,EACAmM,OAAO,IAGX,MACA,IAGJ,CACEzZ,EAAIsB,GAAG,KACPpB,EAAG,mBAAoB,CACrBwS,MAAO,CACLwS,MAAO5kB,EAAM0mB,OACb,cAAe,GACfnE,OAAQphB,KAAKgmB,IACXznB,EAAI6iB,OAAS,IACb,GAAKviB,EAAM0mB,OAAOxhB,OAAS,IAG/B0N,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,UACLgS,GAAI,UAAU,KAAE/N,IACd,MAAO,CACLnF,EACE,cACA,CAAEkB,IAAKiE,EAAM1E,YAAa,QAC1B,CACET,EACE,qBACA,CACEA,EAAG,aAAc,CACfS,YAAa,OACb+R,MAAO,CACL,UAAW,YACX,WAAY,kBACZvR,MAAO,UACPb,MAAO+E,EACP+K,KAAM,KACN,eAAgB,IAElB7J,MAAO,CACLjG,MAAON,EAAI+mB,SACXnT,SAAU,SAAUC,GAClB7T,EAAI+mB,SAAWlT,CACjB,EACAnT,WAAY,eAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CACLgV,MAAO,GACP,aAAc,MACd,gBAAiB,kBAEnBxU,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,IACd,MAAO,CACLnO,GAAQrF,EAAIunB,WACRrnB,EACE,oBACAF,EAAIkU,GAAG,CAAC,EAAGV,GACX,CACEtT,EAAG,SAAU,CACXF,EAAIsB,GAAGtB,EAAIuB,GAAG8D,QAIpBnF,EACE,oBACAF,EAAIkU,GAAG,CAAC,EAAGV,GACX,CACExT,EAAIsB,GACF,uBACEtB,EAAIuB,GAAG8D,GACP,wBAKhB,IAGJ,MACA,IAGJ,CACErF,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAACF,EAAIsB,GAAGtB,EAAIuB,GAAG8D,QAG9BrF,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,YACGhL,GACCrF,EAAIunB,WAEJ,MADDvnB,EAAIunB,aAKT/T,GAAI,CACFC,MAAO,SACL8B,GAEA,OAAOvV,EAAI2nB,WACTtiB,EAEJ,IAGJ,QACAqN,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CACEwS,MAAO,CACLvR,OACUnB,EAAIunB,WACR,aAIV,CACEvnB,EAAIsB,GACF,2DAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,mBAIjCtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,YACGhL,GACCrF,EAAIunB,WAEJ,MADDvnB,EAAIunB,aAKT/T,GAAI,CACFC,MAAO,SACL8B,GAEA,OAAOvV,EAAIumB,iBACTlhB,EAEJ,IAGJ,QACAqN,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CACEwS,MAAO,CACLvR,OACUnB,EAAIunB,WACR,aAIV,CACEvnB,EAAIsB,GACF,4DAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GACFvB,EAAIsN,SAAS,8BAMvBtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,YACGhL,GACCrF,EAAIunB,WAEJ,MADDvnB,EAAIunB,aAKT/T,GAAI,CACFC,MAAO,SACL8B,GAEA,OAAOvV,EAAIsmB,YACT,CACEkB,KAAMniB,EACNwG,QAASxG,GAGf,IAGJ,QACAqN,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CACEwS,MAAO,CACLvR,OACUnB,EAAIunB,WACR,aAIV,CACEvnB,EAAIsB,GACF,6DAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,mBAIjCtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,WAAUrQ,EAAIunB,YAIhB/T,GAAI,CACFC,MAAO,SACL8B,GAEA,OAAOvV,EAAIqmB,aACT,CACEmB,KAAMniB,EACNwG,QAASxG,EACT2Q,OACE,cAGR,IAGJ,QACAtD,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CACEwS,MAAO,CACLY,MAAO,GACPnS,MAAO,YAGX,CACEnB,EAAIsB,GACF,6DAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GAAGvB,EAAIsN,SAAS,sBAM9B,GAGN,IAGJ,MACA,MAIN,EAEJ,IACAtN,EAAIsB,GAAG,KACPpB,EAAG,cAEL,GAEFF,EAAIsB,GAAG,KACPpB,EACE,SACA,CAAES,YAAa,WACf,CACGX,EAAIunB,WACDrnB,EACE,cACA,CACEA,EACE,YACA,CACEwS,MAAO,CAAEgV,MAAO,GAAI,aAAc,OAClCxU,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLvR,MAAOnB,EAAIuC,OAAOC,QAAQolB,WACtB,OACA,WAENpU,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAO+D,OAChB,mBAEJ,IAGJ,QACAoM,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GACF,kDAIN,GAGN,IAGJ,MACA,EACA,aAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACF,IAAMtB,EAAIuB,GAAGvB,EAAIsN,SAAS,uBAAyB,KAErDpN,EAAG,IAAK,CAACF,EAAIsB,GAAG,gBAItBtB,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEsT,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIyhB,MAAM,eACnB,IAGJ,CACEvhB,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,GAAIvS,KAAM,KAAQ,CAC/Cf,EAAIsB,GAAG,+CAETtB,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,UACpB,aAGN,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIyhB,MAAM,iBACnB,IAGJ,CACEvhB,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,GAAIvS,KAAM,KAAQ,CAC/Cf,EAAIsB,GAAG,uCAETtB,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,YACpB,aAGN,IAGJ,GAEFtN,EAAI0X,KACR1X,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEE,WAAY,CACV,CACEP,KAAM,OACNQ,QAAS,SACTC,OAAON,EAAIunB,WACX7mB,WAAY,8BAIlB,CACER,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,gBACb+R,MAAO,CACLvR,MAAO,UACPskB,IAAK,GACLnS,MAAO,IAETE,GAAI,CAAEC,MAAOzT,EAAI6nB,gBAEnB,QACAnV,GACA,GAEFc,GAEF,CAACtT,EAAG,SAAU,CAACF,EAAIsB,GAAG,kBACtB,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAACF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,0BAI7C,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CAAE2C,WAAY,GAAI,YAAa,OACtC7B,GAAI,CACF8B,QAAS,CACP,SAAUC,GACR,IACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,QAAS,GAAIH,EAAOnU,IAAK,SAEhD,OAAO,KACTpB,EAAIyhB,MAAM,kBACVzhB,EAAI8V,YAAc9V,EAAI8V,UACxB,EACA,SAAUP,GACR,IACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGF,OAAO,KACTpB,EAAI8V,YAAa,CACnB,IAGJvP,MAAO,CACLjG,MAAON,EAAI8V,WACXlC,SAAU,SAAUC,GAClB7T,EAAI8V,WAAajC,CACnB,EACAnT,WAAY,eAGhB,CACER,EACE,SACA,CACEA,EAAG,eAAgB,CAAES,YAAa,WAAa,CAC7CX,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,kBACpB,cAGNtN,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,UAAWJ,KAAM,IACjCyS,GAAI,CACFC,MAAO,SAAU8B,GACfvV,EAAI8V,YAAa,CACnB,IAGJ,CACE9V,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,WACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CACFC,MAAO,SAAU8B,GACfvV,EAAIyhB,MAAM,gBACVzhB,EAAI8V,YAAc9V,EAAI8V,UACxB,IAGJ,CACE9V,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,OACpB,gBAIRtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,WAChBqS,GAAI,CACFC,MAAO,SAAU8B,GACfvV,EAAIyhB,MAAM,kBACVzhB,EAAI8V,YAAc9V,EAAI8V,UACxB,IAGJ,CACE9V,EAAIsB,GACF,eACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,QACpB,iBAKV,IAGJ,IAGJ,IAGJ,EAEJ,EAEA,EAAO1L,eAAgB,ECnwCvB,MACM,EAAQ,EAAQ,MCH+G,EDKrI,CACE/B,KAAM,iBACNgC,WAAY,CACZ,EAEAC,MAAO,CAAC,gBAAiB,UACzBiU,OAAQ,CAAC,mBAAoB,iBAAkB,eAAgB,cAAe,eAAgB,mBAAoB,WAElH1T,KAAK,KACI,CACLyT,YAAY,EACZiR,SAAU,GAGVe,eAAgB,GAChBZ,qBAAsB,KAG1B5kB,SAAU,CACR2kB,gBAAmB,OAAOhnB,KAAKsC,OAAOC,QAAQuN,cAAe,EAC7DwX,aAAgB,OAAOtnB,KAAKsC,OAAOC,QAAQ+kB,UAAW,EACtDP,SAAY,OAAO/mB,KAAKsC,OAAOC,QAAQwkB,MAAO,EAC9Ce,oBAIE,MAFyB,IAAI,IAAIC,IAAI/nB,KAAKsC,OAAOC,QAAQylB,MAAMnoB,SAASgF,KAAIO,GAC1E,CAACA,EAAKzF,WAAWsoB,QAAS7iB,EAAKzF,eAAcuoB,SAEjD,EACAC,cAKE,OAFYrmB,MAAM6C,KAAK,IAAIC,IAAI5E,KAAK8nB,kBAAkBjjB,KACpDO,GAAQA,EAAKpF,KAAK6nB,mBAEtB,EAEAX,mBAEE,MAAMA,EAAmB,GACnBkB,EAAe,CAAExoB,KAAe,YAAcmnB,OAAQ,IAiB5D,OAhBA/mB,KAAKmoB,YAAYxgB,SAAQ0gB,IACvB,MAAM1f,EAAM3I,KAAK8nB,kBAAkB3iB,QACjCC,GAAQA,EAAKpF,KAAK6nB,kBAAoBQ,IACtCxjB,KAAKO,GAASA,EAAK6iB,UAAStQ,OAGpB,OAAN0Q,EAAmB,KAANA,OAAiBxQ,IAANwQ,EAC1BD,EAAarB,OAAOznB,QAAQqJ,GAE5Bue,EAAiB5nB,KAAK,CAAEM,KAAMyoB,EAAGtB,OAAQpe,GAC3C,IAGEyf,EAAarB,OAAOxhB,OAAS,GAC/B2hB,EAAiB5nB,KAAK8oB,GAEjBlB,CACT,GAGFjR,MAAO,CACL6Q,SAAU7W,GACRjQ,KAAKwhB,MAAM,kBAAmBvR,EAChC,EACA8W,OAAQuB,EAAQC,GACd,GAAID,EAAO/iB,OAASgjB,EAAOhjB,OAEzBvF,KAAK8mB,SAAW9mB,KAAK8mB,SAAS3hB,QAAQoiB,GAASe,EAAOhe,SAASid,UAC1D,GAAIe,EAAO/iB,OAASgjB,EAAOhjB,OAAQ,CAExC,MAAMijB,EAAUF,EAAOnjB,QAAOC,IAASmjB,EAAOje,SAASlF,KAAO,GAC9DpF,KAAK8mB,SAASxnB,KAAKkpB,EACrB,KAAO,CAGL,MAAMC,EAAO,CAAC,EACdF,EAAO5gB,SACL,SAAUxG,EAAKwO,GACb8Y,EAAKtnB,GAAOmnB,EAAO3Y,EACrB,IACF3P,KAAK8mB,SAAW9mB,KAAK8mB,SAASjiB,KAAK0iB,GAASkB,EAAKlB,IACnD,CACF,EACAN,qBAAsBqB,EAAQC,GAC5BvoB,KAAK6nB,eAAiBS,EAElBtoB,KAAKmoB,YAAY5iB,OAAS,MAE5BvF,KAAK6nB,eAAiBU,EAEtBvoB,KAAKsC,OAAO+D,OAAO,qBACjB,CACEiN,KAAe,6DACfP,WAAW,EACX7R,MAAO,iBAIXlB,KAAK0oB,WAAU,IAAM1oB,KAAKinB,qBAAuBsB,IAErD,GAGFpO,UACEna,KAAK8mB,SAAW9mB,KAAK+lB,cACrB/lB,KAAK6nB,eAAiB,aACtB7nB,KAAKinB,qBAAuBjnB,KAAK6nB,cACnC,EAEA3R,QAAS,CAEPwR,WAAYrnB,GACNL,KAAKsnB,aAAejnB,EACtBL,KAAK6V,YAAa,GAElB7V,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE0gB,OAAQ1mB,EAAOsoB,cAAc,IACnE3oB,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEiN,KAAM,GAAIP,WAAW,IAEpE,EAEAuT,iBAAkBjmB,GAEK,iBAAVA,EACTL,KAAKwhB,MAAM,mBAAoB,CAAEzL,OAAQ,kBAAmB6S,WAAW,EAAOC,QAASxoB,IAC7EL,KAAKsnB,YAKftnB,KAAKwhB,MAAM,mBAAoB,CAAEzL,OAAQ,iBAAkB6S,WAAW,IACtE5oB,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEiN,KAAM,GAAIP,WAAW,MALhE/S,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE0gB,OAAQ1mB,EAAOsoB,cAAc,IACnE3oB,KAAKwhB,MAAM,mBAAoB,CAAEzL,OAAQ,iBAAkB6S,WAAW,IAM1E,EACAhB,gBACE,MAAMhoB,EAAO,QAAU,EAAMkpB,WAC7B9oB,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE0gB,OAAQnnB,EAAM+oB,cAAc,IAClE3oB,KAAKwhB,MAAM,mBAAoB,CAAEzL,OAAQ,iBAAkB6S,WAAW,GACxE,EAEAvC,YAAapV,GACXjR,KAAKwhB,MAAM,cAAevQ,EAC5B,EAEAmV,aAAcnV,GAEZjR,KAAKwhB,MAAM,eAAgBvQ,EAC7B,EACA4V,UACM7mB,KAAK8mB,WAAa9mB,KAAK+mB,OACzB/mB,KAAK8mB,SAAW,GAEhB9mB,KAAK8mB,SAAW9mB,KAAK+mB,MAEzB,EACAK,UAAWnX,GAELA,EAAIoX,MAAKhnB,GAASL,KAAK8mB,SAASxc,SAASjK,KAC3CL,KAAK8mB,SAAW9mB,KAAK8mB,SAAS3hB,QAAOoiB,IAAStX,EAAI3F,SAASid,KAG3DvnB,KAAK8mB,SAAWhlB,MAAM6C,KAAK,IAAIC,IAAI,IAAI5E,KAAK8mB,YAAa7W,IAE7D,I,eE5JA,EAAU,CAAC,EAEf,EAAQvN,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,SAXgB,OACd,EACA,EJ0vCoB,IIxvCpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,EAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EACE,eACA,CAAES,YAAa,yBACf,CACET,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CAAEyB,KAAM,IACfX,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAI8mB,SACb,IAGJ,QACApU,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAES,YAAa,kBAAoB,CAC9CX,EAAIsB,GACF,iBACEtB,EAAIuB,GACFvB,EAAI+mB,SAASvhB,OAAS,EAClB,YACA,mBAEN,mBAIR,GAGN,MAIN,CACExF,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GACFvB,EAAI+mB,SAASvhB,OAAS,EAClBxF,EAAIsN,SAAS,YACbtN,EAAIsN,SAAS,kBAM3BtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CACLyB,KAAM,GACN9D,SAC0B,IAAxBrQ,EAAI+mB,SAASvhB,QAEjBgO,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIgpB,aACb,IAGJ,QACAtW,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAES,YAAa,kBAAoB,CAC9CX,EAAIsB,GAAG,4CAGX,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,kCAIjCtN,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAEU,MAAO,CAAEO,MAAO,UAAa,CACxCnB,EAAIsB,GAAG,WAAatB,EAAIuB,GAAGvB,EAAIsN,SAAS,UAAY,YAEtDtN,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEwS,MAAO,CACL,WAAY,GACZ,gBAAiB,GACjB,cAAe,MACfO,WAAY,sBAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAYI,GAAIA,EAAId,MAAOA,IAC7B,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CAAEyB,KAAM,GAAII,KAAM,KAE3B,QACA7B,GACA,GAEFc,GAEF,CAACtT,EAAG,SAAU,CAACF,EAAIsB,GAAG,2BACtB,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,cACA,CACEwS,MAAO,CAAEvC,KAAM,IACfqD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAOyV,SAAS,cAAe,MAC5C,IAGJ,CACE9X,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,iBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,eACpB,mBAIR,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEwS,MAAO,CAAEvC,KAAM,IACfqD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAOyV,SAAS,cAAe,UAC5C,IAGJ,CACE9X,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,iBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,wBACpB,mBAIR,IAGJ,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,SACA,CACES,YAAa,qBACb+R,MAAO,CACL,YAAa,OACb,YAAa,OACbmQ,OAAQ7iB,EAAI6iB,SAGhB,CACE3iB,EACE,cACA,CACEA,EAAG,WAAY,CACbwS,MAAO,CACLwS,MAAOllB,EAAIinB,cACX,eAAgB,gBAChB3P,MAAOtX,EAAIsN,SAAS,UACpB,aAAc,gBACdnM,MAAO,iBAEToF,MAAO,CACLjG,MAAON,EAAIknB,qBACXtT,SAAU,SAAUC,GAClB7T,EAAIknB,qBAAuBrT,CAC7B,EACAnT,WAAY,2BAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EAAG,mBAAoB,CACrBwS,MAAO,CACLwS,MAAOllB,EAAIooB,YACX,cAAe,GACfvF,OAAQ7iB,EAAI6iB,OAAS,IAEvB3P,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,UACLgS,GAAI,UAAU,KAAE/N,IACd,MAAO,CACLnF,EACE,cACA,CACEkB,IAAKpB,EAAIknB,qBAAqB5M,OAAOjV,GACrC1E,YAAa,QAEf,CACET,EACE,qBACA,CACEA,EAAG,aAAc,CACfS,YAAa,OACb+R,MAAO,CACL,UAAW,YACX,WAAY,kBACZvR,MAAO,UACPb,MAAO+E,EACP+K,KAAM,KACN,eAAgB,IAElB7J,MAAO,CACLjG,MAAON,EAAI+mB,SACXnT,SAAU,SAAUC,GAClB7T,EAAI+mB,SAAWlT,CACjB,EACAnT,WAAY,eAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,iBAAmBtB,EAAIuB,GAAG8D,GAAQ,kBAGtCrF,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,UAAU,GAEZmD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIumB,iBACTlhB,EAEJ,IAGJ,QACAqN,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CAAEwS,MAAO,CAAEvR,MAAO,YAClB,CACEnB,EAAIsB,GACF,wDAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GAAGvB,EAAIsN,SAAS,8BAK5BtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,UAAU,GAEZmD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIqmB,aAAa,CACtBmB,KAAMniB,EACN+P,MAAOpV,EAAI8nB,eACXjc,QAASxG,EACT2Q,OAAQ,gBAEZ,IAGJ,QACAtD,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CACEwS,MAAO,CACLY,MAAO,GACPnS,MAAO,YAGX,CACEnB,EAAIsB,GACF,yDAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,sBAKnC,GAGN,OAINtN,EAAIsB,GAAG,KACPpB,EAAG,cAEL,GAEFF,EAAIsB,GAAG,KACPpB,EACE,SACA,CAAES,YAAa,WACf,CACET,EACE,cACA,CACEA,EACE,YACA,CACEwS,MAAO,CAAEgV,MAAO,GAAI,aAAc,OAClCxU,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLvR,MAAOnB,EAAIuC,OAAOC,QAAQolB,WACtB,OACA,WAENpU,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAO+D,OAChB,mBAEJ,IAGJ,QACAoM,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GACF,kDAIN,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACF,IAAMtB,EAAIuB,GAAGvB,EAAIsN,SAAS,uBAAyB,KAErDpN,EAAG,IAAK,CAACF,EAAIsB,GAAG,gBAItBtB,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEgV,MAAO,GAAI,aAAc,OAClCxU,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLrC,UAAWrQ,EAAIuC,OAAOC,QAAQymB,YAC9B9nB,MAAOnB,EAAIuC,OAAOC,QAAQ0mB,aACtB,QACA,WAEN1V,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAO+D,OAChB,qBAEJ,IAGJ,QACAoM,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAEwS,MAAO,CAAEY,MAAO,KAAQ,CACrCtT,EAAIsB,GACF,kDAIN,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACF,IACEtB,EAAIuB,GACFvB,EAAIsN,SACF,iDAOdtN,EAAIsB,GAAG,KACPpB,EAAG,aAEL,IAGJ,IAGJ,EAEJ,EAEA,EAAO0B,eAAgB,EC3lBvB,MCFoI,EDEpI,CACE/B,KAAM,gBACNgC,WAAY,CACZ,EACAC,MAAO,CAAC,gBAAiB,UACzBiU,OAAQ,CAAC,eAAgB,mBAAoB,mBAE7C1T,OACE,MAAO,CACL0kB,SAAU9mB,KAAKkpB,cAGfrB,eAAgB,GAChBZ,qBAAsB,GAE1B,EACA5kB,SAAU,CACR2kB,gBAAmB,OAAOhnB,KAAKsC,OAAOC,QAAQ4mB,eAAgB,EAC9DhB,cAAiB,OAAOnoB,KAAKsC,OAAOC,QAAQ6mB,iBAAkB,GAIhEnT,MAAO,CACL6Q,SAAUwB,EAAQC,GAChB,IAAIc,EAAU,GACVC,EAAS,MACThB,IAAWtoB,KAAKmoB,aAClBkB,EAAUf,EACVgB,EAAS,WACkB,IAAlBhB,EAAO/iB,QAChB8jB,EAAU,GACVC,EAAS,WACAhB,EAAO/iB,OAASgjB,EAAOhjB,QAEhC8jB,EAAUd,EAAOpjB,QAAOC,IAASkjB,EAAOhe,SAASlF,KACjDkkB,EAAS,UACAhB,EAAO/iB,OAASgjB,EAAOhjB,SAEhC8jB,EAAUf,EAAOnjB,QAAOC,IAASmjB,EAAOje,SAASlF,KACjDkkB,EAAS,OAEK,KAAZD,GACFrpB,KAAKwhB,MAAM,kBAAmB,CAAE+H,SAAUvpB,KAAKinB,qBAAsB7kB,KAAMinB,EAASC,OAAQA,GAEhG,EACAJ,cAAeZ,GAEb,MAAMva,EAAI,IAAInJ,IAAI0jB,GACZta,EAAI,IAAIpJ,IAAI5E,KAAK8mB,UACjB/Y,EAAEoC,OAASnC,EAAEmC,MAAQ,IAAIvL,IAAI,IAAImJ,KAAMC,IAAImC,OAASpC,EAAEoC,OAC1DnQ,KAAK8mB,SAAW0C,gBAAgBlB,GAEpC,EAEArB,qBAAsBqB,EAAQC,GAC5BvoB,KAAK6nB,eAAiBS,EAEtBtoB,KAAKsC,OAAO+D,OAAO,wBAAyBrG,KAAK6nB,gBAE7CU,IACFvoB,KAAK8mB,SAAW,GAEpB,GAGF9O,UACEhY,KAAK8mB,SAAW9mB,KAAKkpB,cACrBlpB,KAAK6nB,eAAiB7nB,KAAKsC,OAAOC,QAAQknB,gBAC1CzpB,KAAKinB,qBAAuBjnB,KAAK6nB,eACjC7nB,KAAKsC,OAAO+D,OAAO,wBAAyBrG,KAAK6nB,gBAEC,IAA9C7nB,KAAKsC,OAAOC,QAAQylB,MAAMnoB,SAAS0F,QACtCvF,KAAKsC,OAAOC,QAAQyT,gBACS,IAA9BhW,KAAKkpB,cAAc3jB,QACjBvF,KAAK6mB,SAET,EAEA3Q,QAAS,CAEPoQ,iBAAkBjmB,GAEhBL,KAAKwhB,MAAM,mBAAoB,CAC7BzL,OAAQ,uBACR6S,WAAW,EACXW,SAAUvpB,KAAKinB,qBACf9R,MAAO9U,GAEX,EACA0oB,cACE/oB,KAAKwhB,MAAM,mBAAoB,CAC7BzL,OAAQ,yBACR6S,WAAW,GAEf,EAEAxC,aAAcnV,GAEZjR,KAAKwhB,MAAM,eAAgBvQ,EAC7B,EACA4V,UACM7mB,KAAK8mB,SAASvhB,SAAWvF,KAAKmoB,YAAY5iB,OAC5CvF,KAAK8mB,SAAW,GAEhB9mB,KAAK8mB,SAAW9mB,KAAKmoB,WAEzB,EACAf,UAAWnX,GACTjQ,KAAK8mB,SAAWhlB,MAAM6C,KAAK,IAAIC,IAAI,IAAI5E,KAAK8mB,YAAa7W,IAC3D,I,eEpGA,EAAU,CAAC,EAEf,EAAQvN,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,SAXgB,OACd,EACA,EJklBoB,IIhlBpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,EAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EACE,eACA,CAAES,YAAa,yBACf,CACET,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CAAEyB,KAAM,IACfX,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAI8mB,SACb,IAGJ,QACApU,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAES,YAAa,kBAAoB,CAC9CX,EAAIsB,GACF,iBACEtB,EAAIuB,GACFvB,EAAI2pB,kBAAkBnkB,OAAS,EAC3B,YACA,mBAEN,mBAIR,GAGN,MAIN,CACExF,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GACFvB,EAAI2pB,kBAAkBnkB,OAAS,EAC3BxF,EAAIsN,SAAS,YACbtN,EAAIsN,SAAS,kBAM3BtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CACLyB,KAAM,GACN9D,SACmC,IAAjCrQ,EAAI2pB,kBAAkBnkB,QAI1BgO,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIgpB,aACb,IAGJ,QACAtW,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAES,YAAa,kBAAoB,CAC9CX,EAAIsB,GAAG,4CAGX,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,kCAIjCtN,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CAAEU,MAAO,CAAEO,MAAO,UAAa,CACxCnB,EAAIsB,GAAG,WAAatB,EAAIuB,GAAGvB,EAAIsN,SAAS,OAAS,YAEnDtN,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEwS,MAAO,CACL,WAAY,GACZ,gBAAiB,GACjB,cAAe,MACfO,WAAY,sBAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAYI,GAAIA,EAAId,MAAOA,IAC7B,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACbC,MAAO,CAAEO,MAAO,SAChBuR,MAAO,CAAEyB,KAAM,GAAII,KAAM,KAE3B,QACA7B,GACA,GAEFc,GAEF,CAACtT,EAAG,SAAU,CAACF,EAAIsB,GAAG,2BACtB,GAGN,MAIN,CACEtB,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,cACA,CACEwS,MAAO,CAAEvC,KAAM,IACfqD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAOyV,SAAS,cAAe,MAC5C,IAGJ,CACE9X,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,iBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,eACpB,mBAIR,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEwS,MAAO,CAAEvC,KAAM,IACfqD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIuC,OAAOyV,SAAS,cAAe,UAC5C,IAGJ,CACE9X,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,iBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,wBACpB,mBAIR,IAGJ,IAGJ,IAGJ,GAEFtN,EAAIsB,GAAG,KACPpB,EACE,SACA,CACES,YAAa,qBACb+R,MAAO,CACL,YAAa,OACb,YAAa,OACbmQ,OAAQ7iB,EAAI6iB,SAGhB,CACE3iB,EACE,cACA,CACEA,EAAG,WAAY,CACbwS,MAAO,CACLwS,MAAOllB,EAAIinB,cACX,eAAgB,gBAChB3P,MAAOtX,EAAIsN,SAAS,UACpB,aAAc,gBACdnM,MAAO,iBAEToF,MAAO,CACLjG,MAAON,EAAIknB,qBACXtT,SAAU,SAAUC,GAClB7T,EAAIknB,qBAAuBrT,CAC7B,EACAnT,WAAY,2BAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EAAG,mBAAoB,CACrBwS,MAAO,CACLwS,MAAOllB,EAAIooB,YACX,cAAe,GACfvF,OAAQ7iB,EAAI6iB,OAAS,IAEvB3P,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,UACLgS,GAAI,UAAU,KAAE/N,IACd,MAAO,CACLnF,EACE,cACA,CACEkB,IAAKpB,EAAIknB,qBAAqB5M,OAAOjV,GACrC1E,YAAa,QAEf,CACET,EACE,qBACA,CACEA,EAAG,aAAc,CACfS,YAAa,OACb+R,MAAO,CACL,UAAW,YACX,WAAY,kBACZvR,MAAO,UACPb,MAAO+E,EACP+K,KAAM,KACN,eAAgB,IAElB7J,MAAO,CACLjG,MAAON,EAAI2pB,kBACX/V,SAAU,SAAUC,GAClB7T,EAAI2pB,kBAAoB9V,CAC1B,EACAnT,WAAY,wBAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EAAG,oBAAqB,CACtBF,EAAIsB,GACF,iBAAmBtB,EAAIuB,GAAG8D,GAAQ,kBAGtCrF,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,UAAU,GAEZmD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIumB,iBACTlhB,EAEJ,IAGJ,QACAqN,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CAAEwS,MAAO,CAAEvR,MAAO,YAClB,CACEnB,EAAIsB,GACF,wDAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GAAGvB,EAAIsN,SAAS,8BAK5BtN,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CAAEuB,OAAQ,GAAI,aAAc,OACnCf,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,OACb+R,MAAO,CACLyB,KAAM,GACN9D,UAAU,GAEZmD,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIqmB,aAAa,CACtBmB,KAAMniB,EACN+P,MAAOpV,EAAI8nB,eACXjc,QAASxG,EACT2Q,OAAQ,iBAEZ,IAGJ,QACAtD,GACA,GAEFc,GAEF,CACEtT,EACE,SACA,CACEwS,MAAO,CACLY,MAAO,GACPnS,MAAO,YAGX,CACEnB,EAAIsB,GACF,yDAKR,GAGN,IAGJ,MACA,IAGJ,CACEtB,EAAIsB,GAAG,KACPpB,EAAG,OAAQ,CACTF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsN,SAAS,sBAKnC,GAGN,OAINtN,EAAIsB,GAAG,KACPpB,EAAG,cAEL,GAEFF,EAAIsB,GAAG,KACPpB,EACE,SACA,CAAES,YAAa,WACf,CAACT,EAAG,cAAe,CAACA,EAAG,aAAc,IACrC,IAGJ,EAEJ,EAEA,EAAO0B,eAAgB,EC1dvB,MCFkI,EDElI,CACE/B,KAAM,gBACNgC,WAAY,CACZ,EACAC,MAAO,CAAC,UACRiU,OAAQ,CAAC,eAAgB,oBAEzB1T,KAAK,KACI,CAGL6kB,qBAAsB,WACtByC,kBAAmB,KAGvBrnB,SAAU,CACRsnB,QAAW,OAAO3pB,KAAKsC,OAAOC,QAAQ,WAAY,EAClDykB,gBAAmB,OAAOhnB,KAAKsC,OAAOC,QAAQ,qBAAsB,EACpEslB,iBAAoB,OAAO7nB,KAAKsC,OAAOC,QAAQ,oBAAqB,EACpEqnB,cAAiB,OAAO5pB,KAAKsC,OAAOC,QAAQ,sBAAuB,EACnE4lB,cAAiB,OAAOnoB,KAAKsC,OAAOC,QAAQ,sBAAuB,GAGrE0T,MAAO,CACLyT,kBAAmBzZ,GACjBjQ,KAAKsC,OAAO+D,OAAO,4BAA6B4J,EAClD,EACAgX,qBAAsBhX,GACpBjQ,KAAKsC,OAAO+D,OAAO,0BAA2B4J,GAC9CjQ,KAAK0pB,kBAAoB,EAC3B,GAGF1R,UACEhY,KAAK0pB,kBAAoB1pB,KAAK4pB,YAC9B5pB,KAAKinB,qBAAuBjnB,KAAK6nB,cACnC,EAEA3R,QAAS,CAEPoQ,iBAAkBjmB,GAEhBL,KAAKwhB,MAAM,mBAAoB,CAC7BzL,OAAQ,qBACR6S,WAAW,EACXW,SAAUvpB,KAAKinB,qBACf9R,MAAO9U,GAEX,EACA0oB,cACE/oB,KAAKwhB,MAAM,mBAAoB,CAC7BzL,OAAQ,uBACR6S,WAAW,GAEf,EAEAxC,aAAcnV,GAEZjR,KAAKwhB,MAAM,eAAgBvQ,EAC7B,EACA4V,UACM7mB,KAAK0pB,kBAAkBnkB,SAAWvF,KAAKmoB,YAAY5iB,OACrDvF,KAAK0pB,kBAAoB,GAEzB1pB,KAAK0pB,kBAAoB1pB,KAAKmoB,WAElC,EACAf,UAAWnX,GACTjQ,KAAK8mB,SAAWhlB,MAAM6C,KAAK,IAAIC,IAAI,IAAI5E,KAAK8mB,YAAa7W,IAC3D,I,gBE5DA,GAAU,CAAC,EAEf,GAAQvN,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,MCnBgI,GCIhI,CACEnD,KAAM,YACNgC,WAAY,CACVioB,eAAc,EACdC,cAAa,EACbC,aFDY,OACd,EACA,EJidoB,II/cpB,EACA,KACA,WACA,MAI8B,SER9BloB,MAAO,CAAC,gBAAiB,kBACzBiU,OAAQ,CAAC,mBAAoB,iBAAkB,eAAgB,cAAe,eAAgB,mBAAoB,eAElH1T,KAAK,KACI,CACLukB,sBAAsB,EACtBpQ,IAAK,EACLkQ,KAAM,OAGVpkB,SAAU,CACRG,gBAAmB,OAAOxC,KAAKsC,OAAOC,QAAQC,aAAc,EAC5D3B,eAAkB,OAAOb,KAAKsC,OAAOC,QAAQ1B,aAAe,GAAI,GAGlEoV,MAAO,CACLzT,cAAeyN,GACTA,EAEFsI,YAAW,KACTvY,KAAK2mB,sBAAuB,IAC3B,KAEH3mB,KAAK2mB,sBAAuB,CAEhC,EAEApQ,IAAKtG,GAEDjQ,KAAKymB,KADK,IAARxW,EACU,KACK,IAARA,EACG,OAEA,KAEdjQ,KAAKwhB,MAAM,cAAexhB,KAAKymB,KACjC,GAEFtM,UACoD,IAA9Cna,KAAKsC,OAAOC,QAAQylB,MAAMnoB,SAAS0F,QAAiBvF,KAAKsC,OAAOC,QAAQyT,iBAC1EhW,KAAKuW,IAAM,EAEf,G,gBC1CE,GAAU,CAAC,EAEf,GAAQ7T,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,GACA,EnB6JoB,ImB3JpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,GAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,SACA,CACEkB,IAAKpB,EAAIiqB,SACTrpB,MAAO,CAAE4Y,MAAO,QAChB9G,MAAO,CACL,eAAgB1S,EAAIkqB,gBACpB,YAAalqB,EAAIiqB,SACjBE,OAAQnqB,EAAIuC,OAAOC,QAAQ4nB,UAC3BC,KAAMrqB,EAAIuC,OAAOC,QAAQ8nB,SAE3B9W,GAAI,CACF+W,KAAMvqB,EAAIwqB,YACVC,UAAWzqB,EAAI0qB,KACfC,SAAU,SAAUpV,GAClB,OAAOvV,EAAI4qB,WACb,EACAnX,MAAOzT,EAAI6qB,SACXC,QAAS9qB,EAAI+qB,gBAGjB,CACE/qB,EAAIgrB,YAAc,CAAC9qB,EAAG,aAAeF,EAAI0X,KACzC1X,EAAIsB,GAAG,KACPtB,EAAIgrB,YAAehrB,EAAIirB,YAAYzlB,OAAS,EACxC,CACEtF,EAAG,gBAAiB,CAClBwS,MAAO,CACLwY,QAASlrB,EAAIirB,YACb,mBAAoBjrB,EAAIwiB,oBAI9BxiB,EAAI0X,KACR1X,EAAIsB,GAAG,KACPpB,EAAG,kBAAmB,CAAEwS,MAAO,CAAEyY,SAAU,kBAC3CnrB,EAAIsB,GAAG,KACPpB,EAAG,uBAAwB,CAAEwS,MAAO,CAAEyY,SAAU,kBAChDnrB,EAAIsB,GAAG,KACPtB,EAAIiB,GAAGjB,EAAIirB,aAAa,SAAU9iB,GAChC,OAAOjI,EACL,MACA,CAAEkB,IAAK+G,EAAKtI,MACZ,CACEG,EAAIgrB,aACJhrB,EAAIorB,eAAe7gB,SAASpC,EAAKtI,OACjCG,EAAIwiB,gBAAgBjY,SAASpC,EAAKyhB,OAC9B,CACE1pB,EAAG,cAAe,CAChBwS,MAAO,CACL2Y,OAAQljB,EACRrD,IAAK9E,EAAI8E,IACT1C,MAAOpC,EAAIorB,eAAe5V,QAAQrN,EAAKtI,UAI7CG,EAAI0X,MAEV,EAEJ,IACA1X,EAAIsB,GAAG,KACPtB,EAAIgrB,YACA,CACE9qB,EACE,YACAF,EAAIkU,GACF,CACEzB,IAAK,UACLC,MAAO,CACL5N,IAAK9E,EAAI8E,IACT,iBAAkB9E,EAAIsrB,aACtB,eAA6B,SAAbtrB,EAAI0mB,KACpB,cAAe1mB,EAAI4nB,aAGvB5nB,EAAIsrB,aACA,CAAC,EACDtrB,EAAI4nB,WACJ,CAAEjB,aAAc3mB,EAAI2mB,cACpB,CACE4E,QAASvrB,EAAIwrB,YACbC,SAAUzrB,EAAIyrB,SACd9E,aAAc3mB,EAAI2mB,iBAK9B3mB,EAAI0X,KACR1X,EAAIsB,GAAG,KACPtB,EAAIgrB,YACA,CACE9qB,EAAG,cAAe,CAChBwS,MAAO,CACL5N,IAAK9E,EAAI8E,IACT,eAAgB9E,EAAIgmB,cACpB,iBAAkBhmB,EAAIsrB,cAExB9X,GAAI,CAAEkY,WAAajF,GAAMzmB,EAAIyhB,MAAM,eAAgBgF,OAGvDzmB,EAAI0X,KACR1X,EAAIsB,GAAG,KACPtB,EAAIgrB,YACA,CACE9qB,EACE,cACAF,EAAIkU,GACF,CAAExB,MAAO,CAAE5N,IAAK9E,EAAI8E,IAAK,cAAe9E,EAAI4nB,aAC5C5nB,EAAI4nB,WACA,CAAEjB,aAAc3mB,EAAI2mB,cACpB,CACE4E,QAASvrB,EAAIurB,QACbE,SAAUzrB,EAAIyrB,SACd9E,aAAc3mB,EAAI2mB,iBAK9B3mB,EAAI0X,KACR1X,EAAIsB,GAAG,KACPtB,EAAIgrB,YACA,CACE9qB,EAAG,QAAS,CACVwS,MAAO,CACL5N,IAAK9E,EAAI8E,IACT,iBAAkB9E,EAAIsrB,aACtB,cAA4B,OAAbtrB,EAAI0mB,MAErBlT,GAAI,CAAEmT,aAAc3mB,EAAI2mB,iBAG5B3mB,EAAI0X,KACR1X,EAAIsB,GAAG,KACPtB,EAAIgrB,YACA,CACEhrB,EAAI2rB,SACAzrB,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa,WACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAI6rB,SACVC,OAAQ,EACRC,YAAY,GAEd,WAAY,WACZnC,MAAO,CACLlqB,KAAM,OACNssB,QAAS,EACTC,MAAO,CACL,eAAgB,EAChB,aACEjsB,EAAIqU,SAASC,MAAM4X,aAAalO,aAClC,aAAc,CACZ,OACA,CAAC,UAAWhe,EAAImsB,mBAAmB,GACnC,EACA,GAEF,iBAAkB,CAChB,OACA,CAAC,UAAWnsB,EAAImsB,mBAAmB,GACnC,CAAC,UAAW,IACZ,CAAC,UAAW,CAAC,EAAG,EAAG,UAM7BnsB,EAAI0X,MAEV1X,EAAI0X,MAEV,EAEJ,EAEA,GAAO9V,eAAgB,E,wECrLnB,GAAS,WACX,IAAI5B,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,SACA,CACEwS,MAAO,CACL,0BAA0B,EAC1B,kBAAkB,EAClB0Z,OAAQ,YACRnZ,WAAY,mBACZ,aAAc,GACd,cAAe,IACf,WAAY,GACZ,WAAY,IAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CAAE1S,YAAa,UAAW+R,MAAO,CAAE+S,IAAK,GAAInS,MAAO,KACnD,QACAZ,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAEwS,MAAO,CAAEvR,MAAO,YAAe,CAC5CnB,EAAIsB,GAAG,wCAGX,GAGN,KAGJiF,MAAO,CACLjG,MAAON,EAAI4iB,KACXhP,SAAU,SAAUC,GAClB7T,EAAI4iB,KAAO/O,CACb,EACAnT,WAAY,SAGhB,CACEV,EAAIsB,GAAG,KACPpB,EACE,SACA,CACE2S,MAAO,CAAEwZ,MAAOrsB,EAAIqsB,OACpB3Z,MAAO,CAAE,YAAa,KACtBc,GAAI,CACF8B,QAAS,CACP,SAAUC,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,QAAS,GAAIH,EAAOnU,IAAK,SAEzC,KACFpB,EAAIssB,OAAO1W,MAAM,KAAMC,UAChC,EACA,SAAUN,GACR,OACGA,EAAO7V,KAAK8V,QAAQ,QACrBxV,EAAIyV,GAAGF,EAAOG,QAAS,MAAO,GAAIH,EAAOnU,IAAK,CAC5C,MACA,WAGK,KACFpB,EAAImX,OAAOvB,MAAM,KAAMC,UAChC,KAIN,CACE3V,EAAG,eAAgB,CAAES,YAAa,YAAc,CAC9CX,EAAIsB,GAAG,WAAatB,EAAIuB,GAAGvB,EAAIsN,SAAS,aAAe,YAEzDtN,EAAIsB,GAAG,KACPpB,EACE,cACA,CACEA,EACE,SACA,CAAEuS,IAAK,OAAQC,MAAO,CAAE,kBAAmB,KAC3C,CACExS,EACE,cACA,CACEA,EACE,QACA,CACEA,EAAG,eAAgB,CACjBwS,MAAO,CACLhT,KAAMM,EAAIusB,UAAU7sB,KACpB4X,MAAOtX,EAAIsN,SAAStN,EAAIusB,UAAU1sB,MAClC2sB,OAAQxsB,EAAIusB,UAAUE,MACtB/H,KAAM1kB,EAAI2kB,SACN3kB,EAAIsN,SAAStN,EAAIusB,UAAU7H,MAC3B,GACJ,kBAAmB1kB,EAAI2kB,SACvBW,MAAOtlB,EAAIslB,MACXoH,SAAU,IAEZlZ,GAAI,CAAEuR,MAAO,QACbxe,MAAO,CACLjG,MAAON,EAAIusB,UAAUjsB,MACrBsT,SAAU,SAAUC,GAClB7T,EAAIwU,KAAKxU,EAAIusB,UAAW,QAAS1Y,EACnC,EACAnT,WAAY,qBAGhBV,EAAIsB,GAAG,KACPpB,EAAG,eAAgB,CACjBwS,MAAO,CACLhT,KAAMM,EAAI2sB,UAAUjtB,KACpB4X,MAAOtX,EAAIsN,SAAStN,EAAI2sB,UAAU9sB,MAClC2sB,OAAQxsB,EAAI2sB,UAAUF,MACtB/H,KAAM1kB,EAAI2kB,SACN3kB,EAAIsN,SAAStN,EAAI2sB,UAAUjI,MAC3B,GACJ,kBAAmB1kB,EAAI2kB,SACvBW,MAAOtlB,EAAIslB,MACXoH,SAAU,IAEZlZ,GAAI,CAAEuR,MAAO,QACbxe,MAAO,CACLjG,MAAON,EAAI2sB,UAAUrsB,MACrBsT,SAAU,SAAUC,GAClB7T,EAAIwU,KAAKxU,EAAI2sB,UAAW,QAAS9Y,EACnC,EACAnT,WAAY,qBAGhBV,EAAIsB,GAAG,KACPpB,EAAG,WAAY,CACbwS,MAAO,CACLwS,MAAOllB,EAAI4sB,kBAAkB1B,QAC7B5T,MAAOtX,EAAIsN,SAAStN,EAAI4sB,kBAAkB/sB,MAC1C6kB,KAAM1kB,EAAI2kB,SACN3kB,EAAIsN,SAAStN,EAAI4sB,kBAAkBlI,MACnC,GACJ,kBAAmB1kB,EAAI2kB,SACvB,aAAc,CAAE9jB,KAAK,EAAMgsB,SAAS,GACpCC,MAAO,GACP/K,SAAU,IAEZxb,MAAO,CACLjG,MAAON,EAAI4sB,kBAAkBtsB,MAC7BsT,SAAU,SAAUC,GAClB7T,EAAIwU,KAAKxU,EAAI4sB,kBAAmB,QAAS/Y,EAC3C,EACAnT,WAAY,6BAGhBV,EAAIsB,GAAG,KACPpB,EAAG,WAAY,CACbwS,MAAO,CACLwS,MAAOllB,EAAI+sB,kBAAkB7B,QAC7B5T,MAAOtX,EAAIsN,SAAStN,EAAI+sB,kBAAkBltB,MAC1C6kB,KAAM1kB,EAAI2kB,SACN3kB,EAAIsN,SAAStN,EAAI+sB,kBAAkBrI,MACnC,GACJ,kBAAmB1kB,EAAI2kB,SACvB,aAAc,CAAE9jB,KAAK,EAAMgsB,SAAS,GACpCC,MAAO,GACP/K,SAAU,IAEZxb,MAAO,CACLjG,MAAON,EAAI+sB,kBAAkBzsB,MAC7BsT,SAAU,SAAUC,GAClB7T,EAAIwU,KAAKxU,EAAI+sB,kBAAmB,QAASlZ,EAC3C,EACAnT,WAAY,6BAGhBV,EAAIsB,GAAG,KACPpB,EAAG,eAAgB,CACjBwS,MAAO,CACLhT,KAAMM,EAAIgtB,eAAettB,KACzB4X,MAAOtX,EAAIsN,SAAStN,EAAIgtB,eAAentB,MACvC2sB,OAAQxsB,EAAIgtB,eAAeP,MAC3B/H,KAAM1kB,EAAI2kB,SACN3kB,EAAIsN,SAAStN,EAAIgtB,eAAetI,MAChC,GACJ,kBAAmB1kB,EAAI2kB,SACvBW,MAAOtlB,EAAIitB,SACXP,SAAU,IAEZnmB,MAAO,CACLjG,MAAON,EAAIgtB,eAAe1sB,MAC1BsT,SAAU,SAAUC,GAClB7T,EAAIwU,KAAKxU,EAAIgtB,eAAgB,QAASnZ,EACxC,EACAnT,WAAY,0BAGhBV,EAAIsB,GAAG,KACPpB,EAAG,eAAgB,CACjBwS,MAAO,CACLhT,KAAMM,EAAIktB,WAAWxtB,KACrB4X,MAAOtX,EAAIsN,SAAStN,EAAIktB,WAAWrtB,MACnC2sB,OAAQxsB,EAAIktB,WAAWT,MACvB/H,KAAM1kB,EAAI2kB,SACN3kB,EAAIsN,SAAStN,EAAIktB,WAAWxI,MAC5B,GACJ,kBAAmB1kB,EAAI2kB,SACvBW,MAAOtlB,EAAIitB,SACXP,SAAU,IAEZnmB,MAAO,CACLjG,MAAON,EAAIktB,WAAW5sB,MACtBsT,SAAU,SAAUC,GAClB7T,EAAIwU,KAAKxU,EAAIktB,WAAY,QAASrZ,EACpC,EACAnT,WAAY,uBAIlB,IAGJ,IAGJ,IAGJ,GAEFV,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,OAAQoS,KAAM,IAC9BC,GAAI,CAAEC,MAAOzT,EAAImX,SAEnB,CACEnX,EAAIsB,GACF,aAAetB,EAAIuB,GAAGvB,EAAIsN,SAAS,WAAa,cAItDtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,iBAAkBoS,KAAM,IACxCC,GAAI,CAAEC,MAAOzT,EAAIssB,SAEnB,CACEtsB,EAAIsB,GACF,aAAetB,EAAIuB,GAAGvB,EAAIsN,SAAS,SAAW,cAIpDtN,EAAIsB,GAAG,KACPpB,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEyB,KAAM,GAAIb,MAAO,IAC1BE,GAAI,CACFC,MAAO,SAAU8B,GACfvV,EAAI2kB,UAAY3kB,EAAI2kB,QACtB,IAGJ,CAACzkB,EAAG,SAAU,CAACF,EAAIsB,GAAG,mCACtB,IAGJ,IAGJ,IAGJ,EAEJ,EAEA,GAAOM,eAAgB,ECtSvB,MCD+H,GDG/H,CACE/B,KAAM,WACNkW,OAAQ,CAAC,UACT1T,KAAK,KACI,CACLugB,MAAM,EAEN2J,UAAW,CACT1sB,KAAe,WACfH,KAAM,SACNY,MAAO,EACPmsB,MAAO,OACP/H,KAAe,uFAEjBiI,UAAW,CACT9sB,KAAe,aACfH,KAAM,SACNY,MAAO,EACPmsB,MAAO,OACP/H,KAAe,iEAEjBkI,kBAAmB,CACjB/sB,KAAe,mBACfH,KAAM,SACNwrB,QAAS,GACT5qB,MAAO,GACPokB,KAAe,yDAEjBqI,kBAAmB,CACjBltB,KAAe,qBACfH,KAAM,SACNwrB,QAAS,GACT5qB,MAAO,GACPokB,KAAe,4DAEjBsI,eAAgB,CACdntB,KAAe,oBACfH,KAAM,SACNY,MAAO,GACPokB,KAAe,wCAEjBwI,WAAY,CACVrtB,KAAe,cACfH,KAAM,SACNY,MAAO,GACPmsB,MAAO,OACP/H,KAAe,qCAEjBlN,aAAc,KACdmN,UAAU,EACV0H,OAAO,EAEP/G,MAAO,CACL6H,KAAOA,GAAc,WACrBA,GAAKA,GAAK,GAAc,2BAE1BF,SAAU,CAACE,GAAqB,SAAhBA,EAAEjkB,OAAO,IAA0B,8BACnD4M,YAAY,IAGhBI,MAAO,CACL0M,OAAU3iB,KAAK6jB,OAAQ,GAEzB1J,UACEna,KAAKmtB,UAAYntB,KAAK2iB,KACtB3iB,KAAK6jB,OACP,EACA3N,QAAS,CACP2N,QAIE7jB,KAAKssB,UAAUjsB,MAAQL,KAAKsC,OAAOC,QAAQ+pB,UAC3CtsB,KAAK0sB,UAAUrsB,MAAQL,KAAKsC,OAAOC,QAAQmqB,UAC3C1sB,KAAK2sB,kBAAkB1B,QAAUjrB,KAAKsC,OAAOC,QAAQuN,eACrD9P,KAAK2sB,kBAAkBtsB,MAAQL,KAAKsC,OAAOC,QAAQoqB,kBACnD3sB,KAAK8sB,kBAAkB7B,QAAUjrB,KAAKsC,OAAOC,QAAQ4mB,gBACrDnpB,KAAK8sB,kBAAkBzsB,MAAQL,KAAKsC,OAAOC,QAAQuqB,kBACnD9sB,KAAK+sB,eAAe1sB,MAAQL,KAAKsC,OAAOC,QAAQwqB,eAChD/sB,KAAKitB,WAAW5sB,MAAQL,KAAKsC,OAAOC,QAAQ0qB,UAC9C,EAEAZ,SACE,GAAIrsB,KAAKib,MAAMjL,KAAKod,WAAY,CAC9B,MAAMC,EAAU,CACdf,UAAWtsB,KAAKssB,UAAUjsB,MAC1BqsB,UAAW1sB,KAAK0sB,UAAUrsB,MAC1BssB,kBAAmB3sB,KAAK2sB,kBAAkBtsB,MAC1CysB,kBAAmB9sB,KAAK8sB,kBAAkBzsB,MAC1C4sB,WAAYjtB,KAAKitB,WAAW5sB,MAC5B0sB,eAAgB/sB,KAAK+sB,eAAe1sB,OAEtCL,KAAKsC,OAAO+D,OAAO,gBAAiBgnB,GACpCrtB,KAAKwhB,MAAM,UAAU,GACrBxhB,KAAK2iB,MAAO,EACZ3iB,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,uBAAyBP,WAAW,EAAM7R,MAAO,WACtE,MACElB,KAAKosB,OAAQ,EACb7T,YAAW,KACTvY,KAAKosB,OAAQ,IACZ,IAEP,EACAlV,SACElX,KAAKwhB,MAAM,UAAU,GACrBxhB,KAAK2iB,MAAO,CACd,I,eEnGA,GAAU,CAAC,EAEf,GAAQjgB,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,GACA,GJ4RoB,II1RpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,GAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EACE,kBACAF,EAAIkU,GACF,CACExB,MAAO,CACL,YAAa,QACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAIutB,aACVzB,OAAQ,EACR0B,UAAW,SAEb,WAAY,QACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,OACNssB,QAAS,EACT0B,QAAS,GACTzB,MAAO,CACL,aAAc,CACZ,OACA,CAAC,MAAO,eACR,CAAC,SAAU,IAAK,CAAC,MAAO,gBACxBjsB,EAAIqU,SAASC,MAAM4X,aAAalO,cAElC,eAAgB,CACd,OACA,CAAC,UAAWhe,EAAIsrB,cAAc,GAC9B,GACA,GAEF,aAAc,CACZ,OACA,CAAC,MAAO,eACR,CACE,OACA,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,iBACrC,CAAC,YAAa,CAAC,MAAO,gBACtB,GAEF,IAIJqC,OAAQ,CACN,gBAAiB,CAAC,YAAa,CAAC,MAAO,gBACvC,WAAY,YAKpB3tB,EAAIsrB,aACA,CAAC,EACD,CACEsC,WAAY5tB,EAAI6tB,UAChBC,WAAY9tB,EAAI+tB,UAChBC,YAAahuB,EAAIiuB,sBAI3BjuB,EAAIsB,GAAG,KACPpB,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa,QACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAIkuB,aACVpC,OAAQ,EACR0B,UAAW,SAEb,WAAY,QACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,SACNssB,QAAS,GACT0B,QAAS,GACTzB,MAAO,CACL,eAAgB,CACd,OACA,CAAC,UAAWjsB,EAAIsrB,cAAc,GAC9BtrB,EAAIqU,SAASC,MAAM4X,aAAarO,WAChC7d,EAAIqU,SAASC,MAAM4X,aAAanO,QAElC,sBAAuB/d,EAAIqU,SAASC,MAAM4X,aAAavO,MACvD,sBAAuB,EACvB,gBAAiB,CACf,OACA,CAAC,MAAO,eACR,CACE,OACA,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,iBACrC,CAAC,YAAa,CAAC,MAAO,gBACtB,GAEF,SAOZ,EAEJ,EAEA,GAAO/b,eAAgB,EC3GvB,MCJkI,GDIlI,CACE/B,KAAM,cACNgC,WAAY,CACVssB,gBAAe,OAEjBrsB,MAAO,CAAC,MAAO,cAAe,gBAC9BiU,OAAQ,CAAC,cAET1T,KAAK,KACI,CACL6rB,aAAc,CAAC,EACfX,aAAc,CAAC,EACfa,iBAAkB,KAItB9rB,SAAU,CACR+rB,uBAA0B,OAAOpuB,KAAKsC,OAAOC,QAAQoqB,iBAAkB,EACvE3E,QAAW,OAAOhoB,KAAKsC,OAAOC,QAAQylB,KAAM,EAC5CqG,QAAW,OAAOruB,KAAKsC,OAAOC,QAAQ8rB,KAAM,GAG9CpY,MAAO,CACLqY,YAAahG,EAAQC,GACnBvoB,KAAKuuB,mBACP,EACAlD,aAAcpb,GACZA,EAAMjQ,KAAK6E,IAAI2pB,IAAI,WAAYxuB,KAAKyuB,YAAczuB,KAAK6E,IAAI0O,GAAG,WAAYvT,KAAKyuB,WACjF,GAGFtU,UACEna,KAAKstB,aAAe9D,gBAAgBxpB,KAAKsC,OAAOC,QAAQmsB,aACxD1uB,KAAKiuB,aAAezE,gBAAgBxpB,KAAKsC,OAAOC,QAAQosB,aACxD3uB,KAAKuuB,oBACLvuB,KAAK6E,IAAI0O,GAAG,WAAYvT,KAAKyuB,WAC/B,EAEAvY,QAAS,CAEP0X,UAAWjf,GAKT,GAJAA,EAAM9J,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,UACrC7uB,KAAKmuB,iBAAmBxf,EAAMmgB,YAAYjvB,SAEtCG,KAAK+uB,OAAOC,UAAUhvB,KAAK+uB,MAAME,SACjCjvB,KAAKouB,qBAAqB7oB,OAAS,EAAG,CACxC,IAAI2pB,EAAclvB,KAAKouB,qBAAqBvpB,KAAIsqB,GAAQ,GAAGA,SAAYnvB,KAAKmuB,iBAAiB,GAAGxuB,WAAWwvB,WAC3GD,EAAcA,EAAY9mB,KAAK,SAC/BpI,KAAK+uB,MAAQ,IAAI,YAAe,CAAEK,aAAa,IAC5CC,UAAU,CAAC1gB,EAAMmgB,YAAYQ,OAAOC,IAAK5gB,EAAMmgB,YAAYQ,OAAOE,MAClEC,QAAQP,GACRQ,MAAM/gB,EAAM9J,IACjB,CACF,EACAipB,UAAWnf,GACT3O,KAAKmuB,iBAAmB,GACpBnuB,KAAK+uB,OAAOC,UAAUhvB,KAAK+uB,MAAME,SACrCtgB,EAAM9J,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,EACvC,EACAN,oBAEE,MAAMoB,EAAiB,IAAI/qB,IAAI5E,KAAKsuB,aACpCtuB,KAAKstB,aAAaztB,SAAWG,KAAKgoB,MAAMnoB,SAASsF,QAAO+K,GAAQyf,EAAezhB,IAAIgC,EAAKvQ,WAAWsoB,WACnG,MAAMla,EAAI/N,KAAKstB,aAAaztB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWoO,IAC3DC,EAAIhO,KAAKstB,aAAaztB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWqO,IAC3D4hB,EAAK,IAAIhrB,IAAI,IAAImJ,KAAMC,IAC7BhO,KAAKiuB,aAAapuB,SAAWG,KAAKiuB,aAAapuB,SAASsF,QAAOia,GAAQwQ,EAAG1hB,IAAIkR,EAAKzf,WAAW+Q,SAG9F,MAAMmf,EAAW,IAAI,IAAIjrB,IAAI5E,KAAKstB,aAAaztB,SAASgF,KAAIO,GAAQlD,OAAOkD,EAAKzF,WAAWmwB,iBAErFC,EAAY,CAAC,EACnBF,EAASloB,SAAQxG,GAAO4uB,EAAU5uB,GAAO,IAAIyD,MAC7C5E,KAAKstB,aAAaztB,SAASgF,KAAIO,GAC7B,CAACA,EAAKzF,WAAWoO,EAAG3I,EAAKzF,WAAWqO,GAAGrG,SACrCyX,GAAQ2Q,EAAU7tB,OAAOkD,EAAKzF,WAAWmwB,cAAcE,IAAI5Q,OAE/D,IAAI6Q,EAAS,IAAIrrB,IACjB,IAAK,IAAI+K,EAAI,EAAGA,EAAIkgB,EAAStqB,OAAS,EAAGoK,IAAK,CAC5C,MAAM5B,EAAIgiB,EAAUF,EAASlgB,EAAI,IAC3B3B,EAAI+hB,EAAUF,EAASlgB,IAC7BsgB,EAAS,IAAIrrB,IAAI,IAAIqrB,KAAWjiB,IAChC+hB,EAAUF,EAASlgB,EAAI,IAAM,IAAI/K,IAAI,IAAImJ,GAAG5I,QAAO+qB,IAAMD,EAAO/hB,IAAIgiB,KACtE,CAEAL,EAASloB,SAAQxG,IACf,MAAMgvB,EAAWnwB,KAAKquB,MAAMxuB,SAASsF,QAAOia,GAAQ2Q,EAAU5uB,GAAK+M,IAAIkR,EAAKzf,WAAW+Q,SACvFyf,EAAStrB,KAAIua,GAAQA,EAAKzf,WAAWmwB,YAAc3uB,IACnDnB,KAAKiuB,aAAapuB,SAASP,QAAQ6wB,EAAQ,GAI/C,EACA1B,WAAYjI,GAGV,GAFAA,EAAE4J,iBAEmC,IAAjCpwB,KAAKmuB,iBAAiB5oB,OAAc,CAEtC,MAAM8qB,EAAO,CACX,CAAC7J,EAAE8J,MAAMJ,EAAI,EAAG1J,EAAE8J,MAAMC,EAAI,GAC5B,CAAC/J,EAAE8J,MAAMJ,EAAI,EAAG1J,EAAE8J,MAAMC,EAAI,IAG9BvwB,KAAKmuB,iBAAmBnuB,KAAK6E,IAAI2rB,sBAAsBH,EAAM,CAC3DlO,OAAQ,CAAC,UAEb,CAEIniB,KAAKmuB,iBAAiB5oB,OAAS,IAGjCvF,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE0gB,OAAQ/mB,KAAKmuB,iBAAiB,GAAGxuB,WAAWsoB,QAASU,cAAc,IACzG3oB,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEiN,KAAM,GAAIP,WAAW,IAEpE,EACAib,mBAAoBrf,GAElB3O,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE0gB,OAAQpY,EAAMmgB,YAAYjvB,SAAS,GAAGF,WAAWsoB,QAASU,cAAc,IAC9G3oB,KAAKwhB,MAAM,aAAc,CAAEzL,OAAQ,iBAAkB6S,WAAW,GAClE,IEzGJ,IAXgB,OACd,GACA,GHqGoB,IGnGpB,EACA,KACA,WACA,MAI8B,QClBhC,IAAI,GAAS,WACX,IAAI7oB,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EACE,kBACAF,EAAIkU,GACF,CACExB,MAAO,CACL,YAAa,cACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAIuC,OAAOC,QAAQkuB,YACzB5E,OAAQ,EACR0B,UAAW,SAEb,WAAY,cACZ5D,MAAO,CACLlqB,KAAM,OACNssB,QAAS,EACTC,MAAO,CACL,aAAc,CACZ,OACA,CAAC,UAAWjsB,EAAI4nB,YAAY,GAC5B5nB,EAAIqU,SAASC,MAAM4X,aAAajO,eAChCje,EAAIqU,SAASC,MAAM4X,aAAalO,cAElC,aAAc,CACZ,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,YAAa,CACX,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,EACA,MAKRxK,GAAI,CACFC,MAAOzT,EAAI2wB,YACXC,UAAW5wB,EAAI6wB,SACf/C,WAAY9tB,EAAI8wB,YAGpB9wB,EAAI4nB,WAAa,CAAC,EAAI,CAAEoG,YAAahuB,EAAI+wB,kBAG7C/wB,EAAIsB,GAAG,KACPpB,EAAG,gBAAiB,CAClBwS,MAAO,CACL,YAAa,cACbhT,KAAM,SACNksB,OAAQ,cACR,WAAY,cACZhC,MAAO,CACLlqB,KAAM,SACNssB,QAAS,EACT2B,OAAQ,CACN,mBAAoB,OACpB,iBAAkB,GAClB,yBAAyB,EACzB,aAAc,QACd,YAAa,GACb,cAAe,IAEjB1B,MAAO,CACL,aAAc,CACZ,OACA,CAAC,UAAWjsB,EAAI4nB,YAAY,GAC5B5nB,EAAIqU,SAASC,MAAM4X,aAAajO,eAChCje,EAAIqU,SAASC,MAAM4X,aAAalO,mBAM1Che,EAAIsB,GAAG,KACPpB,EACE,kBACAF,EAAIkU,GACF,CACExB,MAAO,CACL,YAAa,cACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAIuC,OAAOC,QAAQwuB,YACzBlF,OAAQ,EACR0B,UAAW,SAEb,WAAY,cACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,SACNssB,QAAS,EACTC,MAAO,CACL,eAAgBjsB,EAAIqU,SAASC,MAAM4X,aAAanO,OAChD,gBAAiB,CACf,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,cAAe,CACb,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,MAKRvK,GAAI,CACFod,UAAW5wB,EAAI6wB,SACf/C,WAAY9tB,EAAI8wB,UAChBG,UAAWjxB,EAAIkxB,WAGnBlxB,EAAI4nB,WACA,CAAC,EACD,CAAEnU,MAAOzT,EAAI2wB,YAAa3C,YAAahuB,EAAImxB,mBAGnDnxB,EAAIsB,GAAG,KACPpB,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa,cACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAIoxB,YACVtF,OAAQ,EACR0B,UAAW,SAEb,WAAY,cACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,SACNssB,QAAS,EACTC,MAAO,CACL,eAAgB,UAChB,iBAAkB,GAClB,gBAAiB,CACf,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,cAAe,CACb,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,sBAAuB,UACvB,sBAAuB,KAI7BzY,GAAI,CACFC,MAAOzT,EAAI2wB,YACXC,UAAW5wB,EAAI6wB,SACf/C,WAAY9tB,EAAI8wB,UAChBG,UAAWjxB,EAAIkxB,SACflD,YAAahuB,EAAImxB,mBAGrBnxB,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CACL,gBAAgB,EAChB2e,OAAQrxB,EAAIsxB,YAAYD,OACxBE,YAAavxB,EAAIsxB,YAAYC,aAE/B/d,GAAI,CACFsH,MAAO,SAAUvF,GACfvV,EAAIsxB,YAAYD,QAAS,CAC3B,IAGJ,CACEnxB,EAAG,OAAQ,CACTA,EAAG,KAAM,CAACF,EAAIsB,GAAGtB,EAAIuB,GAAGvB,EAAIsxB,YAAYlnB,YACxCpK,EAAIsB,GAAG,KACPpB,EAAG,MACHF,EAAIsB,GACF,WACEtB,EAAIuB,GAC6B,eAA/BvB,EAAIwxB,gBAAgBC,QAChBzxB,EAAIsN,SAAS,4BACbtN,EAAIsN,SAAS,4BAEnB,YAEJpN,EAAG,MACHF,EAAIsB,GACF,WACEtB,EAAIuB,GAC6B,eAA/BvB,EAAIwxB,gBAAgBC,QAChBzxB,EAAIsN,SAAS,kCACbtN,EAAIsN,SAAS,iCAEnB,cAKVtN,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CACL,gBAAgB,EAChB2e,OAAQrxB,EAAI0xB,YAAYL,OACxBE,YAAavxB,EAAI0xB,YAAYH,aAE/B/d,GAAI,CACFsH,MAAO,SAAUvF,GACfvV,EAAI0xB,YAAYL,QAAS,CAC3B,IAGJ,CACEnxB,EACE,OACA,CACEsT,GAAI,CACFsa,WAAY,SAAUvY,GACpBvV,EAAI0xB,YAAYL,QAAS,CAC3B,IAGJ,CACEnxB,EACE,SACA,CAAEwS,MAAO,CAAEoB,MAAO,GAAI6d,KAAM,KAC5B,CACEzxB,EACE,oBACAF,EAAIiB,GAAGjB,EAAI0xB,YAAYE,SAAS,SAAU5b,GACxC,OAAO9V,EACL,cACA,CAAEkB,IAAK4U,EAAOvW,IACd,CACES,EACE,sBACA,CACEA,EACE,QACA,CACEwS,MAAO,CAAEkO,SAAU,GAAItN,MAAO,IAC9BE,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIwmB,YAAY,CACrBxQ,OAAQA,EACR6b,QAAS7xB,EAAI0xB,YAAYG,QACzBN,YACEvxB,EAAI0xB,YAAYH,aAEtB,IAGJ,CACEvxB,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS0I,IACpB,uBAKV,IAGJ,EAEJ,IACA,IAGJ,IAGJ,MAKR,EAEJ,EAEA,GAAOpU,eAAgB,ECxSvB,MCFkI,GDIlI,CACE/B,KAAM,cACNgC,WAAY,CACViwB,SAAQ,MACRC,cAAa,MACb5D,gBAAe,OAEjBrsB,MAAO,CAAC,MAAO,cACfiU,OAAQ,CAAC,eAAgB,UAAW,YACpC1T,KAAK,KACI,CACLb,gBAAiB,KACjBgwB,eAAgB,KAChBQ,cAAc,EACdC,cAAc,EACdC,UAAU,EACVZ,YAAa,CACXC,YAAa,CAAC,EAAG,GACjBF,QAAQ,EACRjnB,QAAS,MAEXsnB,YAAa,CACXH,YAAa,CAAC,EAAG,GACjBF,QAAQ,EACRO,QAAS,GACTC,QAAS,KACTnyB,KAAM,QAIZ4C,SAAU,CACR8uB,cAAiB,OAAOnxB,KAAK2nB,WAAa3nB,KAAKsC,OAAOC,QAAQ4uB,YAAcnxB,KAAKsC,OAAOC,QAAQosB,WAAY,GAG9G1Y,MAAO,CAEP,EACAkE,UACA,EAEAjE,QAAS,CACPwa,YAAa/hB,GACX,GAA4B,OAAxB3O,KAAKuxB,eAAyB,CAEhC,MAAM1xB,EAAWG,KAAK6E,IAAIqtB,oBAAoBlyB,KAAKuxB,eAAeC,SAIlE,GAHAxxB,KAAKuB,gBAAkB1B,EAASsF,QAAOC,GAAQA,EAAK5F,KAAOQ,KAAKuxB,eAAe/xB,KAAI,GAGtD,OAAzBQ,KAAKuB,iBAC6B,gBAAhCvB,KAAKuxB,eAAeC,QAA2B,CACjD,MAAMzb,EAAS/V,KAAK2nB,WAAa,oBAAsB,kBACjDnU,EAAQ,CACZjS,gBAAiBvB,KAAKuB,gBACtBwU,OAAQA,EACRuZ,OAAQ3gB,EAAMmgB,YAAYQ,QAE5BtvB,KAAKwhB,MAAM,eAAgBhO,EAC7B,CAEJ,CACF,EACAod,SAAUjiB,GACoB,OAAxB3O,KAAKuxB,gBAA2D,gBAAhCvxB,KAAKuxB,eAAeC,UACtDxxB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,UACR,OAAxB7uB,KAAKuxB,gBACPvxB,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,IAC/D,CAAE4yB,OAAO,IAGbpyB,KAAKuxB,eAAiB,CAAEC,QAAS7iB,EAAM6iB,QAAShyB,GAAImP,EAAMmgB,YAAYjvB,SAAS,GAAGL,IAClFQ,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,IAC/D,CAAE4yB,OAAO,KAENpyB,KAAK+xB,cAAgB/xB,KAAK2nB,aAC7B3nB,KAAKqxB,YAAYC,YAAc,CAAC3iB,EAAMmgB,YAAYQ,OAAOC,IACvD5gB,EAAMmgB,YAAYQ,OAAOE,KAE3BxvB,KAAKqxB,YAAYlnB,QAAUnK,KAAKuxB,eAAe/xB,GAC/CQ,KAAKqxB,YAAYD,QAAS,IAG9BpxB,KAAKwhB,MAAM,UAAW,CAAE6Q,WAAYryB,KAAKuxB,eAAe/xB,IAC1D,EACAqxB,UAAWliB,GACmB,OAAxB3O,KAAKuxB,iBAED,CAAC,cAAe,eAAejnB,SAAStK,KAAKuxB,eAAeC,UAA+B,gBAAnB7iB,GAAO6iB,UAE/ExxB,KAAKgyB,cACPhyB,KAAKiyB,UAAW,EAChBjyB,KAAKyxB,YAAYL,QAAS,IAG1BpxB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,GACpC7uB,KAAKqxB,YAAYD,QAAS,EAC1BpxB,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,IAC/D,CAAE4yB,OAAO,IAEXpyB,KAAKuxB,eAAiB,KACtBvxB,KAAKwhB,MAAM,WAAY7S,KAI/B,EACAuiB,gBAAiBviB,GACf,GAAI3O,KAAKqxB,YAAYD,QAA2C,gBAAjCpxB,KAAKuxB,gBAAgBC,QAA2B,CAC7ExxB,KAAKyxB,YAAYH,YAAc,CAAC3iB,EAAMmgB,YAAYQ,OAAOC,IACvD5gB,EAAMmgB,YAAYQ,OAAOE,KAE3BxvB,KAAKyxB,YAAYL,QAAS,EAE1BpxB,KAAKyxB,YAAYhyB,KAAO,OACxB,MAAMI,EAAWG,KAAK6E,IAAIqtB,oBAAoBlyB,KAAKuxB,eAAeC,SAClExxB,KAAKyxB,YAAYG,QAAU/xB,EAASsF,QAAOC,GAAQA,EAAK5F,KAAOQ,KAAKuxB,eAAe/xB,KAAI,GAEvF,MAAM8yB,EAAetyB,KAAKyxB,YAAYG,QAAQjyB,WAAW+Q,MAErD4hB,IAAiBtyB,KAAKsC,OAAOC,QAAQgwB,aAM9BD,IAAiBtyB,KAAKsC,OAAOC,QAAQiwB,WAL9CxyB,KAAKyxB,YAAYE,QACjB,CACW,iBACA,eASX3xB,KAAKyxB,YAAYE,QAChB,CACW,iBACA,kBACA,iBACA,cAGhB,MAAO,GAAqC,gBAAjC3xB,KAAKuxB,gBAAgBC,QAA2B,CACzD,MAAM3xB,EAAWG,KAAK6E,IAAIqtB,oBAAoBlyB,KAAKuxB,eAAeC,SAClExxB,KAAKuB,gBAAkB1B,EAASsF,QAAOC,GAAQA,EAAK5F,KAAOQ,KAAKuxB,eAAe/xB,KAC/E,MAAMgU,EAAQ,CACZjS,gBAAiBvB,KAAKuB,gBAAgB,GACtCwU,OAAQ,gBACRuZ,OAAQ,MAEVtvB,KAAKwhB,MAAM,eAAgBhO,EAC7B,CACF,EAEAsd,eAAgBniB,GACd,GAAoC,gBAAhC3O,KAAKuxB,eAAeC,QAA2B,CACjD,MAAM3xB,EAAWG,KAAK6E,IAAIqtB,oBAAoBlyB,KAAKuxB,eAAeC,SAClExxB,KAAKuB,gBAAkB1B,EAASsF,QAAOC,GAAQA,EAAK5F,KAAOQ,KAAKuxB,eAAe/xB,KAAI,GACnF,MAAMgU,EAAQ,CACZjS,gBAAiBvB,KAAKuB,gBACtBwU,OAAQ,iBACRuZ,OAAQ3gB,EAAMmgB,YAAYQ,OAC1B1G,WAAW,GAEb5oB,KAAKwhB,MAAM,eAAgBhO,EAC7B,CACF,EAEA+S,YAAa5X,GACX,MAAM6E,EAAQ,CACZjS,gBAAiBoN,EAAMijB,QACvB7b,OAAQpH,EAAMoH,OACduZ,OAAQ3gB,EAAM2iB,aAEhBtxB,KAAKwhB,MAAM,eAAgBhO,GAE3BxT,KAAKyxB,YAAYL,QAAS,EAC1BpxB,KAAKyxB,YAAYhyB,KAAO,IAC1B,EAEAwxB,SAAUtiB,GACR,GAA+C,IAA3CA,EAAMmgB,YAAY2D,cAAcC,OACpC,CAAC,cAAe,eAAepoB,SAAStK,KAAKuxB,eAAeC,SAAU,CACpE7iB,EAAMmgB,YAAYsB,iBAClBpwB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,OAEpC7uB,KAAKgyB,cAAe,EAEpB,MAAMnyB,EAAWG,KAAK6E,IAAIqtB,oBAAoBlyB,KAAKuxB,eAAeC,SAClExxB,KAAKuB,gBAAkB1B,EAASsF,QAAOC,GAAQA,EAAK5F,KAAOQ,KAAKuxB,eAAe/xB,KAAI,GAGnFQ,KAAK+xB,cAAe,EACpB/xB,KAAKqxB,YAAYD,QAAS,EAE1BpxB,KAAK6E,IAAI0O,GAAG,YAAavT,KAAK2yB,QAC9B3yB,KAAK6E,IAAI0O,GAAG,UAAWvT,KAAK4yB,eAC9B,CACF,EACAD,OAAQhkB,GAGN,GAAI3O,KAAK6E,IAAIguB,UAAY7yB,KAAKiyB,UAAYjyB,KAAKuB,gBAAiB,CAC9D,MAAMiS,EAAQ,CACZjS,gBAAiBvB,KAAKuB,gBACtBwU,OAAQ,KACRuZ,OAAQttB,OAAOkmB,OAAOvZ,EAAM2gB,SAEM,gBAAhCtvB,KAAKuxB,eAAeC,SACtBhe,EAAMuC,OAAS,cACf/V,KAAKwhB,MAAM,eAAgBhO,KAE3BA,EAAMuC,OAAS,YACf/V,KAAKwhB,MAAM,eAAgBhO,GAE/B,CACF,EAEAof,eAAgBjkB,GAEd3O,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,UACpC7uB,KAAK6E,IAAI2pB,IAAI,YAAaxuB,KAAK2yB,QAE/B3yB,KAAKgyB,cAAe,EACpBhyB,KAAKiyB,UAAW,EAChBjyB,KAAK+xB,cAAe,EAEpB/xB,KAAK6wB,YACL7wB,KAAK6E,IAAI2pB,IAAI,UAAWxuB,KAAK4yB,eAG/B,IExNJ,IAXgB,OACd,GACA,GHgSoB,IG9RpB,EACA,KACA,WACA,MAI8B,QClBhC,IAAI,GAAS,WACX,IAAI7yB,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EACE,kBACAF,EAAIkU,GACF,CACExB,MAAO,CACL,YAAa,SACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAI+yB,WAAa/yB,EAAIgzB,eAAiBhzB,EAAIizB,OAChDnH,OAAQ,EACR0B,UAAW,SAEb,WAAY,SACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,OACNssB,QAAShsB,EAAIkzB,QAAQjL,MACrBgE,MAAO,CACL,aAAc,CACZ,OACA,CAAC,MAAO,eACR,CAAC,SAAU,IAAK,CAAC,MAAO,gBACxBjsB,EAAIqU,SAASC,MAAM4X,aAAalO,cAElC,eAAgB,CACd,OACA,CAAC,UAAWhe,EAAIsrB,cAAc,GAC9B,GACA,GAEF,aAAc,CACZ,IACA,CACE,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,EACA,GAEF,CACE,OACA,CAAC,MAAO,eACR,CACE,OACA,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,iBACrC,CAAC,YAAa,CAAC,MAAO,gBACtB,GAEF,IAGJ,YAAa,CACX,IACA,CACE,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,EACA,GAEF,CACE,OACA,CAAC,MAAO,eACR,CACE,OACA,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,iBACrC,CAAC,YAAa,CAAC,MAAO,gBACtB,GAEF,KAINqC,OAAQ,CACN,gBAAiB,CAAC,YAAa,CAAC,MAAO,oBAK/C3tB,EAAIsrB,aACA,CAAC,EACD,CACEsC,WAAY5tB,EAAI6wB,SAChB/C,WAAY9tB,EAAI8wB,UAChBrd,MAAOzT,EAAI2wB,YACX3C,YAAahuB,EAAI+wB,kBAI3B/wB,EAAIsB,GAAG,KACPpB,EAAG,gBAAiB,CAClBwS,MAAO,CACL,YAAa,SACbhT,KAAM,SACNksB,OAAQ,SACR,WAAY,eACZhC,MAAO,CACLlqB,KAAM,SACNssB,QAAShsB,EAAIkzB,QAAQC,SACrBxF,OAAQ,CACN,mBAAoB,OACpB,iBAAkB,IAClB,yBAAyB,EACzB,aAAc,QACd,YAAa3tB,EAAIozB,mBACjB,cAAepzB,EAAIqzB,mBAErBpH,MAAO,CACL,aAAc,CACZ,OACA,CAAC,MAAO,eACR,CAAC,SAAU,IAAK,CAAC,MAAO,gBACxBjsB,EAAIqU,SAASC,MAAM4X,aAAalO,mBAM1Che,EAAIsB,GAAG,KACPpB,EACE,kBACAF,EAAIkU,GACF,CACExB,MAAO,CACL,YAAa,SACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAI+yB,WAAa/yB,EAAIszB,eAAiBtzB,EAAIuzB,OAChDzH,OAAQ,EACR0B,UAAW,SAEb,WAAY,SACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,SACNssB,QAAShsB,EAAIkzB,QAAQC,SACrBlH,MAAO,CACL,eAAgB,CACd,OACA,CAAC,UAAWjsB,EAAIsrB,cAAc,GAC9BtrB,EAAIqU,SAASC,MAAM4X,aAAarO,WAChC7d,EAAIqU,SAASC,MAAM4X,aAAanO,QAElC,sBAAuB/d,EAAIqU,SAASC,MAAM4X,aAAavO,MACvD,sBAAuB,EACvB,gBAAiB,CACf,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,cAAe,CACb,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,OAMV3d,EAAIsrB,aACA,CAAC,EACD,CACEsC,WAAY5tB,EAAI6wB,SAChB/C,WAAY9tB,EAAI8wB,UAChBG,UAAWjxB,EAAIkxB,SACflD,YAAahuB,EAAImxB,mBAI3BnxB,EAAIsB,GAAG,KACPpB,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa,eACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAI+yB,WACN/yB,EAAIwzB,qBACJxzB,EAAIuC,OAAOC,QAAQixB,aACvB3H,OAAQ,EACR0B,UAAW,SAEb,WAAY,eACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,SACNssB,QAAShsB,EAAIkzB,QAAQC,SACrBlH,MAAO,CACL,eAAgB,UAChB,iBAAkB,GAClB,gBAAiB,CACf,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,cAAe,CACb,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,sBAAuBjsB,EAAIqU,SAASC,MAAM4X,aAAapO,SACvD,sBAAuB,KAI7BtK,GAAI,CACFC,MAAOzT,EAAI2wB,YACXC,UAAW5wB,EAAI6wB,SACf/C,WAAY9tB,EAAI8wB,UAChBG,UAAWjxB,EAAIkxB,SACflD,YAAahuB,EAAImxB,mBAGrBnxB,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CACL,gBAAgB,EAChB2e,OAAQrxB,EAAI0xB,YAAYL,OACxBE,YAAavxB,EAAI0xB,YAAYH,aAE/B/d,GAAI,CACFsH,MAAO,SAAUvF,GACfvV,EAAI0xB,YAAYL,QAAS,CAC3B,IAGJ,CACEnxB,EACE,OACA,CACEsT,GAAI,CACFsa,WAAY,SAAUvY,GACpBvV,EAAI0xB,YAAYL,QAAS,CAC3B,IAGJ,CACEnxB,EACE,SACA,CAAEwS,MAAO,CAAEoB,MAAO,GAAI6d,KAAM,KAC5B,CACEzxB,EACE,oBACAF,EAAIiB,GAAGjB,EAAI0xB,YAAYE,SAAS,SAAU5b,GACxC,OAAO9V,EACL,cACA,CAAEkB,IAAK4U,EAAOvW,IACd,CACES,EACE,sBACA,CACEA,EACE,QACA,CACEwS,MAAO,CAAEkO,SAAU,GAAItN,MAAO,IAC9BE,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIwmB,YAAY,CACrBxQ,OAAQA,EACR6b,QAAS7xB,EAAI0xB,YAAYG,QACzBN,YACEvxB,EAAI0xB,YAAYH,aAEtB,IAGJ,CACEvxB,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS0I,IACpB,uBAKV,IAGJ,EAEJ,IACA,IAGJ,IAGJ,MAKR,EAEJ,EAEA,GAAOpU,eAAgB,E,yBC5SvB,MCLgI,GDMhI,CACE/B,KAAM,cACNgC,WAAY,CACVssB,gBAAe,MACf4D,cAAa,MACbD,SAAQ,OAEVhwB,MAAO,CAAC,MAAO,eAAgB,aAAc,cAC7CiU,OAAQ,CAAC,gBAET1T,KAAK,KACI,CACLmvB,eAAgB,KAChBtD,aAAc,CAAC,EACfX,aAAc,CAAC,EACfyE,cAAc,EACd0B,aAAc,CAAC,EACfpD,KAAM,KACN4C,QAAS,CACPjL,MAAO,EACPkL,SAAU,IAEZzB,YAAa,CACXH,YAAa,CAAC,EAAG,GACjBF,QAAQ,EACRO,QAAS,GACTC,QAAS,QAKfvvB,SAAU,CACR+rB,uBAA0B,OAAOpuB,KAAKsC,OAAOC,QAAQuqB,iBAAkB,EACvE9G,iBAAoB,OAAOhmB,KAAKsC,OAAOC,QAAQyjB,cAAe,EAC9DiD,eAAkB,OAAOjpB,KAAKsC,OAAOC,QAAQ0mB,YAAa,EAC1DqK,SAAY,OAAOtzB,KAAKsC,OAAOC,QAAQmxB,aAAc,EACrDV,SAAY,OAAOhzB,KAAKsC,OAAOC,QAAQoxB,aAAc,EACrDZ,iBAAoB,OAAO/yB,KAAKsC,OAAOC,QAAQwwB,cAAe,EAC9DM,iBAAoB,OAAOrzB,KAAKsC,OAAOC,QAAQ8wB,cAAe,EAC9DE,uBACE,OAAOvzB,KAAK2nB,WAAa3nB,KAAKsC,OAAOC,QAAQqxB,aAAe5zB,KAAKsC,OAAOC,QAAQixB,YAClF,EACAL,qBAcE,MAAMU,EAAmB,CAAC,OAAQ,CAAC,MAAO,UACxC,CAAC,OAAQ,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,YAAa,IAAM,GACjE,KAEIC,EAAgB,CAAC,OAAQ,CAAC,MAAO,eACrC,CAAC,OAAQ,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,iBAC5C,CAAC,YAAa,CAAC,MAAO,gBAAiB,GAAI,GAE/C,OAAI9zB,KAAKipB,aAIK,CAAC,IACX,CAAC,OACC,CAAC,MACC,CAAC,MACC,CAAC,KAAM,CAAC,MAAO,YAAa,OAC5B,CAAC,KAAM,CAAC,MAAO,oBAAqB,QAEtC,CAAC,MACC,CAAC,KAAM,CAAC,MAAO,YAAa,UAC5B,CAAC,KAAM,CAAC,MAAO,oBAAqB,WAEtC,CAAC,MACC,CAAC,KAAM,CAAC,MAAO,YAAa,OAC5B,CAAC,KAAM,CAAC,MAAO,oBAAqB,WAEtC,CAAC,MACC,CAAC,KAAM,CAAC,MAAO,YAAa,UAC5B,CAAC,KAAM,CAAC,MAAO,oBAAqB,SAGrC,EAAG,CAAC,OAAQ,CAAC,MACd,CAAC,KAAM,CAAC,MAAO,YAAa,MAC5B,CAAC,KAAM,CAAC,MAAO,oBAAqB,OACnC4K,EAAkB,MAEvBC,GAKK,CAAC,IAAKD,EAAkBC,EAEnC,EACAV,oBACE,OAAIpzB,KAAKipB,aAKK,CAAC,OACX,CAAC,MACC,CAAC,MACC,CAAC,KAAM,CAAC,MAAO,YAAa,MAC5B,CAAC,KAAM,CAAC,MAAO,oBAAqB,QAEtC,CAAC,MACC,CAAC,KAAM,CAAC,MAAO,YAAa,MAC5B,CAAC,KAAM,CAAC,MAAO,oBAAqB,aAEpC,GAAI,IAKH,EAEX,GAIFhT,MAAO,CACL+P,eAAgB/V,GAAOjQ,KAAK+zB,WAAY,EACxCjB,WAAY7iB,GACNA,GACFjQ,KAAK6E,IAAI0O,GAAG,UAAWvT,KAAK+zB,WAC5B/zB,KAAK6E,IAAI0O,GAAG,UAAWvT,KAAK+zB,aAE5B/zB,KAAK6E,IAAI2pB,IAAI,UAAWxuB,KAAK+zB,WAC7B/zB,KAAK6E,IAAI2pB,IAAI,UAAWxuB,KAAK+zB,WAEjC,GAGF5Z,UACEna,KAAK6E,IAAI0O,GAAG,UAAWvT,KAAK+zB,WAC5B/zB,KAAK6E,IAAI0O,GAAG,UAAWvT,KAAK+zB,UAC9B,EACAC,gBAEEh0B,KAAK6E,IAAIovB,YAAY,eACvB,EAEA/d,QAAS,CACP6d,YAKE,MAAMG,EAASl0B,KAAK6E,IAAIkvB,YAExB/zB,KAAKqwB,MAAO,SAAO,QAAY,CAAC6D,EAAOC,IAAI5E,IAAK2E,EAAOC,IAAI3E,IAAK0E,EAAOE,IAAI7E,IAAK2E,EAAOE,IAAI5E,MAAO,IAI9FxvB,KAAK6E,IAAIwvB,UAAYr0B,KAAKizB,QAAQC,SAEpClzB,KAAKsC,OAAO+D,OAAO,oBAAqB,CAAEgqB,KAAMrwB,KAAKqwB,OAC5CrwB,KAAK6E,IAAIwvB,UAAYr0B,KAAKizB,QAAQjL,MAE3ChoB,KAAKsC,OAAO+D,OAAO,oBAAqB,CAAEijB,OAAQ,YAGlDtpB,KAAKsC,OAAO+D,OAAO,oBAAqB,CAAEijB,OAAQ,QAEtD,EACAsH,SAAUjiB,GACR,GAAI3O,KAAK8yB,aACH9yB,KAAK+uB,OAAOC,UAAUhvB,KAAK+uB,MAAME,SACT,OAAxBjvB,KAAKuxB,gBAA2D,WAAhCvxB,KAAKuxB,eAAeC,SAAsB,CAC5E,IAAKxxB,KAAK+xB,cAAgB/xB,KAAKouB,qBAAqB7oB,OAAS,EAAG,CAC9D,MAAMhE,EAAkBoN,EAAMmgB,YAAYjvB,SAAS,GACnD,GAAiC,WAA7B0B,EAAgBooB,MAAMnqB,GAAiB,CAEzC,IAAI0vB,EAAclvB,KAAKouB,qBAAqBvpB,KAAIsqB,GAAQ,GAAGA,SAAY5tB,EAAgB5B,WAAWwvB,WAClGD,EAAcA,EAAY9mB,KAAK,SAC/BpI,KAAK+uB,MAAQ,IAAI,YAAe,CAAEK,aAAa,IAC5CC,UAAU,CAAC1gB,EAAMmgB,YAAYQ,OAAOC,IAAK5gB,EAAMmgB,YAAYQ,OAAOE,MAClEC,QAAQP,GACRQ,MAAM/gB,EAAM9J,IACjB,CACF,CACA7E,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,UACR,OAAxB7uB,KAAKuxB,gBACPvxB,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,GAAG,IAClE,CAAE4yB,OAAO,IAIb,MAAMkC,EAAc,IAAI,IAAI1vB,IAAI+J,EAAMmgB,YAAYjvB,SAASgF,KAAIO,GAAQA,EAAK5F,OAC5EQ,KAAKuxB,eAAiB,CAAEC,QAAS7iB,EAAM6iB,QAAShyB,GAAI80B,GACpDt0B,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,GAAG,IAClE,CAAE4yB,OAAO,IAGXpyB,KAAKwhB,MAAM,UAAW,CAAEgQ,QAASxxB,KAAKuxB,eAAeC,QAASa,WAAYryB,KAAKuxB,eAAe/xB,IAChG,CAEJ,EAEAqxB,UAAWliB,GACL3O,KAAK8yB,aAEH9yB,KAAK+uB,OAAOC,UAAUhvB,KAAK+uB,MAAME,SACT,OAAxBjvB,KAAKuxB,iBAED,CAAC,SAAU,gBAAgBjnB,SAAStK,KAAKuxB,gBAAgBC,UAA+B,WAAnB7iB,GAAO6iB,UAE5ExxB,KAAKgyB,aACPhyB,KAAKiyB,UAAW,GAGhBjyB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,GACpC7uB,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,GAAG,IAClE,CAAE4yB,OAAO,IAEXpyB,KAAKuxB,eAAiB,KACtBvxB,KAAKwhB,MAAM,WAAY7S,MAKjC,EAEA+hB,YAAa/hB,GACX,GAAI3O,KAAK8yB,YACqB,OAAxB9yB,KAAKuxB,iBAIPvxB,KAAKuB,gBAAkBvB,KAAKuxB,eAAe/xB,GAGd,OAAzBQ,KAAKuB,iBAC6B,WAAhCvB,KAAKuxB,eAAeC,SAAsB,CAC5C,MAAMzb,EAAS/V,KAAK2nB,WAAa,yBAA2B,uBACtDnU,EAAQ,CACZ+gB,cAAev0B,KAAKuB,gBACpBwU,OAAQA,EACRuZ,OAAQ3gB,EAAMmgB,YAAYQ,QAE5BtvB,KAAKwhB,MAAM,eAAgBhO,EAC7B,CAIR,EAEAsd,eAAgBniB,GACV3O,KAAK8yB,YAC6B,WAAhC9yB,KAAKuxB,eAAeC,UACtBxxB,KAAKyxB,YAAYH,YAAc,CAAC3iB,EAAMmgB,YAAYQ,OAAOC,IAAK5gB,EAAMmgB,YAAYQ,OAAOE,KACvFxvB,KAAKyxB,YAAYL,QAAS,EAC1BpxB,KAAKyxB,YAAYG,QAAU5xB,KAAKuxB,eAAe/xB,GAC/CQ,KAAKyxB,YAAYE,QACjB,CACW,kBACA,gBAIjB,EACApL,YAAa5X,GACX,MAAM6E,EAAQ,CACZ+gB,cAAe5lB,EAAMijB,QACrB7b,OAAQpH,EAAMoH,OACduZ,OAAQ3gB,EAAM2iB,aAEhBtxB,KAAKwhB,MAAM,eAAgBhO,GAC3BxT,KAAKyxB,YAAYL,QAAS,EAC1BpxB,KAAKyxB,YAAYhyB,KAAO,IAE1B,EAEAyxB,gBAAiBviB,GACf,GAAI3O,KAAK8yB,WAAY,CACnB,MAAMjzB,EAAWG,KAAK6E,IAAIqtB,oBAAoBlyB,KAAKuxB,eAAeC,SAGlE,GAFAxxB,KAAKuB,gBAAkB1B,EAASsF,QAAOC,GAAQpF,KAAKuxB,eAAe/xB,GAAG8K,SAASlF,EAAK5F,MAEhFQ,KAAKuB,gBAAgBgE,OAAS,EAChC,GAAqC,WAAjCvF,KAAKuxB,gBAAgBC,QAAsB,CAC7C,MAAMhe,EAAQ,CACZjS,gBAAiBvB,KAAKuB,gBAAgB,GACtCwU,OAAQ,kBACRuZ,OAAQ3gB,EAAMmgB,YAAYQ,QAE5BtvB,KAAKwhB,MAAM,eAAgBhO,EAC7B,MAAO,GAAqC,iBAAjCxT,KAAKuxB,gBAAgBC,QAA4B,CAC1D,MAAMhe,EAAQ,CACZjS,gBAAiBvB,KAAKuB,gBAAgB,GACtCwU,OAAQ,qBACRuZ,OAAQ,MAEVtvB,KAAKwhB,MAAM,eAAgBhO,EAE7B,CAEJ,CACF,EAEAyd,SAAUtiB,GACR,GAAI3O,KAAK8yB,YACwC,IAA3CnkB,EAAMmgB,YAAY2D,cAAcC,OACtC,CAAC,SAAU,gBAAgBpoB,SAAStK,KAAKuxB,eAAeC,SAAU,CAC9D7iB,EAAMmgB,YAAYsB,iBAClBpwB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,OAEpC7uB,KAAKgyB,cAAe,EAEpB,MAAMnyB,EAAWG,KAAK6E,IAAIqtB,oBAAoBlyB,KAAKuxB,eAAeC,SAClExxB,KAAKuB,gBAAkB1B,EAASsF,QAAOC,GAAQA,EAAK5F,KAAOQ,KAAKuxB,eAAe/xB,GAAG,KAAI,GAEtFQ,KAAK+xB,cAAe,EACgB,WAAhC/xB,KAAKuxB,eAAeC,SACtBxxB,KAAKsC,OAAO+D,OAAO,oBAAqB,CAAEisB,aAActyB,KAAKuB,kBAG/DvB,KAAK6E,IAAI0O,GAAG,YAAavT,KAAK2yB,QAC9B3yB,KAAK6E,IAAI0O,GAAG,UAAWvT,KAAK4yB,eAC9B,CAEJ,EACAD,OAAQhkB,GAGN,GAAI3O,KAAKiyB,UAAYjyB,KAAKuB,gBAAiB,CACzC,MAAMiS,EAAQ,CACZjS,gBAAiBvB,KAAKuB,gBACtBwU,OAAQ,KACRuZ,OAAQttB,OAAOkmB,OAAOvZ,EAAM2gB,SAEM,iBAAhCtvB,KAAKuxB,eAAeC,SACtBhe,EAAMuC,OAAS,eACf/V,KAAKwhB,MAAM,eAAgBhO,KAG3BA,EAAMuC,OAAS,aACf/V,KAAKwhB,MAAM,eAAgBhO,GAE/B,CACF,EACAof,eAAgBjkB,GACV3O,KAAK8yB,aAEP9yB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,UACpC7uB,KAAK6E,IAAI2pB,IAAI,YAAaxuB,KAAK2yB,QAE/B3yB,KAAKgyB,cAAe,EACpBhyB,KAAKiyB,UAAW,EAChBjyB,KAAK+xB,cAAe,EAGpB/xB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,GACpC7uB,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,GAAG,IAClE,CAAE4yB,OAAO,IAEXpyB,KAAKuxB,eAAiB,KACtBvxB,KAAK6E,IAAI2pB,IAAI,UAAWxuB,KAAK4yB,gBAKjC,IEzWJ,IAXgB,OACd,GACA,GHuSoB,IGrSpB,EACA,KACA,WACA,MAI8B,QClBhC,IAAI,GAAS,WACX,IAAI7yB,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EACE,MACA,CAAES,YAAa,cACf,CACET,EAAG,YAAa,CACdwS,MAAO,CACL,cAAe1S,EAAIkB,WACnB,mBAAoBlB,EAAIQ,gBACxB,cAAe,IACf4B,MAAOpC,EAAIoC,UAIjB,GAEFpC,EAAIsB,GAAG,KACP,CAAC,eAAgB,WAAWiJ,SAASvK,EAAIN,MACrCQ,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa1S,EAAIqrB,OAAOxrB,KAAO,SAC/B+rB,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAI4pB,OAEZ,WAAY5pB,EAAIqrB,OAAOxrB,KAAO,SAC9B+pB,MAAO,CACL6D,aAAa,EACb/tB,KAAM,OACNssB,QAAS,EACTC,MAAO,CACL,aAAc,CAAC,MAAO,iBACtB,eAAgBjsB,EAAI0gB,QAAU,SAKtC1gB,EAAI0X,KACR1X,EAAIsB,GAAG,KACK,cAAZtB,EAAIN,KACAQ,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa1S,EAAIqrB,OAAOxrB,KAAO,SAC/B+rB,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAI4pB,MACVkC,OAAQ,EACR0B,UAAW,SAEb,WAAYxtB,EAAIqrB,OAAOxrB,KAAO,SAC9B+pB,MAAO,CACL6D,aAAa,EACb/tB,KAAM,OACNssB,QAAS,EACTC,MAAO,CACL,aAAc,CAAC,MAAO,iBACtB,eAAgBjsB,EAAI0gB,QAAU,IAC9B,cAAe,CACb,IACkB,GAAlB1gB,EAAIy0B,YACJ,CAAC,YAAa,CAAC,MAAO,mBAGxB,aAAc,CAAC,MAAO,kBAExB9G,OAAQ,CACN,gBAAiB,CAAC,YAAa,CAAC,MAAO,kBACvC,WAAY,aAKpB3tB,EAAI0X,KACR1X,EAAIsB,GAAG,KACK,SAAZtB,EAAIN,KACAQ,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa1S,EAAIqrB,OAAOxrB,KAAO,SAC/B+rB,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAI4pB,OAEZ,WAAY5pB,EAAIqrB,OAAOxrB,KAAO,SAC9B+pB,MAAO,CACL6D,aAAa,EACb/tB,KAAM,SACNssB,QAAS,EACTC,MAAO,CACL,eAAgB,CAAC,MAAO,iBACxB,gBAAiB,CAAC,MAAO,iBACzB,iBAAkBjsB,EAAI0gB,QAAU,KAElCiN,OAAQ,CACN,kBAAmB,CAAC,YAAa,CAAC,MAAO,uBAKjD3tB,EAAI0X,MAEV,EAEJ,EAEA,GAAO9V,eAAgB,E,gBC1GvB,MCHkI,GDQlI,CACE/B,KAAM,cACNgC,WAAY,CACVssB,gBAAe,MACfuG,UAAS,MAGX5yB,MAAO,CAAC,SAAU,MAAO,SACzBO,KAAK,KACI,CACL3C,KAAM,GACNkqB,MAAO,CAAC,EACRlJ,QAAS,IACT+T,aAAc,EACdj0B,gBAAiB,CAAC,EAClBU,WAAY,OAIhBgV,MAAO,CAEP,EACA+d,gBACMh0B,KAAK6E,IAAI6vB,SAAS10B,KAAKorB,OAAOxrB,KAAO,WACvCI,KAAK6E,IAAIovB,YAAYj0B,KAAKorB,OAAOxrB,KAAO,SAE5C,EACAoY,UAEEhY,KAAK6E,IAAI8vB,UAAU30B,KAAKorB,OAAOxrB,KAAO,SAAU,SAClD,EACAua,UAEEna,KAAKygB,QAAUzgB,KAAKorB,OAAO7qB,gBAAgBkgB,QAC3CzgB,KAAKw0B,YAAcx0B,KAAKorB,OAAO7qB,gBAAgBq0B,QAAU,EAAI,EAE7D50B,KAAK60B,YAAY70B,KAAKorB,OAAOzB,OACzB3nB,OAAOsJ,KAAKtL,KAAKorB,QAAQ9gB,SAAS,oBAChCtK,KAAKsC,OAAOC,QAAQ,0BAA0B+H,SAAStK,KAAKorB,OAAOvD,iBAErE7nB,KAAKsC,OAAO+D,OAAO,+BAAgCrG,KAAKorB,OAAOvD,gBAE3D7lB,OAAOsJ,KAAKtL,KAAKorB,QAAQ9gB,SAAS,sBACpCtK,KAAKsC,OAAO+D,OAAO,iCAAkCrG,KAAKorB,OAAO0J,kBACjE90B,KAAKsC,OAAO+D,OAAO,mCAGrBrG,KAAKsC,OAAO+D,OAAO,qBACjB,CACEiN,KAAMtT,KAAKorB,OAAOvD,eAAZ7nB,0CACN+S,WAAW,EACX7R,MAAO,WAKflB,KAAKsC,OAAO+D,OAAO,wBAAyBrG,KAAKorB,OAAO7qB,iBACxDP,KAAK2pB,MAAQH,gBAAgBxpB,KAAKsC,OAAOC,QAAQ,yBACjDvC,KAAKP,KAAO+pB,gBAAgBxpB,KAAKsC,OAAOC,QAAQ,iBAChDvC,KAAKiB,WAAajB,KAAKsC,OAAOC,QAAQ,sBACtCvC,KAAKO,gBAAkBipB,gBAAgBxpB,KAAKsC,OAAOC,QAAQ,4BAC3DvC,KAAKsC,OAAO+D,OAAO,iBAErB,EAEA6P,QAAS,CACP2e,YAAalL,GAEX,OADA3pB,KAAK+0B,cAAgBpL,EACbA,GACN,IAAK,QACH3pB,KAAKsC,OAAO+D,OAAO,oBAAqB,CACtCkH,QAASvN,KAAKsC,OAAOC,QAAQylB,MAC7BvoB,KAAM,aACN8B,gBAAiB,YAEnB,MACF,IAAK,SACHvB,KAAKsC,OAAO+D,OAAO,oBAAqB,CACtCkH,QAASvN,KAAKsC,OAAOC,QAAQywB,OAC7BvzB,KAAM,aACN8B,gBAAiB,UAEnB,MACF,IAAK,QACHvB,KAAKsC,OAAO+D,OAAO,oBAAqB,CACtCkH,QAASvN,KAAKsC,OAAOC,QAAQ8rB,MAC7B5uB,KAAM,QACN8B,gBAAiB,cAEnB,MACF,IAAK,SACHvB,KAAKsC,OAAO+D,OAAO,oBAAqB,CACtCkH,QAASvN,KAAKsC,OAAOC,QAAQ+wB,OAC7B7zB,KAAM,QACN8B,gBAAiB,cAEnB,MACF,IAAK,KACHvB,KAAKsC,OAAO+D,OAAO,oBAAqB,CACtCkH,QAASvN,KAAKsC,OAAOC,QAAQ,YAC7B9C,KAAM,aACN8B,gBAAiB,WAEnB,MACF,QACEvB,KAAKsC,OAAO+D,OAAO,oBAAqB,CACtCkH,QAASvN,KAAKsC,OAAOC,QAAQ,GAAGonB,WAChClqB,KAAMO,KAAKsC,OAAOC,QAAQ,GAAGonB,YAIrC,I,gBE5GA,GAAU,CAAC,EAEf,GAAQjnB,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,GACA,GJkGoB,IIhGpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,GAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EACE,SACA,CACEwS,MAAO,CACL,0BAA0B,EAC1B,kBAAkB,EAClB0Z,OAAQ,YACRnZ,WAAY,mBACZ,aAAc,GACd,cAAe,IACf,WAAY,GACZ,WAAY,IAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,EAAE,MAAEd,IAClB,MAAO,CACLxS,EACE,QACAF,EAAIkU,GACFlU,EAAIqT,GACF,CACE1S,YAAa,eACb+R,MAAO,CAAE+S,IAAK,GAAInS,MAAO,KAE3B,QACAZ,GACA,GAEFc,GAEF,CACEtT,EAAG,SAAU,CAAEwS,MAAO,CAAEvR,MAAO,YAAe,CAC5CnB,EAAIsB,GAAG,+CAGX,GAGN,KAGJiF,MAAO,CACLjG,MAAON,EAAI4iB,KACXhP,SAAU,SAAUC,GAClB7T,EAAI4iB,KAAO/O,CACb,EACAnT,WAAY,SAGhB,CACEV,EAAIsB,GAAG,KACPpB,EACE,SACA,CAAEwS,MAAO,CAAE,YAAa,MACxB,CACExS,EAAG,eAAgB,CAAES,YAAa,YAAc,CAC9CX,EAAIsB,GACF,aACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS,kBACpB,cAGNtN,EAAIsB,GAAG,KACPtB,EAAIiB,GAAGjB,EAAIkrB,SAAS,SAAU7lB,EAAMjE,GAClC,OAAOlB,EACL,cACA,CAAEkB,IAAKA,GACP,CACElB,EACE,qBACA,CACEA,EAAG,aAAc,CACfwS,MAAO,CACLpS,MAAO+E,EAAKxF,KACZ,WAAaG,EAAIwiB,gBAAgBjY,SAC/BlF,EAAKukB,OAGH,kBADA,8BAEJ,UAAW,YACXvZ,UAAWrQ,EAAIwiB,gBAAgBjY,SAASlF,EAAKukB,QAE/CrjB,MAAO,CACLjG,MAAON,EAAIi1B,eACXrhB,SAAU,SAAUC,GAClB7T,EAAIi1B,eAAiBphB,CACvB,EACAnT,WAAY,qBAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EACE,YACA,CACEwS,MAAO,CACL7R,IAAK,GACL,aAAc,MACd,gBAAiB,kBAEnBqS,YAAalT,EAAImT,GACf,CACE,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,IACd,MAAO,CACLtT,EACE,oBACAF,EAAIkU,GACF,CAAEtT,MAAO,CAAEkuB,OAAQ,YACnBtb,GAEF,CACExT,EAAIsB,GACF,mBACEtB,EAAIuB,GAAG8D,EAAKxF,MACZ,oBAKZ,IAGJ,MACA,IAGJ,CACEG,EAAIsB,GAAG,KACNtB,EAAIwiB,gBAAgBjY,SAASlF,EAAKukB,OAQ/B1pB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GACF8D,EAAK7E,gBAAgBgB,gBACnB,IACAxB,EAAIsN,SAAS,QACb,IACAjI,EAAKukB,UAdb1pB,EAAG,OAAQ,CACTF,EAAIsB,GACFtB,EAAIuB,GACFvB,EAAIsN,SAAS,oBAAsBjI,EAAKukB,aAkBxD,EAEJ,KAEF,IAGJ,IAGJ,EAEJ,EAEA,GAAOhoB,eAAgB,EC9KvB,MCFoI,GDEpI,CACE/B,KAAM,gBACNgC,WAAY,CACZ,EACAC,MAAO,CACLopB,QAAS,CACPxrB,KAAMqC,MACNC,QAAS,IAAM,IAEjBwgB,gBAAiB,CACf9iB,KAAMqC,MACNC,QAAS,IAAM,KAGnBK,KAAK,KACI,CACLugB,MAAM,EACNqS,eAAgB,GAChBC,gBAAiB,IAIrBhf,MAAO,CACL+e,eAAgB/kB,GACd,MAAMhK,EAAO,GACbgK,EAAItI,SAAQvC,GAAQa,EAAK3G,KAAK8F,KAC9BpF,KAAKsC,OAAO+D,OAAO,oBAAqB4J,EAC1C,GAGF+H,UACEhY,KAAKg1B,eAAiBh1B,KAAKsC,OAAOC,QAAQ4oB,cAC5C,EAEAjV,QAAS,CAET,G,gBE3BE,GAAU,CAAC,EAEf,GAAQxT,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,GACA,GJqKoB,IInKpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,GAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,UACA,CACEA,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa,KACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAI4pB,MACVkC,OAAQ,EACR0B,UAAW,SAEb,WAAY,KACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,OACNssB,QAAS,EACT0B,QAAS,GACTzB,MAAO,CACL,aAAc,CACZ,OACA,CAAC,MAAO,eACR,CAAC,SAAU,IAAK,CAAC,MAAO,gBACxBjsB,EAAIqU,SAASC,MAAM4X,aAAalO,cAElC,eAAgB,CACd,OACA,CAAC,UAAWhe,EAAIsrB,cAAc,GAC9B,GACA,GAEF,aAAc,CACZ,IACA,CAAC,OAAQ,CAAC,UAAW,CAAC,gBAAiB,UAAU,GAAQ,EAAG,GAC5D,CACE,OACA,CAAC,MAAO,eACR,CACE,OACA,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,iBACrC,CAAC,YAAa,CAAC,MAAO,gBACtB,GAEF,IAGJ,YAAa,CACX,IACA,CAAC,OAAQ,CAAC,UAAW,CAAC,gBAAiB,UAAU,GAAQ,EAAG,GAC5D,CACE,OACA,CAAC,MAAO,eACR,CACE,OACA,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,iBACrC,CAAC,YAAa,CAAC,MAAO,gBACtB,GAEF,KAKNqC,OAAQ,CACN,gBAAiB,CAAC,YAAa,CAAC,MAAO,gBACvC,WAAY,WAIlBna,GAAI,CACFwa,YAAahuB,EAAI+wB,eACjBH,UAAW5wB,EAAI6wB,SACf/C,WAAY9tB,EAAI8wB,aAGpB9wB,EAAIsB,GAAG,KACPpB,EAAG,kBAAmB,CACpBwS,MAAO,CACL,YAAa,UACbkZ,OAAQ,CACNlsB,KAAM,UACN2C,KAAMrC,EAAIm1B,SACNn1B,EAAIsuB,MACJtuB,EAAIuC,OAAOC,QAAQ,kBACvBspB,OAAQ,EACR0B,UAAW,SAEb,WAAY,UACZ5D,MAAO,CACL6D,aAAa,EACb/tB,KAAM,SACNusB,MAAO,CACL,eAAgB,UAChB,iBAAkB,GAClB,gBAAiB,CACf,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,cAAe,CACb,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,GACA,GAEF,sBAAuBjsB,EAAIqU,SAASC,MAAM4X,aAAapO,SACvD,sBAAuB,KAI7BtK,GAAI,CACFod,UAAW5wB,EAAI6wB,SACf/C,WAAY9tB,EAAI8wB,UAChBG,UAAWjxB,EAAIkxB,YAGnBlxB,EAAIsB,GAAG,KACPpB,EAAG,gBAAiB,CAClBwS,MAAO,CACL,YAAa,KACbhT,KAAM,SACNksB,OAAQ,KACR,WAAY,WACZhC,MAAO,CACLlqB,KAAM,SACNiuB,OAAQ,CACN,mBAAoB,OACpB,iBAAkB,IAClB,yBAAyB,EACzB,aAAc,QACd,YAAa,CACX,IACA,GACA,CACE,OACA,CAAC,MAAO,eACR,CACE,OACA,CAAC,aAAc,CAAC,YAAa,CAAC,MAAO,iBACrC,CAAC,YAAa,CAAC,MAAO,gBACtB,GAEF,IAGJ,cAAe,IAEjB1B,MAAO,CACL,aAAc,CACZ,OACA,CAAC,MAAO,eACR,CAAC,SAAU,IAAK,CAAC,MAAO,gBACxBjsB,EAAIqU,SAASC,MAAM4X,aAAalO,mBAM1Che,EAAIsB,GAAG,KACPpB,EACE,WACA,CACEwS,MAAO,CACL,gBAAgB,EAChB2e,OAAQrxB,EAAI0xB,YAAYL,OACxBE,YAAavxB,EAAI0xB,YAAYH,aAE/B/d,GAAI,CACFsH,MAAO,SAAUvF,GACfvV,EAAI0xB,YAAYL,QAAS,CAC3B,IAGJ,CACEnxB,EACE,OACA,CACEsT,GAAI,CACFsa,WAAY,SAAUvY,GACpBvV,EAAI0xB,YAAYL,QAAS,CAC3B,IAGJ,CACEnxB,EACE,SACA,CAAEwS,MAAO,CAAEoB,MAAO,GAAI6d,KAAM,KAC5B,CACEzxB,EACE,oBACAF,EAAIiB,GAAGjB,EAAI0xB,YAAYE,SAAS,SAAU5b,GACxC,OAAO9V,EACL,cACA,CAAEkB,IAAK4U,EAAOvW,IACd,CACES,EACE,sBACA,CACEA,EACE,QACA,CACEwS,MAAO,CAAEkO,SAAU,GAAItN,MAAO,IAC9BE,GAAI,CACFC,MAAO,SAAU8B,GACf,OAAOvV,EAAIwmB,YAAY,CACrBxQ,OAAQA,EACR6b,QAAS7xB,EAAI0xB,YAAYG,QACzBN,YACEvxB,EAAI0xB,YAAYH,aAEtB,IAGJ,CACEvxB,EAAIsB,GACF,qBACEtB,EAAIuB,GAAGvB,EAAIsN,SAAS0I,IACpB,uBAKV,IAGJ,EAEJ,IACA,IAGJ,IAGJ,MAKR,EAEJ,EAEA,GAAOpU,eAAgB,ECpPvB,MAAM,GAAQ,EAAQ,MCHsG,GDM5H,CACE/B,KAAM,QACNgC,WAAY,CACVssB,gBAAe,MACf4D,cAAa,MACbD,SAAQ,OAEVhwB,MAAO,CAAC,MAAO,WAAY,gBAC3BiU,OAAQ,GAER1T,KAAK,KACI,CACLmvB,eAAgB,KAChBS,cAAc,EACdC,UAAU,EACVvG,UAAU,EACVnqB,gBAAiB,KACjBkwB,YAAa,CACXH,YAAa,CAAC,EAAG,GACjBF,QAAQ,EACRO,QAAS,GACTC,QAAS,QAKfvvB,SAAU,CACRsnB,QAAW,OAAO3pB,KAAKsC,OAAOC,QAAQ,kBAAmB,EACzD8rB,QACE,OAAOruB,KAAKsC,OAAOC,QAAQ,YAAYvC,KAAK2pB,MAC9C,GAIF1T,MAAO,CACP,EAEAkE,UACEna,KAAK6E,IAAI0O,GAAG,QAASvT,KAAKm1B,KAC5B,EAEAjf,QAAS,CACPif,KAAMxmB,GACJ,GAAI3O,KAAKk1B,SACP,GAAKl1B,KAAK0rB,SAWR1rB,KAAK0rB,UAAW,MAXE,CAClB,MAAMhb,EAAQ,MAAQ,GAAMoY,WAC5B9oB,KAAKsC,OAAO+D,OAAO,mBAAoB,CAAEipB,OAAQttB,OAAOkmB,OAAOvZ,EAAM2gB,QAAS5e,MAAOA,IACrF1Q,KAAKiyB,UAAW,EAChBjyB,KAAKuB,gBAAkB,CAAE5B,WAAY,CAAEy1B,UAAW1kB,EAAO2kB,iBAAkB,IAE3Er1B,KAAK0rB,UAAW,EAChB1rB,KAAK6E,IAAI0O,GAAG,YAAavT,KAAK2yB,QAC9B3yB,KAAK6E,IAAI0O,GAAG,UAAWvT,KAAK4yB,eAC9B,CAKJ,EACAhC,SAAUjiB,GACR,GAAI3O,KAAKk1B,UACqB,OAAxBl1B,KAAKuxB,eAAyB,CAChCvxB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,UAEpC,MAAMyF,EAAc,IAAI,IAAI1vB,IAAI+J,EAAMmgB,YAAYjvB,SAASgF,KAAIO,GAAQA,EAAK5F,OAC5EQ,KAAKuxB,eAAiB,CAAEC,QAAS7iB,EAAM6iB,QAAShyB,GAAI80B,GACpDt0B,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,GAAG,IAClE,CAAE4yB,OAAO,GAEb,CAEJ,EAEAvB,UAAWliB,GACL3O,KAAKk1B,UAEqB,OAAxBl1B,KAAKuxB,iBAGHvxB,KAAKgyB,aACPhyB,KAAKiyB,UAAW,GAGhBjyB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,GACpC7uB,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,GAAG,IAClE,CAAE4yB,OAAO,IAEXpyB,KAAKuxB,eAAiB,MAK9B,EAEAN,SAAUtiB,GACR,GAAI3O,KAAKk1B,WAAal1B,KAAK0rB,UAA6C,YAAjC1rB,KAAKuxB,gBAAgBC,SACX,IAA3C7iB,EAAMmgB,YAAY2D,cAAcC,OAAc,CAChD/jB,EAAMmgB,YAAYsB,iBAClBpwB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,OAEpC7uB,KAAKgyB,cAAe,EAEpB,MAAMnyB,EAAWG,KAAK6E,IAAIqtB,oBAAoBlyB,KAAKuxB,eAAeC,SAClExxB,KAAKuB,gBAAkB1B,EAASsF,QAAOC,GAAQA,EAAK5F,KAAOQ,KAAKuxB,eAAe/xB,GAAG,KAAI,GAElFQ,KAAKuB,iBAAiB5B,aACxBK,KAAK6E,IAAI0O,GAAG,YAAavT,KAAK2yB,QAC9B3yB,KAAK6E,IAAI0O,GAAG,UAAWvT,KAAK4yB,gBAEhC,CAEJ,EACAD,OAAQhkB,GAGN,GAAI3O,KAAKiyB,UAAYjyB,KAAKuB,gBAAiB,CACzC,MAAMiS,EAAQ,CACZjS,gBAAiBvB,KAAKuB,gBACtB+tB,OAAQttB,OAAOkmB,OAAOvZ,EAAM2gB,SAE9BtvB,KAAKsC,OAAO+D,OAAO,cAAemN,EAIpC,CACF,EACAof,eAAgBjkB,GACV3O,KAAKk1B,UAA2C,IAA/BvmB,EAAM8jB,cAAcC,SAEvC1yB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,UACpC7uB,KAAK6E,IAAI2pB,IAAI,YAAaxuB,KAAK2yB,QAG/B3yB,KAAKgyB,cAAe,EACpBhyB,KAAKiyB,UAAW,EAGhBjyB,KAAK6E,IAAI+pB,YAAYjuB,MAAMkuB,OAAS,GAChC7uB,KAAKuxB,gBACPvxB,KAAK6E,IAAIstB,gBACP,CAAExG,OAAQ3rB,KAAKuxB,eAAeC,QAAShyB,GAAIQ,KAAKuxB,eAAe/xB,GAAG,IAClE,CAAE4yB,OAAO,IAGbpyB,KAAKuxB,eAAiB,KACtBvxB,KAAK6E,IAAI2pB,IAAI,UAAWxuB,KAAK4yB,gBAEjC,EACA9B,eAAgBniB,GACV3O,KAAKk1B,WAAal1B,KAAK0rB,WACzB1rB,KAAKyxB,YAAYH,YAAc,CAAC3iB,EAAMmgB,YAAYQ,OAAOC,IAAK5gB,EAAMmgB,YAAYQ,OAAOE,KACvFxvB,KAAKyxB,YAAYL,QAAS,EAC1BpxB,KAAKyxB,YAAYG,QAAU5xB,KAAKuxB,eAAe/xB,GAC/CQ,KAAKyxB,YAAYE,QACf,CACW,eACA,aAGjB,EACApL,YAAa5X,GACX,MAAM6E,EAAQ,CACZ+gB,cAAe5lB,EAAMijB,QACrB7b,OAAQpH,EAAMoH,OACduZ,OAAQ3gB,EAAM2iB,aAEhBtxB,KAAKwhB,MAAM,eAAgBhO,GAC3BxT,KAAKyxB,YAAYL,QAAS,EAC1BpxB,KAAKyxB,YAAYhyB,KAAO,IAC1B,IE/JJ,IAXgB,OACd,GACA,GH6OoB,IG3OpB,EACA,KACA,WACA,MAI8B,QClB0F,GCiB1H,CAEEG,KAAM,MACNgC,WAAY,CACV0zB,OAAM,MACNC,qBAAoB,MACpBC,gBAAe,MACftH,gBAAe,MACfuH,cAAa,GACbC,YAAW,GACXC,YAAW,GACXC,YAAW,GACXC,UAAS,GACTC,SAAQ,GACRC,MAAK,IAEPl0B,MAAO,CACLkkB,cAAe,CACbtmB,KAAMqC,MACNC,QAAS,IAAM,IAEjB0kB,KAAM,CACJhnB,KAAM0nB,OACNplB,QAAS,OAIb+T,OAAQ,CAAC,gBACT1T,KAAK,KACI,CACL6nB,gBAAiB,KACjB1oB,gBAAiB,KACjB8pB,cAAc,EACdN,aAAa,EACbW,UAAU,EACVsK,QAAS,KACTC,WAAY,KACZC,OAAQ,KACRtK,SAAU,KACVlB,UAAU,EACV4H,aAAc,CAAE9yB,GAAI,KAAMgyB,QAAS,MACnCtF,mBAAmB,IAIvB7pB,SAAU,CACR2nB,WAAc,OAAOhqB,KAAKsC,OAAOC,QAAQynB,QAAS,EAClDxnB,gBACE,OAAOxC,KAAKsC,OAAOC,QAAQC,aAC7B,EACA8kB,aACE,OAAOtnB,KAAKsC,OAAOC,QAAQ+kB,UAC7B,EACAyJ,cACE,OAAO/wB,KAAKsC,OAAOC,QAAQwuB,WAC7B,EACAoF,YACE,OAAOn2B,KAAKsC,OAAOC,QAAQ4zB,SAC7B,EACAC,WACE,OAAOp2B,KAAKsC,OAAOC,QAAQ6zB,QAC7B,EACAzO,aAAgB,OAAO3nB,KAAKsC,OAAOC,QAAQolB,UAAW,EACtDwD,iBAAoB,OAAOnrB,KAAKsC,OAAOC,QAAQ4oB,cAAe,EAC9DH,cAAiB,OAAOhrB,KAAKsC,OAAOC,QAAQ+e,MAAO,EACnDiB,kBAAqB,OAAOviB,KAAKsC,OAAOC,QAAQggB,eAAgB,GAElEtM,MAAO,CAELzT,gBACE+V,YAAW,IAAMvY,KAAK6E,IAAIwxB,UAAU,IACtC,EACA1O,WAAY1X,GACNA,GACFjQ,KAAK0rB,UAAW,EAChB1rB,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,2DAA6DP,WAAW,KAE3F/S,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEiN,KAAM,GAAIP,WAAW,GAEpE,EACA0T,KAAMxW,GACQ,OAARA,IACFjQ,KAAK0rB,UAAW,EAEpB,EACA1B,SAAU/Z,GACRjQ,KAAKs2B,iBACP,EAEAvF,YAAazI,EAAQC,GAGnB,GAFAvoB,KAAKsC,OAAO+D,OAAO,iBAAiB,GACpCrG,KAAKqrB,aAAgB/C,EAAOzoB,SAAS0F,OAAS,EAC1CvF,KAAKqrB,cACHrrB,KAAKsC,OAAOC,QAAQomB,aAAc,CACpC,MAAMuL,EAAS,IAAI,mBACnB5L,EAAOzoB,SAAS8H,SAAQyX,IACtB8U,EAAOqC,OAAOnX,EAAK1R,SAAS4jB,YAAW,IAEzCtxB,KAAK6E,IAAI2xB,UAAUtC,EAAQ,CACzBuC,QAAS,KAEb,CAEJ,EAEA/K,SAAUzb,GAGJjQ,KAAK6E,KAAK6xB,WAAWvU,OAAOhd,QAAOwkB,GAAsB,aAAbA,EAAMnqB,KAAmB+F,OAAS,IAC5E0K,EACFjQ,KAAK6E,IAAI8xB,kBAAkB,WAAY,aAAc,WAErD32B,KAAK6E,IAAI8xB,kBAAkB,WAAY,aAAc,QAG3D,EAEArP,WAAYrX,GACNA,IACFjQ,KAAKqrB,cAAe,EACpBrrB,KAAKksB,mBAAoB,EAE7B,EACAb,aAAcpb,GAERA,GAAOjQ,KAAK+wB,YAAYlxB,SAAS0F,OAAS,IAAMvF,KAAK2nB,YAAc3nB,KAAK+qB,YAC1E/qB,KAAK0rB,UAAW,EAEhB1rB,KAAK0rB,UAAW,GAEbzb,EAAMjQ,KAAK0rB,WACd1rB,KAAK0rB,UAAW,EAEpB,EAEA,iCAAkCzb,GAC5BjQ,KAAKsnB,aACPtnB,KAAK4rB,SAAW,KAAW,CAAC3b,EAAKA,IACjCjQ,KAAKsyB,aAAad,QAAU,QAC5BxxB,KAAKsyB,aAAa9yB,GAAKQ,KAAKm2B,UAAUx2B,WAAW+Q,MAErD,EACA,gCAAiCT,GAC3BjQ,KAAKsnB,aACPtnB,KAAK4rB,SAAW,KAAW,CAAC3b,EAAKA,IACjCjQ,KAAKsyB,aAAad,QAAU,QAC5BxxB,KAAKsyB,aAAa9yB,GAAKQ,KAAKo2B,SAASz2B,WAAW+Q,MAEpD,GAGFyJ,UACMna,KAAKsnB,aAActnB,KAAKqrB,cAAe,GAC3CrrB,KAAKiqB,gBA9Je,4FA+JpBjqB,KAAK4rB,SAAWpC,gBAAgBxpB,KAAKsC,OAAOC,QAAQmsB,YACtD,EACAsF,gBACEh0B,KAAKs2B,iBACP,EAEApgB,QAAS,CACPogB,kBACE,MAAMpM,EAASlqB,KAAK6E,IAAI+xB,YACxB52B,KAAKsC,OAAO+D,OAAO,kBAAmB,CACpC8jB,UAAW,CAACD,EAAOqF,IAAKrF,EAAOsF,KAC/BnF,QAASrqB,KAAK6E,IAAIwvB,WAEtB,EACA9J,YAAa5b,GACP3O,KAAK6E,MAAK7E,KAAK+qB,aAAc,GACjC,MAAMmJ,EAAS,IAAI,mBAEfl0B,KAAKsC,OAAOC,QAAQylB,MAAMnoB,SAAS0F,OAAS,EAC9CvF,KAAKsC,OAAOC,QAAQylB,MAAMnoB,SAAS8H,SAAQuI,IACzCgkB,EAAOqC,OAAO,CAACrmB,EAAKxC,SAAS4jB,YAAY,GACvCphB,EAAKxC,SAAS4jB,YAAYphB,EAAKxC,SAAS4jB,YAAY/rB,OAAS,IAAG,IAGpEvF,KAAKsC,OAAOC,QAAQywB,OAAOnzB,SAAS8H,SAAQuI,IAC1CgkB,EAAOqC,OAAO,CAACrmB,EAAKxC,SAAS4jB,YAAY,GACvCphB,EAAKxC,SAAS4jB,YAAYphB,EAAKxC,SAAS4jB,YAAY/rB,OAAS,IAAG,IAKnC,IAA/BvD,OAAOsJ,KAAK4oB,GAAQ3uB,QACtBoJ,EAAM9J,IAAI2xB,UAAUtC,EAAQ,CAC1BuC,QAAS,MAGb9nB,EAAM9J,IAAIgyB,UAAUC,IAAY,SAAUryB,EAAKsyB,GACzCtyB,EACF0E,QAAQ2F,MAAM,YAAarK,GAG7BkK,EAAM9J,IAAImyB,SAAS,QAASD,EAAO,CAAEE,KAAK,GAC5C,IAEAj3B,KAAK6E,IAAM8J,EAAM9J,IACjB8J,EAAM9J,IAAIqyB,WAAWC,UACrBn3B,KAAK+qB,aAAc,CACrB,EAEAN,KAAM9b,GAEJ,IAAK3O,KAAKksB,oBAEJlsB,KAAK0rB,UAAY1rB,KAAK0qB,WACxB1qB,KAAK6E,IAAI8xB,kBAAkB,WAAY,aAAc,WACrD32B,KAAK0qB,UAAW,GAEd1qB,KAAK0rB,WAAa1rB,KAAK2nB,YAAY,CAErC,MAAMja,EAAW,CAAC1N,KAAK4rB,SAASle,SAAS4jB,YAAY,GAAItvB,OAAOkmB,OAAOvZ,EAAMmgB,YAAYQ,SACzFtvB,KAAK4rB,SAAW,KAAWle,EAC7B,CAEJ,EACAkd,SAAUjc,GACR,GAAI3O,KAAK0rB,UACP,GAAkC,WAA9B1rB,KAAKsyB,aAAad,QAAsB,CAC1C,MAAM4F,EAAYp1B,OAAOkmB,OAAOvZ,EAAMmgB,YAAYQ,QAC5CjC,EAAU,CACdgK,QAASr3B,KAAKsyB,aAAa9yB,GAC3B83B,QAASt3B,KAAKg2B,QACduB,KAAMH,EACN5F,QAASxxB,KAAKi2B,YAGhBj2B,KAAKsC,OAAO+D,OAAO,cAAegnB,GAClCrtB,KAAK0rB,UAAW,EAEhB1rB,KAAKurB,YAAY,CAAEiG,QAAS,SAAUa,WAAY,CAAChF,EAAQiK,WAC3Dt3B,KAAKwrB,UAGP,MACE,GAAIxrB,KAAK0rB,UAAY1rB,KAAK2nB,YAAc3nB,KAAKg2B,QAAS,CACpD,MAAMjgB,EAAU/V,KAAKsyB,aAAa9yB,KAAOQ,KAAKsC,OAAOC,QAAQiwB,WACzD,qBACA,uBACE4E,EAAYp1B,OAAOkmB,OAAOvZ,EAAMmgB,YAAYQ,QAElDtvB,KAAKsC,OAAO+D,OAAO,eAAgB,CAAEmxB,OAAQx3B,KAAKsyB,aAAa9yB,GAAI+3B,KAAMH,EAAWrhB,OAAQA,GAC9F,OAIuC,IAArC/V,KAAK+wB,YAAYlxB,SAAS0F,QAAgBvF,KAAKsnB,aACjDtnB,KAAKsC,OAAO+D,OAAO,gBAAiBrE,OAAOkmB,OAAOvZ,EAAMmgB,YAAYQ,SACpEtvB,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEiN,KAAM,GAAIP,WAAW,IAGtE,EACA4X,UAAWhc,GAGL3O,KAAK0rB,WACP1rB,KAAK0qB,UAAW,EAChB1qB,KAAK6E,IAAI8xB,kBAAkB,WAAY,aAAc,QAEzD,EAEA7L,cAAenc,GAEkC,IAA3CA,EAAMmgB,YAAY2D,cAAcC,QAAgB1yB,KAAKg2B,UACvDh2B,KAAK0rB,UAAW,EAEpB,EACAJ,QAAS3c,GAKP,GAHA3O,KAAKg2B,QAAUrnB,EAAM0jB,WACjBryB,KAAK0rB,UAAY1rB,KAAK6E,IAAI8xB,kBAAkB,WAAY,aAAc,QAEtE,CAAC32B,KAAKsC,OAAOC,QAAQiwB,WAAYxyB,KAAKsC,OAAOC,QAAQgwB,aAAajoB,SAAStK,KAAKg2B,SAAU,CAC5F,MAAM5W,EAAOpf,KAAKsC,OAAOC,QAAQwuB,YAAYlxB,SAASsF,QAAOia,GAC3DA,EAAKzf,WAAW+Q,QAAU/B,EAAM0jB,aAClCryB,KAAK4rB,SAAW,KAAW,CAACxM,EAAK,GAAG1R,SAAS4jB,YAAalS,EAAK,GAAG1R,SAAS4jB,cAC3EtxB,KAAKsyB,aAAa9yB,GAAKQ,KAAKg2B,QAC5Bh2B,KAAKsyB,aAAad,QAAU7iB,EAAM6iB,QAElCxxB,KAAK0rB,UAAW,CAClB,CACF,EACAH,YAAa5c,GACX,GAAuB,WAAnBA,GAAO6iB,QAGT,GAFAxxB,KAAKi2B,WAAatnB,EAAM6iB,QACxBxxB,KAAKg2B,QAAUrnB,EAAM0jB,WAAW,GAC5BryB,KAAK0rB,SAEP1rB,KAAKksB,mBAAoB,MACpB,CACLlsB,KAAKksB,mBAAoB,EACzB,MAAM9M,EAAOpf,KAAKsC,OAAOC,QAAQmxB,cAAc7zB,SAASsF,QAAOia,GAC7DA,EAAKzf,WAAW+Q,QAAU1Q,KAAKg2B,UACjCh2B,KAAK4rB,SAAW,KAAW,CAACxM,EAAK,GAAG1R,SAAS4jB,YAAalS,EAAK,GAAG1R,SAAS4jB,cAC3EtxB,KAAK0rB,UAAW,EAChB1rB,KAAKksB,mBAAoB,EACzBlsB,KAAKsyB,aAAa9yB,GAAKQ,KAAKg2B,QAC5Bh2B,KAAKsyB,aAAad,QAAUxxB,KAAKi2B,UACnC,KAC4B,WAAnBtnB,GAAO6iB,UAChBxxB,KAAKi2B,WAAatnB,EAAM6iB,QACxBxxB,KAAKg2B,QAAUrnB,EAAM0jB,WAEzB,EACA7G,SAAU7c,GAER3O,KAAKg2B,QAAU,KACfh2B,KAAKi2B,WAAa,KACdj2B,KAAK0rB,WACP1rB,KAAK6E,IAAI8xB,kBAAkB,WAAY,aAAc,WACrD32B,KAAKksB,mBAAoB,EAE7B,EACAxF,aAAc/X,GAER,CAAC,aAAc,gBAAgBrE,SAASqE,EAAMoH,UAChD/V,KAAK0rB,UAAW,GAKK,yBAAjB/c,EAAMoH,QAAqC/V,KAAK0rB,UACpD1rB,KAAKwhB,MAAM,eAAgB7S,EAE/B,I,gBC7UA,GAAU,CAAC,EAEf,GAAQjM,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,GACA,GnC0KoB,ImCxKpB,EACA,KACA,WACA,MAI8B,QCnBhC,IAAI,GAAS,WACX,IAAIhD,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,SACA,CACEwS,MAAO,CACL7R,IAAK,GACL,eAAgB,MAChB,aAAc,KACd,0BAA0B,GAE5BqS,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,IACd,MAAO,CAACtT,EAAG,MAAOF,EAAIkU,GAAG,CAAEtT,MAAOZ,EAAI03B,aAAelkB,IACvD,KAGJjN,MAAO,CACLjG,MAAON,EAAIiV,KACXrB,SAAU,SAAUC,GAClB7T,EAAIiV,KAAOpB,CACb,EACAnT,WAAY,SAGhB,CACEV,EAAIsB,GAAG,KACPpB,EACE,SACA,CACEA,EACE,cACA,CAAES,YAAa,QACf,CACET,EAAG,iBAAkB,CACnBwS,MAAO,CACLgU,KAAM,OACNiR,SAAU33B,EAAI23B,SACd,gBAAiB,GACjBhG,KAAM,IAERprB,MAAO,CACLjG,MAAON,EAAImB,MACXyS,SAAU,SAAUC,GAClB7T,EAAImB,MAAQ0S,CACd,EACAnT,WAAY,YAIlB,GAEFV,EAAIsB,GAAG,KACPpB,EACE,iBACA,CACEA,EAAG,YACHF,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,OAAQyf,SAAU,IAClCpN,GAAI,CAAEC,MAAOzT,EAAImX,SAEnB,CACEnX,EAAIsB,GACF,aAAetB,EAAIuB,GAAGvB,EAAIsN,SAAS,WAAa,cAItDtN,EAAIsB,GAAG,KACPpB,EACE,QACA,CACEwS,MAAO,CAAEvR,MAAO,iBAAkByf,SAAU,IAC5CpN,GAAI,CAAEC,MAAOzT,EAAI43B,cAEnB,CACE53B,EAAIsB,GACF,aAAetB,EAAIuB,GAAGvB,EAAIsN,SAAS,UAAY,eAKvD,IAGJ,IAGJ,EAEJ,EAEA,GAAO1L,eAAgB,EC/FvB,MCFkI,GDElI,CACE/B,KAAM,cACNgC,WAAY,CAEZ,EACA0E,MAAO,CACL6oB,KAAM,SACNxgB,MAAO,gBAET9M,MAAO,CAAC,UACRiU,OAAQ,CAAC,gBACT1T,KAAK,KACI,CACLlB,MAAO,WACP8T,MAAM,EACN0iB,SAAU,KAIdr1B,SAAU,CACRo1B,cACE,MAAM,MAAEv2B,EAAK,KAAE8T,GAAShV,KAExB,MAAO,CACL,gBAAmBkB,EACnB,eAAgB,QAChB,eAAgB,MAChB,eAAgB,UAChB,OAAU,UACV,OAAU,OACV,MAAS,OACT,aAAgB8T,EAAO,MAAQ,MAC/B,WAAc,kCAElB,GAEFiB,MAAO,CAEL2hB,OAAQ3nB,GACiB,MAAnBjQ,KAAK43B,OAAO,KACd53B,KAAKkB,MAAQ,IAAImZ,OAAOra,KAAK43B,QAC7B53B,KAAKwhB,MAAM,eAAgBxhB,KAAK43B,OAAO3uB,MAAM,EAAG,KAE3B,MAAnBjJ,KAAK43B,OAAO,IACd53B,KAAKwhB,MAAM,eAAgBxhB,KAAK43B,OAAO3uB,MAAM,EAAG,GAEpD,GAIF+O,UAEE,MAAM1M,EAAOtJ,OAAOsJ,KAAKtL,KAAKoU,SAASC,MAAM4X,aAAahO,OAC1D,IAAI4Z,EAAU,GAEdvsB,EAAKzG,KAAK1D,IACR02B,EAAQv4B,KAAKU,KAAKoU,SAASC,MAAM4X,aAAahO,MAAM9c,IAC7B,IAAnB02B,EAAQtyB,SACVvF,KAAK03B,SAASp4B,KAAKu4B,GACnBA,EAAU,GACZ,IAIE,CAAC,UAAMhgB,EAAW,IAAIvN,SAAStK,KAAK43B,QACtC53B,KAAKkB,MAAQlB,KAAKoU,SAASC,MAAM4X,aAAahO,MAAMG,UAGxB,MAAnBpe,KAAK43B,OAAO,GACrB53B,KAAKkB,MAAQ,IAAImZ,OAAOra,KAAK43B,QAG7B53B,KAAKkB,MAAQlB,KAAK43B,MAEtB,EAEA1hB,QAAS,CAEPyhB,cACE33B,KAAKwhB,MAAM,eAAgBxhB,KAAKkB,OAEhClB,KAAKgV,MAAO,CACd,EACAkC,SACElX,KAAKkB,MAAQlB,KAAK43B,OAClB53B,KAAKgV,MAAO,CACd,IEtEJ,IAXgB,OACd,GACA,GHuFoB,IGrFpB,EACA,KACA,WACA,MAI8B,QClBhC,IAAI,GAAS,WACX,IAAIjV,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACjB,OAAOA,EACL,MACA,CACEA,EACE,SACA,CACEwS,MAAO,CACL,cAAe,MACf,WAAY,GACZO,WAAY,sBAEdC,YAAalT,EAAImT,GAAG,CAClB,CACE/R,IAAK,YACLgS,GAAI,UAAU,GAAEI,IACd,MAAO,CACLtT,EACE,QACAF,EAAIkU,GACF,CACExB,MAAO,CAAEyB,KAAM,GAAIhT,MAAO,UAAW,UAAW,IAChDqS,GAAI,CACFC,MAAO,SAAU8B,GACfvV,EAAI+3B,UAAY/3B,EAAI+3B,QACtB,IAGJvkB,GAEF,CACEtT,EAAG,SAAU,CACXF,EAAIsB,GACF,eACEtB,EAAIuB,GACFvB,EAAI+3B,SACA,sBACA,uBAEN,iBAIR,GAGN,KAGJxxB,MAAO,CACLjG,MAAON,EAAI+3B,SACXnkB,SAAU,SAAUC,GAClB7T,EAAI+3B,SAAWlkB,CACjB,EACAnT,WAAY,aAGhB,CACEV,EAAIsB,GAAG,KACPpB,EACE,SACAF,EAAIiB,GAAGjB,EAAIklB,OAAO,SAAUhV,EAAK9O,GAC/B,OAAOlB,EACL,cACA,CACEkB,IAAKA,EACLyR,MAAO,CAAE,YAAa3C,IAAQlQ,EAAIg4B,aAClCxkB,GAAI,CAAEC,MAAO,IAAMzT,EAAIyhB,MAAM,SAAUvR,KAEzC,CACEhQ,EAAG,oBAAqB,CACtBF,EAAIsB,GAAG,eAAiBtB,EAAIuB,GAAG2O,GAAO,iBAG1C,EAEJ,IACA,IAGJ,IAGJ,EAEJ,EAEA,GAAOtO,eAAgB,ECvFvB,MCFmI,GDEnI,CACE/B,KAAM,eACN0G,MAAO,CACL6oB,KAAM,cACNxgB,MAAO,UAGT9M,MAAO,CAAEojB,MAAO,CAAExlB,KAAMqC,MAAOC,QAAS,IAAM,IAAMg2B,YAAa,CAAEh2B,QAAS,IAAM,OAClF+T,OAAQ,CAAC,UACT1T,KAAK,KACI,CACL2yB,cAAe,EACf+C,UAAU,IAIdz1B,SAAU,CACV,EACA4T,MAAO,CACP,G,gBEVE,GAAU,CAAC,EAEf,GAAQvT,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,GACA,GJ8EoB,II5EpB,EACA,KACA,WACA,MAI8B,QCmBhC,GAlCc,CACZi1B,UAAoB,kCACpBC,aAAuB,qJAEvBC,cAAwB,8KAIxBC,QAAkB,qCAClBC,YAAsB,qKAItBC,YAAsB,4CACtBC,SAAmB,qCACnBC,gBAA0B,iKAE1BC,iBAA2B,6GAE3BC,WAAqB,yGAErB3I,YAAsB,8BACtB4I,KAAe,4FACfzQ,QAAkB,wGAElB1iB,OAAiB,4CACjBozB,QAAkB,4FAClBC,MAAgB,2BAChBxmB,SAAmB,4DACnBymB,iBAA2B,oJCjC2F,GCYxH,CAEEj5B,KAAM,OACNgC,WAAY,CAEVmmB,IAAG,GACH+Q,UAAS,GACTC,YAAW,GACXC,aAAY,IAEd52B,OACE,MAAO,CACLklB,WAAY,KACZvR,OAAQ,KACRuc,aAAc,KACd2G,aAAc,KACd1E,cAAe,KACf1e,YAAY,EACZiQ,aAAa,EACboT,WAAY,CAAC,EACbC,eAAgB,GAChBC,aAAc,KACdC,YAAa,KACbztB,QAAS,GACT8Z,UAAW,KACXnO,aAAc,KACdqR,WAAW,EACX0Q,aAAc,GACd7S,KAAM,KACN/B,UAAU,EACVQ,kBAAkB,EAClBO,aAAc,KACdlB,QAAS,GACTc,MAAO,CACLC,SAAU,CACRrV,IAAQjO,OAAOsJ,KAAKtL,KAAKk5B,YAAY5uB,SAAS2F,IAAiB,sBAC/DA,GAAe,KAARA,GAAuB,yBAC9BA,IAAQA,GAAKR,SAAS,OAAkB,6BAI5CkV,MAAO,GAIX,EACAtiB,SAAU,CACR0jB,gBAAmB,OAAO/lB,KAAKsC,OAAOC,QAAQwjB,aAAc,EAC5DC,iBAAoB,OAAOhmB,KAAKsC,OAAOC,QAAQyjB,cAAe,EAC9DhC,WAAc,OAAOliB,MAAM2F,QAAQzH,KAAKk5B,YAAcl5B,KAAKk5B,WAAW3zB,OAAS,CAAE,EACjFyf,oBACE,MAAI,CAAC,KAAM,QAAQ1a,SAAStK,KAAKymB,MACxBzmB,KAAKsC,OAAOC,QAAQyiB,kBAAkBhlB,KAAKymB,MAE3C,CAAC,CAEZ,EAEAtC,WACE,MAAO,CAAC,iBACN,iBACA,iBACA,kBACA,kBACA,uBACA,yBACA,qBACA,uBACA,kBACA,gBAAgB7Z,SAAStK,KAAK+V,OAClC,GAEFE,MAAO,CACLJ,WAAY5F,GAENA,GAAOjQ,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEiN,KAAM,GAAIP,WAAW,IAC3E/S,KAAK0kB,UAAW,EAChB1kB,KAAKklB,kBAAmB,CAC1B,GAGF/K,UACEna,KAAKsnB,WAAatnB,KAAKsC,OAAOC,QAAQ+kB,WACtCtL,OAAOud,iBAAiB,WAAY/S,IACnB,YAAVA,EAAErlB,KAAwBnB,KAAK6V,YAAiB7V,KAAK8lB,aACxD9lB,KAAKsC,OAAO+D,OAAO,mBACrB,GAEJ,EAEA6P,QAAS,CACPsO,YAAa9T,GAEX,IAAIV,EAAOhQ,KAAKk5B,WAEZlpB,EAAKzK,QAAU,IACjByK,EAAOA,EAAKU,IAGd,MAAMpF,EAAOtJ,OAAOsJ,KAAK0E,GAAM7K,QAAOhE,IAAQ6O,EAAK7O,GAAKiP,WAAUuH,OASlE,OARArM,EAAKhM,QAAQ0C,OAAOsJ,KAAK0E,GAAM7K,QAAOhE,GAAO6O,EAAK7O,GAAKiP,WAAUuH,QACjDrM,EAAK7F,QACnB,CAACwL,EAAK9P,KACJ8P,EAAI9P,GAAO6O,EAAK7O,GACT8P,IAET,CAAC,EAGL,EAEAgV,oBAAqBtX,GACA,UAAfA,EAAMlP,KACRO,KAAKsC,OAAO+D,OAAO,sBAAuBsI,EAAMvM,MACxB,WAAfuM,EAAMlP,MACfO,KAAKsC,OAAO+D,OAAO,qBAAsBsI,EAAMvM,KAEnD,EAEAmkB,YAAa5X,GAEX,GADA3O,KAAK+V,OAASpH,EAAMoH,OACA,mBAAhB/V,KAAK+V,OACP/V,KAAKk5B,WAAa1P,gBAAgBxpB,KAAKsC,OAAOC,QAAQi3B,gBACtDx5B,KAAK4oB,UAAYja,EAAMia,UACvB5oB,KAAK6V,YAAa,OACb,GAAoB,oBAAhB7V,KAAK+V,OAA8B,CAC5C/V,KAAKs5B,aAAe3qB,EAAMka,QAC1B,MAAM9Y,EAAa,CAAC,QAAS,SAAU,IAAK,IAAK,gBAAiB,WAC5DD,EAAiB9P,KAAKsC,OAAOC,QAAQuN,eACrCjQ,EAAW2pB,gBAAgBxpB,KAAKsC,OAAOC,QAAQylB,MAAMnoB,SAASsF,QAClE+K,GAAQlQ,KAAKs5B,aAAahvB,SAAS4F,EAAKvQ,WAAWsoB,YAErDjoB,KAAKk5B,YAAa,QAAar5B,EAAUiQ,EAAgBC,GACzD/P,KAAK4oB,UAAYja,EAAMia,UACvB5oB,KAAK6V,YAAa,CACpB,MAAO,GAAoB,mBAAhB7V,KAAK+V,OAA6B,CAE3C/V,KAAKi5B,aAAetqB,EAAMpN,gBAAgB5B,WAC1C,MAAMoQ,EAAa,CAAC,IAAK,IAAK,QAAS,gBAAiB,WAClDD,EAAiB9P,KAAKsC,OAAOC,QAAQuN,eACrCjQ,EAAWG,KAAKsC,OAAOC,QAAQkuB,YAAY5wB,SAASsF,QACvD+K,GAASA,EAAKvQ,WAAW+Q,QAAU1Q,KAAKi5B,aAAavoB,QAExD1Q,KAAKk5B,YAAa,QAAar5B,EAAUiQ,EAAgBC,GACzD/P,KAAK4oB,UAAYja,EAAMia,UACvB5oB,KAAK6V,YAAa,CACpB,MAAO,GAAoB,oBAAhB7V,KAAK+V,OACd/V,KAAKi5B,aAAetqB,EAAM4lB,cAC1Bv0B,KAAKk5B,WAAal5B,KAAKi5B,aAAap0B,KAAI40B,GAAUz5B,KAAKsC,OAAOC,QAAQm3B,WAAWD,KACjFz5B,KAAKukB,QAAUvkB,KAAKsC,OAAOC,QAAQo3B,eAAe35B,KAAKi5B,cACvDtqB,EAAM4lB,cAAc5sB,SAAQ8xB,IACtBz5B,KAAKsC,OAAOC,QAAQq3B,YAAY1rB,IAAIurB,KACtCz5B,KAAKi5B,aAAa35B,KAAKm6B,GACvBz5B,KAAKk5B,WAAW55B,KAAKU,KAAKsC,OAAOC,QAAQs3B,mBAAmBJ,IAC5Dz5B,KAAKukB,QAAQjlB,KAAKU,KAAKsC,OAAOC,QAAQo3B,eAAe35B,KAAKi5B,cAAc,IAC1E,IAEFj5B,KAAK6V,YAAa,OACb,GAAoB,iBAAhB7V,KAAK+V,OACd/V,KAAKi5B,aAAetqB,EAAM4lB,cAAc,GACxCv0B,KAAKk5B,WAAal5B,KAAKsC,OAAOC,QAAQ,eAAevC,KAAKi5B,cAC1Dj5B,KAAK6V,YAAa,OACb,GAAoB,yBAAhB7V,KAAK+V,OAAmC,CACjD,MAAMlW,EAAWG,KAAKsC,OAAOC,QAAQu3B,YAAYnrB,EAAM4a,SAAU5a,EAAMwG,OACvEnV,KAAK+5B,cAAgBl6B,EACrB,MAAMiQ,EAAiB9P,KAAKsC,OAAOC,QAAQ4mB,gBACrCpZ,EAAa,CAAC,QAAS,SAAU,IAAK,KAC5C/P,KAAKk5B,YAAa,QAAar5B,EAAUiQ,EAAgBC,GACzD/P,KAAK4oB,UAAYja,EAAMia,UACvB5oB,KAAK6V,YAAa,CACpB,MAAO,GAAoB,2BAAhB7V,KAAK+V,OAAqC,CACnD,MAAMlW,EAAWG,KAAKsC,OAAOC,QAAQoxB,cAAc9zB,SACnDG,KAAK+5B,cAAgBl6B,EACrB,MAAMiQ,EAAiB9P,KAAKsC,OAAOC,QAAQ4mB,gBACrCpZ,EAAa,CAAC,QAAS,SAAU,IAAK,KAC5C/P,KAAKk5B,YAAa,QAAar5B,EAAUiQ,EAAgBC,GACzD/P,KAAK4oB,UAAYja,EAAMia,UACvB5oB,KAAK6V,YAAa,CACpB,MAAO,GAAoB,uBAAhB7V,KAAK+V,OAAiC,CAC/C,MAAMlW,EAAWG,KAAKsC,OAAOC,QAAQ,iBAAiBoM,EAAM4a,SAAU5a,EAAMwG,OAC5EnV,KAAK+5B,cAAgBl6B,EACrB,MAAMiQ,EAAiB9P,KAAKsC,OAAOC,QAAQ,sBACrCwN,EAAa,CAAC,SACpB/P,KAAKk5B,YAAa,QAAar5B,EAAUiQ,EAAgBC,GACzD/P,KAAK4oB,UAAYja,EAAMia,UACvB5oB,KAAK6V,YAAa,CACpB,MAAO,GAAoB,yBAAhB7V,KAAK+V,OAAmC,CACjD,MAAMlW,EAAWG,KAAKsC,OAAOC,QAAQ,mBAAmB1C,SACxDG,KAAK+5B,cAAgBl6B,EACrB,MAAMiQ,EAAiB9P,KAAKsC,OAAOC,QAAQ,sBACrCwN,EAAa,CAAC,SACpB/P,KAAKk5B,YAAa,QAAar5B,EAAUiQ,EAAgBC,GACzD/P,KAAK4oB,UAAYja,EAAMia,UACvB5oB,KAAK6V,YAAa,CACpB,MAAO,GAAI,CAAC,iBAAkB,mBAAmBvL,SAAStK,KAAK+V,QAAS,CACtE/V,KAAKsyB,aAAe3jB,EAAMpN,gBAAgB5B,WAGtB,mBAAhBK,KAAK+V,OACP/V,KAAKk5B,WAAal5B,KAAKsC,OAAOC,QAAQwuB,YAAYlxB,SAASsF,QACxDia,GAASA,EAAKzf,WAAW+Q,QAAU1Q,KAAKsyB,aAAa5hB,QAC/B,oBAAhB1Q,KAAK+V,SACd/V,KAAKk5B,WAAal5B,KAAKsC,OAAOC,QAAQmxB,cAAc7zB,SAASsF,QAC1Dia,GAASA,EAAKzf,WAAW+Q,QAAU1Q,KAAKsyB,aAAa5hB,SAE1D1Q,KAAKk5B,WAAal5B,KAAKk5B,WAAW,GAAGv5B,WAErC,MAAMoQ,EAAa,CAAC,QAAS,eACvBiqB,EAAWh4B,OAAOsJ,KAAKtL,KAAKk5B,YAC/BzzB,QAAO,CAACwL,EAAK9P,KACZ8P,EAAI9P,GAAO,CACTd,MAAOL,KAAKk5B,WAAW/3B,GACvBiP,SAAUL,EAAWzF,SAASnJ,GAC9BkP,aAAa,GAERY,IACN,CAAC,GACNjR,KAAKk5B,WAAac,EAClBh6B,KAAK6V,YAAa,CACpB,KAAW,CAAC,kBAAmB,iBAC7B,YAAa,cAAe,gBAAiB,sBAAsBvL,SAAStK,KAAK+V,SACjF/V,KAAKsyB,aAAe3jB,EAAMpN,gBAAgB5B,WAC1CK,KAAKikB,eACI,CAAC,kBAAmB,qBAAqB3Z,SAAStK,KAAK+V,SAChE/V,KAAKi5B,aAAetqB,EAAMpN,gBAAgB5B,WAC1CK,KAAKm5B,eAAiBxqB,EAAM2gB,OAC5BtvB,KAAKikB,eACI,CAAC,uBAAwB,yBAA0B,gBAAgB3Z,SAAStK,KAAK+V,SAC1F/V,KAAKu0B,cAAgB5lB,EAAM4lB,cAC3Bv0B,KAAKm5B,eAAiBxqB,EAAM2gB,OAC5BtvB,KAAKikB,eACI,CAAC,YAAa,cAAe,aAAc,gBAAgB3Z,SAAStK,KAAK+V,SAClF/V,KAAKsyB,aAAe3jB,EAAMpN,gBAC1BvB,KAAKm5B,eAAiBxqB,EAAM2gB,OAC5BtvB,KAAKikB,eACoB,cAAhBjkB,KAAK+V,SACd/V,KAAKu0B,cAAgB5lB,EAAM4lB,cAC3Bv0B,KAAKm5B,eAAiBxqB,EAAM2gB,OAC5BtvB,KAAKikB,cAET,EAEAA,cAGE,OADAjkB,KAAK6V,YAAa,EACV7V,KAAK+V,QACX,IAAK,kBACH/V,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAEisB,aAActyB,KAAKsyB,eACzD,MACF,IAAK,iBACHtyB,KAAKsC,OAAO+D,OAAO,kBAAmB,CAAEisB,aAActyB,KAAKsyB,eAC3D,MACF,IAAK,cACHtyB,KAAKsC,OAAO+D,OAAO,aAAc,CAAEisB,aAActyB,KAAKsyB,eACtD,MACF,IAAK,iBACHtyB,KAAKsC,OAAO+D,OAAO,eAAgB,CAAE4zB,eAAgBj6B,KAAKi5B,aAAavoB,MAAO7C,KAAM7N,KAAKk5B,aACzF,MACF,IAAK,iBACHl5B,KAAKsC,OAAO+D,OAAO,eAAgB,CAAE6zB,eAAgBl6B,KAAKsyB,aAAa5hB,MAAO7C,KAAM7N,KAAKk5B,aACzF,MACF,IAAK,iBAEEl5B,KAAKk5B,WAAWjR,QAAQ5nB,QAAUL,KAAKsC,OAAOC,QAAQ+kB,YAC3DtnB,KAAKsC,OAAOC,QAAQwkB,OAAOzc,SAAStK,KAAKk5B,WAAWjR,QAAQ5nB,SAE1DL,KAAK4oB,WAAY,EACjB5oB,KAAKsnB,WAAa,KAClBtnB,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE0gB,OAAQ,KAAM4B,cAAc,IAClE3oB,KAAK+V,OAAS,KACd/V,KAAKsC,OAAO+D,OAAO,qBAAsB,CACvCiN,KAAe,sDACfP,WAAW,EACX7R,MAAO,kBAGXlB,KAAKsC,OAAO+D,OAAO,eAAgBrG,KAAKk5B,YACgB,IAApDl5B,KAAKsC,OAAOC,QAAQwuB,YAAYlxB,SAAS0F,QAC3CvF,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,oCAAsCP,WAAW,IAEtE,MACF,IAAK,kBACH/S,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAEizB,aAAct5B,KAAKs5B,aAAczrB,KAAM7N,KAAKk5B,aAClF,MACF,IAAK,aACHl5B,KAAKsC,OAAO+D,OAAO,aAAcrG,KAAKo5B,cACtC,MACF,IAAK,kBACHp5B,KAAKsC,OAAO+D,OAAO,gBAAiB,CAClC4yB,aAAcj5B,KAAKi5B,aACnB3J,OAAQtvB,KAAKm5B,eACb9K,MAAO,gBAET,MACF,IAAK,oBACHruB,KAAKsC,OAAO+D,OAAO,gBAAiB,CAClC4yB,aAAcj5B,KAAKi5B,aACnB3J,OAAQtvB,KAAKm5B,eACb9K,MAAO,gBAET,MACF,IAAK,gBACHruB,KAAKsC,OAAO+D,OAAO,mBAAoB,CAAEisB,aAActyB,KAAKsyB,eAC5D,MACF,IAAK,kBACHtyB,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE4zB,eAAgBj6B,KAAKi5B,aAAcprB,KAAM7N,KAAKk5B,aACpF,MACF,IAAK,uBACHl5B,KAAKsC,OAAO+D,OAAO,iBAAkB,CAAE0zB,cAAe/5B,KAAK+5B,cAAelsB,KAAM7N,KAAKk5B,aAErF,MACF,IAAK,yBACHl5B,KAAKsC,OAAO+D,OAAO,iBAAkB,CACnC0zB,cAAe/5B,KAAKsC,OAAOC,QAAQoxB,cAAc9zB,SACjDgO,KAAM7N,KAAKk5B,aAGb,MACF,IAAK,qBACHl5B,KAAKsC,OAAO+D,OAAO,mBAAoB,CAAE0zB,cAAe/5B,KAAK+5B,cAAelsB,KAAM7N,KAAKk5B,aACvF,MACF,IAAK,uBACHl5B,KAAKsC,OAAO+D,OAAO,mBAAoB,CACrC0zB,cAAe/5B,KAAKsC,OAAOC,QAAQ,mBAAmB1C,SACtDgO,KAAM7N,KAAKk5B,aAEb,MACF,IAAK,kBACHl5B,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE6zB,eAAgBl6B,KAAKsyB,aAAa5hB,MAAO7C,KAAM7N,KAAKk5B,aAC1F,MACF,IAAK,eACHl5B,KAAKsC,OAAO+D,OAAO,kBAAmB,CAAE4zB,eAAgBj6B,KAAKi5B,aAAcprB,KAAM7N,KAAKk5B,aACtF,MACF,IAAK,uBACHl5B,KAAKsC,OAAO+D,OAAO,oBAAqB,CACtCkuB,cAAev0B,KAAKu0B,cACpBjF,OAAQtvB,KAAKm5B,eACb9K,MAAO,WAET,MACF,IAAK,yBACHruB,KAAKsC,OAAO+D,OAAO,oBAAqB,CACtCkuB,cAAev0B,KAAKu0B,cACpBjF,OAAQtvB,KAAKm5B,eACb9K,MAAO,iBAET,MACF,IAAK,YACHruB,KAAKsC,OAAO+D,OAAO,WAAY,CAAEisB,aAActyB,KAAKsyB,aAAchD,OAAQtvB,KAAKm5B,iBAC/E,MACF,IAAK,cACHn5B,KAAKsC,OAAO+D,OAAO,aAAc,CAAEisB,aAActyB,KAAKsyB,aAAchD,OAAQtvB,KAAKm5B,iBACjF,MACF,IAAK,aACHn5B,KAAKsC,OAAO+D,OAAO,YAAa,CAAEisB,aAActyB,KAAKsyB,aAAchD,OAAQtvB,KAAKm5B,iBAChF,MACF,IAAK,eACHn5B,KAAKsC,OAAO+D,OAAO,cAAe,CAAEisB,aAActyB,KAAKsyB,aAAchD,OAAQtvB,KAAKm5B,iBAClF,MACF,IAAK,qBACHn5B,KAAKsC,OAAO+D,OAAO,oBAAqB,CAAEisB,aAActyB,KAAKsyB,eAC7D,MACF,IAAK,eACHtyB,KAAKsC,OAAO+D,OAAO,cAAe,CAAEkuB,cAAev0B,KAAKu0B,gBACxD,MACF,IAAK,eACHv0B,KAAKsC,OAAO+D,OAAO,eAAgBrG,KAAKo5B,cACxC,MACF,IAAK,YACHp5B,KAAKsC,OAAO+D,OAAO,cAAe,CAAEkuB,cAAev0B,KAAKu0B,gBACxD,MACF,IAAK,gBACHv0B,KAAKsC,OAAO+D,OAAO,iBAAkBrG,KAAKo5B,cAEzCp5B,KAAK4oB,YACR5oB,KAAKkmB,iBACLlmB,KAAK4oB,WAAY,EAErB,EACA1E,eACElkB,KAAK6V,YAAa,EACb7V,KAAK4oB,YACR5oB,KAAKmmB,eACLnmB,KAAK4oB,WAAY,EAErB,EACA1C,iBAEElmB,KAAKsC,OAAO+D,OAAO,kBAEnBrG,KAAKsnB,WAAa,KAClBtnB,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE0gB,OAAQ,KAAM4B,cAAc,IAClE3oB,KAAK+V,OAAS,KAEd/V,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,uBAAyBP,WAAW,EAAM7R,MAAO,WACtE,EACAilB,eAGEnmB,KAAKsnB,WAAa,KAClBtnB,KAAKsC,OAAO+D,OAAO,gBAAiB,CAAE0gB,OAAQ,KAAM4B,cAAc,IAClE3oB,KAAK+V,OAAS,KAEd/V,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEiN,KAAe,uBAAyBP,WAAW,GAChG,EACAqT,aAAc+T,GAEZn6B,KAAKo5B,aAAee,EAAU5S,KAC9BvnB,KAAK4L,QAAUuuB,EAAUvuB,QACzB5L,KAAK+V,OAASokB,EAAUpkB,OACxB/V,KAAK6V,YAAa,CACpB,EAEA+P,YACM5lB,KAAKsC,OAAOC,QAAQwkB,OAAOzc,SAAStK,KAAK0lB,WAC3C1lB,KAAKuX,aAAe,iBAEpBvX,KAAKsC,OAAO+D,OAAO,YAAa,CAAE0gB,OAAQ/mB,KAAKq5B,YAAaz5B,KAAMI,KAAK0lB,YACvE1lB,KAAKuX,aAAe,GACpBvX,KAAK8lB,aAAc,EAEvB,EAEAO,YAAa8T,GACXn6B,KAAKq5B,YAAcc,EAAU5S,KAC7BvnB,KAAK4L,QAAUuuB,EAAUvuB,QAEzB5L,KAAK0lB,UAAYyU,EAAU5S,KAAO,QAClCvnB,KAAK8lB,aAAc,CACrB,EAEAD,cACE7lB,KAAKuX,aAAe,GACpBvX,KAAK8lB,aAAc,CACrB,EACAP,WACE,IAAIvV,EAAO,CAAC,EAQZ,GANEA,EADElO,MAAM2F,QAAQzH,KAAKk5B,YACd1P,gBAAgBxpB,KAAKk5B,WAAW,IAEhC1P,gBAAgBxpB,KAAKk5B,YAIzBl3B,OAAOsJ,KAAK0E,GAAM1F,SAAStK,KAAKylB,cAAwC,KAAtBzlB,KAAKylB,cACzDzlB,KAAKylB,aAAiBzlB,KAAKylB,cAAchW,SAAS,MAEnDzP,KAAKylB,aAAe,OACf,CAEL,GAAI3jB,MAAM2F,QAAQzH,KAAKk5B,YAAa,CAClC,MAAMrB,EAAUrO,gBAAgBxpB,KAAKk5B,YACrCrB,EAAQlwB,SAAQK,IAGVhG,OAAOsJ,KAAKtD,GAAI,GAAGyH,SAAS,MACzBzP,KAAKsC,OAAOC,QAAQ63B,eAAe9vB,SAAStK,KAAKylB,gBACpDzd,EAAGhI,KAAKylB,aAAe,MAAQ,CAAErV,UAAU,EAAOC,aAAa,EAAOhQ,WAAOwX,IAG/E7P,EAAGhI,KAAKylB,cAAgB,CAAErV,UAAU,EAAOC,aAAa,EAAOhQ,WAAOwX,EACxE,IAEF7X,KAAKk5B,WAAa,KAClBl5B,KAAKk5B,WAAarB,CACpB,MACE7nB,EAAKhQ,KAAKylB,cAAgB,CAAErV,UAAU,EAAOC,aAAa,EAAOhQ,WAAOwX,GACxE7X,KAAKk5B,WAAa,CAAC,EACnBl5B,KAAKk5B,WAAalpB,EAGhB,CAAC,iBAAkB,iBAAkB,mBAAmB1F,SAAStK,KAAK+V,QACxE/V,KAAKsC,OAAO+D,OAAO,eAAgB,CAAEzG,KAAMI,KAAKylB,aAAc4U,MAAO,UAC5D,CAAC,kBAAmB,uBAAwB,0BAA0B/vB,SAAStK,KAAK+V,QAC7F/V,KAAKsC,OAAO+D,OAAO,mBAAoB,CAAEzG,KAAMI,KAAKylB,aAAc4U,MAAO,WAChD,mBAAhBr6B,KAAK+V,OACd/V,KAAKsC,OAAO+D,OAAO,eAAgB,CAAEzG,KAAMI,KAAKylB,aAAc4U,MAAO,UAC5C,oBAAhBr6B,KAAK+V,OACd/V,KAAKsC,OAAO+D,OAAO,mBAAoB,CAAEzG,KAAMI,KAAKylB,aAAc4U,MAAO,WAChE,CAAC,qBAAsB,wBAAwB/vB,SAAStK,KAAK+V,SACtE/V,KAAKsC,OAAO+D,OAAO,kBAAmBrG,KAAKylB,cAE7CzlB,KAAKylB,aAAe,KACpBzlB,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,cAAgBP,WAAW,EAAM7R,MAAO,WAC7D,CACF,EACAkkB,YAAakV,GACX,IAAItqB,EAAOwZ,gBAAgBxpB,KAAKk5B,YAE5Bp3B,MAAM2F,QAAQzH,KAAKk5B,aAEjBoB,EAAM7qB,SAAS,QACjB6qB,EAAQA,EAAMC,OAAO,EAAGD,EAAM/0B,OAAS,IAEzCyK,EAAOA,EAAK7K,QAAO6C,UAAaA,EAAGsyB,KACnCtqB,EAAOA,EAAK7K,QAAO6C,UAAaA,EAAGsyB,EAAQ,gBAGpCtqB,EAAKsqB,GAEdt6B,KAAKk5B,WAAa,CAAC,EACnBl5B,KAAKk5B,WAAalpB,EAEd,CAAC,iBAAkB,iBAAkB,mBAAmB1F,SAAStK,KAAK+V,QACxE/V,KAAKsC,OAAO+D,OAAO,kBAAmB,CAAEzG,KAAM06B,EAAOD,MAAO,UACnD,CAAC,kBAAmB,uBAAwB,0BAA0B/vB,SAAStK,KAAK+V,QAC7F/V,KAAKsC,OAAO+D,OAAO,sBAAuB,CAAEzG,KAAM06B,EAAOD,MAAO,WACvC,mBAAhBr6B,KAAK+V,OACd/V,KAAKsC,OAAO+D,OAAO,kBAAmB,CAAEzG,KAAM06B,EAAOD,MAAO,UACnC,oBAAhBr6B,KAAK+V,OACd/V,KAAKsC,OAAO+D,OAAO,sBAAuB,CAAEzG,KAAM06B,EAAOD,MAAO,WACvD,CAAC,qBAAsB,wBAAwB/vB,SAAStK,KAAK+V,SACtE/V,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEzG,KAAM06B,IAEnDt6B,KAAKsC,OAAO+D,OAAO,qBACjB,CAAEiN,KAAe,gBAAkBP,WAAW,EAAM7R,MAAO,WAC/D,EACAikB,sBAAuBmV,GACrB,MAAI,CAAC,iBAAkB,iBAAkB,kBAAmB,kBAAkBhwB,SAAStK,KAAK+V,QACnF/V,KAAKsC,OAAOC,QAAQi4B,uBAAuBlwB,SAASgwB,GAEpDt6B,KAAKsC,OAAOC,QAAQk4B,aAAanwB,SAASgwB,EAErD,EACA3U,qBACE3lB,KAAKklB,kBAAoBllB,KAAKklB,iBAE1BllB,KAAKklB,iBACPllB,KAAKsC,OAAO+D,OAAO,qBAAsB,CACvCiN,KAAe,yFACfP,WAAW,EACX7R,MAAO,YAGTlB,KAAKsC,OAAO+D,OAAO,qBAAsB,CAAEiN,KAAM,GAAIP,WAAW,GAEpE,I,eC5hBA,GAAU,CAAC,EAEf,GAAQrQ,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,GACA,EtE+jBoB,IsE7jBpB,EACA,KACA,WACA,MAI8B,Q,gBCZhC,MAAM23B,GAAgB,IAAM,+BACtBC,GAAY,IAAM,+BAClBC,GAAM,IAAM,8BACZC,GAAgB,IAAM,+BACtBC,GAAc,IAAM,+BAG1B,UAAI3e,IAAI,MAGR,MAEMkD,GAAS,IAAI,KAAO,CACxB0b,qBAAsB,SACtBtU,KAAM,UACNnO,KAVe,2BAWf8B,OAAQ,CACN,CACE1O,KAAM,IACN9L,KAAMo7B,EAAOp7B,KACbq7B,UAAWD,EACX9mB,KAAM,qBACNuF,MAAgB,UAElB,CACE/N,KAAM,iBACN9L,KAAM86B,GAAc96B,KACpBq7B,UAAWP,GACXxmB,KAAM,wBACNuF,MAAgB,gBAChByhB,YAAa,CAACC,EAAIx2B,EAAMy2B,KACjB9b,GAAA,EAAM/c,QAAQuS,SAQjBsmB,IAPA9b,GAAA,EAAMjZ,OAAO,qBACX,CACEiN,KAAe,oBACfP,WAAW,EACX7R,MAAO,SAIb,GAGJ,CACEwK,KAAM,QACN9L,KAAMy7B,GAAKz7B,KACXq7B,UAAWI,GACXnnB,KAAM,kBACNuF,MAAgB,OAElB,CACE/N,KAAM,OACN9L,KAAMg7B,GAAIh7B,KACVq7B,UAAWL,GACX1mB,KAAM,mBACNuF,MAAgB,qBAChByhB,YAAa,CAACC,EAAIx2B,EAAMy2B,KAClB9b,GAAA,EAAM/c,QAAQ,yBAChB+c,GAAA,EAAMjZ,OAAO,qBACX,CACEiN,KAAe,yCACfP,WAAW,EACX7R,MAAO,UAGXk6B,GACF,GAGJ,CACE1vB,KAAM,aACN9L,KAAM+6B,GAAU/6B,KAChBq7B,UAAWN,GACXzhB,OAAQ,OACRhF,KAAM,0BACNuF,MAAgB,eAElB,CACE/N,KAAM,iBACN9L,KAAMi7B,GAAcj7B,KACpBq7B,UAAWJ,GACX3mB,KAAM,gBACNuF,MAAgB,oBAElB,CACE/N,KAAM,eACN9L,KAAMk7B,GAAYl7B,KAClBq7B,UAAWH,GACX5mB,KAAM,eACNuF,MAAgB,gBAGlB,CACE/N,KAAM,YACN9L,KAAM,WACNs7B,YAAa,CAACC,EAAIx2B,EAAMy2B,KACtB,MAAME,EAAUtf,OAAOuf,SAASpnB,KAChC3J,EAAA,EAAKA,KAAKgxB,wBAAwBF,GAClCF,EAAK,IAAG,GAGZ,CACE1vB,KAAM,WACN9L,KAAM,UACNs7B,YAAa,CAACC,EAAIx2B,EAAMy2B,KACtBA,EAAK,IAAG,MAQhB/b,GAAOoc,YAAW,CAACN,EAAIx2B,EAAMy2B,MACrB,CAAC,SAAU,WAAY,WAAW9wB,SAAS6wB,EAAGv7B,OAChD0f,GAAA,EAAM/c,QAAQm5B,mBAChBN,EAAK,CAAEx7B,KAAM,WACRw7B,GAAK,IAGd,W,6JCvHA,MACM,EAAQ,EAAQ,MAEtB,GACEO,MAAO,CACL3T,MAAO,CAAC,EACRV,WAAY,KACZyJ,YAAa,CAAC,EACdN,YAAa,CAAC,EACd+I,eAAgB,CAAC,EACjBnL,MAAO,CAAC,EACRM,YAAa,CAAC,EACdD,YAAa,CAAC,EACd3H,OAAQ,GACRhB,cAAe,GACf6V,QAAS,CAAC,EACVC,QAAS,CAAC,EACVlT,cAAc,EACd2D,UAAW,GACXwP,kBAAmB,SACnBhsB,eAAgB,GAChBisB,eAAgB,GAChBC,kBAAmB,CACjB,CAAEp8B,KAAM,QAASH,KAAM,UACvB,CAAEG,KAAM,IAAKH,KAAM,UACnB,CAAEG,KAAM,IAAKH,KAAM,UACnB,CAAEG,KAAM,UAAWH,KAAM,UACzB,CAAEG,KAAM,WAAYH,KAAM,UAC1B,CAAEG,KAAM,YAAaH,KAAM,UAC3B,CAAEG,KAAM,mBAAoBH,KAAM,UAClC,CAAEG,KAAM,aAAcH,KAAM,UAC5B,CAAEG,KAAM,cAAeH,KAAM,UAC7B,CAAEG,KAAM,SAAUH,KAAM,UACxB,CAAEG,KAAM,OAAQH,KAAM,UACtB,CAAEG,KAAM,UAAWH,KAAM,UACzB,CAAEG,KAAM,cAAeH,KAAM,UAC7B,CAAEG,KAAM,cAAeH,KAAM,UAC7B,CAAEG,KAAM,gBAAiBH,KAAM,UAC/B,CAAEG,KAAM,gBAAiBH,KAAM,UAC/B,CAAEG,KAAM,eAAgBH,KAAM,YAIlCw8B,UAAW,CACTC,UAAWP,EAAOtO,GAEhB,GADAsO,EAAM3T,MAAQwB,gBAAgB6D,GAC1B,CAAC,gCAAiC,aAAa/iB,SAASqxB,EAAM3T,MAAMtoB,IAAIC,WAAWC,MAAO,CAC5F,MAAM8uB,EAAc,IAAKiN,EAAM3T,OAC/B0G,EAAY7uB,SAAW,GACvB87B,EAAMjN,YAAcA,EAEpBiN,EAAMlL,YAAc/B,EAEpBiN,EAAM3T,MAAMnoB,SAAS8H,SAAQuI,GAAQA,EAAKxC,SAAS4jB,YAAcphB,EAAKxC,SAAS4jB,YAAYzsB,KACzFs3B,GAAUA,EAAOt3B,KAAIu3B,GAAS56B,KAAKC,MAAsB,IAAhBS,OAAOk6B,IAAoB,UACtEp8B,KAAKqG,OAAO,wBACZrG,KAAKqG,OAAO,aAEZrG,KAAKqG,OAAO,sBAAuBs1B,EAAM5U,QAEzC/mB,KAAKqG,OAAO,qBACd,MAASmF,MAAM,qCACjB,EAEA6wB,UAAWV,EAAOtO,GAEhB,GADAsO,EAAMtN,MAAQvnB,KAAKC,MAAMD,KAAKw1B,UAAUjP,IACpC,CAAC,gCAAiC,aAAa/iB,SAASqxB,EAAMtN,MAAM3uB,IAAIC,WAAWC,MAAO,CAC5F,MAAM+uB,EAAc,IAAKgN,EAAMtN,OAC/BM,EAAY9uB,SAAW,GACvB87B,EAAMhN,YAAcA,EACpBgN,EAAM5K,YAAcpC,EAEpBgN,EAAMtN,MAAMxuB,SAAS8H,SAAQyX,GAAQA,EAAK1R,SAAS4jB,YAAclS,EAAK1R,SAAS4jB,YAAYzsB,KACzFu3B,GAAS56B,KAAKC,MAAsB,IAAhBS,OAAOk6B,IAAoB,QAEjDp8B,KAAKqG,OAAO,qBACd,MAASmF,MAAM,qCACjB,EACA+wB,YAAaZ,GAEXA,EAAM3T,MAAMnoB,SAAW,GACvB87B,EAAMtN,MAAMxuB,SAAW,GACvB87B,EAAMrU,WAAa,KACnBqU,EAAM5U,OAAS,GACf4U,EAAM5V,cAAgB,EACxB,EACAyW,YAAab,EAAOtO,GAKlB,IAAK,MAAMnlB,KAAQmlB,EAAS,CAC1B,MAAM5f,EAAcvF,EAAKiC,QAAQtK,SAAS,GAAG6N,SAASjO,KACtD,GAAoB,eAAhBgO,EAA8B,CAChC,KAAI,QAAkBvF,EAAKiC,QAASwxB,EAAM3T,OAEnC,CACL,MAAMvjB,EAAM,IAAIwD,MAAe,+BAAkCC,EAAKwD,MAEtE,MADAjH,EAAI7E,KAAO,cACL6E,CACR,CALEzE,KAAKqG,OAAO,kBAAkB,EAAAiH,EAAA,IAAWpF,EAAKiC,QAASjC,EAAKwD,KAAM+B,GAMtE,MAAO,GAAoB,UAAhBA,EAAyB,CAClC,KAAI,QAAkBvF,EAAKiC,QAASwxB,EAAMtN,OAEnC,CACL,MAAM5pB,EAAM,IAAIwD,MAAe,+BAAkCC,EAAKwD,MAEtE,MADAjH,EAAI7E,KAAO,cACL6E,CACR,CALEzE,KAAKqG,OAAO,kBAAkB,EAAAiH,EAAA,IAAWpF,EAAKiC,QAASjC,EAAKwD,KAAM+B,GAMtE,CACF,CACF,EAEAgvB,eAAgBd,EAAOtO,GAErBA,EAAQxtB,SAAS8H,SAAQuI,GAAQA,EAAKxC,SAAS4jB,YAAcphB,EAAKxC,SAAS4jB,YAAYzsB,KACrFs3B,GAAUA,EAAOt3B,KAAIu3B,GAAS56B,KAAKC,MAAsB,IAAhBS,OAAOk6B,IAAoB,UAGtE/O,EAAQxtB,SAAS8H,SAAQuI,GAAQyrB,EAAM3T,MAAMnoB,SAASP,KAAK4Q,KAC3DlQ,KAAKqG,OAAO,wBACZrG,KAAKqG,OAAO,sBACZrG,KAAKqG,OAAO,aACZrG,KAAKqG,OAAO,sBAAuBs1B,EAAM5U,OAC3C,EACA2V,eAAgBf,EAAOtO,GAErBA,EAAQxtB,SAAS8H,SAAQyX,GAAQA,EAAK1R,SAAS4jB,YAAclS,EAAK1R,SAAS4jB,YAAYzsB,KACrFu3B,GAAS56B,KAAKC,MAAsB,IAAhBS,OAAOk6B,IAAoB,QAEjD/O,EAAQxtB,SAAS8H,SAAQyX,GAAQuc,EAAMtN,MAAMxuB,SAASP,KAAK8f,KAC3Dpf,KAAKqG,OAAO,wBACZrG,KAAKqG,OAAO,qBACd,EAEAs2B,mBAAoBhB,GAClB,IAAIiB,EAAS,IAAIh4B,IAAI,IACrB+2B,EAAM3T,MAAMnoB,SAAS8H,SAAQk1B,IAC3B76B,OAAOsJ,KAAKuxB,EAAQl9B,YAAYgI,SAAQxG,GAAOy7B,EAAO5M,IAAI7uB,IAAI,IAItCw6B,EAAMK,kBAAkBn3B,KAAIi4B,GAAQA,EAAKl9B,OACjD+H,SAAQo1B,GAAOH,EAAO5M,IAAI+M,KAC5CH,EAAS96B,MAAM6C,KAAKi4B,GACpBjB,EAAM7rB,eAAiB8sB,CACzB,EACAI,mBAAoBrB,GAClB,IAAIiB,EAAS,IAAIh4B,IAAI,IACrB+2B,EAAMtN,MAAMxuB,SAAS8H,SAAQk1B,IAC3B76B,OAAOsJ,KAAKuxB,EAAQl9B,YAAYgI,SAAQxG,GAAOy7B,EAAO5M,IAAI7uB,IAAI,IAGtC,CACxB,QACA,YACA,aACgBwG,SAAQo1B,GAAOH,EAAO5M,IAAI+M,KAC5CH,EAAS96B,MAAM6C,KAAKi4B,GACpBjB,EAAMI,eAAiBa,CACzB,EAEAK,aAActB,EAAOtO,GAEG,UAAlBA,EAAQgN,OACVsB,EAAM3T,MAAMnoB,SAASgF,KAAIqL,GAAQA,EAAKvQ,WAAW0tB,EAAQztB,MAAQ,OACjE+7B,EAAMlL,YAAY5wB,SAASgF,KAAIqL,GAAQA,EAAKvQ,WAAW0tB,EAAQztB,MAAQ,OACvE+7B,EAAM7rB,eAAexQ,KAAK+tB,EAAQztB,QAElC+7B,EAAMtN,MAAMxuB,SAASgF,KAAIua,GAAQA,EAAKzf,WAAW0tB,EAAQztB,MAAQ,OACjE+7B,EAAM5K,YAAYlxB,SAASgF,KAAIua,GAAQA,EAAKzf,WAAW0tB,EAAQztB,MAAQ,OAE3E,EACAs9B,gBAAiBvB,EAAOtO,GAEA,UAAlBA,EAAQgN,OACVsB,EAAM3T,MAAMnoB,SAASsF,QAAO+K,UAAeA,EAAKvQ,WAAW0tB,EAAQztB,QACnE+7B,EAAMlL,YAAY5wB,SAASsF,QAAO+K,UAAeA,EAAKvQ,WAAW0tB,EAAQztB,QACzE+7B,EAAM7rB,eAAiB6rB,EAAM7rB,eAAe3K,QAAOC,GAAQA,IAASioB,EAAQztB,SAE5E+7B,EAAMtN,MAAMxuB,SAASsF,QAAOia,UAAeA,EAAKzf,WAAW0tB,EAAQztB,QACnE+7B,EAAM5K,YAAYlxB,SAASsF,QAAOia,UAAeA,EAAKzf,WAAW0tB,EAAQztB,QAE7E,EACAu9B,oBAAqBxB,EAAOtO,GAE1BsO,EAAM5V,cAAgBsH,CACxB,EAEA+P,cAAezB,EAAOtO,GAEpBsO,EAAMrU,WAAa+F,EAAQtG,OAC3B4U,EAAMhT,aAAe0E,EAAQ1E,aAG7B,MAAMqR,EAAWlzB,KAAKC,MAAMD,KAAKw1B,UAAUX,EAAM3T,QACjDgS,EAASn6B,SAAWm6B,EAASn6B,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWsoB,UAAY0T,EAAMrU,aACvFqU,EAAMlL,YAAcuJ,EAEpBh6B,KAAKqG,OAAO,iBAAkB,CAAEgoB,MAAOsN,EAAMtN,QAC7CruB,KAAKqG,OAAO,oBACd,EAEAg3B,UAAW1B,EAAOtO,GAEhB,MAAMiQ,EAAS9T,gBAAgBmS,EAAM3T,OACrCsV,EAAOz9B,SAAWy9B,EAAOz9B,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWsoB,UAAYoF,EAAQtG,SAErF,IAAIwW,EAAeD,EAAOz9B,SAAS0F,OACnC,IAAK,MAAM2K,KAAQotB,EAAOz9B,SACxBqQ,EAAKvQ,WAAWsoB,QAAUoF,EAAQztB,KAElCsQ,EAAKxC,SAAS4jB,YAAYkM,UAE1BttB,EAAKvQ,WAAWoO,EAAI,CAACmC,EAAKvQ,WAAWqO,EAAGkC,EAAKvQ,WAAWqO,EAAIkC,EAAKvQ,WAAWoO,GAAG,GAE/EmC,EAAKvQ,WAAW89B,cAAgBF,EAChCA,GAAgB,EAEqB,IAAjCrtB,EAAKvQ,WAAWs4B,aAClB/nB,EAAKvQ,WAAWs4B,aAAe,EAE/B/nB,EAAKvQ,WAAWs4B,aAAe,EAGjC/nB,EAAKvQ,WAAW+Q,MAAQ,QAAU,EAAMoY,WAG1CwU,EAAOz9B,SAAS29B,UAChB7B,EAAM3T,MAAMnoB,SAASP,QAAQg+B,EAAOz9B,UACpCG,KAAKqG,OAAO,YACd,EACAq3B,eAAgB/B,EAAOtO,GAGrB,MAAMtf,EAAI4tB,EAAMlL,YAAY5wB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWoO,IAC3DC,EAAI2tB,EAAMlL,YAAY5wB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWqO,IAC3D2vB,EAAkB,IAAI/4B,IAAI,IAAImJ,KAAMC,IAEpCgsB,EAAWlzB,KAAKC,MAAMD,KAAKw1B,UAAUjP,EAAQgB,QACnD2L,EAASn6B,SAAWm6B,EAASn6B,SAASsF,QAAOia,GAAQue,EAAgBzvB,IAAIkR,EAAKzf,WAAW+Q,SACzFirB,EAAM5K,YAAciJ,CACtB,EAEA4D,kBAAmBjC,GACjB,MAAM3rB,EAAO,CAAC,EACRD,EAAa,CAAC,QAAS,SAAU,IAAK,IAAK,iBAEjD,GAA0C,IAAtC4rB,EAAMlL,YAAY5wB,SAAS0F,OAAc,CAC3C,MAAMs4B,EAAe,CACnBvF,SAAU,KACVN,UAAW,UACXQ,iBAAkB,KAClBC,WAAY,UACZJ,YAAasD,EAAMG,kBACnBhM,YAAa,EACbqI,QAAS,IACTC,YAAa,EACbF,cAAe,EACfD,aAAc,GAGhB0D,EAAM7rB,eAAenI,SAAQxG,IAC3B6O,EAAK7O,GAAO,CACVd,MAAOw9B,EAAa18B,GACpBiP,SAAUL,EAAWzF,SAASnJ,GAC9BkP,aAAa,EACf,IAGFL,EAAKiY,QAAU,CAAE5nB,MAAOs7B,EAAMrU,WAAYlX,UAAU,EAAOC,aAAa,EAC1E,KAAO,CACL,MAAMxQ,EAAW87B,EAAMlL,YAAY5wB,SAEnC87B,EAAM7rB,eAAenI,SAAQxG,IAC3B,MAAM8O,EAAM,IAAIrL,IAAI/E,EAASgF,KAAIqL,GAAQA,EAAKvQ,WAAWwB,MACzD6O,EAAK7O,GAAO,CACVd,MAAO4P,EAAIE,KAAO,EAAI,GAAK,IAAIF,GAAK,GACpCG,SAAUL,EAAWzF,SAASnJ,GAC9BkP,YAAaJ,EAAIE,KAAO,EAC1B,GAEJ,CACAwrB,EAAMnC,eAAiBxpB,CACzB,EAEA8tB,UAAWnC,GACTA,EAAM5U,OAASjlB,MAAM6C,KAAK,IAAIC,IAAI+2B,EAAM3T,MAAMnoB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWsoB,WACrF,EAEA8V,WAAYpC,EAAOtO,GAGjB,MAAM2Q,EAAoB,CACxBttB,MAAO,KACPnL,OAAQ,KACRmzB,KAAM,KACNN,YAAa,EACbF,cAAe,GAGX+F,EAAWzU,gBAAgBmS,EAAMlL,aAEvC,GAAiC,IAA7BwN,EAASp+B,SAAS0F,OAAc,CAElC,MAAM24B,EAAiB,CAAC,EACxBl8B,OAAOsJ,KAAKqwB,EAAMnC,gBAAgB7xB,SAASxG,IACzC+8B,EAAe/8B,GAAOw6B,EAAMnC,eAAer4B,GAAKd,SAGlD,MAAMw9B,EAAe,CACnBntB,MAAO,QAAU,EAAMoY,WACvB/a,EAAG4tB,EAAM5K,YAAYlxB,SAAS,GAAGF,WAAW+Q,MAC5C1C,EAAG2tB,EAAM5K,YAAYlxB,SAAS,GAAGF,WAAW+Q,MAC5CnL,OAAQ,KACRmzB,KAAM,KACNN,YAAa,EACbF,cAAe,EACfuF,cAAe,GAEjBz7B,OAAOsJ,KAAKuyB,GAAcl2B,SAASxG,IACjC+8B,EAAe/8B,GAAO08B,EAAa18B,EAAG,IAGxC,MAKMg9B,EAAc,CAAEzwB,SALD,CACnB4jB,YAAa,CAACqK,EAAM5K,YAAYlxB,SAAS,GAAG6N,SAAS4jB,YACnDqK,EAAM5K,YAAYlxB,SAAS,GAAG6N,SAAS4jB,aACzC7xB,KAAM,cAEsCE,WAAYu+B,EAAgBz+B,KAAM,WAChFw+B,EAASp+B,SAAW,CAACs+B,EACvB,CAEA,GAAuB,uBAAnB9Q,EAAQtX,OAAiC,CAG3C,IAAIlW,EAAWo+B,EAASp+B,SAASo+B,EAASp+B,SAAS0F,OAAS,GAC5DvD,OAAOo8B,OAAOv+B,EAASF,WAAYq+B,GAEnCn+B,EAASF,WAAW89B,cAAgB59B,EAASF,WAAW89B,cAAgB,EAExE59B,EAASF,WAAWoO,EAAIlO,EAASF,WAAWqO,EAC5CnO,EAAS6N,SAAS4jB,YAAY,GAAKzxB,EAAS6N,SAAS4jB,YAAYroB,OAAO,GAAG,GAE3EokB,EAAQgR,WAAax+B,EAASF,WAAWoO,EACzC/N,KAAKqG,OAAO,aAAcgnB,GAE1BxtB,EAASF,WAAWqO,EAAI2tB,EAAME,QAAQh8B,SAAS,GAAGF,WAAW+Q,MAC7D7Q,EAASF,WAAW+Q,MAAQ,QAAU,EAAMoY,UAC9C,KAA8B,yBAAnBuE,EAAQtX,SAGblW,EAAWo+B,EAASp+B,SAAS,GACjCmC,OAAOo8B,OAAOv+B,EAASF,WAAYq+B,GAEnCn+B,EAASF,WAAW89B,cAAgB59B,EAASF,WAAW89B,cAAgB,EAExE59B,EAASF,WAAWqO,EAAInO,EAASF,WAAWoO,EAC5ClO,EAAS6N,SAAS4jB,YAAY,GAAKzxB,EAAS6N,SAAS4jB,YAAY,GAEjEjE,EAAQgR,WAAax+B,EAASF,WAAWqO,EACzChO,KAAKqG,OAAO,aAAcgnB,GAC1BxtB,EAASF,WAAWoO,EAAI4tB,EAAME,QAAQh8B,SAAS,GAAGF,WAAW+Q,MAC7D7Q,EAASF,WAAW+Q,MAAQ,QAAU,EAAMoY,YAE9CmV,EAASp+B,SAAW,CAACA,GACrB87B,EAAMC,QAAUqC,EAChBtC,EAAMC,QAAQ7lB,OAASsX,EAAQtX,MACjC,EACAuoB,cAAe3C,EAAOtO,GACpB,MAAMkR,EAAiB,CAAC,EACxB5C,EAAMI,eAAep0B,SAAQxG,IAC3Bo9B,EAAep9B,GAAO,QAExBo9B,EAAe7tB,MAAQ,QAAU,EAAMoY,WACvC,MAKM0V,EAAe,CAAE9wB,SALF,CACnB4jB,YAAajE,EACb5tB,KAAM,SAGuCE,WAAY4+B,EAAgB9+B,KAAM,WACjFk8B,EAAM5K,YAAYlxB,SAAW,CAAC2+B,EAChC,EAEAC,WAAY9C,EAAOtO,GACjB,MAAM,YAAEiE,EAAc,CAAC,KAAM,OAAUjE,EACjC2Q,EAAoB,CAAC,EAC3BrC,EAAMI,eAAep0B,SAAQxG,IAC3B68B,EAAkB78B,GAAO,QAG3B,MAAMu9B,EAAW53B,KAAKC,MAAMD,KAAKw1B,UAAUX,EAAM5K,cAC3ClxB,EAAW6+B,EAAS7+B,SAASsF,QAAOia,GAAQA,EAAKzf,WAAW+Q,QAAU2c,EAAQgR,aAAY,GAChGr8B,OAAOo8B,OAAOv+B,EAASF,WAAYq+B,GACnCn+B,EAASF,WAAW+Q,MAAQ,QAAU,EAAMoY,WAC5CjpB,EAAS6N,SAAS4jB,YAAcA,EAChCoN,EAAS7+B,SAAW,CAACA,GACrB87B,EAAME,QAAU6C,CAClB,EAEAC,YAAahD,EAAOtO,GAGlBsO,EAAME,QAAQh8B,SAAS,GAAG6N,SAAS4jB,YAAcjE,EACpB,uBAAzBsO,EAAMC,QAAQ7lB,OAChB4lB,EAAMC,QAAQ/7B,SAAS,GAAG6N,SAAS4jB,YAAc,CAACqK,EAAMC,QAAQ/7B,SAAS,GAAG6N,SAAS4jB,YAAY,GAAIjE,GAErGsO,EAAMC,QAAQ/7B,SAAS,GAAG6N,SAAS4jB,YAAc,CAACjE,EAASsO,EAAMC,QAAQ/7B,SAAS,GAAG6N,SAAS4jB,YAAY,GAE9G,EAEAsN,aAAcjD,EAAOtO,GAGnBrtB,KAAKqG,OAAO,aAAc,CAAE0P,OAAQsX,EAAQtX,SAC5C/V,KAAKqG,OAAO,cAAegnB,EAAQkK,MAEnC,MAAMsH,GAAW,OAAOlD,EAAMC,SAC9BD,EAAMC,QAAQ/7B,SAAS,GAAGF,WAAW4F,OAASrD,QAAmB,IAAX28B,GAAiBC,QAAQ,IAC/E,MAAMpG,EAAOmG,EAAWlD,EAAMrP,UAAY,KAE1CqP,EAAMC,QAAQ/7B,SAAS,GAAGF,WAAW+4B,KAAOx2B,OAAOw2B,EAAKoG,QAAQ,IAEhE,MAAM/oB,EAAS4lB,EAAMC,QAAQ7lB,OACd,uBAAXA,GACF4lB,EAAMlL,YAAY5wB,SAASP,KAAKq8B,EAAMC,QAAQ/7B,SAAS,IACvD87B,EAAM5K,YAAYlxB,SAASP,KAAKq8B,EAAME,QAAQh8B,SAAS,KACnC,yBAAXkW,IACT4lB,EAAMlL,YAAY5wB,SAASk/B,OAAO,EAAG,EAAGpD,EAAMC,QAAQ/7B,SAAS,IAC/D87B,EAAM5K,YAAYlxB,SAASk/B,OAAO,EAAG,EAAGpD,EAAME,QAAQh8B,SAAS,IAC/D87B,EAAMlL,YAAY5wB,SAAS8H,SAAQuI,GAAQA,EAAKvQ,WAAW89B,eAAiB,IAEhF,EAEAuB,WAAYrD,EAAOtO,GACjB,MAAM4R,EAAY5R,EAAQiF,aAAa5hB,MAEvCirB,EAAM5K,YAAYlxB,SAAW87B,EAAM5K,YAAYlxB,SAASsF,QAAOia,GAAQA,EAAKzf,WAAW+Q,QAAUuuB,IAEjG,MAAMC,EAAQvD,EAAMlL,YAAY5wB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWqO,IAAMixB,IAAW,GACnFE,EAAQxD,EAAMlL,YAAY5wB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWoO,IAAMkxB,IAAW,GAEzF,GAAKC,EAKE,GAAKC,EAIL,CACLD,EAAMxxB,SAAS4jB,YAAc,IACxB4N,EAAMxxB,SAAS4jB,YAAYroB,MAAM,GAAI,MACrCk2B,EAAMzxB,SAAS4jB,YAAYroB,MAAM,IACtCi2B,EAAMv/B,WAAWqO,EAAImxB,EAAMx/B,WAAWqO,EACtCkxB,EAAMv/B,WAAW4F,OAASrD,OAAOg9B,EAAMv/B,WAAW4F,QAAUrD,OAAOi9B,EAAMx/B,WAAW4F,QACpF25B,EAAMv/B,WAAW+4B,KAAOx2B,OAAOg9B,EAAMv/B,WAAW+4B,MAAQx2B,OAAOi9B,EAAMx/B,WAAW+4B,MAEhF,MAAM0G,EAAezD,EAAMlL,YAAY5wB,SAASw/B,WAC9CnvB,GAAQA,EAAKvQ,WAAW+Q,QAAUyuB,EAAMx/B,WAAW+Q,QACrDirB,EAAMlL,YAAY5wB,SAASoJ,MAAMm2B,GAAcz3B,SAC7CuI,GAAQA,EAAKvQ,WAAW89B,eAAiB,IAE3C9B,EAAMlL,YAAY5wB,SAAW87B,EAAMlL,YAAY5wB,SAASsF,QACtD+K,GAAQA,EAAKvQ,WAAW+Q,QAAUyuB,EAAMx/B,WAAW+Q,OACvD,MAlBEirB,EAAMlL,YAAY5wB,SAAW87B,EAAMlL,YAAY5wB,SAASsF,QACtD+K,GAAQA,EAAKvQ,WAAW+Q,QAAUwuB,EAAMv/B,WAAW+Q,aANrDirB,EAAMlL,YAAY5wB,SAAW87B,EAAMlL,YAAY5wB,SAASsF,QACtD+K,GAAQA,EAAKvQ,WAAW+Q,QAAUyuB,EAAMx/B,WAAW+Q,QAErDirB,EAAMlL,YAAY5wB,SAAS8H,SAAQuI,GAAQA,EAAKvQ,WAAW89B,eAAiB,GAqBhF,EAEA6B,UAAW3D,EAAOtO,GAChB,MAAM+H,EAAY/H,EAAQ4L,aAAavoB,MACjC0uB,EAAezD,EAAMlL,YAAY5wB,SAASw/B,WAAUnvB,GAAQA,EAAKvQ,WAAW+Q,QAAU0kB,IAEtF8J,EAAQvD,EAAMlL,YAAY5wB,SAASu/B,GACnCD,EAAQ3V,gBAAgB0V,GAExBK,EAAQlS,EAAQuH,OAEtBsK,EAAMv/B,WAAWqO,EAAI2tB,EAAME,QAAQh8B,SAAS,GAAGF,WAAW+Q,MAC1DwuB,EAAMxxB,SAAS4jB,YAAc,IACxB4N,EAAMxxB,SAAS4jB,YAAYroB,MAAM,EAAGokB,EAAQmS,YAC/C7D,EAAME,QAAQh8B,SAAS,GAAG6N,SAAS4jB,aAGrC4N,EAAMv/B,WAAW+Q,MAAQ,QAAU,EAAMoY,WACzCoW,EAAMv/B,WAAW4F,OAAS25B,EAAMv/B,WAAW4F,OAASg6B,EACpDL,EAAMv/B,WAAW+4B,KAAOwG,EAAMv/B,WAAW+4B,KAAO6G,EAEhDJ,EAAMx/B,WAAWoO,EAAI4tB,EAAME,QAAQh8B,SAAS,GAAGF,WAAW+Q,MAC1DyuB,EAAMzxB,SAAS4jB,YAAc,CAC3BqK,EAAME,QAAQh8B,SAAS,GAAG6N,SAAS4jB,eAChC6N,EAAMzxB,SAAS4jB,YAAYroB,MAAMokB,EAAQmS,aAE9CL,EAAMx/B,WAAW+Q,MAAQ,QAAU,EAAMoY,WACzCqW,EAAMx/B,WAAW4F,OAAS45B,EAAMx/B,WAAW4F,QAAU,EAAIg6B,GACzDJ,EAAMx/B,WAAW+4B,KAAOyG,EAAMx/B,WAAW+4B,MAAQ,EAAI6G,GAErD5D,EAAMlL,YAAY5wB,SAASk/B,OAAOK,EAAe,EAAG,EAAGD,GACvDxD,EAAM5K,YAAYlxB,SAASP,KAAKq8B,EAAME,QAAQh8B,SAAS,IAGvD,MAAM4/B,EAAMP,EAAMv/B,WAAW89B,cAE7B9B,EAAMlL,YAAY5wB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAW89B,cAAgBgC,IAAK93B,SAC7EuI,GAAQA,EAAKvQ,WAAW89B,eAAiB,IAE3C0B,EAAMx/B,WAAW89B,eAAiB,CACpC,EAEAiC,cAAe/D,EAAOtO,GAEpB,IAAIsS,EAAWhE,EAAMlL,YAAY5wB,SAASsF,QAAQ+K,GAASA,EAAKvQ,WAAW+Q,QAAU2c,EAAQ4L,aAAavoB,QAC1G,MAAM2tB,EAAasB,EAAS,GAAGhgC,WAAWoO,EAC1C4xB,EAAW,IAAWA,EAAS,GAAGjyB,SAAS4jB,aAC3C,MAAMsO,EAAe,IAAM59B,OAAOkmB,OAAOmF,EAAQiC,SAC3CuQ,GAAU,OAAmBF,EAAUC,EAAc,CAAEpT,MAAO,eAC9DsT,GAAO,OAAOH,EAAU,CAAEnT,MAAO,eAEjCgT,EAAaK,EAAQlgC,WAAW+Q,MAAQ,EACxCkkB,EAASiL,EAAQlgC,WAAW47B,SAAWuE,EACvB,gBAAlBzS,EAAQgB,OACVruB,KAAKqG,OAAO,aAAc,CAAEirB,YAAauO,EAAQnyB,SAAS4jB,YAAa+M,WAAYA,IACnFr+B,KAAKqG,OAAO,YAAa,CAAE4yB,aAAc5L,EAAQ4L,aAAcrE,OAAQA,EAAQ4K,WAAYA,KAG3Fx/B,KAAKqG,OAAO,gBAAiB,CAC3B4yB,aAAc5L,EAAQ4L,aACtB3H,YAAauO,EAAQnyB,SAAS4jB,YAC9BkO,WAAYA,GAKlB,EACAO,cAAepE,EAAOtO,GACpB,MAAM+H,EAAY/H,EAAQ4L,aAAavoB,MACjC0uB,EAAezD,EAAMlL,YAAY5wB,SAASw/B,WAAUnvB,GAAQA,EAAKvQ,WAAW+Q,QAAU0kB,IAE/EuG,EAAMlL,YAAY5wB,SAASu/B,GACnC1xB,SAAS4jB,YAAYyN,OAAO1R,EAAQmS,WAAY,EAAGnS,EAAQiE,YAClE,EACA0O,iBAAkBrE,EAAOtO,GACvB,MAAM+H,EAAY/H,EAAQiF,aAAa8C,UACjCC,EAAmBhI,EAAQiF,aAAa+C,iBACxCnlB,EAAOyrB,EAAMlL,YAAY5wB,SAASsF,QAAOysB,GAAWA,EAAQjyB,WAAW+Q,QAAU0kB,IAAW,GAClGllB,EAAKxC,SAAS4jB,YAAc,IAAIphB,EAAKxC,SAAS4jB,YAAYroB,MAAM,EAAGosB,MAC9DnlB,EAAKxC,SAAS4jB,YAAYroB,MAAMosB,EAAmB,GAC1D,EACA4K,WAAYtE,EAAOtO,GACjB,MAAM+H,EAAY/H,EAAQiF,aAAa3yB,WAAWy1B,UAC5CC,EAAmBhI,EAAQiF,aAAa3yB,WAAW01B,iBACnDnlB,EAAOyrB,EAAMlL,YAAY5wB,SAASsF,QAAOysB,GAAWA,EAAQjyB,WAAW+Q,QAAU0kB,IAAW,GAClGllB,EAAKxC,SAAS4jB,YAAc,IAAIphB,EAAKxC,SAAS4jB,YAAYroB,MAAM,EAAGosB,GACjEhI,EAAQiC,UACLpf,EAAKxC,SAAS4jB,YAAYroB,MAAMosB,EAAmB,IAGxD,MAAMwJ,GAAW,OAAO3uB,GACxBA,EAAKvQ,WAAW4F,OAASrD,QAAmB,IAAX28B,GAAiBC,QAAQ,IAC1D,MAAMpG,EAAOmG,EAAWlD,EAAMrP,UAAY,KAC1Cpc,EAAKvQ,WAAW+4B,KAAOx2B,OAAOw2B,EAAKoG,QAAQ,GAC7C,EAEA7N,SAAU0K,EAAOtO,GACf,MAAM4R,EAAY5R,EAAQiF,aAAa3yB,WAAW+Q,MAElCirB,EAAM5K,YAAYlxB,SAASsF,QAAOia,GAAQA,EAAKzf,WAAW+Q,QAAUuuB,IAAW,GACvFvxB,SAAS4jB,YAAcjE,EAAQiC,OAGvC,MAAM4P,EAAQvD,EAAMlL,YAAY5wB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWqO,IAAMixB,IAAW,GACnFE,EAAQxD,EAAMlL,YAAY5wB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWoO,IAAMkxB,IAAW,GAEzF,GAAIC,EAAO,CAETA,EAAMxxB,SAAS4jB,YAAc,IAAI4N,EAAMxxB,SAAS4jB,YAAYroB,MAAM,GAAI,GAAIokB,EAAQiC,QAElF,MAAMuP,GAAW,OAAOK,GACxBA,EAAMv/B,WAAW4F,OAASrD,QAAmB,IAAX28B,GAAiBC,QAAQ,IAC3D,MAAMpG,EAAOmG,EAAWlD,EAAMrP,UAAY,KAC1C4S,EAAMv/B,WAAW+4B,KAAOx2B,OAAOw2B,EAAKoG,QAAQ,GAC9C,CACA,GAAIK,EAAO,CACTA,EAAMzxB,SAAS4jB,YAAc,CAACjE,EAAQiC,UAAW6P,EAAMzxB,SAAS4jB,YAAYroB,MAAM,IAElF,MAAM41B,GAAW,OAAOM,GACxBA,EAAMx/B,WAAW4F,OAASrD,QAAmB,IAAX28B,GAAiBC,QAAQ,IAC3D,MAAMpG,EAAOmG,EAAWlD,EAAMrP,UAAY,KAC1C6S,EAAMx/B,WAAW+4B,KAAOx2B,OAAOw2B,EAAKoG,QAAQ,GAC9C,CACF,EAEAoB,gBAAiBvE,EAAOtO,GAEtB,MAAMmK,EAASnK,EAAQiF,aAAa5hB,MACpCirB,EAAMlL,YAAY5wB,SAAS8X,MAAK,CAAC5J,EAAGC,IAAMD,EAAEpO,WAAW89B,cAAgBzvB,EAAErO,WAAW89B,gBAEpF,IAAI0C,EAAW,GACf,IAAK,MAAOxwB,EAAGO,KAASyrB,EAAMlL,YAAY5wB,SAASugC,UACjD,GAAIlwB,EAAKvQ,WAAWqO,IAAMwpB,EAAQ,CAChC2I,EAAWxE,EAAMlL,YAAY5wB,SAASoJ,MAAM0G,EAAI,GAChD,KACF,CAGFgsB,EAAMlL,YAAY5wB,SAAW87B,EAAMlL,YAAY5wB,SAASsF,QAAOC,IAAS+6B,EAAS71B,SAASlF,KAC1FpF,KAAKqG,OAAO,iBAAkB,CAAEgoB,MAAOsN,EAAM5K,aAC/C,EAEAsP,cAAe1E,EAAOtO,GAEpB,MAAMmK,EAASnK,EAAQiF,aAAa5hB,MACpCirB,EAAMlL,YAAY5wB,SAAS8X,MAAK,CAAC5J,EAAGC,IAAMD,EAAEpO,WAAW89B,cAAgBzvB,EAAErO,WAAW89B,gBAEpF,IAAI0C,EAAW,GACf,IAAK,MAAOxwB,EAAGO,KAASyrB,EAAMlL,YAAY5wB,SAASugC,UACjD,GAAIlwB,EAAKvQ,WAAWoO,IAAMypB,EAAQ,CAChC2I,EAAWxE,EAAMlL,YAAY5wB,SAASoJ,MAAM,EAAG0G,GAC/C,KACF,CAGFgsB,EAAMlL,YAAY5wB,SAAW87B,EAAMlL,YAAY5wB,SAASsF,QAAOC,IAAS+6B,EAAS71B,SAASlF,KAC1FpF,KAAKqG,OAAO,iBAAkB,CAAEgoB,MAAOsN,EAAM5K,aAC/C,EAEAuP,aAAc3E,EAAOtO,GACnBsO,EAAMnC,eAAiBnM,EAEvB,MAAMxrB,EAAQG,OAAOsJ,KAAK+hB,GAASloB,QAAOhE,KACf,KAAvBksB,EAAQlsB,GAAKd,OAAkBgtB,EAAQlsB,GAAKkP,aAAkBgd,EAAQlsB,GAAKiP,YAE/EurB,EAAMlL,YAAY5wB,SAAS8H,SACxB9H,GAAagC,EAAM8F,SAASxG,GAAQtB,EAASF,WAAWwB,GAAOksB,EAAQlsB,GAAKd,SACjF,EAEAkgC,aAAc5E,EAAOtO,GAEnB,MAAM,eAAE4M,EAAc,KAAEpsB,GAASwf,EAC3BxrB,EAAQG,OAAOsJ,KAAKuC,GAC1B8tB,EAAMlL,YAAY5wB,SAASsF,QACzB,SAAU+K,GACJA,EAAKvQ,WAAW+Q,QAAUupB,GAC5Bp4B,EAAM8F,SAASxG,GAAQ+O,EAAKvQ,WAAWwB,GAAO0M,EAAK1M,GAAKd,OAE5D,IAEFL,KAAKqG,OAAO,oBACd,EAEAm6B,aAAc7E,EAAOtO,GAEnB,MAAM,eAAE6M,EAAc,KAAErsB,GAASwf,EAC3BxrB,EAAQG,OAAOsJ,KAAKuC,GAC1B8tB,EAAM5K,YAAYlxB,SAASsF,QAEzB,SAAUia,GACJA,EAAKzf,WAAW+Q,QAAUwpB,GAC5Br4B,EAAM8F,SAASxG,GAAQie,EAAKzf,WAAWwB,GAAO0M,EAAK1M,GAAKd,OAE5D,GAEJ,EAEAogC,cAAe9E,EAAOtO,GAEpB,MAAMqT,EAAkBrT,EAAQxf,KAC1ByrB,EAAejM,EAAQiM,aAEvBz3B,EAAQG,OAAOsJ,KAAKo1B,GAAiBv7B,QAAOhE,GACf,KAA/Bu/B,EAAgBv/B,GAAKd,QAAkBqgC,EAAgBv/B,GAAKkP,cAE9CsrB,EAAM3T,MAAMnoB,SAASsF,QAAO+K,GAAQopB,EAAahvB,SAAS4F,EAAKvQ,WAAWsoB,WAClFtgB,SACP9H,GAAagC,EAAM8F,SAASxG,GAAQtB,EAASF,WAAWwB,GAAOu/B,EAAgBv/B,GAAKd,UAEvFL,KAAKqG,OAAO,YACd,EACAs6B,kBAAmBhF,GAEjB,MAAM5tB,EAAI4tB,EAAM3T,MAAMnoB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWoO,IACrDC,EAAI2tB,EAAM3T,MAAMnoB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWqO,IACrD4yB,EAAe,IAAIh8B,IAAI,IAAImJ,KAAMC,IACvC2tB,EAAMtN,MAAMxuB,SAAW87B,EAAMtN,MAAMxuB,SAASsF,QAAOia,GAAQwhB,EAAa1yB,IAAIkR,EAAKzf,WAAW+Q,QAC9F,EAEAwV,eAAgByV,GACd,MAAM3B,EAAW,IAAK2B,EAAM3T,OAE5BgS,EAASn6B,SAAWm6B,EAASn6B,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWsoB,UAAY0T,EAAMrU,aACvF,MAAM6Y,EAAWnG,EAASn6B,SAASsF,QAAOC,IAASu2B,EAAMlL,YAAY5wB,SAASyK,SAASlF,KAEvF,GAAIu2B,EAAM5U,OAAOzc,SAASqxB,EAAMrU,YAE9B,IAAI5W,EAAQirB,EAAM3T,MAAMnoB,SAASw/B,WAAUnvB,GAAQA,EAAKvQ,WAAWsoB,UAAY0T,EAAMrU,kBAGjF5W,EAAQ,EAGdirB,EAAM3T,MAAMnoB,SAAW87B,EAAM3T,MAAMnoB,SAASsF,QAAOC,IAAS+6B,EAAS71B,SAASlF,KAG9Eu2B,EAAM3T,MAAMnoB,SAASk/B,OAAOruB,EAAO,KAAMirB,EAAMlL,YAAY5wB,UAE3D,MAAMghC,EAAYlF,EAAMtN,MAAMxuB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAW+Q,QAC7Dyf,EAAW,IAAKwL,EAAM5K,aAC5BZ,EAAStwB,SAAWswB,EAAStwB,SAASsF,QAAOia,IAASyhB,EAAUv2B,SAAS8U,EAAKzf,WAAW+Q,SACzFirB,EAAMtN,MAAMxuB,SAASP,QAAQ6wB,EAAStwB,UAGtC87B,EAAMtN,MAAMxuB,SAASsF,QACnB,SAAUia,GACRuc,EAAM5K,YAAYlxB,SAAS8H,SACzB,SAAUm5B,GACJ1hB,EAAKzf,WAAW+Q,QAAUowB,EAAMnhC,WAAW+Q,QAC7C0O,EAAKzf,WAAamhC,EAAMnhC,WACxByf,EAAK1R,SAAWozB,EAAMpzB,SAE1B,GACJ,IAGF1N,KAAKqG,OAAO,qBAKZ,MAAMs3B,EAAkB,IAAI/4B,IAAI+2B,EAAM5K,YAAYlxB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAW+Q,SAExEirB,EAAM3T,MAAMnoB,SAASsF,QAClC+K,GAAQA,EAAKvQ,WAAWsoB,UAAY0T,EAAMrU,aAAYniB,QACtDC,GAAQu4B,EAAgBzvB,IAAI9I,EAAKzF,WAAWoO,KAEvCpG,SAAQuI,GAAQA,EAAKxC,SAAS4jB,YAAc,CACjDqK,EAAM5K,YAAYlxB,SAASsF,QAAOia,GAAQA,EAAKzf,WAAW+Q,QAAUR,EAAKvQ,WAAWoO,IAAG,GAAGL,SAAS4jB,eAChGphB,EAAKxC,SAAS4jB,YAAYroB,MAAM,MAGtB0yB,EAAM3T,MAAMnoB,SAASsF,QAClC+K,GAAQA,EAAKvQ,WAAWsoB,UAAY0T,EAAMrU,aAAYniB,QACtDC,GAAQu4B,EAAgBzvB,IAAI9I,EAAKzF,WAAWqO,KACvCrG,SAAQuI,GAAQA,EAAKxC,SAAS4jB,YAAc,IAC9CphB,EAAKxC,SAAS4jB,YAAYroB,MAAM,GAAI,GACvC0yB,EAAM5K,YAAYlxB,SAASsF,QAAOia,GAAQA,EAAKzf,WAAW+Q,QAAUR,EAAKvQ,WAAWqO,IAAG,GAAGN,SAAS4jB,eAGrGqK,EAAMC,QAAU,CAAC,EACjBD,EAAME,QAAU,CAAC,EAEjB77B,KAAKqG,OAAO,wBAGZrG,KAAKqG,OAAO,aACZrG,KAAKqG,OAAO,qBACd,EAEA06B,WAAYpF,EAAOtO,GAIfsO,EAAM3T,MAAMnoB,SADS,iBAAZwtB,EACcsO,EAAM3T,MAAMnoB,SAASsF,QAAO+K,IAASmd,EAAQ/iB,SAAS4F,EAAKvQ,WAAWsoB,WAEtE0T,EAAM3T,MAAMnoB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWsoB,UAAYoF,IAGzFrtB,KAAKqG,OAAO,qBAEZrG,KAAKqG,OAAO,YACd,EACA26B,qBAAsBrF,GACpBA,EAAMK,kBAAkBr0B,SAAQm1B,IACZ,WAAdA,EAAKr9B,KACPk8B,EAAM3T,MAAMnoB,SAAS8H,SAAQuI,GAAQA,EAAKvQ,WAAWm9B,EAAKl9B,MAAQunB,OAAOjX,EAAKvQ,WAAWm9B,EAAKl9B,SACvE,WAAdk9B,EAAKr9B,MACdk8B,EAAM3T,MAAMnoB,SAAS8H,SAAQuI,GAAQA,EAAKvQ,WAAWm9B,EAAKl9B,MAAQsC,OAAOgO,EAAKvQ,WAAWm9B,EAAKl9B,QAChG,GAEJ,GAGF2C,QAAS,CACPylB,MAAQ2T,GAAUA,EAAM3T,MACxBqG,MAAQsN,GAAUA,EAAMtN,MACxB/B,UAAYqP,GAAUA,EAAMrP,UAC5B5L,aAAeib,GAA0C,IAAhCA,EAAM3T,MAAMnoB,SAAS0F,OAC9C+yB,SAAWqD,GAAUA,EAAMrD,SAC3BhR,WAAaqU,GAAUA,EAAMrU,WAC7BmJ,YAAckL,GAAUA,EAAMlL,YAC9BM,YAAc4K,GAAUA,EAAM5K,YAC9BhK,OAAS4U,GAAUA,EAAM5U,OACzBhB,cAAgB4V,GAAUA,EAAM5V,cAChCyT,eAAiBmC,GAAUA,EAAMnC,eACjCoC,QAAUD,GAAUA,EAAMC,QAC1BC,QAAUF,GAAUA,EAAME,QAC1BtJ,YAAcoJ,GAAUA,EAAM5K,YAAYlxB,SAAS0F,OAAS,EACxDo2B,EAAMlL,YAAY5wB,SAAS,GAAGF,WAAWoO,EACzC4tB,EAAM5K,YAAYlxB,SAAS,GAAGF,WAAW+Q,MAC7C8hB,WAAamJ,GAAUA,EAAM5K,YAAYlxB,SAAS0F,OAAS,EACvDo2B,EAAMlL,YAAY5wB,SAASoJ,OAAO,GAAG,GAAGtJ,WAAWqO,EACnD2tB,EAAM5K,YAAYlxB,SAAS,GAAGF,WAAW+Q,MAC7CylB,UAAW,CAACwF,EAAOp5B,IAAYo5B,EAAMrU,WACjCqU,EAAM5K,YAAYlxB,SAASsF,QAC1Bia,GAASA,EAAKzf,WAAW+Q,QAAUnO,EAAQgwB,cAAa,GACzD,KACJ6D,SAAU,CAACuF,EAAOp5B,IAAYo5B,EAAMrU,WAChCqU,EAAM5K,YAAYlxB,SAASsF,QAC1Bia,GAASA,EAAKzf,WAAW+Q,QAAUnO,EAAQiwB,aAAY,GACxD,KACJ1iB,eAAiB6rB,GAAUA,EAAM7rB,eAAe6H,OAChDokB,eAAiBJ,GAAUA,EAAMI,eACjCpT,aAAegT,GAAUA,EAAMhT,aAC/BgG,YAAcgN,GAAUA,EAAMhN,YAC9BD,YAAciN,GAAUA,EAAMjN,YAC9ByC,YAAcwK,IACZ,MAAMtN,EAAQ7E,gBAAgBmS,EAAMhN,aAapC,OAZAgN,EAAMlL,YAAY5wB,SAASsF,QAAO+K,GAAQA,EAAKxC,SAAS4jB,YAAY/rB,OAAS,IAAGoC,SAC9EiqB,IACE,MAAMwD,EAAYxD,EAAQjyB,WAAW+Q,MACrCkhB,EAAQlkB,SAAS4jB,YAAYroB,MAAM,GAAI,GAAGtB,SACxC,CAAC2oB,EAAOjM,IAAQgK,EAAMxuB,SAASP,KAAK,CAClCK,WAAY,CAAE+Q,MAAO,EAAMoY,WAAYsM,UAAWA,EAAWC,iBAAkBhR,EAAM,GACrF3W,SAAU,CAAE4jB,YAAahB,EAAO7wB,KAAM,YAE1C,IAIG4uB,GAGTxJ,cAAgB8W,GAAW/7B,GAAS+7B,EAAMK,kBAAkB72B,QAAO23B,GAAQA,EAAKl9B,OAASA,IAAM,IAAIH,KACnG+6B,uBAAyBmB,GAAUA,EAAMK,kBAAkBn3B,KAAIi4B,GAAQA,EAAKl9B,S,qCC3zBhF,MAEM,EAAQ,EAAQ,MAEtB,GACE+7B,MAAO,CACL3I,OAAQ,CAAC,EACTM,OAAQ,CAAC,EACT2N,aAAc,CAAC,EACfzN,aAAc,CAAC,EACf/J,gBAAiB,GACjBzD,eAAgB,GAChBoD,kBAAmB,GACnBD,gBAAiB,GACjB+X,gBAAiB,GACjBC,SAAU,CAAC,EACXxN,cAAe,CAAC,EAChBZ,eAAgB,CAAC,EACjBW,cAAe,CAAC,EAChBL,eAAgB,CAAC,EACjB+N,eAAgB,GAChBrU,eAAgB,UAChBL,UAAW,GACX2U,mBAAoB,SAEpBjH,eAAgB,CAAC,IAAK,IAAK,QAAS,SAAU,cAAe,SAAU,cAAe,UAAW,WAAY,mBAAoB,WACjIK,aAAc,CAAC,QAAS,IAAK,IAAK,SAAU,cAAe,SAAU,OAAQ,QAAS,SAAU,WAChG6G,mBAAoB,IAGtBrF,UAAW,CACTsF,WAAY5F,EAAOtO,GAEjB,GADAsO,EAAM3I,OAASxJ,gBAAgB6D,GAC3B,CAAC,gCAAiC,aAAa/iB,SAASqxB,EAAM3I,OAAOtzB,IAAIC,WAAWC,MAAO,CAC7F,MAAMqhC,EAAe,IAAKtF,EAAM3I,QAChCiO,EAAaphC,SAAW,GACxB87B,EAAMsF,aAAeA,EACrBtF,EAAMhI,cAAgBnK,gBAAgByX,GACtCtF,EAAM5I,eAAiBvJ,gBAAgByX,GAEvCtF,EAAM3I,OAAOnzB,SAAS8H,SAAQuI,GAAQA,EAAKxC,SAAS4jB,YAAcphB,EAAKxC,SAAS4jB,YAAYzsB,KAC1Fs3B,GAAUA,EAAOt3B,KAAIu3B,GAAS56B,KAAKC,MAAsB,IAAhBS,OAAOk6B,IAAoB,UACtET,EAAMvS,kBAAoB,GAC1BuS,EAAM3V,eAAiB,GACvBhmB,KAAKqG,OAAO,uBACZrG,KAAKqG,OAAO,cAEd,MAASmF,MAAM,qCACjB,EAEAg2B,WAAY7F,EAAOtO,GAEjB,GADAsO,EAAMrI,OAASxsB,KAAKC,MAAMD,KAAKw1B,UAAUjP,IACrC,CAAC,gCAAiC,aAAa/iB,SAASqxB,EAAMrI,OAAO5zB,IAAIC,WAAWC,MAAO,CAC7F,MAAM4zB,EAAe,IAAKmI,EAAMrI,QAChCE,EAAa3zB,SAAW,GACxB87B,EAAMnI,aAAeA,EACrBmI,EAAMjI,cAAgBlK,gBAAgBgK,GACtCmI,EAAMtI,eAAiB7J,gBAAgBgK,GAEvCmI,EAAMrI,OAAOzzB,SAAS8H,SAAQyX,GAAQA,EAAK1R,SAAS4jB,YAAclS,EAAK1R,SAAS4jB,YAAYzsB,KAC1Fu3B,GAAS56B,KAAKC,MAAsB,IAAhBS,OAAOk6B,IAAoB,QAEjDp8B,KAAKqG,OAAO,sBACd,MAASmF,MAAM,qCACjB,EAEAi2B,cAAe9F,EAAOtO,GAKpB,IAAK,MAAMnlB,KAAQmlB,EAAS,CAC1B,MAAM5f,EAAcvF,EAAKiC,QAAQtK,SAAS,GAAG6N,SAASjO,KACtD,GAAoB,eAAhBgO,EAA8B,CAChC,KAAI,QAAkBvF,EAAKiC,QAASwxB,EAAM3I,QAEnC,CACL,MAAMvuB,EAAM,IAAIwD,MAAe,+BAAkCC,EAAKwD,MAEtE,MADAjH,EAAI7E,KAAO,cACL6E,CACR,CALEzE,KAAKqG,OAAO,mBAAmB,EAAAiH,EAAA,IAAWpF,EAAKiC,QAASjC,EAAKwD,KAAM+B,GAMvE,MAAO,GAAoB,UAAhBA,EAAyB,CAClC,KAAI,QAAkBvF,EAAKiC,QAASwxB,EAAMrI,QAEnC,CACL,MAAM7uB,EAAM,IAAIwD,MAAe,+BAAkCC,EAAKwD,MAEtE,MADAjH,EAAI7E,KAAO,cACL6E,CACR,CALEzE,KAAKqG,OAAO,mBAAmB,EAAAiH,EAAA,IAAWpF,EAAKiC,QAASjC,EAAKwD,KAAM+B,GAMvE,CACF,CACF,EAEAi0B,gBAAiB/F,EAAOtO,GAEtBA,EAAQxtB,SAAS8H,SAAQuI,GAAQA,EAAKxC,SAAS4jB,YAAcphB,EAAKxC,SAAS4jB,YAAYzsB,KACrFs3B,GAAUA,EAAOt3B,KAAIu3B,GAAS56B,KAAKC,MAAsB,IAAhBS,OAAOk6B,IAAoB,UAEtE/O,EAAQxtB,SAAS8H,SAAQuI,GAAQyrB,EAAM3I,OAAOnzB,SAASP,KAAK4Q,KAC5DlQ,KAAKqG,OAAO,uBACZrG,KAAKqG,OAAO,eACZrG,KAAKqG,OAAO,kBACd,EAEAs7B,gBAAiBhG,EAAOtO,GAEtBA,EAAQxtB,SAAS8H,SAAQyX,GAAQA,EAAK1R,SAAS4jB,YAAclS,EAAK1R,SAAS4jB,YAAYzsB,KACrFu3B,GAAS56B,KAAKC,MAAsB,IAAhBS,OAAOk6B,IAAoB,QAEjD/O,EAAQxtB,SAAS8H,SAAQyX,GAAQuc,EAAMrI,OAAOzzB,SAASP,KAAK8f,KAC5Dpf,KAAKqG,OAAO,eACZrG,KAAKqG,OAAO,sBACd,EAEAu7B,oBAAqBjG,GACnB,IAAIiB,EAAS,IAAIh4B,IAAI,IACrB+2B,EAAM3I,OAAOnzB,SAAS8H,SAAQk1B,IAC5B76B,OAAOsJ,KAAKuxB,EAAQl9B,YAAYgI,SAAQxG,IAAcA,EAAIsO,SAAS,OAAOmtB,EAAO5M,IAAI7uB,EAAG,GAAG,IAInE,CACxB,QAAS,IAAK,IAAK,eACHwG,SAAQo1B,GAAOH,EAAO5M,IAAI+M,KAC5CH,EAAS96B,MAAM6C,KAAKi4B,GACpBjB,EAAMxS,gBAAkByT,EACpBA,EAAOtyB,SAAS,WAClBqxB,EAAMlS,gBAAkB,UAExBkS,EAAMlS,gBAAkBmT,EAAO,EAEnC,EACAiF,oBAAqBlG,GACnB,IAAIiB,EAAS,IAAIh4B,IAAI,IACrB+2B,EAAMrI,OAAOzzB,SAAS8H,SAAQk1B,IAC5B76B,OAAOsJ,KAAKuxB,EAAQl9B,YAAYgI,SAAQxG,GAAOy7B,EAAO5M,IAAI7uB,IAAI,IAGtC,CAAC,SACTwG,SAAQo1B,GAAOH,EAAO5M,IAAI+M,KAC5CH,EAAS96B,MAAM6C,KAAKi4B,GACpBjB,EAAMuF,gBAAkBtE,CAC1B,EACAkF,iBAAkBnG,EAAOtO,GAED,WAAlBA,EAAQgN,OACVsB,EAAM3I,OAAOnzB,SAASgF,KAAIqL,GAAQA,EAAKvQ,WAAW0tB,EAAQztB,MAAQ,OAClE+7B,EAAMhI,cAAc9zB,SAASgF,KAAIqL,GAAQA,EAAKvQ,WAAW0tB,EAAQztB,MAAQ,OACzE+7B,EAAMxS,gBAAgB7pB,KAAK+tB,EAAQztB,MAE9B+7B,EAAMvB,eAAe9vB,SAAS+iB,EAAQztB,OACzC+7B,EAAM2F,mBAAmBhiC,KAAK+tB,EAAQztB,KAAO,QAG/C+7B,EAAMrI,OAAOzzB,SAASgF,KAAIua,GAAQA,EAAKzf,WAAW0tB,EAAQztB,MAAQ,OAClE+7B,EAAMjI,cAAc7zB,SAASgF,KAAIua,GAAQA,EAAKzf,WAAW0tB,EAAQztB,MAAQ,OACzE+7B,EAAMuF,gBAAgB5hC,KAAK+tB,EAAQztB,MAEvC,EACAmiC,oBAAqBpG,EAAOtO,GACJ,WAAlBA,EAAQgN,OACVsB,EAAM3I,OAAOnzB,SAASsF,QAAO+K,UAAeA,EAAKvQ,WAAW0tB,EAAQztB,QACpE+7B,EAAM3I,OAAOnzB,SAASsF,QAAO+K,UAAeA,EAAKvQ,WAAW0tB,EAAQztB,KAAO,QAC3E+7B,EAAMhI,cAAc9zB,SAASsF,QAAO+K,UAAeA,EAAKvQ,WAAW0tB,EAAQztB,QAC3E+7B,EAAMhI,cAAc9zB,SAASsF,QAAO+K,UAAeA,EAAKvQ,WAAW0tB,EAAQztB,KAAO,QAElF+7B,EAAMxS,gBAAkBwS,EAAMxS,gBAAgBhkB,QAAOC,GAAQA,IAASioB,EAAQztB,OAC9E+7B,EAAM2F,mBAAqB3F,EAAM2F,mBAAmBn8B,QAAOC,GAAQA,IAASioB,EAAQztB,KAAO,SAE3F+7B,EAAMrI,OAAOzzB,SAASsF,QAAOia,UAAeA,EAAKzf,WAAW0tB,EAAQztB,QACpE+7B,EAAMjI,cAAc7zB,SAASsF,QAAOia,UAAeA,EAAKzf,WAAW0tB,EAAQztB,QAE/E,EAEAoiC,sBAAuBrG,EAAOtO,GAC5BsO,EAAMlS,gBAAkB4D,EACxBrtB,KAAKqG,OAAO,kBACd,EACA47B,gBAAiBtG,GAGf,MAAM1rB,EAAMnO,MAAM6C,KAAK,IAAIC,IAAI+2B,EAAM3I,OAAOnzB,SAASgF,KACnDO,GAAQA,EAAKzF,WAAWg8B,EAAMlS,qBAChCkS,EAAMvS,kBAAoBnZ,CAC5B,EACAiyB,YAAavG,GACPA,EAAMxS,gBAAgB7e,SAAS,YACjCqxB,EAAM3I,OAAOnzB,SAAS8H,SAAQuI,IACxB,EAAC,EAAM,OAAQ,IAAK,GAAG5F,SAAS4F,EAAKvQ,WAAWwiC,QAClDjyB,EAAKvQ,WAAWwiC,OAAS,IAEzBjyB,EAAKvQ,WAAWwiC,OAAS,GAC3B,IAGFxG,EAAM2F,mBAAqB3F,EAAMxS,gBAAgBhkB,QAC/C23B,IAASnB,EAAMvB,eAAe9vB,SAASwyB,KAAOj4B,KAC9Ci4B,GAAQA,EAAO,OACjBnB,EAAM3I,OAAOnzB,SAAS8H,SAAQuI,IACG,MAA3BA,EAAKvQ,WAAWwiC,QAClBxG,EAAM2F,mBAAmB35B,SAAQm1B,IAC1B5sB,EAAKvQ,WAAWm9B,KAAO5sB,EAAKvQ,WAAWm9B,GAAQ5sB,EAAKvQ,WAAWm9B,EAAK7zB,MAAM,GAAI,IAAE,GAEzF,IAIN,EAEAm5B,mBAAoBzG,EAAOtO,GAEzB,MAAM/D,EAAS+D,EAAQ/D,OACjBlnB,EAAOirB,EAAQjrB,KACfigC,EAAMhV,EAAQ9D,SACpBoS,EAAMlS,gBAAkB4Y,EACxB,IAAIC,EAAY,KAChB,OAAQhZ,GACN,IAAK,UACHqS,EAAM3V,eAAiB5jB,EAEvBu5B,EAAMhI,cAAc9zB,SAAW87B,EAAM3I,OAAOnzB,SAASoJ,QACrD,MACF,IAAK,UACH0yB,EAAM3V,eAAiB5jB,EACvBu5B,EAAMhI,cAAc9zB,SAAW,GAC/B,MACF,IAAK,MACE87B,EAAM3V,eAAe1b,SAASlI,EAAK,KACtCu5B,EAAM3V,eAAe1mB,KAAK8C,EAAK,IAEjCkgC,EAAY3G,EAAM3I,OAAOnzB,SAASsF,QAChC+K,GAAQA,EAAKvQ,WAAW0iC,KAASjgC,EAAK,KAExCkgC,EAAU36B,SAAQuI,GAAQyrB,EAAMhI,cAAc9zB,SAASP,KAAK4Q,KAC5D,MACF,IAAK,SACHyrB,EAAM3V,eAAiB2V,EAAM3V,eAAe7gB,QAAO6C,GAAMA,IAAO5F,EAAK,KACrEkgC,EAAY,IAAI19B,IAAI+2B,EAAMhI,cAAc9zB,SAASsF,QAC/C+K,GAAQA,EAAKvQ,WAAW0iC,KAASjgC,EAAK,MACxCu5B,EAAMhI,cAAc9zB,SAAW87B,EAAMhI,cAAc9zB,SAASsF,QAAO+K,IAASoyB,EAAUp0B,IAAIgC,KAG9FlQ,KAAKqG,OAAO,mBAAoB,CAAEijB,OAAQA,GAC5C,EAEAiZ,oBAAqB5G,GACnB,MAAMxmB,EAAQ,IAAIvQ,IAAI+2B,EAAM3V,gBACtBqc,EAAM1G,EAAMlS,gBAClBkS,EAAMhI,cAAc9zB,SAAW87B,EAAM3I,OAAOnzB,SAASsF,QAAO+K,GAAQiF,EAAMjH,IAAIgC,EAAKvQ,WAAW0iC,MAC9FriC,KAAKqG,OAAO,mBAAoB,CAAEijB,OAAQ,QAG1C,MAAMkZ,EAAiB,IAAI59B,IAAI+2B,EAAMhI,cAAc9zB,SAASgF,KAC1DO,GAAQA,EAAKzF,WAAW0iC,MAC1B1G,EAAM3V,eAAiB,IAAIwc,GAAgBr9B,QAAO+qB,GAAK/a,EAAMjH,IAAIgiB,IACnE,EACAuS,iBAAkB9G,EAAOtO,GAGvB,IAAItf,EAAI,GACJC,EAAI,GACJ00B,EAAa,GACjB,OAAQrV,EAAQ/D,QACd,IAAK,UACHqS,EAAMjI,cAAc7zB,SAAW87B,EAAMrI,OAAOzzB,SAC5C,MACF,IAAK,UACH87B,EAAMjI,cAAc7zB,SAAW,GAC/B,MACF,IAAK,MAEHkO,EAAI4tB,EAAMhI,cAAc9zB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWoO,IAC7DC,EAAI2tB,EAAMhI,cAAc9zB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWqO,IAC7D00B,EAAa,IAAI99B,IAAI,IAAImJ,KAAMC,IAE/B2tB,EAAMjI,cAAc7zB,SAAW87B,EAAMrI,OAAOzzB,SAASsF,QACnDia,GAAQsjB,EAAWx0B,IAAIkR,EAAKzf,WAAW+Q,SACzC,MACF,IAAK,SAEH3C,EAAI4tB,EAAMhI,cAAc9zB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWoO,IAC7DC,EAAI2tB,EAAMhI,cAAc9zB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWqO,IAC7D00B,EAAa,IAAI99B,IAAI,IAAImJ,KAAMC,IAE/B2tB,EAAMjI,cAAc7zB,SAAW87B,EAAMjI,cAAc7zB,SAASsF,QAC1Dia,GAAQsjB,EAAWx0B,IAAIkR,EAAKzf,WAAW+Q,SAI/C,EACAiyB,kBAAmBhH,EAAOtO,GACxBsO,EAAM5I,eAAelzB,SAAW87B,EAAMhI,cAAc9zB,SAASsF,QAC3D+K,IAAS,QAAgBmd,EAAQgD,KAAMngB,KAAS,OAAemd,EAAQgD,KAAMngB,KAC/ElQ,KAAKqG,OAAO,oBACd,EACAu8B,kBAAmBjH,GACjB,MAAM5tB,EAAI4tB,EAAM5I,eAAelzB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWoO,IAC9DC,EAAI2tB,EAAM5I,eAAelzB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWqO,IAC9D00B,EAAa,IAAI99B,IAAI,IAAImJ,KAAMC,IAErC2tB,EAAMtI,eAAexzB,SAAW87B,EAAMjI,cAAc7zB,SAASsF,QAAOia,GAAQsjB,EAAWx0B,IAAIkR,EAAKzf,WAAW+Q,QAC7G,EACAmyB,kBAAmBlH,EAAOtO,GACD,YAAnBA,EAAQ/D,QACVqS,EAAM5I,eAAelzB,SAAW87B,EAAMhI,cAAc9zB,SACpD87B,EAAMtI,eAAexzB,SAAW,KAEhC87B,EAAM5I,eAAelzB,SAAW,GAChC87B,EAAMtI,eAAexzB,SAAW,GAEpC,EAEAijC,cAAenH,EAAOtO,GAEpB,MAAM,eAAE4M,EAAc,KAAEpsB,GAASwf,EACjC,IAAK,IAAI1d,EAAI,EAAGA,EAAIsqB,EAAe10B,OAAQoK,IAAK,CAC9C,MAAM9N,EAAQG,OAAOsJ,KAAKuC,EAAK8B,IACzBO,EAAOyrB,EAAM5I,eAAelzB,SAASsF,QAAQ+K,GAASA,EAAKvQ,WAAW+Q,QAAUupB,EAAetqB,KAAI,GAEpG9B,EAAK8B,GAAGwyB,QAAQ9hC,QAAU6P,EAAKvQ,WAAWwiC,QAAsC,MAA1Bt0B,EAAK8B,GAAGwyB,QAAQ9hC,MACzEs7B,EAAM2F,mBAAmB35B,SACtBo7B,GAAS7yB,EAAKvQ,WAAWojC,GAAQl1B,EAAK8B,GAAGozB,EAAK95B,MAAM,GAAI,IAAI5I,QACrDwN,EAAK8B,GAAGwyB,QAAQ9hC,QAAU6P,EAAKvQ,WAAWwiC,QAAsC,MAA1Bt0B,EAAK8B,GAAGwyB,QAAQ9hC,OAChFs7B,EAAM2F,mBAAmB35B,SACtBo7B,UAAgB7yB,EAAKvQ,WAAWojC,KAGrClhC,EAAM8F,SAASxG,GAAQ+O,EAAKvQ,WAAWwB,GAAO0M,EAAK8B,GAAGxO,GAAKd,OAC7D,CACF,EAEA2iC,cAAerH,EAAOtO,GAEpB,MAAM,eAAE6M,EAAc,KAAErsB,GAASwf,EAC3BxrB,EAAQG,OAAOsJ,KAAKuC,GAC1B8tB,EAAMrI,OAAOzzB,SAASsF,QAEpB,SAAUia,GACJA,EAAKzf,WAAW+Q,QAAUwpB,GAC5Br4B,EAAM8F,SAASxG,GAAQie,EAAKzf,WAAWwB,GAAO0M,EAAK1M,GAAKd,OAE5D,GAEJ,EAEA4iC,eAAgBtH,EAAOtO,GACrB,MAAMwO,EAAUrS,gBAAgBmS,EAAMnI,cAChC+K,EAAiB,CAAC,EACxB5C,EAAMuF,gBAAgBv5B,SAAQxG,IAC5Bo9B,EAAep9B,GAAO,QAExBo9B,EAAe7tB,MAAQ,SAAW,EAAMoY,WACxC,MAKM0V,EAAe,CAAE9wB,SALF,CACnB4jB,YAAajE,EACb5tB,KAAM,SAGuCE,WAAY4+B,EAAgB9+B,KAAM,WACjFo8B,EAAQh8B,SAAW,CAAC2+B,GACpB7C,EAAMwF,SAAWtF,CACnB,EACAqH,WAAYvH,EAAOtO,GAEjB,MAAM6R,EAAQ7R,EAAQ9rB,gBAChB49B,EAAQ3V,gBAAgB0V,GAExBK,EAAQlS,EAAQuH,OAEtBsK,EAAMv/B,WAAWqO,EAAI2tB,EAAMwF,SAASthC,SAAS,GAAGF,WAAW+Q,MAC3DwuB,EAAMxxB,SAAS4jB,YAAc,IACxB4N,EAAMxxB,SAAS4jB,YAAYroB,MAAM,EAAGokB,EAAQmS,YAC/C7D,EAAMwF,SAASthC,SAAS,GAAG6N,SAAS4jB,aAGtC4N,EAAMv/B,WAAW+Q,MAAQ,QAAU,EAAMoY,WACzCoW,EAAMv/B,WAAW4F,OAAS25B,EAAMv/B,WAAW4F,OAASg6B,EACpDL,EAAMv/B,WAAW+4B,KAAOwG,EAAMv/B,WAAW+4B,KAAO6G,EAC5CL,EAAMv/B,WAAWwjC,WAAUjE,EAAMv/B,WAAWwjC,SAAWjE,EAAMv/B,WAAW4F,QACxE25B,EAAMv/B,WAAWyjC,SAAQlE,EAAMv/B,WAAWyjC,OAASlE,EAAMv/B,WAAW+4B,MAExEyG,EAAMx/B,WAAWoO,EAAI4tB,EAAMwF,SAASthC,SAAS,GAAGF,WAAW+Q,MAC3DyuB,EAAMzxB,SAAS4jB,YAAc,CAC3BqK,EAAMwF,SAASthC,SAAS,GAAG6N,SAAS4jB,eACjC6N,EAAMzxB,SAAS4jB,YAAYroB,MAAMokB,EAAQmS,aAE9CL,EAAMx/B,WAAW+Q,MAAQ,SAAW,EAAMoY,WAC1CqW,EAAMx/B,WAAW4F,OAAS45B,EAAMx/B,WAAW4F,QAAU,EAAIg6B,GACzDJ,EAAMx/B,WAAW+4B,KAAOyG,EAAMx/B,WAAW+4B,MAAQ,EAAI6G,GACjDJ,EAAMx/B,WAAWwjC,WAAUhE,EAAMx/B,WAAWwjC,SAAWhE,EAAMx/B,WAAW4F,QACxE45B,EAAMx/B,WAAWyjC,SAAQjE,EAAMx/B,WAAWyjC,OAASjE,EAAMx/B,WAAW+4B,MAExEiD,EAAMhI,cAAc9zB,SAASP,KAAK6/B,GAClCxD,EAAM5I,eAAelzB,SAASP,KAAK6/B,GAEnCxD,EAAM3I,OAAOnzB,SAASsF,QAAQ+K,GAASA,EAAKvQ,WAAW+Q,QAAUwuB,EAAMv/B,WAAW+Q,QAAO,GAAKwuB,EAC9FvD,EAAM3I,OAAOnzB,SAASP,KAAK6/B,EAC7B,EAEAkE,kBAAmB1H,EAAOtO,GAIxB,MAAMc,EAAmBwN,EAAM5I,eAAelzB,SAC3CsF,QAAQ+K,GAASmd,EAAQkH,cAAcjqB,SAAS4F,EAAKvQ,WAAW+Q,SAEnE,IAAK,IAAIf,EAAI,EAAGA,EAAIwe,EAAiB5oB,OAAQoK,IAAK,CAChD,MAAMgwB,EAAW,IAAWxR,EAAiBxe,GAAGjC,SAAS4jB,aACnDsO,EAAe,IAAM59B,OAAOkmB,OAAOmF,EAAQiC,SAC3CuQ,GAAU,OAAmBF,EAAUC,EAAc,CAAEpT,MAAO,eAC9DsT,GAAO,OAAOH,EAAU,CAAEnT,MAAO,eAEjCgT,EAAaK,EAAQlgC,WAAW+Q,MAAQ,EACxCkkB,EAASiL,EAAQlgC,WAAW47B,SAAWuE,EACvB,WAAlBzS,EAAQgB,OAEA,IAAN1e,IACF3P,KAAKqG,OAAO,iBAAkBw5B,EAAQnyB,SAAS4jB,aAC/CqK,EAAMrI,OAAOzzB,SAASP,KAAKq8B,EAAMwF,SAASthC,SAAS,IACnD87B,EAAMjI,cAAc7zB,SAASP,KAAKq8B,EAAMwF,SAASthC,SAAS,IAC1D87B,EAAMtI,eAAexzB,SAASP,KAAKq8B,EAAMwF,SAASthC,SAAS,KAE7DG,KAAKqG,OAAO,aAAc,CAAE9E,gBAAiB4sB,EAAiBxe,GAAIilB,OAAQA,EAAQ4K,WAAYA,KAI9Fx/B,KAAKqG,OAAO,iBAAkB,CAC5B4yB,aAAc9K,EAAiBxe,GAC/B2hB,YAAauO,EAAQnyB,SAAS4jB,YAC9BkO,WAAYA,GAGlB,CACF,EACA8D,eAAgB3H,EAAOtO,GACrB,MAAM+H,EAAY/H,EAAQ4L,aAAat5B,WAAW+Q,MAC5C0uB,EAAezD,EAAM5I,eAAelzB,SAASw/B,WAAUnvB,GAAQA,EAAKvQ,WAAW+Q,QAAU0kB,IAElFuG,EAAM5I,eAAelzB,SAASu/B,GACtC1xB,SAAS4jB,YAAYyN,OAAO1R,EAAQmS,WAAY,EAAGnS,EAAQiE,YAClE,EACAiS,YAAa5H,EAAOtO,GAObA,EAAQiK,QAMkB,WAApBjK,EAAQmE,UAEjBxxB,KAAKqG,OAAO,oBAAqB,CAAEkuB,cAAelH,EAAQiK,QAAShI,OAAQjC,EAAQkK,KAAMlJ,MAAO,WAChGhB,EAAQiK,QAAUqE,EAAMwF,SAASthC,SAAS,GAAGF,WAAW+Q,QARxD1Q,KAAKqG,OAAO,iBAAkBgnB,EAAQkK,MACtCoE,EAAMjI,cAAc7zB,SAASP,KAAKq8B,EAAMwF,SAASthC,SAAS,IAC1D87B,EAAMtI,eAAexzB,SAASP,KAAKq8B,EAAMwF,SAASthC,SAAS,IAC3D87B,EAAMrI,OAAOzzB,SAASP,KAAKq8B,EAAMwF,SAASthC,SAAS,IACnDwtB,EAAQiK,QAAUqE,EAAMwF,SAASthC,SAAS,GAAGF,WAAW+Q,OAM1D,MAAM8yB,EAAS7H,EAAMjI,cAAc7zB,SAASsF,QAAOia,GAAQA,EAAKzf,WAAW+Q,QAAU2c,EAAQgK,UAAS,GAChGoM,EAAS9H,EAAMjI,cAAc7zB,SAASsF,QAAOia,GAAQA,EAAKzf,WAAW+Q,QAAU2c,EAAQiK,UAAS,GAEhGoM,EAAe,CACnBpS,YAAa,CAACkS,EAAO91B,SAAS4jB,YAAamS,EAAO/1B,SAAS4jB,aAC3D7xB,KAAM,cAGFy+B,EAAiB,CAAC,EAExBvC,EAAMxS,gBAAgBxhB,SAASxG,GAAQ+8B,EAAe/8B,GAAO,OAC7D+8B,EAAextB,MAAQ,SAAW,EAAMoY,WACxCoV,EAAenwB,EAAIsf,EAAQgK,QAC3B6G,EAAelwB,EAAIqf,EAAQiK,QAC3B4G,EAAevF,QAAUgD,EAAM5O,eAC/BmR,EAAe7F,YAAcsD,EAAM0F,mBAEnC,MAAMxC,GAAW,OAAO6E,GAClBhL,EAAOmG,EAAWlD,EAAMjP,UAAY,KAC1CwR,EAAe34B,OAASrD,QAAmB,IAAX28B,GAAiBC,QAAQ,IACzDZ,EAAexF,KAAOx2B,OAAOw2B,EAAKoG,QAAQ,IAC1CZ,EAAetF,MAAQ12B,OAAOy5B,EAAMjP,WAChCiP,EAAMxS,gBAAgB7e,SAAS,YACjC4zB,EAAeiE,OAAS,IACxBxG,EAAM2F,mBAAmB35B,SACtBo7B,GAAS7E,EAAe6E,GAAQ7E,EAAe6E,EAAK95B,MAAM,GAAI,OAGnE,MAAMk1B,EAAc,CAAEzwB,SAAUg2B,EAAc/jC,WAAYu+B,EAAgBz+B,KAAM,WAChFk8B,EAAM3I,OAAOnzB,SAASP,KAAK6+B,GAG3B,MAAMwF,EAAezF,EAAevC,EAAMlS,iBACrCkS,EAAMvS,kBAAkB9e,SAASq5B,IACpChI,EAAMvS,kBAAkB9pB,KAAKqkC,GAE1BhI,EAAM3V,eAAe1b,SAASq5B,IAMjChI,EAAMhI,cAAc9zB,SAASP,KAAK6+B,GAClCxC,EAAM5I,eAAelzB,SAASP,KAAK6+B,KALnCxC,EAAMhI,cAAc9zB,SAASP,KAAK6+B,GAClCxC,EAAM5I,eAAelzB,SAASP,KAAK6+B,GACnCxC,EAAM3V,eAAe1mB,KAAKqkC,GAK9B,EAEAC,kBAAmBjI,EAAOtO,GACxB,MAAM4R,EAAY5R,EAAQiF,aAAa3yB,WAAW+Q,MAGlDirB,EAAMyF,eAAiB,CACrBpzB,EAAG2tB,EAAM3I,OAAOnzB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWqO,IAAMixB,IAC9DlxB,EAAG4tB,EAAM3I,OAAOnzB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWoO,IAAMkxB,IAElE,EACA4E,UAAWlI,EAAOtO,GAChB,MAAM4R,EAAY5R,EAAQiF,aAAa3yB,WAAW+Q,MAElCirB,EAAMtI,eAAexzB,SAASsF,QAAOia,GAAQA,EAAKzf,WAAW+Q,QAAUuuB,IAAW,GAC1FvxB,SAAS4jB,YAAcjE,EAAQiC,OAKvCqM,EAAMyF,eAAepzB,EAAErG,SAAQuI,IAE7BA,EAAKxC,SAAS4jB,YAAc,IAAIphB,EAAKxC,SAAS4jB,YAAYroB,MAAM,GAAI,GAAIokB,EAAQiC,QAEhF,MAAMuP,GAAW,OAAO3uB,GACxBA,EAAKvQ,WAAW4F,OAASrD,QAAmB,IAAX28B,GAAiBC,QAAQ,IAE1D,MAAMpG,EAAOmG,EAAW3uB,EAAKvQ,WAAWi5B,MAAQ,KAGhD,GAFA1oB,EAAKvQ,WAAW+4B,KAAOx2B,OAAOw2B,EAAKoG,QAAQ,IAEvC5uB,EAAKvQ,WAAWyjC,OAAQ,CAC1B,MAAMU,EAAQjF,EAAW3uB,EAAKvQ,WAAWokC,QAAU,KACnD7zB,EAAKvQ,WAAWyjC,OAASlhC,OAAO4hC,EAAMhF,QAAQ,GAChD,CACI5uB,EAAKvQ,WAAWwjC,WAAUjzB,EAAKvQ,WAAWwjC,SAAWjzB,EAAKvQ,WAAW4F,WAE3Eo2B,EAAMyF,eAAerzB,EAAEpG,SAAQuI,IAC7BA,EAAKxC,SAAS4jB,YAAc,CAACjE,EAAQiC,UAAWpf,EAAKxC,SAAS4jB,YAAYroB,MAAM,IAEhF,MAAM41B,GAAW,OAAO3uB,GACxBA,EAAKvQ,WAAW4F,OAASrD,QAAmB,IAAX28B,GAAiBC,QAAQ,IAE1D,MAAMpG,EAAOmG,EAAW3uB,EAAKvQ,WAAWi5B,MAAQ,KAGhD,GAFA1oB,EAAKvQ,WAAW+4B,KAAOx2B,OAAOw2B,EAAKoG,QAAQ,IAEvC5uB,EAAKvQ,WAAWyjC,OAAQ,CAC1B,MAAMU,EAAQjF,EAAW3uB,EAAKvQ,WAAWokC,QAAU,KACnD7zB,EAAKvQ,WAAWyjC,OAASlhC,OAAO4hC,EAAMhF,QAAQ,GAChD,CACI5uB,EAAKvQ,WAAWwjC,WAAUjzB,EAAKvQ,WAAWwjC,SAAWjzB,EAAKvQ,WAAW4F,UAE7E,EACAy+B,YAAarI,EAAOtO,GAClB,MAAM+H,EAAY/H,EAAQiF,aAAa3yB,WAAWy1B,UAC5CC,EAAmBhI,EAAQiF,aAAa3yB,WAAW01B,iBACnDnlB,EAAOyrB,EAAM5I,eAAelzB,SAASsF,QAAOysB,GAAWA,EAAQjyB,WAAW+Q,QAAU0kB,IAAW,GACrGllB,EAAKxC,SAAS4jB,YAAc,IAAIphB,EAAKxC,SAAS4jB,YAAYroB,MAAM,EAAGosB,GACjEhI,EAAQiC,UACLpf,EAAKxC,SAAS4jB,YAAYroB,MAAMosB,EAAmB,IAGxD,MAAMwJ,GAAW,OAAO3uB,GACxBA,EAAKvQ,WAAW4F,OAASrD,QAAmB,IAAX28B,GAAiBC,QAAQ,IAC1D,MAAMpG,EAAOmG,EAAWlD,EAAMjP,UAAY,KAC1Cxc,EAAKvQ,WAAW+4B,KAAOx2B,OAAOw2B,EAAKoG,QAAQ,GAC7C,EACAmF,kBAAmBtI,EAAOtO,GACxB,MAAM+H,EAAY/H,EAAQiF,aAAa8C,UACjCC,EAAmBhI,EAAQiF,aAAa+C,iBACxCnlB,EAAOyrB,EAAM5I,eAAelzB,SAASsF,QAAOysB,GAAWA,EAAQjyB,WAAW+Q,QAAU0kB,IAAW,GACrGllB,EAAKxC,SAAS4jB,YAAc,IAAIphB,EAAKxC,SAAS4jB,YAAYroB,MAAM,EAAGosB,MAC9DnlB,EAAKxC,SAAS4jB,YAAYroB,MAAMosB,EAAmB,GAC1D,EACA6O,YAAavI,EAAOtO,GAClB,MAAM8W,EAAU,IAAIv/B,IAAIyoB,EAAQkH,eAChCoH,EAAM3I,OAAOnzB,SAAW87B,EAAM3I,OAAOnzB,SAASsF,QAAO+K,IAASi0B,EAAQj2B,IAAIgC,EAAKvQ,WAAW+Q,SAC1FirB,EAAMhI,cAAc9zB,SAAW87B,EAAMhI,cAAc9zB,SAASsF,QAAO+K,IAASi0B,EAAQj2B,IAAIgC,EAAKvQ,WAAW+Q,SACxGirB,EAAM5I,eAAelzB,SAAW87B,EAAM5I,eAAelzB,SAASsF,QAAO+K,IAASi0B,EAAQj2B,IAAIgC,EAAKvQ,WAAW+Q,SAC1G1Q,KAAKqG,OAAO,sBACZrG,KAAKqG,OAAO,mBAAoB,CAAEijB,OAAQ,WAC1CtpB,KAAKqG,OAAO,qBACZrG,KAAKqG,OAAO,kBACd,EACA+9B,aAAczI,EAAOtO,GACnB,MAAMlY,EAAQkY,EACRgV,EAAM1G,EAAMlS,gBAClBkS,EAAM3I,OAAOnzB,SAAW87B,EAAM3I,OAAOnzB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAW0iC,KAASltB,IACtFnV,KAAKqG,OAAO,uBACZrG,KAAKqG,OAAO,sBACZrG,KAAKqG,OAAO,kBACd,EACAg+B,mBAAoB1I,GAElB,MAAM5tB,EAAI4tB,EAAM3I,OAAOnzB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWoO,IACtDC,EAAI2tB,EAAM3I,OAAOnzB,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWqO,IACtD4yB,EAAe,IAAIh8B,IAAI,IAAImJ,KAAMC,IACvC2tB,EAAMrI,OAAOzzB,SAAW87B,EAAMrI,OAAOzzB,SAASsF,QAAOia,GAAQwhB,EAAa1yB,IAAIkR,EAAKzf,WAAW+Q,QAChG,EAEA4zB,eAAgB3I,EAAOtO,GAErB,MAAMkX,EAAYlX,EAAQxf,KACpBksB,EAAgB1M,EAAQ0M,cAExBl4B,EAAQG,OAAOsJ,KAAKi5B,GAAWp/B,QAAOhE,GACf,KAAzBojC,EAAUpjC,GAAKd,QAAkBkkC,EAAUpjC,GAAKkP,cAsBpD,GAnBgC,MAA5Bk0B,EAAUpC,QAAQ9hC,MACC05B,EAAc50B,QAAO+K,GAAmC,MAA3BA,EAAKvQ,WAAWwiC,SACrDx6B,SAAQuI,IACnByrB,EAAM2F,mBAAmB35B,SACtBo7B,GAAS7yB,EAAKvQ,WAAWojC,GAAQ7yB,EAAKvQ,WAAWojC,EAAK95B,MAAM,GAAI,KAAG,IAGnC,MAA5Bs7B,EAAUpC,QAAQ9hC,OACN05B,EAAc50B,QAAO+K,GAAmC,MAA3BA,EAAKvQ,WAAWwiC,SACrDx6B,SAAQuI,IACnByrB,EAAM2F,mBAAmB35B,SACtBo7B,UAAgB7yB,EAAKvQ,WAAWojC,IAAK,IAK5ChJ,EAAcpyB,SACX9H,GAAagC,EAAM8F,SAASxG,GAAQtB,EAASF,WAAWwB,GAAOojC,EAAUpjC,GAAKd,UAE7Es7B,EAAMxS,gBAAgB7e,SAAS,UAAW,CAC5C,MAAMk6B,EAAgB7I,EAAM2F,mBAAmBn8B,QAAO49B,GAAQlhC,EAAMyI,SAASy4B,EAAK95B,MAAM,GAAI,MAC5F8wB,EAAc50B,QAAO+K,GAAmC,MAA3BA,EAAKvQ,WAAWwiC,SAAgBx6B,SAC1D9H,GAAa2kC,EAAc78B,SAASo7B,GAASljC,EAASF,WAAWojC,GAAQwB,EAAUxB,EAAK95B,MAAM,GAAI,IAAI5I,SAE3G,CACAL,KAAKqG,OAAO,uBACZrG,KAAKqG,OAAO,kBACd,GAIF9D,QAAS,CACPywB,OAAS2I,GAAUA,EAAM3I,OACzBM,OAASqI,GAAUA,EAAMrI,OACzB5G,UAAYiP,GAAUA,EAAMjP,UAC5BuU,aAAetF,GAAUA,EAAMsF,aAC/BzN,aAAemI,GAAUA,EAAMnI,aAC/BrK,gBAAkBwS,GAAUA,EAAMxS,gBAAgBxR,OAClDqO,eAAiB2V,GAAUA,EAAM3V,eACjCyD,gBAAkBkS,GAAUA,EAAMlS,gBAClCL,kBAAoBuS,GAAUA,EAAMvS,kBACpCuK,cAAgBgI,GAAUA,EAAMhI,cAChCZ,eAAiB4I,GAAUA,EAAM5I,eACjCM,eAAiBsI,GAAUA,EAAMtI,eACjCK,cAAgBiI,GAAUA,EAAMjI,cAChC3G,eAAiB4O,GAAUA,EAAM5O,eACjChM,cAAgB4a,GAA2C,IAAjCA,EAAM3I,OAAOnzB,SAAS0F,OAChD60B,eAAiBuB,GAAUA,EAAMvB,eACjC+G,SAAWxF,GAAUA,EAAMwF,SAC3B1G,aAAekB,GAAUA,EAAMlB,aAC/BzR,YAAc2S,GAAUA,EAAMxS,gBAAgB7e,SAAS,YAEvDspB,aAAe+H,IACb,MAAMtN,EAAQ7E,gBAAgBmS,EAAMnI,cAepC,OAdAmI,EAAM5I,eAAelzB,SAASsF,QAAO+K,GAAQA,EAAKxC,SAAS4jB,YAAY/rB,OAAS,IAAGoC,SACjFiqB,IACE,MAAMwD,EAAYxD,EAAQjyB,WAAW+Q,MACrCkhB,EAAQlkB,SAAS4jB,YAAYroB,MAAM,GAAI,GAAGtB,SACxC,CAAC2oB,EAAOjM,IAAQgK,EAAMxuB,SAASP,KAAK,IAClCgxB,EACA,CAAE5f,MAAO,EAAMoY,WAAYsM,UAAWA,EAAWC,iBAAkBhR,EAAM,MAI7E,IAIGgK,GAETsL,eAAiBgC,GAAU,CAAC8I,EAAWC,GAAW,KAChD,MAAM1c,EAAQ2T,EAAM3I,OAAOnzB,SAASsF,QAAO+K,GAAQu0B,EAAUn6B,SAAS4F,EAAKvQ,WAAW+Q,SAChFgT,EAAM,GASZ,OARAsE,EAAMrgB,SAAQuI,IACZ,MAAMqnB,EAAOrnB,EAAKxC,SAAS4jB,YACvBoT,EACFhhB,EAAIpkB,MAAK,OAAQi4B,EAAKA,EAAKhyB,OAAS,GAAIgyB,EAAK,KAE7C7T,EAAIpkB,MAAK,OAAQi4B,EAAK,GAAIA,EAAKA,EAAKhyB,OAAS,IAC/C,IAEKme,GAEToW,YAAc6B,GAAU,CAACpS,EAAUpU,IAC1BwmB,EAAM3I,OAAOnzB,SAASsF,QAAO+K,GAAQiF,IAAUjF,EAAKvQ,WAAW4pB,KAExEqQ,YAAc+B,GACL,IAAI/2B,IAAI+2B,EAAM3I,OAAOnzB,SAASsF,QACnC+K,GAAmC,MAA3BA,EAAKvQ,WAAWwiC,SAAgBt9B,KACxCqL,GAAQA,EAAKvQ,WAAW+Q,SAE5BgpB,WAAaiC,GAAWvG,IACtB,MAAMrlB,EAAa,CAAC,IAAK,IAAK,SACxBmpB,EAAayC,EAAMhI,cAAc9zB,SAASsF,QAC7C+K,GAASA,EAAKvQ,WAAW+Q,QAAU0kB,IAAW,GAAGz1B,WAG9CqQ,EAAO,CAAC,EAQd,OAPA2rB,EAAMxS,gBAAgBxhB,SAAQxG,IAC5B6O,EAAK7O,GAAO,CACVd,MAAO64B,EAAW/3B,GAClBiP,SAAUL,EAAWzF,SAASnJ,GAC9BkP,aAAa,EACf,IAEKL,GAET6pB,mBAAqB8B,GAAWvG,IAC9B,MAAMrlB,EAAa,CAAC,IAAK,IAAK,SACxBmpB,EAAayC,EAAMhI,cAAc9zB,SAASsF,QAC7C+K,GAASA,EAAKvQ,WAAW+Q,QAAU0kB,IAAW,GAAGz1B,WAG9CqQ,EAAO,CAAC,EAQd,OAPA2rB,EAAM2F,mBAAmB35B,SAAQxG,IAC/B6O,EAAK7O,GAAO,CACVd,MAAO64B,EAAW/3B,GAClBiP,SAAUL,EAAWzF,SAASnJ,GAC9BkP,aAAa,EACf,IAEKL,KCpuBP,EAAQ,EAAQ,MAGtB,GACE20B,YAAY,EACZhJ,MAAO,CACLhS,MAAO,CAAC,EACRib,aAAc,CAAC,EACfC,YAAa,CAAC,EACdC,gBAAiB,GACjBC,iBAAkB,GAClBld,eAAgB,GAChBiN,iBAAkB,IAIpBmH,UAAW,CACT+I,UAAWrJ,EAAOtO,GAEhB,GADAsO,EAAMhS,MAAQH,gBAAgB6D,GAC1B,CAAC,gCAAiC,aAAa/iB,SAASqxB,EAAMhS,MAAMjqB,IAAIC,WAAWC,MAAO,CAC5F,MAAMilC,EAAc,IAAKlJ,EAAMhS,OAC/Bkb,EAAYhlC,SAAW,GACvB87B,EAAMkJ,YAAcA,EACpBlJ,EAAMiJ,aAAepb,gBAAgBqb,GAGrC7kC,KAAKqG,OAAO,mBACd,MAASmF,MAAM,qCACjB,EAEAy5B,YAAatJ,EAAOtO,GAElB,IAAK,MAAMnlB,KAAQmlB,EAAS,CAC1B,KAAI,QAAkBnlB,EAAKiC,QAASwxB,EAAMhS,OAEnC,CACL,MAAMllB,EAAM,IAAIwD,MAAe,+BAAkCC,EAAKwD,MAEtE,MADAjH,EAAI7E,KAAO,cACL6E,CACR,CALEzE,KAAKqG,OAAO,kBAAkB,EAAAiH,EAAA,IAAWpF,EAAKiC,QAASjC,EAAKwD,KAAM,cAMtE,CACF,EAEAw5B,YAAavJ,EAAOtO,GAMlBA,EAAQxtB,SAAS8H,SAAQuI,IAAQA,SAAKxC,SAAS4jB,YAHtC,EADiB3oB,EAImDuH,EAAKxC,SAAS4jB,aAH7E,GAAI3oB,EAAIA,EAAIpD,OAAS,IADnC,IAA0BoD,CAI6E,IAEvG0kB,EAAQxtB,SAAS8H,SAAQuI,GAAQyrB,EAAMhS,MAAM9pB,SAASP,KAAK4Q,KAC3DlQ,KAAKqG,OAAO,oBACZrG,KAAKqG,OAAO,0BACZrG,KAAKqG,OAAO,yBACd,EAEA8+B,qBAAsBxJ,EAAOtO,GAC3BsO,EAAM9T,eAAiBwF,EACvBrtB,KAAKqG,OAAO,0BACZrG,KAAKqG,OAAO,yBACd,EACA++B,uBAAwBzJ,EAAOtO,GAC7BsO,EAAM7G,iBAAmBzH,EACzBrtB,KAAKqG,OAAO,yBACd,EAEAg/B,cAAe1J,GACb,MAAMiB,EAAS,IAAIh4B,IAAI,IACvB+2B,EAAMhS,MAAM9pB,SAAS8H,SAAQk1B,IAC3B76B,OAAOsJ,KAAKuxB,EAAQl9B,YAAYgI,SAAQxG,GAAOy7B,EAAO5M,IAAI7uB,IAAI,IAGtC,CACxB,QAAS,QACOwG,SAAQo1B,GAAOH,EAAO5M,IAAI+M,KAC5CpB,EAAMmJ,gBAAkBhjC,MAAM6C,KAAKi4B,GACnCjB,EAAM9T,eAAiB8T,EAAMmJ,gBAAgB,GAC7CnJ,EAAM7G,iBAAmBhzB,MAAM6C,KAAK,IAAIC,IAAI+2B,EAAMhS,MAAM9pB,SAASgF,KAC/DO,GAAQA,EAAKzF,WAAWg8B,EAAM9T,mBAClC,EAEAyd,oBAAqB3J,GACnB,MAAMxmB,EAAQ,IAAIvQ,IAAI+2B,EAAM7G,kBACtBuN,EAAM1G,EAAM9T,eAClB8T,EAAMiJ,aAAa/kC,SAAW87B,EAAMhS,MAAM9pB,SAASsF,QAAO+K,GAAQiF,EAAMjH,IAAIgC,EAAKvQ,WAAW0iC,KAC9F,EACAkD,oBAAqB5J,GAGnB,MAAM1rB,EAAMnO,MAAM6C,KAAK,IAAIC,IAAI+2B,EAAMhS,MAAM9pB,SAASgF,KAClDO,GAAQA,EAAKzF,WAAWg8B,EAAM9T,oBAChC8T,EAAMoJ,iBAAmB90B,CAC3B,EAGAu1B,SAAU7J,EAAOtO,GACf,MAAM8W,EAAU,IAAIv/B,IAAIyoB,EAAQkH,eAChCoH,EAAMhS,MAAM9pB,SAAW87B,EAAMhS,MAAM9pB,SAASsF,QAAO+K,IAASi0B,EAAQj2B,IAAIgC,EAAKvQ,WAAW+Q,SACxF1Q,KAAKqG,OAAO,0BACZrG,KAAKqG,OAAO,yBACd,EAEAo/B,YAAa9J,EAAOtO,GAClB,MAAMlY,EAAQkY,EACRgV,EAAM1G,EAAM9T,eAClB8T,EAAMhS,MAAM9pB,SAAW87B,EAAMhS,MAAM9pB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAW0iC,KAASltB,IACpFnV,KAAKqG,OAAO,0BACZrG,KAAKqG,OAAO,yBACd,EAEA4qB,SAAU0K,EAAOtO,GACf,MAAM+H,EAAY/H,EAAQ9rB,gBAAgB5B,WAAWy1B,UAC/CC,EAAmBhI,EAAQ9rB,gBAAgB5B,WAAW01B,iBAEtDnlB,EAAOyrB,EAAMiJ,aAAa/kC,SAASsF,QAAOysB,GAAWA,EAAQjyB,WAAW+Q,QAAU0kB,IAAW,GACnGllB,EAAKxC,SAAS4jB,YAAc,IAAIphB,EAAKxC,SAAS4jB,YAAYroB,MAAM,EAAGosB,GACjEhI,EAAQiC,UACLpf,EAAKxC,SAAS4jB,YAAYroB,MAAMosB,EAAmB,GAC1D,EAEAqQ,cAAe/J,EAAOtO,GACpB,MAAMqW,EAAe,CACnBpS,YAAa,CAACjE,EAAQiC,OAAQjC,EAAQiC,QACtC7vB,KAAM,cAGFy+B,EAAiB,CAAC,EAExBvC,EAAMmJ,gBAAgBn9B,SAASxG,GAAQ+8B,EAAe/8B,GAAO,OAC7D+8B,EAAextB,MAAQ2c,EAAQ3c,MAE/B,MAAMytB,EAAc,CAAEzwB,SAAUg2B,EAAc/jC,WAAYu+B,EAAgBz+B,KAAM,WAChFk8B,EAAMhS,MAAM9pB,SAASP,KAAK6+B,GAE1Bn+B,KAAKqG,OAAO,0BAEZ,MAAMs/B,EAASzH,EAAevC,EAAM9T,gBACR,IAAIjjB,IAAI+2B,EAAM7G,kBACjB5mB,IAAIy3B,IAC3BhK,EAAM7G,iBAAiBx1B,KAAKqmC,GAE9B3lC,KAAKqG,OAAO,yBACd,EAEAk6B,aAAc5E,EAAOtO,GAEnB,MAAM,eAAE4M,EAAc,KAAEpsB,GAASwf,EAC3BxrB,EAAQG,OAAOsJ,KAAKuC,GAC1B8tB,EAAMiJ,aAAa/kC,SAASsF,QAE1B,SAAU+K,GACJA,EAAKvQ,WAAW+Q,QAAUupB,GAC5Bp4B,EAAM8F,SAASxG,GAAQ+O,EAAKvQ,WAAWwB,GAAO0M,EAAK1M,GAAKd,OAE5D,IAEFL,KAAKqG,OAAO,yBACd,EAEAo6B,cAAe9E,EAAOtO,GAEpB,MAAMkX,EAAYlX,EAAQxf,KACpBksB,EAAgB1M,EAAQ0M,cAExBl4B,EAAQG,OAAOsJ,KAAKi5B,GAAWp/B,QAAOhE,GACf,KAAzBojC,EAAUpjC,GAAKd,QAAkBkkC,EAAUpjC,GAAKkP,cAEpD0pB,EAAcpyB,SACX9H,GAAagC,EAAM8F,SAASxG,GAAQtB,EAASF,WAAWwB,GAAOojC,EAAUpjC,GAAKd,UAEjFL,KAAKqG,OAAO,0BACZrG,KAAKqG,OAAO,yBACd,EACA42B,aAActB,EAAOtO,GAGnBsO,EAAMhS,MAAM9pB,SAASgF,KAAIqL,GAAQA,EAAKvQ,WAAW0tB,GAAW,OAC5DsO,EAAMiJ,aAAa/kC,SAASgF,KAAIqL,GAAQA,EAAKvQ,WAAW0tB,GAAW,OACnEsO,EAAMmJ,gBAAgBxlC,KAAK+tB,EAC7B,EACA6P,gBAAiBvB,EAAOtO,GAEtBsO,EAAMhS,MAAM9pB,SAASsF,QAAO+K,UAAeA,EAAKvQ,WAAW0tB,EAAQztB,QACnE+7B,EAAMiJ,aAAa/kC,SAASsF,QAAO+K,UAAeA,EAAKvQ,WAAW0tB,EAAQztB,QAC1E+7B,EAAMmJ,gBAAkBnJ,EAAMmJ,gBAAgB3/B,QAAOC,GAAQA,IAASioB,EAAQztB,MAChF,GAGF2C,QAAS,CACPonB,MAAQgS,GAAUA,EAAMhS,MACxBib,aAAejJ,GAAUA,EAAMiJ,aAC/BgB,aAAejK,GAA0C,IAAhCA,EAAMhS,MAAM9pB,SAAS0F,OAC9Cs/B,YAAclJ,GAAUA,EAAMkJ,YAC9B9e,cAAgB4V,GAAUA,EAAM5V,cAChC+e,gBAAkBnJ,GAAUA,EAAMmJ,gBAAgBntB,OAClDkQ,eAAiB8T,GAAUA,EAAM9T,eACjCkd,iBAAmBpJ,GAAUA,EAAMoJ,iBACnCjQ,iBAAmB6G,GAAUA,EAAM7G,iBACnC+Q,WAAalK,GAAU,CAACpS,EAAUpU,IACzBwmB,EAAMhS,MAAM9pB,SAASsF,QAAO+K,GAAQiF,IAAUjF,EAAKvQ,WAAW4pB,KAEvEuc,SAAWnK,GAAWvG,IACpB,MAAMrlB,EAAa,CAAC,SACdmpB,EAAayC,EAAMiJ,aAAa/kC,SAASsF,QAC5C+K,GAASA,EAAKvQ,WAAW+Q,QAAU0kB,IAAW,GAAGz1B,WAG9CqQ,EAAO,CAAC,EAQd,OAPA2rB,EAAMmJ,gBAAgBn9B,SAAQxG,IAC5B6O,EAAK7O,GAAO,CACVd,MAAO64B,EAAW/3B,GAClBiP,SAAUL,EAAWzF,SAASnJ,GAC9BkP,aAAa,EACf,IAEKL,GAETqe,MAAQsN,GAAWhS,IACjB,MAAM0E,EAAQ7E,gBAAgBmS,EAAMkJ,aAepC,OAdAlb,EAAM9pB,SAAS8H,SACbiqB,IACE,MAAMmU,EAAQnU,EAAQjyB,WAAW+Q,MACjCkhB,EAAQlkB,SAAS4jB,YAAY3pB,SAC3B,CAAC2oB,EAAOjM,IAAQgK,EAAMxuB,SAASP,KAAK,IAClCgxB,EACA,CAAE5f,MAAO,EAAMoY,WAAYsM,UAAW2Q,EAAO1Q,iBAAkBhR,MAInE,IAIGgK,K,wBC3Ob,MAAM2X,EAAa,EAAQ,OAM3B,SAASC,EAAOh2B,EAAKzP,EAAQkB,EAAQ87B,EAAS0I,EAAOC,GACnD,GAAqB,iBAAV,EACT,OAAIA,EACK,EAEKH,EAAW/1B,EAChBm2B,GAGX,IAAI1iB,EAAMzT,EA6BV,MA5Bc,QAAVi2B,GACF1lC,EAASA,EAAS,EAAIgB,KAAK6kC,MAAM7lC,GAAU,EAC3CkB,EAASA,EAAS,EAAIF,KAAK6kC,MAAM3kC,GAAU,EAC3CgiB,EAAMzT,EAAM,EAAIzO,KAAK6kC,MAAMp2B,GAAO,GACf,SAAVi2B,GACT1lC,EAASgB,KAAK8kC,KAAK9lC,GACnBkB,EAASF,KAAK8kC,KAAK5kC,GACnBgiB,EAAMliB,KAAK8kC,KAAKr2B,IACG,QAAVi2B,GAGTj2B,GAAYvO,EAEZlB,EAAS,KAHTA,GAAkBkB,GAIlBA,EAAS,KAFTA,EAAS,GAGTgiB,EAAM,IAAM,GACO,SAAVwiB,IAET1lC,EAAS,GAAY,EACrBkB,EAAS,GAAY,EACrBgiB,EAAM,GAAS,GAIfA,EADE8Z,IACM9Z,EAAMhiB,IAAWA,EAASlB,IAE3BkjB,EAAMljB,IAAWkB,EAASlB,GAE5BkjB,CACT,CAEA,MAAM6iB,EAAkB,CACtBhlC,gBAAiB,KACjBilC,SAAU,GACVC,SAAU,EACVC,QAAS,IACTR,MAAO,SACPS,UAAU,EACVnmC,OAAQ,EACRkB,OAAQ,EACRklC,KAAM,OACNnmB,QAAS,IACTmU,QAAQ,EACRiS,SAAS,EACTC,cAAc,GAGhB,GACEnC,YAAY,EACZhJ,MAAO,CACLl8B,KAAM,QACNuoB,MAAO,CAAC,EACRsF,aAAc,CAAC,EACfyZ,SAAU,CAAC,EACXrY,YAAa,CAAC,EACd5e,eAAgB,GAChB+X,eAAgB,GAChBiN,iBAAkB,GAClBv0B,gBAAiBgmC,GAInBtK,UAAW,CACT+K,OAAQrL,GACNA,EAAMl8B,KAAO,QACbk8B,EAAM3T,MAAQ,CAAC,EACf2T,EAAMrO,aAAe,CAAC,EACtBqO,EAAMoL,SAAW,CAAC,EAClBpL,EAAMjN,YAAc,CAAC,EACrBiN,EAAM7rB,eAAiB,GACvB6rB,EAAM9T,eAAiB,GACvB8T,EAAM7G,iBAAmB,GACzB6G,EAAMp7B,gBAAkBgmC,CAC1B,EACArK,UAAWP,EAAOtO,GAGhB,GAFAsO,EAAM3T,MAAQqF,EAAQ9f,QACtBouB,EAAMl8B,KAAO4tB,EAAQ5tB,KACjB,CAAC,gCAAiC,aAAa6K,SAASqxB,EAAM3T,MAAMtoB,IAAIC,WAAWC,MAAO,CAC5F,MAAM8uB,EAAclF,gBAAgBmS,EAAM3T,OAC1C0G,EAAY7uB,SAAW,GACvB87B,EAAMjN,YAAcA,EACpBiN,EAAMrO,aAAe9D,gBAAgBkF,GACrCiN,EAAMoL,SAAWvd,gBAAgBkF,GAEjC1uB,KAAKqG,OAAO,8BACRs1B,EAAM7rB,eAAexF,SAAS+iB,EAAQ9rB,iBACxCo6B,EAAMp7B,gBAAgBgB,gBAAkB8rB,EAAQ9rB,gBAEhDo6B,EAAMp7B,gBAAgBgB,gBAAkB,KAE1CvB,KAAKqG,OAAO,+BACZrG,KAAKqG,OAAO,gCACd,MAASmF,MAAM,qCACjB,EAEAy7B,YAAatL,EAAOtO,GAClBsO,EAAM3T,MAAQqF,EACdrtB,KAAKqG,OAAO,+BACZrG,KAAKqG,OAAO,gCACd,EACA8+B,qBAAsBxJ,EAAOtO,GAC3BsO,EAAM9T,eAAiBwF,EAEvBsO,EAAM7G,iBAAmBhzB,MAAM6C,KAAK,IAAIC,IAAI+2B,EAAM3T,MAAMnoB,SAASgF,KAC/DO,GAAQA,EAAKzF,WAAWg8B,EAAM9T,oBAChC7nB,KAAKqG,OAAO,8BACd,EACA++B,uBAAwBzJ,EAAOtO,GAC7BsO,EAAM7G,iBAAmBzH,EACzBrtB,KAAKqG,OAAO,8BACd,EAEAs2B,mBAAoBhB,GAClB,MAAMiB,EAAS,IAAIh4B,IAAI,IACvB+2B,EAAM3T,MAAMnoB,SAAS8H,SAAQk1B,IAC3B76B,OAAOsJ,KAAKuxB,EAAQl9B,YAAYgI,SAAQxG,GAAOy7B,EAAO5M,IAAI7uB,IAAI,IAEhEw6B,EAAM7rB,eAAiBhO,MAAM6C,KAAKi4B,GAClCjB,EAAM7rB,eAAiB6rB,EAAM7rB,eAAe3K,QAAO23B,IAAS,CAAC,gBAAiB,iBAAiBxyB,SAASwyB,KAGxGnB,EAAM9T,eAAiB+U,EAAO1uB,IAAI,cAAgB,aAAe0uB,EAAO1uB,IAAI,WAAa,UAAYytB,EAAM7rB,eAAe,GAC1H6rB,EAAM7G,iBAAmBhzB,MAAM6C,KAAK,IAAIC,IAAI+2B,EAAM3T,MAAMnoB,SAASgF,KAC/DO,GAAQA,EAAKzF,WAAWg8B,EAAM9T,mBAClC,EACAqf,cAAevL,EAAOtO,GACPrrB,OAAOsJ,KAAK+hB,GAEpB1lB,SAAQxG,GAAOw6B,EAAMp7B,gBAAgBY,GAAOksB,EAAQlsB,KACzDnB,KAAKqG,OAAO,+BACZrG,KAAKqG,OAAO,gCACd,EAEA8gC,sBAAuBxL,GACrB,MAAMx6B,EAAMw6B,EAAMp7B,gBAAgBgB,gBAC5BilC,EAAW7K,EAAMp7B,gBAAgBimC,SACjCC,EAAW9K,EAAMp7B,gBAAgBkmC,SACjCP,EAAQvK,EAAMp7B,gBAAgB2lC,MAC9BQ,EAAU/K,EAAMp7B,gBAAgBmmC,QAChCE,EAAOjL,EAAMp7B,gBAAgBqmC,KAC7BQ,EAAazL,EAAMrO,aAAaztB,SAASsF,QAC7C+K,GAAQA,EAAKvQ,WAAWwB,KAAM0D,KAC9BqL,GAAQA,EAAKvQ,WAAWwB,KAC1B,IAAKw6B,EAAMp7B,gBAAgBomC,SAAU,CACnC,MAAMU,EAAe1+B,GACnBA,EAAIlD,QAAO,EAAE+hB,EAAK8f,GAAMr3B,IAAQ,CAACzO,KAAKgmB,IAAIA,EAAKvX,GAAMzO,KAAK8lC,IAAIA,EAAKr3B,KAAO,CACxE/N,OAAOqlC,kBACPrlC,OAAOslC,qBAGJC,EAAMC,GAAQL,EAAYD,GACjCzL,EAAMp7B,gBAAgBC,OAASgB,KAAKC,MAAa,IAAPgmC,GAAc,IACxD9L,EAAMp7B,gBAAgBmB,OAASF,KAAKC,MAAa,IAAPimC,GAAc,GAC1D,CACA,MAAMlnC,EAASm7B,EAAMp7B,gBAAgBC,OAC/BkB,EAASi6B,EAAMp7B,gBAAgBmB,OAC/B87B,EAAU7B,EAAMp7B,gBAAgBumC,aAEtCnL,EAAMrO,aAAaztB,SAAS8H,SAC1BuI,IACE,IAAID,EAAMC,EAAKvQ,WAAWwB,GACtB8O,EAAMzP,EACR0P,EAAKvQ,WAAWgoC,cAAgBlB,EACvBx2B,EAAMvO,EACfwO,EAAKvQ,WAAWgoC,cAAgBnB,GAEhCv2B,EAAMg2B,EAAMh2B,EAAKzP,EAAQkB,GAAQ,EAAOwkC,GAAO,GAC/Ch2B,EAAKvQ,WAAWgoC,eAAiBnB,EAAWC,GAAYx2B,EAAMw2B,EAChE,IAIJ,MAAMxlC,EAAa,UAAa2lC,GAAMnQ,QAAQ,CAAC,GAAK,IACjDmR,OAAO,CAAC,EAAG,GAAI1B,GAAO2B,QAAQnB,GAEjC/K,EAAMrO,aAAaztB,SAAS8H,SAC1BuI,IACE,MAAMD,EAAMC,EAAKvQ,WAAWwB,GA9LnB,4BACDg0B,KA8LOllB,IACb9G,QAAQC,IAAI6G,GACZC,EAAKvQ,WAAWmoC,cAAgB73B,GAEhCC,EAAKvQ,WAAWmoC,cAAgB7mC,EAC9BglC,EAAMh2B,EAAKzP,EAAQkB,EAAQ87B,EAAS0I,GAAO,IAAQ6B,KACvD,GAGN,EACAC,oBAAqBrM,GACnB,MAAMxmB,EAAQ,IAAIvQ,IAAI+2B,EAAM7G,kBACtBuN,EAAM1G,EAAM9T,eACZ1mB,EAAMw6B,EAAMp7B,gBAAgBgB,gBAClCo6B,EAAMrO,aAAaztB,SAAW87B,EAAM3T,MAAMnoB,SAASsF,QAAO+K,GAAQiF,EAAMjH,IAAIgC,EAAKvQ,WAAW0iC,MACvF1G,EAAMp7B,gBAAgBsmC,UAEzBlL,EAAMoL,SAASlnC,SAAW87B,EAAMrO,aAAaztB,SAASsF,QAAO+K,IAASA,EAAKvQ,WAAWwB,KACtFw6B,EAAMrO,aAAaztB,SAAW87B,EAAMrO,aAAaztB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWwB,KAE7F,GAGFoB,QAAS,CACP9C,KAAOk8B,GAAUA,EAAMl8B,KACvBuoB,MAAQ2T,GAAUA,EAAM3T,MACxBsF,aAAeqO,GAAUA,EAAMrO,aAC/B2a,aAAetM,IACb,MAAMhS,EAAQH,gBAAgBmS,EAAMjN,aAWpC,OAVA/E,EAAM9pB,SAAW87B,EAAMrO,aAAaztB,SAASgF,KAAIoM,IACxC,CACLvD,SAAUuD,EAAIvD,SACd/N,WAAY,CACVmoC,cAAe72B,EAAItR,WAAWmoC,cAC9BH,cAAe12B,EAAItR,WAAWgoC,mBAK7Bhe,GAETod,SAAWpL,GAAUA,EAAMoL,SAC3BrY,YAAciN,GAAUA,EAAMjN,YAC9B5e,eAAiB6rB,GAAUA,EAAM7rB,eAAe6H,OAChDkQ,eAAiB8T,GAAUA,EAAM9T,eACjCiN,iBAAmB6G,GAAUA,EAAM7G,iBACnCv0B,gBAAkBo7B,GAAUA,EAAMp7B,gBAClCgB,gBAAkBo6B,GAAUA,EAAMp7B,gBAAgBgB,gBAClDilC,SAAW7K,GAAUA,EAAMp7B,gBAAgBimC,SAC3CC,SAAW9K,GAAUA,EAAMp7B,gBAAgBkmC,SAC3CC,QAAU/K,GAAUA,EAAMp7B,gBAAgBmmC,QAC1CR,MAAQvK,GAAUA,EAAMp7B,gBAAgB2lC,MACxCzlB,QAAUkb,GAAUA,EAAMp7B,gBAAgBkgB,QAC1Cxf,WAAa06B,IACX,MAAMhzB,EAAM,GACN1H,EAAa,UAAa06B,EAAMp7B,gBAAgBqmC,MAAMnQ,QAAQ,CAAC,GAAK,IACvEmR,OAAO,CAAC,EAAG,IAAIC,QAAQlM,EAAMp7B,gBAAgBmmC,SAChD,IAAK,IAAI/2B,EAAI,EAAGA,EAAI,IAAKA,IACvBhH,EAAIrJ,KAAK2B,EAAWglC,EAAMt2B,EAAG,EAAG,IAAKgsB,EAAMp7B,gBAAgBumC,aAAcnL,EAAMp7B,gBAAgB2lC,OAAO,KAExG,OAAOv9B,KC/Pb,GACEg8B,YAAY,EACZhJ,MAAO,KAAM,CACXhS,MAAO,CAAC,EACRue,IAAK,CAAC,EACNvoC,WAAY,GACZF,KAAM,OAGRw8B,UAAW,CACTkM,YAAaxM,EAAOtO,GAClBsO,EAAMhS,MAAQH,gBAAgB6D,EAAQjrB,MACtCu5B,EAAMl8B,KAAOk8B,EAAMhS,MAAM9pB,SAAS,GAAG6N,SAASjO,KAE9Ck8B,EAAMl8B,KAAsB,iBAAfk8B,EAAMl8B,KAA0B,UAAYk8B,EAAMl8B,IACjE,EACA2oC,UAAWzM,EAAOtO,GAEhBrrB,OAAOsJ,KAAK+hB,GAAS1lB,SAAQxG,IAASw6B,EAAMuM,IAAI/mC,EAAM,SAAWksB,EAAQlsB,EAAG,IAC5Ew6B,EAAMh8B,WAAaqC,OAAOsJ,KAAKqwB,EAAMuM,KAEjCvM,EAAMhS,MAAM9pB,SAAS0F,OAAS,GAEhCo2B,EAAMh8B,WAAWgI,SACfwnB,GACEwM,EAAMhS,MAAM9pB,SAAS8H,SACnB0gC,GAAQA,EAAK1oC,WAAWwvB,GAAQ,QAI1C,EAEAmZ,WAAY3M,EAAOtO,GACjB,MAAMkb,EAAmBlb,EAAQkb,iBAEjC,GAAI5M,EAAMh8B,WAAW2K,SAASi+B,GAAmB,CAC/C,MAAM73B,EAAQ2c,EAAQ3c,MAChB83B,EAAM7M,EAAMuM,IAAIK,GAAkB73B,GAGxCirB,EAAMhS,MAAM9pB,SAAS8H,SACnB0gC,GAAQA,EAAK1oC,WAAW4oC,GAAoBC,EAAMA,EAAIH,EAAK1oC,WAAW+Q,OAAS,MACnF,CACF,GAIFnO,QAAS,CACPonB,MAAQgS,GAAUA,EAAMhS,MACxBlqB,KAAOk8B,GAAUA,EAAMl8B,KACvBE,WAAag8B,GAAUA,EAAMh8B,WAC7B8oC,MAAQ9M,GAAUA,EAAMh8B,WAAW4F,OAAS,EAC5C2iC,IAAMvM,IAGJ,MAAMrwB,EAAOtJ,OAAOsJ,KAAKqwB,EAAMuM,KAC/B,GAAI58B,EAAK/F,OAAS,EAAG,CACnB,MAAMme,EAAM,CAAC,EAGb,OAFApY,EAAK3D,SACHxG,IAASuiB,EAAIviB,EAAI8H,MAAM,GAAI,IAAM0yB,EAAMuM,IAAI/mC,EAAG,IACzCuiB,CACT,CAAO,OAAO,Q,0BC7DpB,MAEA,GACEihB,YAAY,EACZhJ,MAAO,CACL+M,oBAAqB,yDACrBC,MAAO,CAAC,CAAE/oC,KAAM,qBAChBgpC,qBAAsB,UACtBC,uBAAwB,CAAC,WACzBvvB,SAAS,EACTwvB,aAAc,GACdC,YAAa,EACbj6B,OAAO,EACPyI,aAAc,GACdyxB,cAAc,EACdC,WAAY,IAEdhN,UAAW,CACTiN,SAAUvN,GACRA,EAAMgN,MAAQ,CAAC,CAAE/oC,KAAM,qBACvB+7B,EAAMiN,qBAAuB,UAC7BjN,EAAMkN,uBAAyB,CAAC,WAChClN,EAAMriB,SAAU,EAChBqiB,EAAMmN,aAAe,GACrBnN,EAAMoN,YAAc,EACpBpN,EAAM7sB,OAAQ,EACd6sB,EAAMqN,cAAe,EACrBrN,EAAMsN,WAAa,EACrB,EACAE,SAAUxN,EAAOtO,GACfsO,EAAMgN,MAAQtb,EACdsO,EAAMgN,MAAM5J,OAAO,EAAG,EAAG,CAAEn/B,KAAM,oBACjC+7B,EAAMgN,MAAMrpC,KAAK,CAAEM,KAAM,mBAC3B,EACAwpC,eAAgBzN,GACdA,EAAM7sB,OAAQ,EACd6sB,EAAMriB,SAAU,EAChBqiB,EAAMoN,YAAc,CACtB,EACAM,mBAAoB1N,EAAOtO,GACzBsO,EAAMriB,SAAU,EAChBqiB,EAAM7sB,OAAQ,EACd6sB,EAAMpkB,aAAe8V,EACrBsO,EAAMmN,aAAe,EACvB,EACAQ,cAAe3N,EAAOtO,GACpBsO,EAAMriB,QAAU+T,CAClB,EACAkc,iBAAkB5N,GAChBA,EAAMriB,SAAU,EAChBqiB,EAAMoN,YAAcpN,EAAMgN,MAAMpjC,OAAS,EACzCo2B,EAAMmN,aAAe,GACrB9oC,KAAKqG,OAAO,qBACV,CAAEiN,KAAe,oCAAsCP,WAAW,EAAO7R,MAAO,WACpF,EACAsoC,kBAAmB7N,EAAOtO,GACxB,MAAMoc,EAAY9N,EAAMgN,MAAM9jC,KAAIkJ,GAAKA,EAAEnO,OACzC+7B,EAAMoN,YAAcU,EAAUl0B,QAAQ8X,EAAQztB,MAAQ,CACxD,EACA8pC,mBAAoB/N,EAAOtO,GACzBA,GAAU,QAAiBA,GAC3BsO,EAAMsN,WAAa5b,CACrB,EACAsc,wBAAyBhO,EAAOtO,GAC9BsO,EAAMiN,qBAAuBvb,CAC/B,EACAuc,0BAA2BjO,EAAOtO,GAChCsO,EAAMkN,uBAAyBxb,CACjC,GAEFsE,QAAS,CACPpuB,qBAAqB,MAAEo4B,EAAK,OAAEt1B,GAAUgnB,GAEtC,IACE,MAAMhqB,QAAe,IAAGqD,SAAS2mB,EAAQ/mB,MAAO+mB,EAAQ3hB,MACxDiwB,EAAMsN,WAAa5lC,CACrB,CAAE,MAAOoB,GACP4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,GACrC,CACF,EACAtmC,iBAAkBumC,GAChB,MAAMxjC,EAAQwjC,EAAQC,UAAUC,KAAK1jC,MAC/BrB,EAAO6kC,EAAQC,UAAUC,KAAKzjC,SAAW,IACzCmF,EAAOzG,EAAO,WACpB,IAAI0e,QAAkB,IAAGpc,UAAUjB,EAAOoF,GAC1CiY,EAAYA,EAAUxe,QAAOvF,IAASA,EAAK6P,SAAS,OACpD,MAAMiU,EAAM,GACZ,IAAK,MAAMxb,KAAQyb,EAAW,CAC5B,MAAM/jB,EAAOsI,EAAKe,MAAMhE,EAAKM,QAC7B,GAAI2C,EAAKuH,SAAS,UAAYvH,EAAKuH,SAAS,YAAa,CACvD,MAAMtF,QAAgB,IAAGzD,SAASJ,EAAO4B,GACzCwb,EAAIpkB,KAAK,CAAEoM,KAAM9L,EAAMuK,QAASA,GAClC,MACEuZ,EAAIpkB,KAAK,CAAEoM,KAAM9L,EAAMuK,QAAS,MAEpC,CAEIuZ,EAAIne,OAAS,IAEfukC,EAAQzjC,OAAO,eAAgB,CAAC,EAAG,CAAEwjC,MAAM,IAC3CC,EAAQzjC,OAAO,YAAaqd,EAAK,CAAEmmB,MAAM,IAG7C,EACAI,UAAU,MAAEtO,EAAK,OAAEt1B,EAAM,UAAE0jC,IACzB,IAAI3nC,EAAO,CAAE8nC,gBAAiBvO,EAAM+M,oBAAsBqB,EAAUC,KAAK1jC,OACzE,IAAcwG,OAAOq9B,KAAK,kBACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACE,MAAMwjC,EAAMtjC,KAAKC,MAAMH,EAASxE,KAAKioC,YAC/BC,EAAYF,EAAIG,QAKtBvoC,OAAOsJ,KAAK8+B,EAAII,QAAQ7iC,SAASxG,IAC/B,GAA6B,WAAzBipC,EAAII,OAAOrpC,GAAKspC,KAGlB,GADA9O,EAAMkN,uBAAyB,CAAC,aAAcuB,EAAII,OAAOrpC,GAAKupC,QAAQ7lC,KAAImD,GAAMA,EAAG2iC,gBAChD,YAA/BhP,EAAMiN,qBACRwB,EAAII,OAAOrpC,GAAKypC,KAAOR,EAAII,OAAOrpC,GAAK0pC,YAClC,CAEL,MAAM5f,EAAUmf,EAAII,OAAOrpC,GAAKupC,QAChCN,EAAII,OAAOrpC,GAAKypC,KAAO3f,EAAQ9lB,QAAO6C,GAAMA,EAAG2iC,eAAiBhP,EAAMiN,uBAAsB,GAAGgC,IACjG,CACF,IAKF,MAAMjC,EAAQ,GACd,IAAIvN,EAAOkP,EACX,KAEgC,WAA1BF,EAAII,OAAOpP,GAAMqP,OACnBrP,EAAOgP,EAAII,OAAOpP,GAAMwP,MAE1BjC,EAAMrpC,KAAK,CAAEM,KAAMw7B,SACWvjB,IAA1BuyB,EAAII,OAAOpP,GAAMwP,MACrBxP,EAAOgP,EAAII,OAAOpP,GAAMwP,KAG1BvkC,EAAO,WAAYsiC,EAAK,IACvBvwB,OACH3T,IACE4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,GAAM,GAE/C,EACAT,gBAAgB,MAAEzN,EAAK,OAAEt1B,EAAM,SAAE0R,EAAQ,UAAEgyB,GAAa1c,GACtD,MAEMyd,EAFiBnP,EAAMsN,WAAW9jC,QAAO4lC,GAC5C/oC,OAAOsJ,KAAKy/B,GAAOzgC,SAAS,aAAgBygC,EAAMzkC,QAAUq1B,EAAMiN,uBACnCnjC,QAAO,CAACulC,GAAOzhB,WAAUlmB,aACzD2nC,EAAIzhB,GAAYlmB,EAAOoC,QAAO,CAACwlC,GAAYrrC,OAAMS,QAAOZ,WACtDwrC,EAASrrC,GAAgC,WAAxBH,GAAMic,cAA6BxZ,OAAO7B,GAASA,EAC7D4qC,IACN,CAAC,GACGD,IACN,CAAC,GACJ,IAAI5oC,EAAO,CAETyU,MAAO/P,KAAKw1B,UAAU,CACpB4O,cAAenB,EAAUC,KAAKrmC,QAC9B0d,OAAQsa,EAAMiN,qBACduC,iBAAkB9d,EAAQ9mB,SAAW,IACrC6kC,aAAc,CACZC,gBAAiB,OACjBhoC,OAAQynC,GAEVQ,SAAU,CACRllC,WAAY2jC,EAAUC,KAAKzgC,YAAYC,SAG3C0gC,gBAAiBvO,EAAM+M,oBAAsBqB,EAAUC,KAAK1jC,OAE9D,IAAcwG,OAAOq9B,KAAK,GACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACE+0B,EAAMmN,aAAeliC,EAASxE,KAAK0mC,aACnC/wB,EAAS,gBAAe,IACvBK,OACH3T,IACE4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,GAAM,GAE/C,EACA0B,eAAe,OAAEllC,EAAM,MAAEs1B,EAAK,SAAE5jB,IAC9B,MAAMyzB,EAAaC,aAAY,KAC7B,IAAIrpC,EAAO,CAAE0mC,aAAcnN,EAAMmN,cACjC,IAAch8B,OAAOq9B,KAAK,YACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACE+0B,EAAM+P,OAAS9kC,EAASxE,KAAKspC,OACR,cAAjB/P,EAAM+P,OACR3zB,EAAS,cAAc7N,MACrB,KACE7D,EAAO,oBACPslC,cAAcH,EAAU,IAE1BpzB,OAAM3T,GAAO+G,MAAM/G,KACZ,CAAC,SAAU,YAAa,WAAW6F,SAASqxB,EAAM+P,SAC3DrlC,EAAO,qBAAsBS,KAAKC,MAAMH,EAASxE,KAAKwpC,QACtDD,cAAcH,SACY3zB,IAAjB8jB,EAAM+P,QACfC,cAAcH,EAChB,IACCpzB,OACH3T,IACE4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,IACnClO,EAAMriB,SAAU,KAEpBlX,EAAO,CAAE0mC,aAAcnN,EAAMmN,aAAc+C,sBAAsB,EAAOC,cAAc,GACtF,IAAch/B,OAAOq9B,KAAK,WACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACE,IAAK,MAAM4f,KAAK5f,EAASxE,KAAK0T,OAAQ,CACpC,MAAMnH,EAAQ/H,EAASxE,KAAK0T,OAAO0Q,GACnC,GAAmB,qBAAf7X,EAAMlP,KAA6B,CACrC4G,EAAO,oBAAqBsI,EAAMo9B,0BAClC,KACF,CACF,KACC3zB,OACH3T,IACE0E,QAAQC,IAAI3E,EAAG,GAChB,GACF,IACL,EACAunC,eAAe,MAAErQ,EAAK,OAAEt1B,IACtB,IAAIjE,EAAO,CAAE0mC,aAAcnN,EAAMmN,cACjC,IAAch8B,OAAOq9B,KAAK,SACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACEP,EAAO,qBAAsBO,EAASxE,KAAI,IAEzCgW,OACH3T,IACE0E,QAAQC,IAAI3E,EAAG,GAErB,GAEFlC,QAAS,CACPomC,MAAQhN,GAAUA,EAAMgN,MACxBE,uBAAyBlN,GAAUA,EAAMkN,uBACzCD,qBAAuBjN,GAAUA,EAAMiN,qBACvCtvB,QAAUqiB,GAAUA,EAAMriB,QAC1ByvB,YAAcpN,GAAUA,EAAMoN,YAC9BD,aAAenN,GAAUA,EAAMmN,aAC/Bh6B,MAAQ6sB,GAAUA,EAAM7sB,MACxByI,aAAeokB,GAAUA,EAAMpkB,aAC/ByxB,aAAerN,GAAUA,EAAMqN,aAC/BC,WAAatN,GAAUA,EAAMsN,WAC7BgD,kBAAoBtQ,GAAsC,IAA5BA,EAAMsN,WAAW1jC,S,eC/PnD,MAEA,GACEo/B,YAAY,EACZhJ,MAAO,CACLuO,gBAAiB,4EACjBnmC,OAAQ,mBACRmoC,OAAQ,GACRR,OAAQ,GACRS,MAAO,EACP7yB,SAAS,EACTwvB,aAAc,GACdh6B,OAAO,EACPyI,aAAc,GACd0xB,WAAY,CACViD,OAAQ,OACRE,UAAW,IACXC,WAAY,IACZC,UAAW,4BACXC,YAAa,OACbC,UAAW,IACXC,UAAW,EACXC,cAAe,EACfC,aAAa,EACbC,WAAY,KAGhB3Q,UAAW,CACTiN,SAAUvN,GACRA,EAAMriB,SAAU,EAChBqiB,EAAMmN,aAAe,GACrBnN,EAAM7sB,OAAQ,CAChB,EACA+9B,UAAWlR,GAASA,EAAMuQ,QAAS,EAAAY,EAAA,KAAO,EAC1CC,cAAepR,EAAOtO,GAAWsO,EAAMsN,WAAa5b,CAAQ,EAC5Dgc,mBAAoB1N,EAAOtO,GACzBsO,EAAMriB,SAAU,EAChBqiB,EAAM7sB,OAAQ,EACd6sB,EAAMpkB,aAAe8V,EACrBsO,EAAMmN,aAAe,EACvB,EACAQ,cAAe3N,EAAOtO,GACpBsO,EAAMriB,QAAU+T,CAClB,EACA2f,eAAgBrR,EAAOtO,GAErB,MAAM4f,EAAWtR,EAAMsN,WAAWmD,UAC5Bc,EAAYvR,EAAMsN,WAAWoD,WAC7Bc,EAAYxR,EAAMsN,WAAWyD,cAEnC/Q,EAAMwQ,MAAwC,IAAhC3qC,KAAKgmB,IAAIylB,EAAUC,GAA6B,KAAV7f,EAAkB,GACtEsO,EAAMwQ,OAAS,GAAKgB,CACtB,EACA5D,iBAAkB5N,GAChBA,EAAMriB,SAAU,EAChBqiB,EAAMmN,aAAe,GACrB9oC,KAAKqG,OAAO,qBACV,CAAEiN,KAAe,4CAA8CP,WAAW,EAAO7R,MAAO,WAC5F,GAGFywB,QAAS,CACPpuB,sBAAsB,MAAEo4B,EAAK,OAAEt1B,EAAM,SAAE0R,GAAYsV,GACjDhnB,EAAO,iBAAkBgnB,EAAQ2F,OAAOnzB,SAAS0F,QACjDc,EAAO,gBAAiBgnB,EAAQ4b,YAChC9/B,QAAQC,IAAI,yBACZuyB,EAAM7sB,OAAQ,EACd6sB,EAAMriB,SAAU,EAChB,UACQ,IAAGjQ,UACPsyB,EAAM53B,OACN43B,EAAMuQ,OAAO7xB,OAAO,uBACpBvT,KAAKw1B,UAAUjP,EAAQ2F,eACnB,IAAG3pB,UACPsyB,EAAM53B,OACN43B,EAAMuQ,OAAO7xB,OAAO,uBACpBvT,KAAKw1B,UAAUjP,EAAQiG,QAC3B,CAAE,MAAO7uB,GAAO4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,GAAQ,CAC3D,IAAIznC,EAAO,CACTyU,MAAO/P,KAAKw1B,UAAUX,EAAMsN,YAC5BrpC,KAAM+7B,EAAMuQ,OACZhC,gBAAiBvO,EAAMuO,iBAEzB,IAAcp9B,OAAOq9B,KAAK,GACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACE+0B,EAAMmN,aAAeliC,EAASxE,KAAK0mC,aACnC/wB,EAAS,gBAAe,IACvBK,OAAM3T,IACT4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,IACnClO,EAAMriB,SAAU,EAChBqiB,EAAM+P,OAAS,WAEnB,EACAH,eAAe,OAAEllC,EAAM,MAAEs1B,EAAK,SAAE5jB,IAC9B,MAAMyzB,EAAaC,aAAY,KAC7B,IAAIrpC,EAAO,CAAE0mC,aAAcnN,EAAMmN,cACjCnN,EAAMwQ,MAAQxQ,EAAMwQ,MAAQ,EAC5B,IAAcr/B,OAAOq9B,KAAK,YACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACE+0B,EAAM+P,OAAS9kC,EAASxE,KAAKspC,OAC7BviC,QAAQC,IAAIuyB,EAAM+P,QACG,cAAjB/P,EAAM+P,QACRrlC,EAAO,oBACPslC,cAAcH,IACL,CAAC,SAAU,YAAa,WAAWlhC,SAASqxB,EAAM+P,UAC3DrlC,EAAO,qBAAsBS,KAAKC,MAAMH,EAASxE,KAAKwpC,QACtDD,cAAcH,GAChB,IACCpzB,OAAM3T,IAAS4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,GAAM,GAAG,GAC/D,IACL,EACAmC,eAAe,MAAErQ,EAAK,OAAEt1B,IACtB,IAAIjE,EAAO,CAAE0mC,aAAcnN,EAAMmN,cACjC,IAAch8B,OAAOq9B,KAAK,SACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACEP,EAAO,qBAAsBO,EAASxE,KAAI,IAEzCgW,OACH3T,IACE4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,GAAM,GAE/C,GAEFtnC,QAAS,CACP+W,QAAUqiB,GAAUA,EAAMriB,QAC1BoyB,OAAS/P,GAAUA,EAAM+P,OACzB5C,aAAenN,GAAUA,EAAMmN,aAC/Bh6B,MAAQ6sB,GAAUA,EAAM7sB,MACxByI,aAAeokB,GAAUA,EAAMpkB,aAC/B20B,OAASvQ,GAAUA,EAAMuQ,OACzBnoC,OAAS43B,GAAUA,EAAM53B,OACzBooC,MAAQxQ,GAAUA,EAAMwQ,MACxBlD,WAAatN,GAAUA,EAAMsN,a,yBCxIjC,MAEA,GACEtE,YAAY,EACZhJ,MAAO,CACLuO,gBAAiB,gEACjBnmC,OAAQ,cACRmoC,OAAQ,GACRR,OAAQ,GACRS,MAAO,EACP7yB,SAAS,EACTwvB,aAAc,GACdh6B,OAAO,EACPyI,aAAc,GACd61B,KAAM,CAAC,UAAW,WAAY,QAAS,OAAQ,SAAU,WACzDzU,QAAS,CACP,WACA,gBACA,QACA,aACA,UACA,gBAEF0U,UAAW1U,EAAA,GACX5I,UAAW4I,EAAA,IAEbsD,UAAW,CACTiN,SAAUvN,GACRA,EAAMriB,SAAU,EAChBqiB,EAAMmN,aAAe,GACrBnN,EAAM7sB,OAAQ,CAChB,EACA+9B,UAAWlR,GAASA,EAAMuQ,QAAS,EAAAY,EAAA,KAAO,EAE1CzD,mBAAoB1N,EAAOtO,GACzBsO,EAAMriB,SAAU,EAChBqiB,EAAM7sB,OAAQ,EACd6sB,EAAMpkB,aAAe8V,EACrBsO,EAAMmN,aAAe,EACvB,EACAQ,cAAe3N,EAAOtO,GACpBsO,EAAMriB,QAAU+T,CAClB,EACAigB,cAAe3R,EAAOtO,GACpBsO,EAAMhD,QAAUtL,CAClB,EACAkc,iBAAkB5N,GAChBA,EAAMriB,SAAU,EAChBqiB,EAAMmN,aAAe,GACrB9oC,KAAKqG,OAAO,qBACV,CAAEiN,KAAe,qCAAuCP,WAAW,EAAO7R,MAAO,WACrF,GAGFywB,QAAS,CACPyX,gBAAgB,MAAEzN,EAAK,OAAEt1B,EAAM,SAAE0R,GAAYsV,GAE3CsO,EAAMriB,SAAU,EAChBqiB,EAAM7sB,OAAQ,EACd,IAAI+H,EAAQ,GAEVA,EADqB,SAAnBwW,EAAQ/D,OACFxiB,KAAKw1B,UAAU,CACrBjM,KAAMhD,EAAQkgB,OACd5U,QAASgD,EAAMhD,QACfuT,OAAQvQ,EAAMuQ,OACdsB,WAAW,IAGL1mC,KAAKw1B,UAAU,CACrBmR,KAAMpgB,EAAQkgB,OACd5U,QAASgD,EAAMhD,QACfuT,OAAQvQ,EAAMuQ,OACdsB,WAAW,IAGf,IAAIprC,EAAO,CACTyU,MAAOA,EACPjX,KAAM+7B,EAAMuQ,OACZhC,gBAAiBvO,EAAMuO,iBAEzB,IAAcp9B,OAAOq9B,KAAK,GACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACE+0B,EAAMmN,aAAeliC,EAASxE,KAAK0mC,aACnC/wB,EAAS,gBAAe,IACvBK,OAAM3T,IACT4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,IACnClO,EAAMriB,SAAU,EAChBqiB,EAAM+P,OAAS,WAEnB,EACAnoC,qBAAqB,OAAE8C,EAAM,MAAEs1B,EAAK,SAAE5jB,IACpC,MAAMyzB,EAAaC,aAAY,KAC7B,IAAIrpC,EAAO,CAAE0mC,aAAcnN,EAAMmN,cACjCnN,EAAMwQ,MAAQxQ,EAAMwQ,MAAQ,EAC5B,IAAcr/B,OAAOq9B,KAAK,YACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACA3G,UACEo4B,EAAM+P,OAAS9kC,EAASxE,KAAKspC,OAC7BviC,QAAQC,IAAIuyB,EAAM+P,QACG,cAAjB/P,EAAM+P,QACRC,cAAcH,SACRzzB,EAAS,qBACf1R,EAAO,qBACE,CAAC,SAAU,YAAa,WAAWiE,SAASqxB,EAAM+P,UAC3DrlC,EAAO,qBAAsBS,KAAKC,MAAMH,EAASxE,KAAKwpC,QACtDD,cAAcH,GAChB,IACCpzB,OAAM3T,IAAS4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,GAAM,GAAG,GAC/D,IACL,EACAmC,eAAe,MAAErQ,EAAK,OAAEt1B,IACtB,IAAIjE,EAAO,CAAE0mC,aAAcnN,EAAMmN,cACjC,IAAch8B,OAAOq9B,KAAK,SACxB/nC,EAAO0E,KAAKw1B,UAAUl6B,IACtB8H,MACAtD,IACEP,EAAO,qBAAsBO,EAASxE,KAAI,IAEzCgW,OACH3T,IACE4B,EAAO,cAAe5B,EAAK,CAAEolC,MAAM,GAAM,GAE/C,EACAtmC,yBAAyB,MAAEo4B,EAAK,OAAEt1B,IAahC,IAAI2sB,QAAe,IAAGtsB,SAASi1B,EAAM53B,OAAQ43B,EAAMuQ,OAAO7xB,OAAO,mBACjE2Y,EAbA,SAAoBhL,GASlB,OAPAhmB,OAAOsJ,KAAKqwB,EAAM0R,WAAW1lC,SAAQgxB,IACnC3Q,EAAMnoB,SAASsF,QAAO+K,GAAQA,EAAKvQ,WAAWg5B,UAAYA,IAAShxB,SACjEuI,IACEA,EAAKvQ,WAAWmwB,YAAc6L,EAAM5L,UAAU4I,GAC9CzoB,EAAKvQ,WAAW04B,YAAcsD,EAAM0R,UAAU1U,EAAO,GACtD,IAEE3Q,CACT,CAGS0lB,CAAU1a,GACnB3sB,EAAO,kBAAmB2sB,EAAQ,CAAE6W,MAAM,IAE1CxjC,EAAO,wBADc,IAAGK,SAASi1B,EAAM53B,OAAQ43B,EAAMuQ,OAAO7xB,OAAO,mBACjC,CAAEwvB,MAAM,IAC1C1gC,QAAQC,IAAI,cACZiW,EAAA,EAAO/f,KAAK,SAAS8Y,OAAM,QAC7B,GAEF7V,QAAS,CACP+W,QAAUqiB,GAAUA,EAAMriB,QAC1BoyB,OAAS/P,GAAUA,EAAM+P,OACzB5C,aAAenN,GAAUA,EAAMmN,aAC/Bh6B,MAAQ6sB,GAAUA,EAAM7sB,MACxByI,aAAeokB,GAAUA,EAAMpkB,aAC/B20B,OAASvQ,GAAUA,EAAMuQ,OACzBnoC,OAAS43B,GAAUA,EAAM53B,OACzBooC,MAAQxQ,GAAUA,EAAMwQ,MACxBxT,QAAUgD,GAAUA,EAAMhD,QAC1ByU,KAAOzR,GAAUA,EAAMyR,OCjK3B,GACEzI,YAAY,EACZhJ,MAAO,CACLpyB,YAAa,CAAC,EACdjC,aAAc,GACdD,WAAY,GACZsmC,WAAY,GACZhqC,QAAS,GACTiqC,QAAS,EACT94B,UAAU,EACV+4B,cAAc,EACdC,mBAAmB,EACnBt3B,cAAe,GACflQ,MAAO,KACPC,SAAU,KACVE,WAAW,GAEbw1B,UAAW,CACT8R,cAAepS,GACbA,EAAMr1B,MAAQ,KACdq1B,EAAMp1B,SAAW,IACnB,EACAynC,YAAarS,GACXA,EAAM7mB,UAAW,CACnB,EACAm5B,aAActS,GACZA,EAAM7mB,UAAW,EACjB6mB,EAAMpyB,YAAc,CAAC,CACvB,EACA2kC,eAAgBvS,EAAOtO,GACrBsO,EAAMpyB,YAAc8jB,CACtB,EACA8gB,gBAAiBxS,EAAOtO,GACtBsO,EAAMr0B,aAAe+lB,CACvB,EACA+gB,cAAezS,EAAOtO,GACpBsO,EAAMt0B,WAAagmB,CACrB,EACAghB,eAAgB1S,EAAOtO,GACrBsO,EAAMgS,WAAatgB,EAAQliB,SAC3BwwB,EAAM2S,QAAUjhB,EAAQA,QAAQkhB,GAClC,EACAC,WAAY7S,EAAOtO,GACjBsO,EAAMh4B,QAAU0pB,CAClB,EACAohB,iBAAkB9S,EAAOtO,GACvBsO,EAAMnlB,cAAgB6W,CACxB,EACAqhB,SAAU/S,EAAOtO,GACfsO,EAAMr1B,MAAQ+mB,CAChB,EACAshB,YAAahT,EAAOtO,GAClBsO,EAAMp1B,SAAW8mB,EAAQ9mB,SACzBo1B,EAAMl1B,UAAY4mB,EAAQ5mB,SAC5B,GAIFkrB,QAAS,CACPpuB,mBAAmB,OAAE8C,EAAM,MAAEs1B,EAAK,SAAE5jB,GAAYsV,GAE9ChnB,EAAO,yBADW,IAAGvC,YAAYupB,EAAQ/mB,OAE3C,EACAsoC,gBAAgB,MAAEjT,EAAK,OAAEt1B,IACH7E,KAAKqtC,MAAMC,KAAKC,MAAQ,KAC1BpT,EAAM2S,SACtBjoC,EAAO,cAAe,CACpBzG,KAAe,WACfgM,QAAkB,sEACjB,CAAEi+B,MAAM,GAEf,GAIFtnC,QAAS,CACPuS,SAAW6mB,GAAUA,EAAM7mB,SAC3BvL,YAAcoyB,GAAUA,EAAMpyB,YAC9BjC,aAAeq0B,GAAUA,EAAMr0B,aAC/BD,WAAas0B,GAAUA,EAAMt0B,WAAas0B,EAAMt0B,WAAa,GAC7DsmC,WAAahS,GAAUA,EAAMgS,WAC7BhqC,QAAUg4B,GAAUA,EAAMh4B,QAC1B6S,cAAgBmlB,GAAUA,EAAMnlB,cAChClQ,MAAQq1B,GAAUA,EAAMr1B,MACxBC,SAAWo1B,GAAUA,EAAMp1B,SAC3BE,UAAYk1B,GAAUA,EAAMl1B,Y,kECtEhC,UAAI0V,IAAI,MACR,MAEamD,EAAQ,IAAI,WAAW,CAClC0vB,QAAS,CACPhF,KAAMA,EACNhiB,MAAOA,EACPgL,OAAQA,EACRic,GAAIA,EACJC,QAASA,EACTC,IAAKA,EACLC,OAAQC,EACRC,OAAQC,GAGV5T,MAAO,CACL9oB,aAAc,CAAC,EACfrH,MAAO,CAAC,EACRuQ,UAAU,EACVrJ,SAAS,EACTlQ,eAAe,EACf3B,aAAc,EACd8mB,YAAY,EACZgF,kBAAmB,CAAC,WACpBG,kBAAmB,CAAC,WACpB7D,cAAc,EACdgE,WAAY,SACZ9C,UAAW,EAAE,UAAW,UACxBE,QAAS,GACT9H,gBAAiB,CAAC,QAAS,SAAU,KAAM,QAAS,UACpD4I,eAAgB,GAChB7J,OAAQ,GACRgB,WAAY,GACZ0C,kBAAmB,CAAC,GAEtBiX,UAAW,CACTuT,mBAAoB7T,EAAOtO,GACzBsO,EAAM9oB,aAAewa,CACvB,EACAoiB,YAAa9T,EAAOtO,GAElBsO,EAAMnwB,MAAQ6hB,CAChB,EACAqiB,eAAgB/T,EAAOtO,GACrBsO,EAAM5f,SAAWsR,EACjBsO,EAAM3I,OAAOqO,mBAAqB1F,EAAM5f,SAAW,SAAW,SAC9D4f,EAAM3T,MAAM8T,kBAAoBH,EAAM5f,SAAW,SAAW,QAC9D,EACA4zB,cAAehU,EAAOtO,GACpBsO,EAAMjpB,QAAU2a,CAClB,EACAuiB,mBAAoBjU,EAAOtO,GACzBsO,EAAM96B,aAAewsB,CACvB,EACAwiB,gBAAiBlU,GACfA,EAAMn5B,eAAiBm5B,EAAMn5B,aAC/B,EACA8zB,gBAAiBqF,EAAOtO,GACtBsO,EAAMxR,UAAYkD,EAAQlD,UAC1BwR,EAAMtR,QAAUgD,EAAQhD,OAC1B,EACAylB,cAAenU,EAAOtO,GACpBsO,EAAMhU,WAAa0F,CACrB,EACA0iB,iBAAkBpU,GAChBA,EAAMhU,YAAcgU,EAAMhU,UAC5B,EACAqoB,mBAAoBrU,EAAOtO,GACzBsO,EAAM1S,cAAgB0S,EAAM1S,YAC9B,EAEAgnB,UAAWtU,EAAOtO,GAEhB,IACE,IAAI/K,EAAa,GACbJ,EAAc,GAElB,MAAMguB,EAAU7iB,EAAQloB,QAAO6C,GAAMA,EAAG0D,KAAKrG,WAAW,eAAiB2C,EAAG0D,KAAK+D,SAAS,cAC1F6S,EAAa+K,EAAQloB,QAAO6C,IAAOkoC,EAAQ5lC,SAAStC,KAEpD,MAAMmoC,EAAY7tB,EAAWnd,QAAO6C,GAAMA,EAAG0D,KAAKrG,WAAW,iBAAmB2C,EAAG0D,KAAK+D,SAAS,cACjG6S,EAAaA,EAAWnd,QAAO6C,IAAOmoC,EAAU7lC,SAAStC,KAEzD,MAAMooC,EAAU9tB,EAAWnd,QAAO6C,GAAMA,EAAG0D,KAAKrG,WAAW,eAAiB2C,EAAG0D,KAAK+D,SAAS,cAC7F6S,EAAaA,EAAWnd,QAAO6C,IAAOooC,EAAQ9lC,SAAStC,KAEvD,MAAMqoC,EAAY/tB,EAAWnd,QAAO6C,GAAkB,uBAAZA,EAAG0D,OAA+B,GAC5E4W,EAAaA,EAAWnd,QAAO6C,GAAMA,IAAOqoC,IAE5C,MAAMC,EAAahuB,EAAWnd,QAAO6C,GAAkB,gBAAZA,EAAG0D,OAAwB,GACtE4W,EAAaA,EAAWnd,QAAO6C,GAAMA,IAAOsoC,IAE5C,MAAMC,EAAwBjuB,EAAWnd,QAAO6C,GAAkB,2BAAZA,EAAG0D,OAAmC,GAC5F4W,EAAaA,EAAWnd,QAAO6C,GAAMA,IAAOuoC,IAE5C,MAAMtuB,EAAaK,EAAWnd,QAAO6C,GAAMA,EAAG0D,KAAKrG,WAAW,aAO9D,GANAid,EAAaA,EAAWnd,QAAO6C,IAAOia,EAAW3X,SAAStC,KAE1Dka,EAAcI,EAAWnd,QAAO6C,GAAMA,EAAG0D,KAAKrG,WAAW,cACzDid,EAAaA,EAAWnd,QAAO6C,IAAOka,EAAY5X,SAAStC,KAGvDkoC,EAAQ3qC,OAAS,GAAM,EAAG,CAC5B,MAAMd,EAAM,IAAIwD,MAAe,kDAE/B,MADAxD,EAAI7E,KAAO,cACL6E,CACR,CAEA,GAAI0rC,EAAU5qC,OAAS,GAAM,EAAG,CAC9B,MAAMd,EAAM,IAAIwD,MAAe,4DAE/B,MADAxD,EAAI7E,KAAO,cACL6E,CACR,CAKA,GAJAzE,KAAKqG,OAAO,cAAe6pC,GAC3BlwC,KAAKqG,OAAO,gBAAiB8pC,GAC7BnwC,KAAKqG,OAAO,iBAAkB+pC,GAC1BC,GAAWrwC,KAAKqG,OAAO,yBAA0BgqC,EAAUlmC,SAC3DmmC,EAAY,CACd,MAAM1iC,GAAO,QAAiB0iC,EAAWnmC,SACzCwxB,EAAMra,OAAS1T,CACjB,CACI2iC,GAAyBvwC,KAAKqG,OAAO,wBAAyBkqC,EAAsBpmC,SAExFnK,KAAKqG,OAAO,iBAAkB4b,GAG9B,MAAMuuB,EAAatuB,EAAY/c,QAAO6C,GAAMA,EAAG0D,KAAK+D,SAAS,cAC7DyS,EAAcA,EAAY/c,QAAO6C,IAAOwoC,EAAWlmC,SAAStC,KAC5DhI,KAAKqG,OAAO,aAAcmqC,GAG1B,MAAMC,EAAcvuB,EAAY/c,QAAO6C,GAAMA,EAAG0D,KAAK+D,SAAS,UAC9DksB,EAAMpZ,gBAAgBjY,SAAStC,EAAG0D,KAAKzC,MAAM,GAAI,MAEjDiZ,EAAcA,EAAY/c,QAAO6C,IAAOyoC,EAAYnmC,SAAStC,KAE7DhI,KAAKqG,OAAO,aAAcoqC,GAG1BzwC,KAAKqG,OAAO,iBAAkB6b,GAC9BliB,KAAKqG,OAAO,qBACV,CAAEiN,KAAe,gBAAkBP,WAAW,EAAM7R,MAAO,WAC/D,CAAE,MAAOuD,GACPzE,KAAKqG,OAAO,cAAe5B,EAC7B,CACF,EAEAisC,eAAgB/U,EAAOtO,GAGrB,MAAMsjB,EAAWtjB,EAAQxoB,KAAIqD,GAAQA,EAAKwD,OAC1CiwB,EAAMrZ,WAAaqZ,EAAMrZ,WAAWnd,QAAO+C,IAASyoC,EAASrmC,SAASpC,EAAKwD,QAE3E2hB,EAAQ1lB,SAAQO,GAAQyzB,EAAMrZ,WAAWhjB,KAAK4I,IAChD,EAEA0oC,sBAAuBjV,EAAOtO,GAE5BrrB,OAAOsJ,KAAK+hB,EAAQ3Q,IAAI/U,SAAQxG,GAAOw6B,EAAM3W,kBAAkBtI,GAAGvb,GAAOksB,EAAQ3Q,GAAGvb,KAEpFa,OAAOsJ,KAAK+hB,EAAQwjB,MAAMlpC,SAAQxG,GAAOw6B,EAAM3W,kBAAkB6rB,KAAK1vC,GAAOksB,EAAQwjB,KAAK1vC,IAC5F,EACA2vC,kBAAmBnV,EAAOtO,GACxBsO,EAAMxQ,eAAiBkC,CACzB,EAEA0jB,WAAYpV,EAAOtO,GACjBA,EAAQ1lB,SACNO,IACE,MAAM8B,EAAW9B,EAAKwD,KAAKzC,MAAM,GAAI,GAGrCf,EAAKiC,SAAU,EAAAmD,EAAA,IAAWpF,EAAKiC,QAASjC,EAAKwD,KAAM,MAAM,GAEzD1L,KAAKqG,OAAO,cAAe,CACzB2D,SAAUA,EACV5H,KAAM8F,EAAKiC,SACZ,GAEP,EACA6mC,WAAYrV,EAAOtO,GAEjBA,EAAQ1lB,SACNO,IACE,MAAM+oC,EAAa/oC,EAAKwD,KAAKzC,MAAM,GAAI,GACvCjJ,KAAKqG,OAAO,GAAG4qC,cAAwB/oC,EAAKiC,QAAO,GAGzD,EAEAg+B,YAAaxM,EAAOtO,GAClB,MAAM4jB,EAAa5jB,EAAQrjB,SACtBhI,OAAOsJ,KAAKtL,KAAKkxC,SAASrH,KAAKsH,WAAW7mC,SAAS2mC,IACtDjxC,KAAKoxC,eAAeH,EAAY,GAElCjxC,KAAKqG,OAAO,GAAG4qC,gBAA0B5jB,GACpCsO,EAAMpZ,gBAAgBjY,SAAS2mC,IAClCtV,EAAMpZ,gBAAgBjjB,KAAK2xC,EAE/B,EACAI,aAAc1V,GACZ37B,KAAKqG,OAAO,YAAa,KACzBrG,KAAKqG,OAAO,aAAc,KAC1BrG,KAAKqG,OAAO,YAAa,KACzBrG,KAAKqG,OAAO,aAAc,KAC1BrG,KAAKqG,OAAO,eAAgB,KAC5Bs1B,EAAMxQ,eAAiB,GACvBwQ,EAAMra,OAAS,GAEfqa,EAAM3W,kBAAoB,CAAEtI,GAAI,CAAC,EAAGm0B,KAAM,CAAE1O,OAAQ,CAAC,IAAK,OAC1DxG,EAAMrZ,WAAa,GACnBqZ,EAAM1S,cAAe,CACvB,EACAqoB,aAAc3V,GACW35B,OAAOsJ,KAAKtL,KAAKkxC,SAASrH,KAAKsH,WAAWhsC,QAC/D+qB,IAAM,CAAC,QAAS,SAAU,KAAM,UAAW,MAAO,OAAQ,SAAU,UAAU5lB,SAAS4lB,KAC1EvoB,SAAQspC,GAAcjxC,KAAKuxC,iBAAiBN,KAC3DtV,EAAMpZ,gBAAkB,CAAC,QAAS,SAAU,KAAM,QAAS,SAC7D,EACA2kB,cAAevL,EAAOtO,GACpBsO,EAAM3T,MAAMsE,UAAYpqB,OAAOmrB,EAAQf,WACvCqP,EAAM3I,OAAOtG,UAAYxqB,OAAOmrB,EAAQX,WACxCiP,EAAMhP,kBAAoBU,EAAQV,kBAClCgP,EAAM7O,kBAAoBO,EAAQP,kBAClC6O,EAAM3I,OAAOjG,eAAiBM,EAAQN,eACtC4O,EAAM1O,WAAaI,EAAQJ,UAC7B,EACAukB,SAAU7V,EAAOtO,GAEf,MACMhJ,EADQsX,EAAMra,OAAOzc,KAAImD,GAAMA,EAAGpI,OACtB2V,QAAQ8X,EAAQztB,OACrB,IAATykB,EACFsX,EAAMra,OAAO+C,GAAOgJ,EAEpBsO,EAAMra,OAAOhiB,KAAK+tB,EAEtB,EACAokB,YAAa9V,EAAOtO,GAElBsO,EAAMra,OAASqa,EAAMra,OAAOnc,QAAO6C,GAAMA,EAAGpI,OAASytB,GACvD,GAGFsE,QAAS,CACPpuB,mBAAmB,MAAEo4B,EAAK,OAAEt1B,GAAUgnB,EAAU,OAC9C,MAAMtjB,EAAM,IAAI,KAChB,IAAIie,EAAQ,GACRqG,EAAQ,GACR2E,EAAS,GACTM,EAAS,GACT2b,EAAK,GAGT,GADA5oC,EAAO,wBACS,QAAZgnB,EAAmB,CACrB,MAAMiV,EAAY9Y,gBAAgBmS,EAAM3T,MAAMA,OAC9Csa,EAAUziC,SAAWyiC,EAAUziC,SAASsF,QACtC+K,GAAQyrB,EAAM3T,MAAMjC,cAAczb,SAAS4F,EAAKvQ,WAAWsoB,WAC7DD,EAAQlhB,KAAKw1B,UAAUgG,GAEvB,MAAMv0B,EAAIu0B,EAAUziC,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWoO,IACnDC,EAAIs0B,EAAUziC,SAASgF,KAAIO,GAAQA,EAAKzF,WAAWqO,IACnD4yB,EAAe9+B,MAAM6C,KAAK,IAAIC,IAAI,IAAImJ,KAAMC,KAC5C0jC,EAAYloB,gBAAgBmS,EAAM3T,MAAMqG,OAC9CqjB,EAAU7xC,SAAW6xC,EAAU7xC,SAASsF,QAAOia,GAAQwhB,EAAat2B,SAAS8U,EAAKzf,WAAW+Q,SAC7F2d,EAAQvnB,KAAKw1B,UAAUoV,GAEvB1e,EAASlsB,KAAKw1B,UAAUX,EAAM3I,OAAOW,eACrCL,EAASxsB,KAAKw1B,UAAUX,EAAM3I,OAAOU,eACrCub,EAAKnoC,KAAKw1B,UAAUt8B,KAAKuC,QAAQ,mBAEnC,MACEylB,EAAQlhB,KAAKw1B,UAAUX,EAAM3T,MAAMA,OACnCqG,EAAQvnB,KAAKw1B,UAAUX,EAAM3T,MAAMqG,OACnC2E,EAASlsB,KAAKw1B,UAAUX,EAAM3I,OAAOA,QACrCM,EAASxsB,KAAKw1B,UAAUX,EAAM3I,OAAOM,QACrC2b,EAAKnoC,KAAKw1B,UAAUt8B,KAAKuC,QAAQ,aAGnC,GAAIuE,KAAKC,MAAMihB,GAAOnoB,SAAS0F,OAAS,EAAG,CACzC,IAAIue,EAAO,IAAI6tB,KAAK,CAAC3pB,GAAQ,CAAEvoB,KAAM,qBAErCsK,EAAI7B,KAAK,0BAA2B4b,GACpCA,EAAO,IAAI6tB,KAAK,CAACtjB,GAAQ,CAAE5uB,KAAM,qBAEjCsK,EAAI7B,KAAK,0BAA2B4b,EACtC,CACA,GAAIhd,KAAKC,MAAMisB,GAAQnzB,SAAS0F,OAAS,EAAG,CAC1C,IAAIue,EAAO,IAAI6tB,KAAK,CAAC3e,GAAS,CAAEvzB,KAAM,qBAEtCsK,EAAI7B,KAAK,iCAAkC4b,GAC3CA,EAAO,IAAI6tB,KAAK,CAACre,GAAS,CAAE7zB,KAAM,qBAElCsK,EAAI7B,KAAK,iCAAkC4b,EAC7C,CACA,GAAIhd,KAAKC,MAAMkoC,GAAIpvC,SAAS0F,OAAS,EAAG,CACtC,MAAMue,EAAO,IAAI6tB,KAAK,CAAC1C,GAAK,CAAExvC,KAAM,qBAEpCsK,EAAI7B,KAAK,uBAAwB4b,EACnC,CACA,GAAgB,QAAZuJ,EAAmB,CACrB,IAAKrtB,KAAKuC,QAAQ,yBAA0B,CAC1C,MAAMuhB,EAAO,IAAI6tB,KAAK,CAAC7qC,KAAKw1B,UAAUt8B,KAAKuC,QAAQ,oBAAqB,CAAE9C,KAAM,qBAChFsK,EAAI7B,KAAK,qBAAsB4b,EACjC,CACA,GAAI6X,EAAMra,OAAO/b,OAAS,EAAG,CAC3B,MAAMue,EAAO,IAAI6tB,KAAK,CAAC7qC,KAAKw1B,UAAUX,EAAMra,SAAU,CAAE7hB,KAAM,qBAC9DsK,EAAI7B,KAAK,cAAe4b,EAC1B,CACA,GAAgD,0CAA5Chd,KAAKw1B,UAAUX,EAAM3W,mBAAgE,CACvF,MAAMlB,EAAO,IAAI6tB,KAAK,CAAC7qC,KAAKw1B,UAAUX,EAAM3W,oBAAqB,CAAEvlB,KAAM,qBACzEsK,EAAI7B,KAAK,yBAA0B4b,EACrC,CAEA,MAAM8tB,EAAe5vC,OAAOsJ,KAAKtL,KAAKkxC,SAASrH,KAAKsH,WAAWhsC,QAC7D+qB,IAAM,CAAC,QAAS,SAAU,KAAM,UAAW,MAAO,OAAQ,SAAU,UAAU5lB,SAAS4lB,KACzF,IAAK,MAAMvG,KAASioB,EAAc,CAChC,MAAM9tB,EAAO,IAAI6tB,KAAK,CAAC7qC,KAAKw1B,UAAUt8B,KAAKuC,QAAQ,GAAGonB,aAAkB,CAAElqB,KAAM,qBAC1EG,EAAO+pB,EAAQ,WAGrB,GADA5f,EAAI7B,KAAKtI,EAAMkkB,GACX9jB,KAAKuC,QAAQ,GAAGonB,SAAc,CAChC,MAAM7F,EAAO,IAAI6tB,KAAK,CAAC7qC,KAAKw1B,UAAUt8B,KAAKuC,QAAQ,GAAGonB,WAAgB,CAAElqB,KAAM,qBACxEG,EAAO+pB,EAAQ,QACrB5f,EAAI7B,KAAKtI,EAAMkkB,EACjB,CACF,CAEA,IAAK,MAAM5b,KAAQyzB,EAAMrZ,WAKvB,GAHoB,MAAhBpa,EAAKiC,SAAwC,OAArBwxB,EAAMqO,KAAK1jC,QACrC4B,EAAKiC,cAAgB,IAAG/C,UAAUu0B,EAAMqO,KAAK1jC,MAAOq1B,EAAMqO,KAAKzjC,SAAW,IAAM2B,EAAKwD,OAEnFxD,EAAKiC,mBAAmB+E,WAAY,CACtC,MAAM4U,EAAO,IAAI6tB,KAAK,CAACzpC,EAAKiC,UAC5BJ,EAAI7B,KAAKA,EAAKwD,KAAMoY,EACtB,KAAO,CACL,MAAMA,EAAO,IAAI6tB,KAAK,CAAC7qC,KAAKw1B,UAAUp0B,EAAKiC,UAAW,CAAE1K,KAAM,qBAC9DsK,EAAI7B,KAAKA,EAAKwD,KAAMoY,EACtB,CAEJ,CACA/Z,EAAIE,cAAc,CAAExK,KAAM,SACvByK,MAAK,SAAUC,GAEd,IAAOA,EAASwxB,EAAM1O,WAAa,OACrC,GACJ,EAEA1pB,kBAAkB,MAAEo4B,EAAK,OAAEt1B,EAAM,SAAE0R,GAAYsV,GAG7CtV,EAAS,kBACT/X,KAAKqG,OAAO,wBACZ,MAAMpB,EAAO02B,EAAMqO,KAAKzjC,SAAW,IAC7BxC,EAAS43B,EAAMqO,KAAK1jC,MACpBurC,EAAc5sC,EAAO,UACrB6sC,EAAWD,EAAc,MACzBE,EAAaF,EAAc,QAC3BG,EAAWH,EAAc,MACzBnqC,EAAQ,CACZsgB,MAAO8pB,EAAW,gBAClBzjB,MAAOyjB,EAAW,gBAClB9e,OAAQ+e,EAAa,qBACrBze,OAAQye,EAAa,qBACrB9C,GAAI+C,EAAW,aACf3uC,OAAQ4B,EAAO,qBACfqc,OAAQrc,EAAO,cACf+f,kBAAmB/f,EAAO,0BAsC5B,GAnCI02B,EAAMwT,IAAIlG,WAAW1jC,OAAS,SAC1B,IAAG8D,UAAUtF,EAAQ2D,EAAMrE,OAAQyD,KAAKw1B,UAAUX,EAAMwT,IAAIlG,aAGhEtN,EAAMra,OAAO/b,OAAS,SAClB,IAAG8D,UAAUtF,EAAQ2D,EAAM4Z,OAAQxa,KAAKw1B,UAAUX,EAAMra,SAGhB,0CAA5Cxa,KAAKw1B,UAAUX,EAAM3W,0BACjB,IAAG3b,UAAUtF,EAAQ2D,EAAMsd,kBAAmBle,KAAKw1B,UAAUX,EAAM3W,oBAGvE2W,EAAM3T,MAAMA,MAAMnoB,SAAS0F,OAAS,SAChC,IAAG8D,UAAUtF,EAAQ2D,EAAMsgB,MAAOlhB,KAAKw1B,UAAUX,EAAM3T,MAAMA,cAC7D,IAAG3e,UAAUtF,EAAQ2D,EAAM2mB,MAAOvnB,KAAKw1B,UAAUX,EAAM3T,MAAMqG,SAGnE,IAAG3lB,aAAa3E,EAAQ+tC,GAGtBnW,EAAM3I,OAAOA,OAAOnzB,SAAS0F,OAAS,SAClC,IAAG8D,UAAUtF,EAAQ2D,EAAMsrB,OAAQlsB,KAAKw1B,UAAUX,EAAM3I,OAAOA,eAC/D,IAAG3pB,UAAUtF,EAAQ2D,EAAM4rB,OAAQxsB,KAAKw1B,UAAUX,EAAM3I,OAAOM,UAGrE,IAAG5qB,aAAa3E,EAAQguC,GAGrB/xC,KAAKuC,QAAQ,mBAIhB,IAAGmG,aAAa3E,EAAQiuC,SAHlB,IAAG3oC,UAAUtF,EAAQ2D,EAAMunC,GAAInoC,KAAKw1B,UAAUt8B,KAAKuC,QAAQ,cAMnD,WAAZ8qB,EAAsB,CACxB,MAAMukB,EAAe5vC,OAAOsJ,KAAKtL,KAAKkxC,SAASrH,KAAKsH,WAAWhsC,QAC7D+qB,IAAM,CAAC,QAAS,SAAU,KAAM,UAAW,MAAO,OAAQ,SAAU,UAAU5lB,SAAS4lB,KACzF,IAAK,MAAMvG,KAASioB,EAAc,CAChC,MAAMhyC,EAAO+pB,EAAQ,WAErB,SADM,IAAGtgB,UAAUtF,EAAQkB,EAAOrF,EAAMkH,KAAKw1B,UAAUt8B,KAAKuC,QAAQ,GAAGonB,aACnE3pB,KAAKuC,QAAQ,GAAGonB,SAAc,CAChC,MAAM/pB,EAAO+pB,EAAQ,cACf,IAAGtgB,UAAUtF,EAAQkB,EAAOrF,EAAMkH,KAAKw1B,UAAUt8B,KAAKuC,QAAQ,GAAGonB,UACzE,CACF,CACF,CAGA,IAAIrH,EAAaqZ,EAAMrZ,WACP,WAAZ+K,IACF/K,EAAaA,EAAWnd,QAAO+C,IAASA,EAAKwD,KAAKrG,WAAW,eAE/D,IAAK,MAAM6C,KAAQoa,EAEG,MAAhBpa,EAAKiC,UAEEjC,EAAKiC,mBAAmB+E,iBAC3B,IAAG7F,UAAUtF,EAAQkB,EAAOiD,EAAKwD,KAAMxD,EAAKiC,eAE5C,IAAGd,UAAUtF,EAAQkB,EAAOiD,EAAKwD,KAAM5E,KAAKw1B,UAAUp0B,EAAKiC,UAKvE,EACA5G,yBAAyB,MAAEo4B,UACnB,IAAGjzB,aAAaizB,EAAMqO,KAAK1jC,MAAOq1B,EAAMqO,KAAKzjC,SAAW,YAChE,GAGFhE,QAAS,CACPsQ,aAAe8oB,GAAUA,EAAM9oB,aAC/BrH,MAAQmwB,GAAUA,EAAMnwB,MACxBkH,QAAUipB,GAAUA,EAAMjpB,QAC1ByX,UAAYwR,GAAUA,EAAMxR,UAC5BE,QAAUsR,GAAUA,EAAMtR,QAC1BxpB,aAAe86B,GAAUA,EAAM96B,aAC/B8mB,WAAagU,GAAUA,EAAMhU,WAC7BnlB,cAAgBm5B,GAAUA,EAAMn5B,cAChCmqB,kBAAoBgP,GAAUA,EAAMhP,kBACpCG,kBAAoB6O,GAAUA,EAAM7O,kBACpC7D,aAAe0S,GAAUA,EAAM1S,aAC/BgE,WAAa0O,GAAUA,EAAM1O,WAC7B9B,eAAiBwQ,GAAUA,EAAMxQ,eACjC7J,OAASqa,GAAUA,EAAMra,OACzB0D,kBAAoB2W,GAAUA,EAAM3W,kBACpC1C,WAAaqZ,GAAUA,EAAMrZ,WAC7BoZ,mBAAqBC,GAAoD,IAA1C35B,OAAOsJ,KAAKqwB,EAAM3T,MAAMA,OAAOziB,OAC9DyQ,eAAiB2lB,GAC+B,IAAtCA,EAAM3T,MAAMA,MAAMnoB,SAAS0F,QACa,IAAxCo2B,EAAM3I,OAAOA,OAAOnzB,SAAS0F,QACM,IAAnCo2B,EAAMsT,GAAGtlB,MAAM9pB,SAAS0F,OAElCgd,gBAAkBoZ,IAEhB,IAAIsW,EAAiBzoB,gBAAgBmS,EAAMpZ,iBAU3C,OAT0C,IAAtCoZ,EAAM3T,MAAMA,MAAMnoB,SAAS0F,SAC7B0sC,EAAiBA,EAAe9sC,QAAOwkB,IAAU,CAAC,QAAS,SAASrf,SAASqf,MAEnC,IAAxCgS,EAAM3I,OAAOA,OAAOnzB,SAAS0F,SAC/B0sC,EAAiBA,EAAe9sC,QAAOwkB,IAAU,CAAC,SAAU,UAAUrf,SAASqf,MAE1C,IAAnCgS,EAAMsT,GAAGtlB,MAAM9pB,SAAS0F,SAC1B0sC,EAAiBA,EAAe9sC,QAAOwkB,IAAU,CAAC,MAAMrf,SAASqf,MAE5DsoB,GAETjoB,SAAW2R,GACLA,EAAM5f,SACD,gDAEA,mD,mnsBCnfXm2B,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBv6B,IAAjBw6B,EACH,OAAOA,EAAaC,QAGrB,IAAI/yC,EAAS2yC,EAAyBE,GAAY,CACjD5yC,GAAI4yC,EACJvf,QAAQ,EACRyf,QAAS,CAAC,GAUX,OANAC,EAAoBH,GAAUI,KAAKjzC,EAAO+yC,QAAS/yC,EAAQA,EAAO+yC,QAASH,GAG3E5yC,EAAOszB,QAAS,EAGTtzB,EAAO+yC,OACf,CAGAH,EAAoBM,EAAIF,EC5BxBJ,EAAoBO,KAAO,WAC1B,MAAM,IAAIzqC,MAAM,iCACjB,ECFAkqC,EAAoBQ,KAAO,CAAC,ExKAxB3zC,EAAW,GACfmzC,EAAoBS,EAAI,CAAC3nC,EAAQ4nC,EAAU1/B,EAAI2/B,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASrjC,EAAI,EAAGA,EAAI3Q,EAASuG,OAAQoK,IAAK,CAGzC,IAFA,IAAKkjC,EAAU1/B,EAAI2/B,GAAY9zC,EAAS2Q,GACpCsjC,GAAY,EACP9hC,EAAI,EAAGA,EAAI0hC,EAASttC,OAAQ4L,MACpB,EAAX2hC,GAAsBC,GAAgBD,IAAa9wC,OAAOsJ,KAAK6mC,EAAoBS,GAAG3kC,OAAO9M,GAASgxC,EAAoBS,EAAEzxC,GAAK0xC,EAAS1hC,MAC9I0hC,EAAS9T,OAAO5tB,IAAK,IAErB8hC,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbj0C,EAAS+/B,OAAOpvB,IAAK,GACrB,IAAIujC,EAAI//B,SACE0E,IAANq7B,IAAiBjoC,EAASioC,EAC/B,CACD,CACA,OAAOjoC,CAnBP,CAJC6nC,EAAWA,GAAY,EACvB,IAAI,IAAInjC,EAAI3Q,EAASuG,OAAQoK,EAAI,GAAK3Q,EAAS2Q,EAAI,GAAG,GAAKmjC,EAAUnjC,IAAK3Q,EAAS2Q,GAAK3Q,EAAS2Q,EAAI,GACrG3Q,EAAS2Q,GAAK,CAACkjC,EAAU1/B,EAAI2/B,EAqBjB,EyKzBdX,EAAoB/tB,EAAK7kB,IACxB,IAAI4zC,EAAS5zC,GAAUA,EAAO6zC,WAC7B,IAAO7zC,EAAiB,QACxB,IAAM,EAEP,OADA4yC,EAAoBkB,EAAEF,EAAQ,CAAEplC,EAAGolC,IAC5BA,CAAM,ExKNVj0C,EAAW8C,OAAOsxC,eAAkBriC,GAASjP,OAAOsxC,eAAeriC,GAASA,GAASA,EAAa,UAQtGkhC,EAAoBoB,EAAI,SAASlzC,EAAOomB,GAEvC,GADU,EAAPA,IAAUpmB,EAAQL,KAAKK,IAChB,EAAPomB,EAAU,OAAOpmB,EACpB,GAAoB,iBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPomB,GAAapmB,EAAM+yC,WAAY,OAAO/yC,EAC1C,GAAW,GAAPomB,GAAoC,mBAAfpmB,EAAM6J,KAAqB,OAAO7J,CAC5D,CACA,IAAImzC,EAAKxxC,OAAO+K,OAAO,MACvBolC,EAAoBe,EAAEM,GACtB,IAAIpJ,EAAM,CAAC,EACXnrC,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIyG,EAAiB,EAAP8gB,GAAYpmB,EAAyB,iBAAXsF,KAAyB1G,EAAesW,QAAQ5P,GAAUA,EAAUzG,EAASyG,GACxH3D,OAAOyxC,oBAAoB9tC,GAASgC,SAASxG,GAASipC,EAAIjpC,GAAO,IAAOd,EAAMc,KAI/E,OAFAipC,EAAa,QAAI,IAAM,EACvB+H,EAAoBkB,EAAEG,EAAIpJ,GACnBoJ,CACR,EyKxBArB,EAAoBkB,EAAI,CAACf,EAASjI,KACjC,IAAI,IAAIlpC,KAAOkpC,EACX8H,EAAoB73B,EAAE+vB,EAAYlpC,KAASgxC,EAAoB73B,EAAEg4B,EAASnxC,IAC5Ea,OAAO0xC,eAAepB,EAASnxC,EAAK,CAAEwyC,YAAY,EAAMC,IAAKvJ,EAAWlpC,IAE1E,ECNDgxC,EAAoB0B,EAAI,CAAC,EAGzB1B,EAAoB3rB,EAAKstB,GACjBzlC,QAAQ0lC,IAAI/xC,OAAOsJ,KAAK6mC,EAAoB0B,GAAGpuC,QAAO,CAACuuC,EAAU7yC,KACvEgxC,EAAoB0B,EAAE1yC,GAAK2yC,EAASE,GAC7BA,IACL,KCNJ7B,EAAoB8B,EAAKH,GAEZA,EAAU,YCFvB3B,EAAoB+B,SAAYJ,IAEf,ECHjB3B,EAAoBgC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOp0C,MAAQ,IAAIq0C,SAAS,cAAb,EAChB,CAAE,MAAO7tB,GACR,GAAsB,iBAAXxK,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBm2B,EAAoB73B,EAAI,CAACrJ,EAAKke,IAAUntB,OAAOsyC,UAAUC,eAAe/B,KAAKvhC,EAAKke,G7KA9EhwB,EAAa,CAAC,EACdC,EAAoB,0BAExB+yC,EAAoBqC,EAAI,CAAC3xB,EAAK4xB,EAAMtzC,EAAK2yC,KACxC,GAAG30C,EAAW0jB,GAAQ1jB,EAAW0jB,GAAKvjB,KAAKm1C,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAW98B,IAAR1W,EAEF,IADA,IAAIyzC,EAAUlzB,SAASmzB,qBAAqB,UACpCllC,EAAI,EAAGA,EAAIilC,EAAQrvC,OAAQoK,IAAK,CACvC,IAAI/C,EAAIgoC,EAAQjlC,GAChB,GAAG/C,EAAEkoC,aAAa,QAAUjyB,GAAOjW,EAAEkoC,aAAa,iBAAmB11C,EAAoB+B,EAAK,CAAEuzC,EAAS9nC,EAAG,KAAO,CACpH,CAEG8nC,IACHC,GAAa,GACbD,EAAShzB,SAASqzB,cAAc,WAEzBC,QAAU,QACjBN,EAAO5hC,QAAU,IACbq/B,EAAoB8C,IACvBP,EAAOQ,aAAa,QAAS/C,EAAoB8C,IAElDP,EAAOQ,aAAa,eAAgB91C,EAAoB+B,GACxDuzC,EAAO5gC,IAAM+O,GAEd1jB,EAAW0jB,GAAO,CAAC4xB,GACnB,IAAIU,EAAmB,CAACzvC,EAAMiJ,KAE7B+lC,EAAO7lC,QAAU6lC,EAAOhmC,OAAS,KACjC0mC,aAAatiC,GACb,IAAIuiC,EAAUl2C,EAAW0jB,GAIzB,UAHO1jB,EAAW0jB,GAClB6xB,EAAOY,YAAcZ,EAAOY,WAAWC,YAAYb,GACnDW,GAAWA,EAAQ1tC,SAASwL,GAAQA,EAAGxE,KACpCjJ,EAAM,OAAOA,EAAKiJ,EAAM,EAExBmE,EAAUyF,WAAW48B,EAAiBK,KAAK,UAAM39B,EAAW,CAAEpY,KAAM,UAAWmP,OAAQ8lC,IAAW,MACtGA,EAAO7lC,QAAUsmC,EAAiBK,KAAK,KAAMd,EAAO7lC,SACpD6lC,EAAOhmC,OAASymC,EAAiBK,KAAK,KAAMd,EAAOhmC,QACnDimC,GAAcjzB,SAAS+zB,KAAKC,YAAYhB,EAnCkB,CAmCX,E8KtChDvC,EAAoBe,EAAKZ,IACH,oBAAXqD,QAA0BA,OAAOC,aAC1C5zC,OAAO0xC,eAAepB,EAASqD,OAAOC,YAAa,CAAEv1C,MAAO,WAE7D2B,OAAO0xC,eAAepB,EAAS,aAAc,CAAEjyC,OAAO,GAAO,ECL9D8xC,EAAoB0D,IAAOt2C,IAC1BA,EAAOmI,MAAQ,GACVnI,EAAOu2C,WAAUv2C,EAAOu2C,SAAW,IACjCv2C,GCHR4yC,EAAoB95B,EAAI,2B,MCAxB85B,EAAoBnkC,EAAI0T,SAASq0B,SAAWC,KAAKza,SAASpnB,KAK1D,IAAI8hC,EAAkB,CACrB,IAAK,GAGN9D,EAAoB0B,EAAE1iC,EAAI,CAAC2iC,EAASE,KAElC,IAAIkC,EAAqB/D,EAAoB73B,EAAE27B,EAAiBnC,GAAWmC,EAAgBnC,QAAWj8B,EACtG,GAA0B,IAAvBq+B,EAGF,GAAGA,EACFlC,EAAS10C,KAAK42C,EAAmB,QAC3B,CAGL,IAAI3xC,EAAU,IAAI8J,SAAQ,CAACC,EAASC,IAAY2nC,EAAqBD,EAAgBnC,GAAW,CAACxlC,EAASC,KAC1GylC,EAAS10C,KAAK42C,EAAmB,GAAK3xC,GAGtC,IAAIse,EAAMsvB,EAAoB95B,EAAI85B,EAAoB8B,EAAEH,GAEpDhlC,EAAQ,IAAI7G,MAgBhBkqC,EAAoBqC,EAAE3xB,GAfFlU,IACnB,GAAGwjC,EAAoB73B,EAAE27B,EAAiBnC,KAEf,KAD1BoC,EAAqBD,EAAgBnC,MACRmC,EAAgBnC,QAAWj8B,GACrDq+B,GAAoB,CACtB,IAAIC,EAAYxnC,IAAyB,SAAfA,EAAMlP,KAAkB,UAAYkP,EAAMlP,MAChE22C,EAAUznC,GAASA,EAAMC,QAAUD,EAAMC,OAAOkF,IACpDhF,EAAMlD,QAAU,iBAAmBkoC,EAAU,cAAgBqC,EAAY,KAAOC,EAAU,IAC1FtnC,EAAMlP,KAAO,iBACbkP,EAAMrP,KAAO02C,EACbrnC,EAAMunC,QAAUD,EAChBF,EAAmB,GAAGpnC,EACvB,CACD,GAEwC,SAAWglC,EAASA,EAE/D,CACD,EAWF3B,EAAoBS,EAAEzhC,EAAK2iC,GAA0C,IAA7BmC,EAAgBnC,GAGxD,IAAIwC,EAAuB,CAACC,EAA4Bn0C,KACvD,IAGIgwC,EAAU0B,GAHTjB,EAAU2D,EAAaC,GAAWr0C,EAGhBuN,EAAI,EAC3B,GAAGkjC,EAASxrB,MAAM7nB,GAAgC,IAAxBy2C,EAAgBz2C,KAAa,CACtD,IAAI4yC,KAAYoE,EACZrE,EAAoB73B,EAAEk8B,EAAapE,KACrCD,EAAoBM,EAAEL,GAAYoE,EAAYpE,IAGhD,GAAGqE,EAAS,IAAIxrC,EAASwrC,EAAQtE,EAClC,CAEA,IADGoE,GAA4BA,EAA2Bn0C,GACrDuN,EAAIkjC,EAASttC,OAAQoK,IACzBmkC,EAAUjB,EAASljC,GAChBwiC,EAAoB73B,EAAE27B,EAAiBnC,IAAYmC,EAAgBnC,IACrEmC,EAAgBnC,GAAS,KAE1BmC,EAAgBnC,GAAW,EAE5B,OAAO3B,EAAoBS,EAAE3nC,EAAO,EAGjCyrC,EAAqBV,KAAyC,mCAAIA,KAAyC,oCAAK,GACpHU,EAAmB/uC,QAAQ2uC,EAAqBd,KAAK,KAAM,IAC3DkB,EAAmBp3C,KAAOg3C,EAAqBd,KAAK,KAAMkB,EAAmBp3C,KAAKk2C,KAAKkB,G,KCrFvFvE,EAAoB8C,QAAKp9B,ECGzB,IAAI8+B,EAAsBxE,EAAoBS,OAAE/6B,EAAW,CAAC,MAAM,IAAOs6B,EAAoB,SAC7FwE,EAAsBxE,EAAoBS,EAAE+D,E","sources":["webpack://quetzal-network-editor/webpack/runtime/chunk loaded","webpack://quetzal-network-editor/webpack/runtime/create fake namespace object","webpack://quetzal-network-editor/webpack/runtime/load script","webpack://quetzal-network-editor/./src/scss/app.scss","webpack://quetzal-network-editor/./src/App.vue?c7f3","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue?9bc5","webpack://quetzal-network-editor/./src/components/import/FilesList.vue?dac3","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue?0d85","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue?1606","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue?5f7d","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue?1f47","webpack://quetzal-network-editor/./src/components/map/Map.vue?1cf2","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue?480f","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue?0ba7","webpack://quetzal-network-editor/./src/components/map/Settings.vue?d98f","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue?bcdb","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue?a262","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue?d557","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue?baa8","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue?a1e3","webpack://quetzal-network-editor/./src/pages/Home.vue?0769","webpack://quetzal-network-editor/./src/pages/Import.vue?aa66","webpack://quetzal-network-editor/./static/links_base.geojson","webpack://quetzal-network-editor/./static/nodes_base.geojson","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue?41f1","webpack://quetzal-network-editor/src/components/utils/MapLegend.vue","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue?631d","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue?afd3","webpack://quetzal-network-editor/./src/components/utils/MapLegend.vue","webpack://quetzal-network-editor/./src/AWSClient.js","webpack://quetzal-network-editor/./src/auth.js","webpack://quetzal-network-editor/./src/axiosClient.js","webpack://quetzal-network-editor/./src/components/utils/serializer.js","webpack://quetzal-network-editor/./src/components/utils/utils.js","webpack://quetzal-network-editor/./src/constants/highway.js","webpack://quetzal-network-editor/./src/scss/app.scss?d10e","webpack://quetzal-network-editor/./src/App.vue?848c","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue?9b26","webpack://quetzal-network-editor/./src/components/utils/Profile.vue?7f8e","webpack://quetzal-network-editor/src/components/utils/Profile.vue","webpack://quetzal-network-editor/./src/components/utils/Profile.vue?8f3a","webpack://quetzal-network-editor/./src/components/utils/Profile.vue","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue?0f78","webpack://quetzal-network-editor/src/components/layout/ScenariosExplorer.vue","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue?9699","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue?2428","webpack://quetzal-network-editor/./src/components/layout/ScenariosExplorer.vue","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue?41be","webpack://quetzal-network-editor/src/components/layout/Toolbar.vue","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue?5cfd","webpack://quetzal-network-editor/./src/components/layout/Toolbar.vue","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue?1581","webpack://quetzal-network-editor/src/components/layout/NavigationDrawer.vue","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue?1673","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue?0a14","webpack://quetzal-network-editor/./src/components/layout/NavigationDrawer.vue","webpack://quetzal-network-editor/./src/components/utils/Alert.vue?de2b","webpack://quetzal-network-editor/src/components/utils/Alert.vue","webpack://quetzal-network-editor/./src/components/utils/Alert.vue?6bcc","webpack://quetzal-network-editor/./src/components/utils/Alert.vue","webpack://quetzal-network-editor/src/App.vue","webpack://quetzal-network-editor/./src/App.vue?32cf","webpack://quetzal-network-editor/./src/App.vue?4058","webpack://quetzal-network-editor/./src/App.vue","webpack://quetzal-network-editor/./src/main.js","webpack://quetzal-network-editor/./src/pages/Import.vue?a3d3","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue?6810","webpack://quetzal-network-editor/src/components/import/FileLoader.vue","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue?103a","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue?08e5","webpack://quetzal-network-editor/./src/components/import/FileLoader.vue","webpack://quetzal-network-editor/./src/components/import/FilesList.vue?4a8a","webpack://quetzal-network-editor/src/components/import/FilesList.vue","webpack://quetzal-network-editor/./src/components/import/FilesList.vue?2aa5","webpack://quetzal-network-editor/./src/components/import/FilesList.vue?43e3","webpack://quetzal-network-editor/./src/components/import/FilesList.vue","webpack://quetzal-network-editor/./src/components/import/InfoZip.vue?e91c","webpack://quetzal-network-editor/src/components/import/InfoZip.vue","webpack://quetzal-network-editor/./src/components/import/InfoZip.vue?9d99","webpack://quetzal-network-editor/./src/pages/Import.vue?c377","webpack://quetzal-network-editor/src/pages/Import.vue","webpack://quetzal-network-editor/./src/components/import/InfoZip.vue","webpack://quetzal-network-editor/./src/pages/Import.vue?27c4","webpack://quetzal-network-editor/./src/pages/Import.vue","webpack://quetzal-network-editor/./src/pages/Home.vue?9475","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue?b07b","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue?f0f9","webpack://quetzal-network-editor/src/components/map/LinksSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue?9d7d","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue?9c78","webpack://quetzal-network-editor/./src/components/map/LinksSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue?37ac","webpack://quetzal-network-editor/src/components/map/RoadSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue?8c74","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue?accf","webpack://quetzal-network-editor/./src/components/map/RoadSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue?d4d6","webpack://quetzal-network-editor/src/components/map/ODSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue?c034","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue?b6a3","webpack://quetzal-network-editor/./src/components/map/ODSidePanel.vue","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue?f7aa","webpack://quetzal-network-editor/src/components/map/SidePanel.vue","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue?acea","webpack://quetzal-network-editor/./src/components/map/SidePanel.vue","webpack://quetzal-network-editor/./src/components/map/Map.vue?764a","webpack://quetzal-network-editor/./src/components/map/Settings.vue?925b","webpack://quetzal-network-editor/src/components/map/Settings.vue","webpack://quetzal-network-editor/./src/components/map/Settings.vue?8d45","webpack://quetzal-network-editor/./src/components/map/Settings.vue?4856","webpack://quetzal-network-editor/./src/components/map/Settings.vue","webpack://quetzal-network-editor/./src/components/map/StaticLinks.vue?9d3a","webpack://quetzal-network-editor/src/components/map/StaticLinks.vue","webpack://quetzal-network-editor/./src/components/map/StaticLinks.vue?c179","webpack://quetzal-network-editor/./src/components/map/StaticLinks.vue","webpack://quetzal-network-editor/./src/components/map/EditorLinks.vue?1bdd","webpack://quetzal-network-editor/src/components/map/EditorLinks.vue","webpack://quetzal-network-editor/./src/components/map/EditorLinks.vue?1669","webpack://quetzal-network-editor/./src/components/map/EditorLinks.vue","webpack://quetzal-network-editor/./src/components/map/RoadLinks.vue?ef41","webpack://quetzal-network-editor/src/components/map/RoadLinks.vue","webpack://quetzal-network-editor/./src/components/map/RoadLinks.vue?e27e","webpack://quetzal-network-editor/./src/components/map/RoadLinks.vue","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue?7eae","webpack://quetzal-network-editor/src/components/utils/StaticLayer.vue","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue?2a6b","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue?d041","webpack://quetzal-network-editor/./src/components/utils/StaticLayer.vue","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue?b696","webpack://quetzal-network-editor/src/components/utils/LayerSelector.vue","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue?2c38","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue?643c","webpack://quetzal-network-editor/./src/components/utils/LayerSelector.vue","webpack://quetzal-network-editor/./src/components/map/ODMap.vue?91f0","webpack://quetzal-network-editor/src/components/map/ODMap.vue","webpack://quetzal-network-editor/./src/components/map/ODMap.vue?682d","webpack://quetzal-network-editor/./src/components/map/ODMap.vue","webpack://quetzal-network-editor/./src/components/map/Map.vue?91d5","webpack://quetzal-network-editor/src/components/map/Map.vue","webpack://quetzal-network-editor/./src/components/map/Map.vue?70d8","webpack://quetzal-network-editor/./src/components/map/Map.vue","webpack://quetzal-network-editor/./src/components/utils/ColorPicker.vue?120e","webpack://quetzal-network-editor/src/components/utils/ColorPicker.vue","webpack://quetzal-network-editor/./src/components/utils/ColorPicker.vue?6c63","webpack://quetzal-network-editor/./src/components/utils/ColorPicker.vue","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue?7b22","webpack://quetzal-network-editor/src/components/utils/MenuSelector.vue","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue?27a1","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue?dae4","webpack://quetzal-network-editor/./src/components/utils/MenuSelector.vue","webpack://quetzal-network-editor/./src/constants/hints.js","webpack://quetzal-network-editor/./src/pages/Home.vue?e983","webpack://quetzal-network-editor/src/pages/Home.vue","webpack://quetzal-network-editor/./src/pages/Home.vue?9fb1","webpack://quetzal-network-editor/./src/pages/Home.vue","webpack://quetzal-network-editor/./src/router/index.js","webpack://quetzal-network-editor/./src/store/links.js","webpack://quetzal-network-editor/./src/store/rlinks.js","webpack://quetzal-network-editor/./src/store/od.js","webpack://quetzal-network-editor/./src/store/results.js","webpack://quetzal-network-editor/./src/store/layer.js","webpack://quetzal-network-editor/./src/store/api/run.js","webpack://quetzal-network-editor/./src/store/api/MatrixRoadCaster.js","webpack://quetzal-network-editor/./src/store/api/OSMImporter.js","webpack://quetzal-network-editor/./src/store/user.js","webpack://quetzal-network-editor/./src/store/index.js","webpack://quetzal-network-editor/webpack/bootstrap","webpack://quetzal-network-editor/webpack/runtime/amd define","webpack://quetzal-network-editor/webpack/runtime/amd options","webpack://quetzal-network-editor/webpack/runtime/compat get default export","webpack://quetzal-network-editor/webpack/runtime/define property getters","webpack://quetzal-network-editor/webpack/runtime/ensure chunk","webpack://quetzal-network-editor/webpack/runtime/get javascript chunk filename","webpack://quetzal-network-editor/webpack/runtime/get mini-css chunk filename","webpack://quetzal-network-editor/webpack/runtime/global","webpack://quetzal-network-editor/webpack/runtime/hasOwnProperty shorthand","webpack://quetzal-network-editor/webpack/runtime/make namespace object","webpack://quetzal-network-editor/webpack/runtime/node module decorator","webpack://quetzal-network-editor/webpack/runtime/publicPath","webpack://quetzal-network-editor/webpack/runtime/jsonp chunk loading","webpack://quetzal-network-editor/webpack/runtime/nonce","webpack://quetzal-network-editor/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"quetzal-network-editor:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `body{font-family:\"Roboto\",sans-serif;height:100vh}body::-webkit-scrollbar{display:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background-clip:padding-box;background-color:#9e9e9e;border-radius:8px}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:#2c3e4e;border-radius:8px}.v-application--wrap{flex-direction:row}.theme--light.v-application{color:#2c3e4e}.theme--light.v-icon{color:inherit !important}.theme--dark.v-label{color:#fff}.v-toolbar__content{display:flex;align-items:center;justify-content:space-between;height:100% !important;width:100%}.v-input__icon>i{font-size:14px !important;margin-right:10px}.v-navigation-drawer--fixed{z-index:200}.v-btn.primary>span{color:#2c3e4e !important}.v-snack__wrapper{margin:20px}.v-snack__content{color:#2c3e4e !important}.snackbar-error>.v-snack__wrapper{border-bottom:5px solid #e42626 !important}.snackbar-warning>.v-snack__wrapper{border-bottom:5px solid #ff7b30 !important}.snackbar-positive>.v-snack__wrapper{border-bottom:5px solid #4caf50 !important}.v-card__subtitle,.v-card__text,.v-card__title{padding:0}.v-card__title{line-height:normal}.mapboxgl-ctrl-bottom-right{right:10px;bottom:10px}.mapboxgl-popup-content{padding:10px;color:#fff;background-color:#2c3e4e}.mapboxgl-popup-tip{border-bottom-color:#2c3e4e !important;border-top-color:#2c3e4e !important}.mapboxgl-popup-close-button{right:20px;top:20px;font-size:1.5em}.mapboxgl-ctrl-attrib-inner>a{color:#2c3e4e !important}.view{padding:20px;height:calc(100% - 50px);width:100%;display:flex}.card{background-color:#fff;border-radius:5px;box-shadow:0px 5px 10px rgba(0,0,0,.05);padding:20px}.card-hover:hover{box-shadow:0px 5px 10px rgba(0,0,0,.1)}.list-enter-active,.list-leave-active{transition:all 1s}.list-enter,.list-leave-to{opacity:0;transform:translateX(300px)}.fade-leave-active{display:none !important}.fade-enter-active,.fade-leave-active{transition:opacity .5s}.fade-enter,.fade-leave-to{opacity:0 !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/scss/generic.scss\",\"webpack://./src/scss/variables.scss\",\"webpack://./src/scss/vuetify.scss\",\"webpack://./src/scss/mapboxgl.scss\",\"webpack://./src/scss/util.scss\",\"webpack://./src/scss/animations.scss\"],\"names\":[],\"mappings\":\"AAAA,KACE,+BAAA,CACA,YAAA,CAEF,wBACE,YAAA,CAEF,oBACE,SAAA,CAEF,0BACE,2BAAA,CACA,wBCJkB,CDKlB,iBAAA,CAEF,0BACE,2BAAA,CACA,wBCfkB,CDgBlB,iBAAA,CElBF,qBACE,kBAAA,CAEF,4BACE,aDFkB,CCIpB,qBACE,wBAAA,CAEF,qBACE,UAAA,CAEF,oBACE,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,sBAAA,CACA,UAAA,CAEF,iBACE,yBAAA,CACA,iBAAA,CAEF,4BACE,WAAA,CAEF,oBACE,wBAAA,CAEF,kBACE,WAAA,CAEF,kBACE,wBAAA,CAEF,kCACE,0CAAA,CAEF,oCACE,0CAAA,CAEF,qCACE,0CAAA,CAEF,+CACE,SAAA,CAEF,eACE,kBAAA,CChDF,4BACE,UAAA,CACA,WAAA,CAEF,wBACE,YAAA,CACA,UAAA,CACA,wBFLkB,CEOpB,oBACE,sCAAA,CACA,mCAAA,CAEF,6BACE,UAAA,CACA,QAAA,CACA,eAAA,CAEF,8BACE,wBAAA,CCnBF,MACE,YAAA,CACA,wBAAA,CACA,UAAA,CACA,YAAA,CAEF,MACE,qBAAA,CACA,iBAAA,CACA,uCAAA,CACA,YAAA,CAEF,kBACE,sCAAA,CCbF,sCACE,iBAAA,CAEF,2BACE,SAAA,CACA,2BAAA,CAEF,mBACE,uBAAA,CAEF,sCACE,sBAAA,CAEF,2BACE,oBAAA\",\"sourcesContent\":[\"body {\\n font-family: 'Roboto', sans-serif;\\n height: 100vh;\\n}\\nbody::-webkit-scrollbar {\\n display: none;\\n}\\n::-webkit-scrollbar {\\n width: 8px;\\n}\\n::-webkit-scrollbar-track {\\n background-clip: padding-box;\\n background-color: $grey-medium;\\n border-radius: 8px;\\n}\\n::-webkit-scrollbar-thumb {\\n background-clip: padding-box;\\n background-color: $secondary;\\n border-radius: 8px;\\n}\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\",\".v-application--wrap {\\n flex-direction: row;\\n}\\n.theme--light.v-application {\\n color: $secondary;\\n}\\n.theme--light.v-icon {\\n color: inherit !important;\\n}\\n.theme--dark.v-label {\\n color: white;\\n}\\n.v-toolbar__content {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n height: 100% !important;\\n width: 100%;\\n}\\n.v-input__icon > i {\\n font-size: 14px !important;\\n margin-right: 10px;\\n}\\n.v-navigation-drawer--fixed {\\n z-index: 200;\\n}\\n.v-btn.primary > span {\\n color: $secondary !important;\\n}\\n.v-snack__wrapper {\\n margin: 20px;\\n}\\n.v-snack__content {\\n color: $secondary !important;\\n}\\n.snackbar-error > .v-snack__wrapper {\\n border-bottom: 5px solid $negative !important;\\n}\\n.snackbar-warning > .v-snack__wrapper {\\n border-bottom: 5px solid $warning !important;\\n}\\n.snackbar-positive > .v-snack__wrapper {\\n border-bottom: 5px solid $positive !important;\\n}\\n.v-card__subtitle, .v-card__text, .v-card__title {\\n padding: 0;\\n}\\n.v-card__title {\\n line-height: normal;\\n}\\n\",\".mapboxgl-ctrl-bottom-right {\\n right: 10px;\\n bottom: 10px;\\n}\\n.mapboxgl-popup-content {\\n padding: 10px;\\n color: white;\\n background-color: $secondary;\\n}\\n.mapboxgl-popup-tip {\\n border-bottom-color: $secondary !important;\\n border-top-color: $secondary !important;\\n}\\n.mapboxgl-popup-close-button {\\n right: 20px;\\n top: 20px;\\n font-size: 1.5em;\\n}\\n.mapboxgl-ctrl-attrib-inner > a {\\n color: $secondary !important;\\n}\\n\",\".view {\\n padding: 20px;\\n height: calc(100% - 50px);\\n width: 100%;\\n display: flex;\\n}\\n.card {\\n background-color: white;\\n border-radius: 5px;\\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.05);\\n padding: 20px;\\n}\\n.card-hover:hover {\\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.10);\\n}\\n\",\".list-enter-active, .list-leave-active {\\n transition: all 1s;\\n}\\n.list-enter, .list-leave-to {\\n opacity: 0;\\n transform: translateX(300px);\\n}\\n.fade-leave-active {\\n display: none !important;\\n}\\n.fade-enter-active, .fade-leave-active {\\n transition: opacity 0.5s;\\n}\\n.fade-enter, .fade-leave-to {\\n opacity: 0 !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app[data-v-610ce914]{background-color:#f5f5f5 !important;width:100%;height:100%;overflow:hidden}.snackbar-text[data-v-610ce914]{color:var(--v-secondarydark-base)}.container[data-v-610ce914]{height:100%;margin-left:50px;width:calc(100% - 50px);max-width:calc(100% - 50px);padding:0}.container.login[data-v-610ce914]{margin-left:0;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/App.vue\"],\"names\":[],\"mappings\":\"AAEA,sBACE,mCAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CAEF,gCACE,iCAAA,CAEF,4BACE,WAAA,CACA,gBAAA,CACA,uBAAA,CACA,2BAAA,CACA,SAAA,CAEF,kCACE,aAAA,CACA,UAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.app {\\n background-color: $grey-ultralight !important;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n}\\n.snackbar-text{\\n color:var(--v-secondarydark-base);\\n}\\n.container {\\n height: 100%;\\n margin-left: 50px;\\n width: calc(100% - 50px);\\n max-width: calc(100% - 50px);\\n padding: 0;\\n}\\n.container.login {\\n margin-left: 0;\\n width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.row[data-v-d3a53384]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding-bottom:30px;padding-top:18px}.container[data-v-d3a53384]{display:flex;flex-direction:row;justify-content:space-evenly;align-items:center;padding-left:2em;padding-right:2em}.type-icon[data-v-d3a53384]{padding-right:.2em}.element[data-v-d3a53384]{margin-left:auto}.check-icon[data-v-d3a53384]{padding-left:1em}.subtitle[data-v-d3a53384]{flex:2;font-size:1.5em;font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/import/FileLoader.vue\"],\"names\":[],\"mappings\":\"AAGA,sBACE,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,mBAAA,CACA,gBAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,4BAAA,CACA,kBAAA,CACA,gBAAA,CACA,iBAAA,CAGF,4BACE,kBAAA,CAEF,0BACE,gBAAA,CAEF,6BACE,gBAAA,CAEF,2BACE,MAAA,CACA,eAAA,CACA,gBAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n\\n.row{\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n padding-bottom: 30px;\\n padding-top:18px;\\n\\n}\\n.container{\\n display: flex;\\n flex-direction: row;\\n justify-content: space-evenly;\\n align-items: center;\\n padding-left: 2em;\\n padding-right: 2em;\\n\\n}\\n.type-icon{\\n padding-right: 0.2em;\\n}\\n.element{\\n margin-left: auto;\\n}\\n.check-icon{\\n padding-left: 1em;\\n}\\n.subtitle {\\n flex:2;\\n font-size: 1.5em;\\n font-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-container[data-v-e186d29a]{height:17rem;border-radius:5px;background:var(--v-background-lighten4);display:flex;margin:10px 0px 0px 0px;flex-direction:column}.title-box[data-v-e186d29a]{display:flex;flex-direction:row;background:var(--v-background-lighten3);border-radius:5px 5px 0px 0px;padding:.5rem .5rem .5rem 1rem}.title[data-v-e186d29a]{font-size:2em !important;font-weight:bold}.upload-button[data-v-e186d29a]{margin-left:auto;margin-right:.75rem}.list-button[data-v-e186d29a]{margin-left:auto;margin-right:1rem}.list-icon[data-v-e186d29a]{margin-left:.5rem}.list[data-v-e186d29a]{font-size:1em;font-weight:bold;overflow-y:auto;padding-left:1rem;padding-top:.5rem}.list li[data-v-e186d29a]{display:flex;align-items:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/import/FilesList.vue\"],\"names\":[],\"mappings\":\"AAEA,kCACE,YAAA,CACA,iBAAA,CACA,uCAAA,CACA,YAAA,CACA,uBAAA,CACA,qBAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,uCAAA,CAEA,6BAAA,CACA,8BAAA,CAGF,wBACE,wBAAA,CACA,gBAAA,CAEF,gCACE,gBAAA,CACA,mBAAA,CAEF,8BACE,gBAAA,CACA,iBAAA,CAEF,4BACE,iBAAA,CAEF,uBACE,aAAA,CACA,gBAAA,CAEA,eAAA,CACA,iBAAA,CACA,iBAAA,CAEF,0BAEE,YAAA,CACA,kBAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.files-container{\\n height: 17rem;\\n border-radius: 5px;\\n background:var(--v-background-lighten4);\\n display: flex;\\n margin: 10px 0px 0px 00px;\\n flex-direction: column;\\n\\n}\\n.title-box {\\n display: flex;\\n flex-direction: row;\\n background:var(--v-background-lighten3);\\n\\n border-radius: 5px 5px 0px 0px;\\n padding: 0.5rem 0.5rem 0.5rem 1rem;\\n\\n}\\n.title{\\n font-size: 2em !important;\\n font-weight: bold;\\n}\\n.upload-button {\\n margin-left: auto;\\n margin-right:0.75rem\\n}\\n.list-button{\\n margin-left:auto;\\n margin-right:1rem\\n}\\n.list-icon{\\n margin-left:0.5rem\\n}\\n.list {\\n font-size: 1em;\\n font-weight: bold;\\n //border: 1px solid red;\\n overflow-y: auto;\\n padding-left: 1rem;\\n padding-top:0.5rem\\n}\\n.list li {\\n /* Add individual list item styles here */\\n display: flex; /* Use flexbox layout for each list item */\\n align-items: center; /* Align button vertically in the list item */\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.drawer[data-v-5b138161]{background-color:var(--v-secondary-base) !important}.drawer-header[data-v-5b138161]{width:100%;height:50px;border-bottom:1px solid #fff;background-color:var(--v-secondary-base);color:#fff;display:flex;align-items:center;padding-left:18px;cursor:pointer}.drawer-list[data-v-5b138161]{height:calc(100% - 50px);display:flex;flex-direction:column;padding:20px 0}.drawer-list-item[data-v-5b138161]{padding:0 13px !important;justify-content:flex-start !important;color:#fff;flex:0;transition:.3s}.version-number[data-v-5b138161]{justify-content:flex-start;color:#fff !important;margin-bottom:-1rem;flex:0}.drawer-list-item-icon[data-v-5b138161]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}.drawer-list-item-icon-disabled[data-v-5b138161]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;opacity:.4}.drawer-list-item-selected[data-v-5b138161]{background-color:var(--v-secondarydarkfix-base)}.drawer-list-item[data-v-5b138161]:hover{background-color:var(--v-secondary-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/layout/NavigationDrawer.vue\"],\"names\":[],\"mappings\":\"AAEA,yBACE,mDAAA,CAEF,gCACE,UAAA,CACA,WAAA,CACA,4BAAA,CACA,wCAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,cAAA,CAEF,8BACE,wBAAA,CACA,YAAA,CAEA,qBAAA,CACA,cAAA,CAEF,mCACE,yBAAA,CACA,qCAAA,CACA,UAAA,CACA,MAAA,CACA,cAAA,CAEF,iCACE,0BAAA,CACA,qBAAA,CACA,mBAAA,CACA,MAAA,CAEF,wCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,iDACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,4CACE,+CAAA,CAEF,yCACE,wCAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.drawer {\\n background-color: var(--v-secondary-base) !important;\\n}\\n.drawer-header {\\n width: 100%;\\n height: 50px;\\n border-bottom: 1px solid white;\\n background-color: var(--v-secondary-base);\\n color: white;\\n display: flex;\\n align-items: center;\\n padding-left: 18px;\\n cursor: pointer;\\n}\\n.drawer-list {\\n height: calc(100% - 50px);\\n display: flex;\\n\\n flex-direction: column;\\n padding: 20px 0;\\n}\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n color:white ;\\n flex: 0;\\n transition: 0.3s;\\n}\\n.version-number {\\n justify-content: flex-start ;\\n color:white !important;\\n margin-bottom:-1rem;\\n flex: 0;\\n}\\n.drawer-list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n.drawer-list-item-icon-disabled {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n opacity: 0.4;\\n}\\n.drawer-list-item-selected {\\n background-color: var(--v-secondarydarkfix-base);\\n}\\n.drawer-list-item:hover {\\n background-color: var(--v-secondary-base);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.title[data-v-f577b33e]{font-size:1.2em;padding-left:1.2rem;color:var(--v-secondarydark-base)}.is-active[data-v-f577b33e]{opacity:1;background-color:var(--v-primary-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/layout/ScenariosExplorer.vue\"],\"names\":[],\"mappings\":\"AAEA,wBACE,eAAA,CACA,mBAAA,CACA,iCAAA,CAEF,4BACE,SAAA,CACA,sCAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.title {\\n font-size: 1.2em;\\n padding-left: 1.2rem;\\n color:var(--v-secondarydark-base);\\n}\\n.is-active{\\n opacity:1;\\n background-color:var(--v-primary-base);\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-toolbar[data-v-4d444598]{z-index:100;height:50px !important;display:flex;color:#2c3e4e !important;position:relative}.login[data-v-4d444598]{padding-left:50px}.project-name[data-v-4d444598]{font-size:1.3em}.app-name[data-v-4d444598]{font-size:1.2em;padding-left:1.2rem;color:var(--v-secondarydark-base)}.copyright[data-v-4d444598]{font-size:.9rem;padding-left:5px;padding-top:1rem;color:var(--v-secondarydark-base)}.languages-container[data-v-4d444598]{display:flex}.switch[data-v-4d444598]{display:flex;padding-top:1rem;padding-left:1rem;align-items:center;justify-content:center;color:#e3e3e3;cursor:pointer}.language[data-v-4d444598]{width:50px;display:flex;align-items:center;justify-content:center;color:#e3e3e3;cursor:pointer;transition:.3s}.language.active[data-v-4d444598],.language[data-v-4d444598]:hover{color:var(--v-secondarydark-base)}.language[data-v-4d444598]:last-child{border-right:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/layout/Toolbar.vue\",\"webpack://./src/scss/variables.scss\"],\"names\":[],\"mappings\":\"AAEA,8BACE,WAAA,CACA,sBAAA,CACA,YAAA,CACA,wBAAA,CACA,iBAAA,CAEF,wBACE,iBAAA,CAEF,+BACE,eAAA,CAEF,2BACE,eAAA,CACA,mBAAA,CACA,iCAAA,CAEF,4BACE,eAAA,CACA,gBAAA,CACA,gBAAA,CACA,iCAAA,CAEF,sCACE,YAAA,CAEF,yBACE,YAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,aC5BkB,CD6BlB,cAAA,CAEF,2BACE,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,aCpCkB,CDqClB,cAAA,CACA,cAAA,CAEF,mEACE,iCAAA,CAEF,sCACE,cAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.app-toolbar {\\n z-index: 100;\\n height: 50px !important;\\n display: flex;\\n color: $secondary !important;\\n position: relative;\\n}\\n.login {\\n padding-left: 50px;\\n}\\n.project-name {\\n font-size: 1.3em;\\n}\\n.app-name {\\n font-size: 1.2em;\\n padding-left: 1.2rem;\\n color:var(--v-secondarydark-base);\\n}\\n.copyright {\\n font-size: 0.9rem;\\n padding-left: 5px;\\n padding-top: 1rem;\\n color:var(--v-secondarydark-base);\\n}\\n.languages-container {\\n display: flex;\\n}\\n.switch {\\n display: flex;\\n padding-top: 1rem;\\n padding-left:1rem;\\n align-items: center;\\n justify-content: center;\\n color: $grey-light;\\n cursor: pointer;\\n}\\n.language {\\n width: 50px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: $grey-light;\\n cursor: pointer;\\n transition: 0.3s;\\n}\\n.language.active, .language:hover {\\n color:var(--v-secondarydark-base);\\n}\\n.language:last-child {\\n border-right: 0;\\n}\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.left-panel[data-v-61e624f6]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-61e624f6]{transition:.3s}.left-panel-content[data-v-61e624f6]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-61e624f6]{padding:0}.left-panel-toggle-btn[data-v-61e624f6]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-61e624f6]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-61e624f6]{height:height;padding-left:20px}.scrollable[data-v-61e624f6]{overflow-y:scroll}.drawer-list-item[data-v-61e624f6]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-61e624f6]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}.custom-tooltip[data-v-61e624f6]{opacity:1 !important;background:var(--v-tooltip-bg, rgb(97, 97, 97)) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/LinksSidePanel.vue\",\"webpack://./src/scss/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,6BACE,WAAA,CACA,wBCJkB,CDKlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC/BkB,CDgClB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA,CAEF,iCACI,oBAAA,CACA,0DAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n@import \\\"src/scss/variables.scss\\\";\\n.left-panel {\\n height: 100%;\\n background-color: $primary-dark;\\n transition: 0.3s;\\n position: absolute;\\n display:flex;\\n z-index: 20;\\n\\n}\\n.left-panel-close {\\ntransition:0.3s\\n}\\n.left-panel-content {\\n display:inline-block;\\n width : 100%;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n //resize: horizontal;\\n overflow: auto;\\n\\n}\\n.v-list__tile {\\n padding: 0\\n}\\n.left-panel-toggle-btn {\\n left: 100%;\\n width: 25px;\\n z-index: 1;\\n background-color: $primary-dark;\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n height: 50px;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.left-panel-title {\\n height: 50px;\\n line-height: 55px;\\n padding-left: 20px;\\n font-size: 1.1em;\\n margin-bottom: 10px;\\n}\\n.trip-list {\\n height: height;\\n padding-left:20px\\n}\\n\\n.scrollable {\\n overflow-y:scroll;\\n\\n}\\n\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n flex: 0;\\n transition: 0.3s;\\n}\\n\\n.list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n.custom-tooltip {\\n opacity: 1!important;\\n background: var(--v-tooltip-bg, rgba(97, 97, 97, 1)) !important;\\n}\\n\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.map-view[data-v-66748ace]{width:100%}.my-custom-dialog[data-v-66748ace]{position:absolute !important;top:10px !important;right:20px !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/Map.vue\"],\"names\":[],\"mappings\":\"AAEA,2BACE,UAAA,CAGF,mCACE,4BAAA,CACA,mBAAA,CACA,qBAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.map-view {\\n width: 100%;\\n\\n}\\n.my-custom-dialog {\\n position: absolute !important;\\n top: 10px !important;\\n right: 20px !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.left-panel[data-v-56780b52]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-56780b52]{transition:.3s}.left-panel-content[data-v-56780b52]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-56780b52]{padding:0}.left-panel-toggle-btn[data-v-56780b52]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-56780b52]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-56780b52]{height:height;padding-left:20px}.scrollable[data-v-56780b52]{overflow-y:scroll}.drawer-list-item[data-v-56780b52]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-56780b52]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/ODSidePanel.vue\",\"webpack://./src/scss/variables.scss\"],\"names\":[],\"mappings\":\"AAEA,6BACE,WAAA,CACA,wBCHkB,CDIlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC9BkB,CD+BlB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.left-panel {\\n height: 100%;\\n background-color: $primary-dark;\\n transition: 0.3s;\\n position: absolute;\\n display:flex;\\n z-index: 20;\\n\\n}\\n.left-panel-close {\\ntransition:0.3s\\n}\\n.left-panel-content {\\n display:inline-block;\\n width : 100%;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n //resize: horizontal;\\n overflow: auto;\\n\\n}\\n.v-list__tile {\\n padding: 0\\n}\\n.left-panel-toggle-btn {\\n left: 100%;\\n width: 25px;\\n z-index: 1;\\n background-color: $primary-dark;\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n height: 50px;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.left-panel-title {\\n height: 50px;\\n line-height: 55px;\\n padding-left: 20px;\\n font-size: 1.1em;\\n margin-bottom: 10px;\\n}\\n.trip-list {\\n height: height;\\n padding-left:20px\\n}\\n\\n.scrollable {\\n overflow-y:scroll;\\n\\n}\\n\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n flex: 0;\\n transition: 0.3s;\\n}\\n\\n.list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.left-panel[data-v-0e528228]{height:100%;background-color:#7ebaac;transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-0e528228]{transition:.3s}.left-panel-content[data-v-0e528228]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-0e528228]{padding:0}.left-panel-toggle-btn[data-v-0e528228]{left:100%;width:25px;z-index:1;background-color:#7ebaac;display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-0e528228]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-0e528228]{height:height;padding-left:20px}.scrollable[data-v-0e528228]{overflow-y:scroll}.drawer-list-item[data-v-0e528228]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-0e528228]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/RoadSidePanel.vue\",\"webpack://./src/scss/variables.scss\"],\"names\":[],\"mappings\":\"AAEA,6BACE,WAAA,CACA,wBCHkB,CDIlB,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,wBC9BkB,CD+BlB,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.left-panel {\\n height: 100%;\\n background-color: $primary-dark;\\n transition: 0.3s;\\n position: absolute;\\n display:flex;\\n z-index: 20;\\n\\n}\\n.left-panel-close {\\ntransition:0.3s\\n}\\n.left-panel-content {\\n display:inline-block;\\n width : 100%;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n //resize: horizontal;\\n overflow: auto;\\n\\n}\\n.v-list__tile {\\n padding: 0\\n}\\n.left-panel-toggle-btn {\\n left: 100%;\\n width: 25px;\\n z-index: 1;\\n background-color: $primary-dark;\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n height: 50px;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.left-panel-title {\\n height: 50px;\\n line-height: 55px;\\n padding-left: 20px;\\n font-size: 1.1em;\\n margin-bottom: 10px;\\n}\\n.trip-list {\\n height: height;\\n padding-left:20px\\n}\\n\\n.scrollable {\\n overflow-y:scroll;\\n\\n}\\n\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n flex: 0;\\n transition: 0.3s;\\n}\\n\\n.list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n\\n\",\"$primary : #B5E0D6;\\n$primary-dark : #7EBAAC;\\n$secondary : #2C3E4E;\\n$secondary-dark : #0F1C27;\\n$secondary-light : #334453;\\n\\n$grey-ultralight : #F5F5F5;\\n$grey-light : #E3E3E3;\\n$grey-medium : #9E9E9E;\\n$grey-dark : #5B5B5B;\\n\\n$negative : #E42626;\\n$warning : #FF7B30;\\n$positive : #4CAF50;\\n\\n$chart-lightgreen : #CDDC39;\\n$chart-darkgreen : #4CAF50;\\n$chart-lightblue : #00BCD4;\\n$chart-darkblue : #2196F3;\\n$chart-purple : #673AB7;\\n$chart-pink : #E91E63;\\n$chart-orange : #FF7B30;\\n$chart-yellow : #FFC107;\\n\\n$list-item-padding : 0px;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.setting[data-v-6c428464]{position:absolute;top:10px;right:20px}.layout[data-v-6c428464]{position:absolute;width:100%;height:calc(100% - 50px);display:flex;flex-flow:row;justify-content:center;align-items:center}.layout-overlay[data-v-6c428464]{height:100%;width:100%;background-color:rgba(0,0,0,.5);position:absolute}.card[data-v-6c428464]{width:500px;overflow-y:auto;padding:40px}.title[data-v-6c428464]{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3.5em;color:#b5e0d6 !important;font-weight:bold}.subtitle[data-v-6c428464]{font-size:2em;color:var(--v-secondarydark-base) !important;font-weight:bold;padding:1rem}.card button[data-v-6c428464]{margin-top:40px}.shake[data-v-6c428464]{animation:shake-6c428464 .5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;transform:translate3d(0, 0, 0)}@keyframes shake-6c428464{10%,90%{transform:translate3d(-1px, 0, 0)}20%,80%{transform:translate3d(2px, 0, 0)}30%,50%,70%{transform:translate3d(-4px, 0, 0)}40%,60%{transform:translate3d(4px, 0, 0)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/Settings.vue\"],\"names\":[],\"mappings\":\"AAEA,0BACE,iBAAA,CACA,QAAA,CACA,UAAA,CAGF,yBACE,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,YAAA,CACA,aAAA,CACA,sBAAA,CACA,kBAAA,CAEF,iCACE,WAAA,CACA,UAAA,CACA,+BAAA,CACA,iBAAA,CAEF,uBACE,WAAA,CACA,eAAA,CACA,YAAA,CAEF,wBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CAEF,2BACE,aAAA,CACA,4CAAA,CACA,gBAAA,CACA,YAAA,CAGF,8BACE,eAAA,CAEF,wBACE,sEAAA,CACA,8BAAA,CAEF,0BACE,QACE,iCAAA,CAEF,QACE,gCAAA,CAEF,YACE,iCAAA,CAEF,QACE,gCAAA,CAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.setting {\\n position: absolute;\\n top: 10px;\\n right: 20px;\\n}\\n\\n.layout {\\n position: absolute;\\n width: calc(100%);\\n height: calc(100% - 50px);\\n display: flex;\\n flex-flow: row;\\n justify-content: center;\\n align-items: center;\\n}\\n.layout-overlay {\\n height: 100%;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n position: absolute;\\n}\\n.card {\\n width: 500px;\\n overflow-y: auto;\\n padding: 40px;\\n}\\n.title {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n font-size: 3.5em;\\n color: $primary !important;\\n font-weight: bold;\\n}\\n.subtitle {\\n font-size: 2em;\\n color: var(--v-secondarydark-base) !important;\\n font-weight: bold;\\n padding:1rem\\n\\n}\\n.card button {\\n margin-top: 40px;\\n}\\n.shake {\\n animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;\\n transform: translate3d(0, 0, 0);\\n}\\n@keyframes shake {\\n 10%, 90% {\\n transform: translate3d(-1px, 0, 0);\\n }\\n 20%, 80% {\\n transform: translate3d(2px, 0, 0);\\n }\\n 30%, 50%, 70% {\\n transform: translate3d(-4px, 0, 0);\\n }\\n 40%, 60% {\\n transform: translate3d(4px, 0, 0);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.left-panel[data-v-5064ebfe]{height:100%;background-color:var(--v-primarydark-base);transition:.3s;position:absolute;display:flex;z-index:20}.left-panel-close[data-v-5064ebfe]{transition:.3s}.left-panel-content[data-v-5064ebfe]{display:inline-block;width:100%;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.v-list__tile[data-v-5064ebfe]{padding:0}.left-panel-toggle-btn[data-v-5064ebfe]{left:100%;width:25px;z-index:1;background-color:var(--v-primarydark-base);display:flex;position:relative;align-items:center;justify-content:center;height:50px;transition:.3s;cursor:pointer}.left-panel-title[data-v-5064ebfe]{height:50px;line-height:55px;padding-left:20px;font-size:1.1em;margin-bottom:10px}.trip-list[data-v-5064ebfe]{height:height;padding-left:20px}.scrollable[data-v-5064ebfe]{overflow-y:scroll}.drawer-list-item[data-v-5064ebfe]{padding:0 13px !important;justify-content:flex-start !important;flex:0;transition:.3s}.list-item-icon[data-v-5064ebfe]{display:flex !important;flex-flow:row !important;justify-content:center !important;margin:0 !important;color:#fff}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/map/SidePanel.vue\"],\"names\":[],\"mappings\":\"AAEA,6BACE,WAAA,CACA,0CAAA,CACA,cAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAGF,mCACA,cAAA,CAEA,qCACE,oBAAA,CACA,UAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAEA,aAAA,CAGF,+BACE,SAAA,CAEF,wCACE,SAAA,CACA,UAAA,CACA,SAAA,CACA,0CAAA,CACA,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CAEF,mCACE,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEF,4BACE,aAAA,CACA,iBAAA,CAGF,6BACG,iBAAA,CAIH,mCACE,yBAAA,CACA,qCAAA,CACA,MAAA,CACA,cAAA,CAGF,iCACE,uBAAA,CACA,wBAAA,CACA,iCAAA,CACA,mBAAA,CACA,UAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.left-panel {\\n height: 100%;\\n background-color:var(--v-primarydark-base);\\n transition: 0.3s;\\n position: absolute;\\n display:flex;\\n z-index: 20;\\n\\n}\\n.left-panel-close {\\ntransition:0.3s\\n}\\n.left-panel-content {\\n display:inline-block;\\n width : 100%;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n //resize: horizontal;\\n overflow: auto;\\n\\n}\\n.v-list__tile {\\n padding: 0\\n}\\n.left-panel-toggle-btn {\\n left: 100%;\\n width: 25px;\\n z-index: 1;\\n background-color: var(--v-primarydark-base);\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n height: 50px;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.left-panel-title {\\n height: 50px;\\n line-height: 55px;\\n padding-left: 20px;\\n font-size: 1.1em;\\n margin-bottom: 10px;\\n}\\n.trip-list {\\n height: height;\\n padding-left:20px\\n}\\n\\n.scrollable {\\n overflow-y:scroll;\\n\\n}\\n\\n.drawer-list-item {\\n padding: 0 13px !important;\\n justify-content: flex-start !important;\\n flex: 0;\\n transition: 0.3s;\\n}\\n\\n.list-item-icon {\\n display: flex !important;\\n flex-flow: row !important;\\n justify-content: center !important;\\n margin: 0 !important;\\n color: white;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.layer-button[data-v-9ae88e1e]{position:absolute;top:60px;right:20px}.card[data-v-9ae88e1e]{width:500px;overflow-y:auto;padding:40px}.subtitle[data-v-9ae88e1e]{font-size:1.5em;color:var(--v-secondarydark-base) !important;font-weight:bold;padding:1rem}.title[data-v-9ae88e1e]{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3.5em;color:#b5e0d6 !important;font-weight:bold}.custom-tooltip[data-v-9ae88e1e]{opacity:1 !important;background:var(--v-tooltip-bg, rgb(97, 97, 97)) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/utils/LayerSelector.vue\"],\"names\":[],\"mappings\":\"AAEA,+BACE,iBAAA,CACA,QAAA,CACA,UAAA,CAEF,uBACE,WAAA,CACA,eAAA,CACA,YAAA,CAEF,2BACE,eAAA,CACA,4CAAA,CACA,gBAAA,CACA,YAAA,CAGF,wBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CAEF,iCACI,oBAAA,CACA,0DAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.layer-button {\\n position: absolute;\\n top: 60px;\\n right: 20px;\\n}\\n.card {\\n width: 500px;\\n overflow-y: auto;\\n padding: 40px;\\n}\\n.subtitle {\\n font-size: 1.5em;\\n color: var(--v-secondarydark-base) !important;\\n font-weight: bold;\\n padding:1rem\\n\\n}\\n.title {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n font-size: 3.5em;\\n color: $primary !important;\\n font-weight: bold;\\n}\\n.custom-tooltip {\\n opacity: 1!important;\\n background: var(--v-tooltip-bg, rgba(97, 97, 97, 1)) !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.gradient[data-v-0de46ea8]{width:85%;white-space:nowrap;position:relative;display:inline-block;padding-top:20px;padding-bottom:15px}.gradient .domain-title[data-v-0de46ea8]{position:absolute;right:25%;left:25%;text-align:center;font-size:11px;top:6px}.gradient .domain-min[data-v-0de46ea8]{position:absolute;left:0;font-size:11px;bottom:5px}.gradient .domain-med[data-v-0de46ea8]{position:absolute;right:25%;left:25%;text-align:center;font-size:11px;bottom:5px}.gradient .domain-max[data-v-0de46ea8]{position:absolute;right:0;font-size:11px;bottom:5px}.grad-step[data-v-0de46ea8]{display:inline-block;height:20px;width:1%}.legend[data-v-0de46ea8]{width:160px;z-index:3;display:flex;position:relative;align-items:center;justify-content:center;transition:.3s;height:50px;background-color:var(--v-white-base);border:thin solid var(--v-mediumgrey-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/utils/MapLegend.vue\"],\"names\":[],\"mappings\":\"AAGA,2BACI,SAAA,CACA,kBAAA,CACA,iBAAA,CACA,oBAAA,CACA,gBAAA,CACA,mBAAA,CAIJ,yCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CACA,cAAA,CACA,OAAA,CAIJ,uCACI,iBAAA,CACA,MAAA,CACA,cAAA,CACA,UAAA,CAEJ,uCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CACA,cAAA,CACA,UAAA,CAEJ,uCACI,iBAAA,CACA,OAAA,CACA,cAAA,CACA,UAAA,CAGJ,4BACI,oBAAA,CACA,WAAA,CACA,QAAA,CAGJ,yBACE,WAAA,CACA,SAAA,CACA,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,WAAA,CACA,oCAAA,CACA,0CAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n\\n.gradient {\\n width: 85%;\\n white-space: nowrap;\\n position: relative;\\n display: inline-block;\\n padding-top: 20px;\\n padding-bottom: 15px;\\n\\n}\\n\\n.gradient .domain-title {\\n position: absolute;\\n right: 25%;\\n left: 25%;\\n text-align: center;\\n font-size: 11px;\\n top: 6px;\\n\\n}\\n\\n.gradient .domain-min {\\n position: absolute;\\n left: 0;\\n font-size: 11px;\\n bottom: 5px;\\n}\\n.gradient .domain-med {\\n position: absolute;\\n right: 25%;\\n left: 25%;\\n text-align: center;\\n font-size: 11px;\\n bottom: 5px;\\n}\\n.gradient .domain-max {\\n position: absolute;\\n right: 0;\\n font-size: 11px;\\n bottom: 5px;\\n}\\n\\n.grad-step {\\n display: inline-block;\\n height: 20px;\\n width: 1%;\\n}\\n\\n.legend {\\n width: 160px;\\n z-index: 3;\\n display: flex;\\n position: relative;\\n align-items: center;\\n justify-content: center;\\n transition: 0.3s;\\n height: 50px;\\n background-color: var(--v-white-base);\\n border: thin solid var(--v-mediumgrey-base);\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.is-active[data-v-e63b0890]{opacity:1;background-color:var(--v-primary-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/utils/MenuSelector.vue\"],\"names\":[],\"mappings\":\"AAEA,4BACE,SAAA,CACA,sCAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.is-active{\\n opacity:1;\\n background-color:var(--v-primary-base);\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.map-legend[data-v-7dc7a5bf]{height:100%;position:absolute}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/utils/StaticLayer.vue\"],\"names\":[],\"mappings\":\"AAEA,6BACE,WAAA,CACA,iBAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.map-legend {\\n height: 100%;\\n position: absolute;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.map-view[data-v-00b02151]{height:calc(100% - 50px);width:100%;display:flex}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/pages/Home.vue\"],\"names\":[],\"mappings\":\"AAEA,2BACE,wBAAA,CACA,UAAA,CACA,YAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.map-view {\\n height: calc(100% - 50px);\\n width: 100%;\\n display: flex;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.layout[data-v-020024f7]{position:absolute;width:100%;height:calc(100% - 50px);display:flex;flex-flow:row;justify-content:center;align-items:center}.layout-overlay[data-v-020024f7]{height:100%;width:100%;background-color:var(--v-background-base);position:absolute}.card[data-v-020024f7]{width:80rem;overflow-y:hidden;padding:20px}.button-question[data-v-020024f7]{display:flex;align-items:center}.title[data-v-020024f7]{display:flex;align-items:center;justify-content:center;font-size:2em !important;color:var(--v-primary-base);font-weight:bold;margin-top:18px}.subtitle[data-v-020024f7]{font-size:1.5em;font-weight:bold;margin:20px}.card button[data-v-020024f7]{margin:.5rem}.animate-login[data-v-020024f7]{transform:translateY(-185%);transition:1s}.animate-layer[data-v-020024f7]{opacity:0;transition:1s}.button-row[data-v-020024f7]{display:flex;align-items:center;justify-content:center;margin-top:1rem;padding-top:.5rem;border-top:1px solid var(--v-lightgrey-base)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/pages/Import.vue\"],\"names\":[],\"mappings\":\"AAEA,yBACE,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,YAAA,CACA,aAAA,CACA,sBAAA,CACA,kBAAA,CAGF,iCACE,WAAA,CACA,UAAA,CACA,yCAAA,CAEA,iBAAA,CAEF,uBACE,WAAA,CACA,iBAAA,CACA,YAAA,CAEF,kCACE,YAAA,CACA,kBAAA,CAGF,wBACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,wBAAA,CACA,2BAAA,CACA,gBAAA,CACA,eAAA,CAEF,2BACE,eAAA,CACA,gBAAA,CACA,WAAA,CAEF,8BACE,YAAA,CAEF,gCACE,2BAAA,CACA,aAAA,CAEF,gCACE,SAAA,CACA,aAAA,CAEF,6BACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CACA,4CAAA\",\"sourcesContent\":[\"@import \\\"@scss/variables.scss\\\";\\n\\n.layout {\\n position: absolute;\\n width: calc(100%);\\n height: calc(100% - 50px);\\n display: flex;\\n flex-flow: row;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.layout-overlay {\\n height: 100%;\\n width: 100%;\\n background-color:var(--v-background-base);\\n\\n position: absolute;\\n}\\n.card {\\n width:80rem;\\n overflow-y:hidden;\\n padding: 20px;\\n}\\n.button-question{\\n display: flex;\\n align-items: center ;\\n\\n}\\n.title {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 2em !important;\\n color: var(--v-primary-base);\\n font-weight: bold;\\n margin-top:18px;\\n}\\n.subtitle {\\n font-size: 1.5em;\\n font-weight: bold;\\n margin: 20px;\\n}\\n.card button {\\n margin: 0.5rem;\\n}\\n.animate-login {\\n transform: translateY(-185%);\\n transition: 1s;\\n}\\n.animate-layer {\\n opacity: 0;\\n transition: 1s;\\n}\\n.button-row{\\n display: flex;\\n align-items: center;\\n justify-content:center;\\n margin-top : 1rem;\\n padding-top:0.5rem;\\n border-top: 1px solid var(--v-lightgrey-base);\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default {type:'FeatureCollection',crs:{type:'name',properties:{name:'urn:ogc:def:crs:OGC:1.3:CRS84'}},features:[]}","export default {type:'FeatureCollection',crs:{type:'name',properties:{name:'urn:ogc:def:crs:OGC:1.3:CRS84'}},features:[]}","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !isNaN(_vm.displaySettings.minVal) &&\n !isNaN(_vm.displaySettings.minVal),\n expression:\n \"!isNaN(displaySettings.minVal) && !isNaN(displaySettings.minVal)\",\n },\n ],\n staticClass: \"legend elevation-4\",\n style: {\n top: `${_vm.windowHeight}px`,\n left: `${_vm.leftOffset}px !important`,\n },\n },\n [\n _c(\n \"div\",\n { staticClass: \"gradient\" },\n [\n _vm._l(_vm.colorScale, function (color, key) {\n return _c(\"span\", {\n key: key,\n staticClass: \"grad-step\",\n style: { backgroundColor: color },\n })\n }),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"domain-title\" }, [\n _vm._v(_vm._s(_vm.displaySettings.selectedFeature)),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"domain-min\" }, [\n _vm._v(_vm._s(Math.round(_vm.displaySettings.minVal))),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"domain-med\" }, [\n _vm._v(\n _vm._s(\n Math.round(\n (_vm.displaySettings.maxVal + _vm.displaySettings.minVal) / 2\n )\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"domain-max\" }, [\n _vm._v(_vm._s(Math.round(_vm.displaySettings.maxVal))),\n ]),\n ],\n 2\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLegend.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLegend.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLegend.vue?vue&type=style&index=0&id=0de46ea8&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLegend.vue?vue&type=style&index=0&id=0de46ea8&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./MapLegend.vue?vue&type=template&id=0de46ea8&scoped=true&\"\nimport script from \"./MapLegend.vue?vue&type=script&lang=js&\"\nexport * from \"./MapLegend.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MapLegend.vue?vue&type=style&index=0&id=0de46ea8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0de46ea8\",\n null\n \n)\n\nexport default component.exports","import { store } from '@src/store/index.js'\nimport AWS from 'aws-sdk'\nimport JSZip from 'jszip'\nimport saveAs from 'file-saver'\n\nconst USERPOOL_ID = process.env.VUE_APP_COGNITO_USERPOOL_ID\nconst IDENTITY_POOL_ID = process.env.VUE_APP_COGNITO_IDENTITY_POOL_ID\nconst REGION = process.env.VUE_APP_COGNITO_REGION\n\nAWS.config.region = REGION\nconst s3Client = new AWS.S3({\n apiVersion: '2006-03-01',\n signatureVersion: 'v4',\n params: { region: REGION },\n})\n\nasync function readJson (bucket, key) {\n const params = { Bucket: bucket, Key: key, ResponseCacheControl: 'no-cache' }\n // const params = { Bucket: bucket, Key: key }\n\n const response = await s3Client.getObject(params).promise() // await the promise\n const fileContent = JSON.parse(new TextDecoder('utf-8').decode(response.Body).trim())\n return fileContent\n}\n\nasync function readBytes (bucket, key) {\n const params = { Bucket: bucket, Key: key, ResponseCacheControl: 'no-cache' }\n // const params = { Bucket: bucket, Key: key }\n const response = await s3Client.getObject(params).promise() // await the promise\n const fileContent = response.Body // can also do 'base64' here if desired\n return fileContent\n}\nasync function downloadFolder (bucket, prefix) {\n // zip everything in a folder. keep filename. Folder structure will not work.\n const zip = new JSZip()\n const params = { Bucket: bucket, Prefix: prefix }\n const response = await s3Client.listObjectsV2(params).promise()\n if (response.Contents.length === 0) throw new Error('no params.json in base scenario')\n for (const file of response.Contents) {\n const fileName = file.Key.split('/').slice(-1)[0]\n const params = { Bucket: bucket, Key: file.Key, ResponseCacheControl: 'no-cache' }\n const response = await s3Client.getObject(params).promise()\n zip.file(fileName, response.Body)\n }\n\n zip.generateAsync({ type: 'blob' }).then(function (content) {\n saveAs(content, 'example.zip')\n })\n}\n\nasync function getBucketList () {\n // from the cognito group name. get the list of available buckets on quetzal-config.\n try {\n const bucketList = await this.readJson('quetzal-config', 'cognito_group_access.json')\n store.commit('setBucketList', bucketList[store.getters.cognitoGroup])\n } catch (err) {\n store.commit('changeAlert', err)\n }\n}\nasync function listFiles (bucket, prefix) {\n if (Array.isArray(prefix)) {\n const paths = []\n prefix.forEach(async pref => {\n const params = { Bucket: bucket, Prefix: prefix }\n const Content = await s3Client.listObjectsV2(params).promise()\n paths.push(...Content.Contents.map(item => item.Key))\n })\n return paths\n } else {\n const params = { Bucket: bucket, Prefix: prefix }\n const Content = await s3Client.listObjectsV2(params).promise()\n return Content.Contents.map(item => item.Key)\n }\n}\nasync function getImagesURL (bucket, key) {\n const presignedGETURL = s3Client.getSignedUrl('getObject', {\n Bucket: bucket,\n Key: key, // filename\n Expires: 100, // time to expire in seconds\n })\n return presignedGETURL\n}\n\nasync function copyFolder (bucket, prefix, newName) {\n const params = { Bucket: bucket, Prefix: prefix }\n const response = await s3Client.listObjectsV2(params).promise()\n response.Contents = response.Contents.filter(el => el.Key !== (prefix + '/.lock'))\n if (response.Contents.length === 0) throw new Error('no params.json in base scenario')\n for (const file of response.Contents) {\n let newFile = file.Key.split('/')\n newFile[0] = newName\n newFile = newFile.join('/')\n // need to encore special character (é for example).\n let oldPath = file.Key.split('/')\n oldPath[0] = encodeURIComponent(oldPath[0])\n oldPath = oldPath.join('/')\n\n const copyParams = {\n Bucket: bucket,\n CopySource: bucket + '/' + oldPath,\n Key: newFile,\n }\n s3Client.copyObject(copyParams, function (err, data) {\n if (err) return err // an error occurred\n })\n }\n}\n\nasync function newScenario (bucket, prefix, newName) {\n const filesToCopy = [\n prefix + '/inputs/params.json',\n prefix + '/styles.json',\n prefix + '/attributesChoices.json',\n ]\n const params = { Bucket: bucket, Prefix: prefix }\n const response = await s3Client.listObjectsV2(params).promise()\n response.Contents = response.Contents.filter(el => filesToCopy.includes(el.Key))\n\n if (response.Contents.length === 0) throw new Error('Nothing to copy in base scenario (params.json at least)')\n for (const file of response.Contents) {\n let newFile = file.Key.split('/')\n newFile[0] = newName\n newFile = newFile.join('/')\n // need to encore special character (é for example).\n let oldPath = file.Key.split('/')\n oldPath[0] = encodeURIComponent(oldPath[0])\n oldPath = oldPath.join('/')\n\n const copyParams = {\n Bucket: bucket,\n CopySource: bucket + '/' + oldPath,\n Key: newFile,\n }\n s3Client.copyObject(copyParams, function (err, data) {\n if (err) return err // an error occurred\n })\n }\n}\n\nasync function deleteFolder (bucket, prefix) {\n const params = { Bucket: bucket, Prefix: prefix }\n const response = await s3Client.listObjectsV2(params).promise()\n const arr = []\n if (response.Contents.length > 0) {\n response.Contents.forEach(file => arr.push({ Key: file.Key }))\n const deleteParams = { Bucket: bucket, Delete: { Objects: arr } }\n return s3Client.deleteObjects(deleteParams).promise()\n }\n}\n\nasync function createFolder (bucket, key) {\n // create an empty folder\n if (key.slice(-1) !== '/') key = key + '/'\n const params = { Bucket: bucket, Key: key, Body: '' }\n\n s3Client.upload(params, function (err, data) {\n if (err) {\n store.commit('changeAlert', err)\n } else {\n console.log('Successfully created a folder on S3')\n }\n })\n}\nasync function putObject (bucket, key, body = '') {\n const params = {\n Bucket: bucket,\n Key: key,\n Body: body,\n Metadata: { user_email: store.getters.cognitoInfo.email },\n ContentType: ' application/json',\n }\n const resp = await s3Client.putObject(params).promise()\n return resp\n}\nasync function putBytes (bucket, key, body = '') {\n const params = {\n Bucket: bucket,\n Key: key,\n Body: body,\n Metadata: { user_email: store.getters.cognitoInfo.email },\n }\n const resp = await s3Client.putObject(params).promise()\n return resp\n}\n\nasync function getScenario (bucket) {\n // list all files in bucket\n const params = { Bucket: bucket }\n let moreToLoad = true\n const list = []\n try {\n while (moreToLoad) {\n const { Contents, IsTruncated, NextContinuationToken } = await s3Client.listObjectsV2(params).promise()\n list.push(...Contents)\n moreToLoad = IsTruncated\n params.ContinuationToken = NextContinuationToken\n }\n } catch (err) { return [] }\n\n // get list of scenarios (unique prefix)\n const scenarios = Array.from(new Set(list.map(name => name.Key.split('/')[0])))\n // scenarios = scenarios.filter(scen => scen !== 'quenedi.config.json')\n const scenList = []\n for (const scen of scenarios) {\n const files = list.filter(item => item.Key.startsWith(scen))\n\n // if there is .lock file in the root dir of the scen. it is protected.\n const lockedList = files.filter(item => item.Key.startsWith(scen + '/.lock'))\n const isLocked = lockedList.length > 0 || scen === 'base'\n\n // let maxDate = new Date(Math.max.apply(null, dates))\n const maxDateObj = files.reduce((prev, current) => (prev.LastModified > current.LastModified) ? prev : current, [])\n const maxDate = maxDateObj.LastModified.toLocaleDateString() + ' ' + maxDateObj.LastModified.toLocaleTimeString()\n // get user email metadata on newest object. undefined if empty or error.\n let userEmail // this = undefined\n try {\n const resp = await s3Client.headObject({ Bucket: bucket, Key: maxDateObj.Key }).promise()\n // if there is no email. it was a manual changed on S3 by an admin so we put idns-canada.\n userEmail = resp.Metadata.user_email ? resp.Metadata.user_email : 'idns-canada@systra.com'\n } catch (err) { store.commit('changeAlert', err) }\n scenList.push({ model: bucket, scenario: scen, lastModified: maxDate, userEmail: userEmail, protected: isLocked })\n }\n return scenList\n}\n\nexport default {\n s3: s3Client,\n async login () {\n AWS.config.region = REGION\n AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n IdentityPoolId: IDENTITY_POOL_ID,\n Logins: {\n [`cognito-idp.${REGION}.amazonaws.com/${USERPOOL_ID}`]: store.getters.idToken,\n },\n })\n s3Client.config.credentials = AWS.config.credentials\n await this.getBucketList()\n },\n\n getScenario,\n readJson,\n readBytes,\n getBucketList,\n listFiles,\n copyFolder,\n deleteFolder,\n createFolder,\n putObject,\n putBytes,\n getImagesURL,\n downloadFolder,\n newScenario,\n\n}\n","import { CognitoAuth, StorageHelper } from 'amazon-cognito-auth-js'\nimport router from './router'\nimport { store } from '@src/store/index.js'\nimport jwtDecode from 'jwt-decode'\n\nconst CLIENT_ID = process.env.VUE_APP_COGNITO_CLIENT_ID\nconst APP_DOMAIN = process.env.VUE_APP_COGNITO_APP_DOMAIN\nconst REDIRECT_URI = process.env.VUE_APP_COGNITO_REDIRECT_URI\nconst USERPOOL_ID = process.env.VUE_APP_COGNITO_USERPOOL_ID\nconst IDENTITY_POOL_ID = process.env.VUE_APP_COGNITO_IDENTITY_POOL_ID\nconst REDIRECT_URI_SIGNOUT = process.env.VUE_APP_COGNITO_REDIRECT_URI_SIGNOUT\n\nconst authData = {\n ClientId: CLIENT_ID, // Your client id here\n AppWebDomain: APP_DOMAIN,\n TokenScopesArray: ['openid'],\n RedirectUriSignIn: REDIRECT_URI,\n RedirectUriSignOut: REDIRECT_URI_SIGNOUT,\n UserPoolId: USERPOOL_ID,\n}\nconst auth = new CognitoAuth(authData)\n\nauth.userhandler = {\n onSuccess: function (result) {\n // console.log('On Success result', result)\n const idToken = result.getIdToken().jwtToken\n const sessionIdInfo = jwtDecode(idToken)\n // TODO : trouver comment avoir une liste des bucket!!\n store.commit('setIdToken', idToken)\n store.commit('setAccessToken', result.accessToken)\n store.commit('setCognitoInfo', sessionIdInfo)\n store.commit('setLoggedIn', true)\n if (Object.keys(sessionIdInfo).includes('cognito:groups')) {\n store.commit('setCognitoGroup', sessionIdInfo['cognito:groups'][0])\n }\n },\n onFailure: function (err) {\n store.commit('setLoggedOut')\n alert('Login failed due to ' + err)\n router.go({ path: '/error', query: { message: 'Login failed due to ' + err } })\n },\n}\n\nfunction getCognitoStorageKey () {\n const keyPrefix = 'CognitoIdentityServiceProvider.' + auth.getClientId()\n const tokenUserName = auth.signInUserSession.getAccessToken().getUsername()\n const suffix = ['.userInfo', '.tokenScopesString', '.accessToken', '.idToken', '.refreshToken']\n const keys = suffix.map(s => keyPrefix + '.' + tokenUserName + s)\n keys.push(keyPrefix + '.LastAuthUser')\n keys.push(`aws.cognito.identity-id.${IDENTITY_POOL_ID}`)\n keys.push(`aws.cognito.identity-providers.${IDENTITY_POOL_ID}`)\n return keys\n}\n\nconst storageHelper = new StorageHelper()\nconst storage = storageHelper.getStorage()\nexport default {\n auth: auth,\n login () {\n auth.getSession()\n },\n logout () {\n console.log(auth.isUserSignedIn())\n if (auth.isUserSignedIn()) {\n const cognitoKeys = this.getCognitoStorageKey()\n cognitoKeys.forEach(key => storage.removeItem(key))\n auth.signOut()\n } else {\n auth.signOut()\n }\n },\n getCognitoStorageKey,\n\n}\n","import axios from 'axios'\n\nconst quetzalClient = {\n client: null,\n login (idToken) {\n this.client = axios.create({\n baseURL: 'https://z0i1paj50k.execute-api.ca-central-1.amazonaws.com/dev',\n withCredentials: false,\n headers: {\n 'Accept': '*/*',\n 'Content-Type': 'text/plain',\n 'Authorization': idToken,\n },\n })\n },\n}\n\nconst axiosClient = {\n loginAll (idToken) {\n quetzalClient.login(idToken)\n },\n}\n\nexport { quetzalClient, axiosClient }\n","// import JSZip from 'jszip'\nconst $gettext = s => s\n\nfunction serializer (geojson, name, type = null, ignoreIndex = false) {\n // check that file is not empty\n if (geojson.features.length === 0) {\n const err = new Error(name + $gettext(' is empty'))\n err.name = 'ImportError'\n throw err\n }\n // check CRS. no CRS or invalid\n if (!['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(geojson.crs?.properties.name)) {\n const err = new Error($gettext(' invalid CRS. Import aborted. use CRS84 / EPSG:4326 in ') + name)\n err.name = 'ImportError'\n throw err\n }\n // check Type (is links a linestring)\n const currentType = geojson.features[0].geometry.type\n if (currentType !== type && type !== null) {\n const err = new Error(currentType + $gettext(' imported, Expected ') +\n type + $gettext('. Import aborted in ') + name)\n err.name = 'ImportError'\n throw err\n }\n // check if there is indexes in the properties\n if (!Object.keys(geojson.features[0].properties).includes('index') && !ignoreIndex) {\n const err = new Error($gettext('there is no index in the File. you need unique index. Import aborted in ') + name)\n err.name = 'ImportError'\n throw err\n }\n // all good. return geojson.\n return geojson\n}\n\nfunction paramsSerializer (json) {\n if (!Array.isArray(json)) {\n const err = new Error($gettext('params.json should be an array of object [{category: , params: }, ...]'))\n err.name = 'ImportError'\n throw err\n }\n const params = json.filter(item => !item?.info)\n const contains = (a, b) => [...b].every(value => a.has(value))\n const expectedKeys = new Set(['category', 'params'])\n params.forEach(el => {\n if (!contains(new Set(Object.keys(el)), expectedKeys)) {\n const err = new Error($gettext('params.json should be an array of object [{category: , params: }, ...]'))\n err.name = 'ImportError'\n throw err\n }\n })\n // if model key is not present. put default everywhere.\n json.forEach(item => { if (!Object.keys(item).includes('model')) { item.model = 'default' } })\n return json\n}\n\nfunction stylesSerializer (json) {\n if (!Array.isArray(json)) {\n // eslint-disable-next-line max-len\n const err = new Error($gettext('styles.json should be an array of object with at least [{name:,layer:}]'))\n err.name = 'ImportError'\n throw err\n }\n json.forEach(el => {\n if (!(Object.keys(el).includes('name')) || !(Object.keys(el).includes('layer'))) {\n // eslint-disable-next-line max-len\n const err = new Error($gettext('styles.json should be an array of object with at least [{name:,layer:}]'))\n err.name = 'ImportError'\n throw err\n }\n })\n return json\n}\n\nexport { serializer, paramsSerializer, stylesSerializer }\n","import JSZip from 'jszip'\nimport { store } from '../../store/index.js'\nconst $gettext = s => s\n\nfunction readFileAsText (file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = function (event) {\n resolve(event.target.result)\n }\n reader.onerror = function (event) {\n reject(event.target.error)\n }\n reader.readAsText(file)\n })\n}\n\nfunction readFileAsBytes (file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = function (event) {\n const fileBytes = new Uint8Array(event.target.result)\n resolve(fileBytes)\n }\n reader.onerror = function (event) {\n reject(event.target.error)\n }\n reader.readAsArrayBuffer(file)\n })\n}\n\nfunction checkPaths (paths) {\n // check that the zip files contains with inputs/ or outputs/ (as root folders.)\n const test = paths.filter(path => path.startsWith('inputs/') || path.startsWith('outputs/'))\n if (test.length === 0) {\n const err = new Error($gettext(' root folders should be inputs/ and outputs/. not: ') + paths[0])\n err.name = 'ImportError'\n throw err\n }\n}\n\nasync function extractZip (file) {\n const ZIP = new JSZip()\n const zip = await ZIP.loadAsync(file)\n let filesNames = Object.keys(zip.files)\n filesNames = filesNames.filter(name => !name.match(/^__MACOSX\\//))\n filesNames = filesNames.filter(name => !name.endsWith('/'))\n checkPaths(filesNames)\n // process ZIP file content here\n const result = []\n for (let i = 0; i < filesNames.length; i++) {\n const str = await zip.file(filesNames[i]).async('string')\n let content = {}\n if (filesNames[i].endsWith('.json') || filesNames[i].endsWith('.geojson')) {\n try {\n content = JSON.parse(str)\n } catch (err) {\n err.name = 'ImportError in ' + filesNames[i]\n throw err\n }\n } else {\n content = await zip.file(filesNames[i]).async('uint8array')\n }\n // import with new fileStructure (inputs, outputs folder in zip)\n\n result.push({ path: filesNames[i], content: content })\n }\n return result\n}\n\nfunction getGroupForm (features, lineAttributes, uneditable) {\n const form = {}\n lineAttributes.forEach(key => {\n const val = new Set(features.map(link => link.properties[key]))\n form[key] = {\n value: val.size > 1 ? '' : [...val][0],\n disabled: uneditable.includes(key),\n placeholder: val.size > 1,\n }\n })\n return form\n}\n\nfunction indexAreUnique (geojson) {\n // check if all index are unique in a geojson (links or nodes)\n // return true if they are unique\n let indexArr = []\n if (geojson?.features.length > 0) {\n indexArr = geojson.features.map(item => item.properties.index)\n return (new Set(indexArr).size === indexArr.length)\n } else { return true } // if its empty, return true\n}\n\nfunction IndexAreDifferent (geojsonA, geojsonB) {\n // check if index are duplicated between geojsons (to append new links or nodes) (links or nodes)\n // return true if they are all unique\n const linksIndex = new Set(geojsonA.features.map(item => item.properties.index))\n const newLinksIndex = new Set(geojsonB.features.map(item => item.properties.index))\n return (new Set([...linksIndex, ...newLinksIndex]).size === (linksIndex.size + newLinksIndex.size))\n}\n\nfunction createIndex (geojson, type, prefix) {\n // not done. we should check links and node as there is nodes index in links (a,b)\n switch (type) {\n case 'PT':\n // eslint-disable-next-line no-case-declarations\n const len = store.getters.links.features.length\n // eslint-disable-next-line no-return-assign\n geojson.features.forEach((feat, index) => feat.properties.index = prefix + (index + len))\n break\n case 'road':\n break\n }\n}\n\nasync function unzip (file) {\n // unzip a file and return a json (solo json zipped)\n const ZIP = new JSZip()\n const zip = await ZIP.loadAsync(file)\n const filesNames = Object.keys(zip.files)\n const str = await zip.file(filesNames[0]).async('string')\n const content = JSON.parse(str)\n return content\n}\n\n// https://stackoverflow.com/questions/27979002/convert-csv-data-into-json-format-using-javascript\nfunction csvJSON (bytes) {\n const csv = new TextDecoder().decode(bytes)\n let lines = csv.split('\\n')\n lines = lines.filter(line => line.length > 0)\n const result = []\n // NOTE: If your columns contain commas in their values, you'll need\n // to deal with those before doing the next step\n // (you might convert them to &&& or something, then covert them back later)\n // jsfiddle showing the issue https://jsfiddle.net/\n // if (lines.length > 100000) {\n\n // return [{ error: 'too many lines' }]\n // }\n const headers = lines[0].split(',')\n for (let i = 1; i < lines.length; i++) {\n const obj = {}\n const currentline = lines[i].split(',')\n\n for (let j = 0; j < headers.length; j++) {\n // convert to number if possible\n obj[headers[j]] = Number(currentline[j]) ? Number(currentline[j]) : currentline[j]\n }\n\n result.push(obj)\n }\n // return result; //JavaScript object\n return result\n}\n\nexport {\n readFileAsText,\n readFileAsBytes,\n extractZip,\n getGroupForm,\n indexAreUnique,\n createIndex,\n IndexAreDifferent,\n unzip,\n csvJSON,\n}\n","// this files contains all available highways and associated constant.\nconst highwayList = [\n 'motorway',\n 'motorway_link',\n 'trunk',\n 'trunk_link',\n 'primary',\n 'primary_link',\n 'secondary',\n 'secondary_link',\n 'tertiary',\n 'tertiary_link',\n 'residential',\n 'living_street',\n 'service',\n 'unclassified',\n 'cycleway',\n 'pedestrian',\n]\n\nconst highwayColor = {\n motorway: 'E892A2',\n motorway_link: 'E892A2',\n trunk: 'E892A2',\n trunk_link: 'E892A2',\n primary: 'FCD6A4',\n primary_link: 'FCD6A4',\n secondary: 'F7F9BE',\n secondary_link: 'F7F9BE',\n tertiary: '808080',\n tertiary_link: '808080',\n residential: '808080',\n living_street: '808080',\n service: '808080',\n unclassified: '808080',\n cycleway: '1D8621',\n pedestrian: '1D8621',\n}\n\nconst highwayWidth = {\n motorway: 4,\n motorway_link: 4,\n trunk: 4,\n trunk_link: 4,\n primary: 4,\n primary_link: 4,\n secondary: 3,\n secondary_link: 3,\n tertiary: 2,\n tertiary_link: 2,\n residential: 2,\n living_street: 2,\n service: 2,\n unclassified: 2,\n cycleway: 2,\n pedestrian: 2,\n}\n\nexport { highwayList, highwayColor, highwayWidth }\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!./app.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!./app.scss\";\n export default content && content.locals ? content.locals : undefined;\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"v-app\",\n { staticClass: \"app\" },\n [\n _c(\"NavigationDrawer\"),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"resize\",\n rawName: \"v-resize\",\n value: _vm.onResize,\n expression: \"onResize\",\n },\n ],\n ref: \"container\",\n staticClass: \"container\",\n },\n [\n _c(\"Toolbar\"),\n _vm._v(\" \"),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [_c(\"router-view\")], 1),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-overlay\",\n { attrs: { value: _vm.loading } },\n [\n _c(\"v-progress-circular\", {\n attrs: { indeterminate: \"\", size: \"64\" },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-snackbar\",\n {\n class: `snackbar-${_vm.notification.type}`,\n attrs: {\n timeout: _vm.notification.autoClose ? 3000 : -1,\n transition: \"slide-y-reverse-transition\",\n color: _vm.notification.color ? _vm.notification.color : \"white\",\n },\n scopedSlots: _vm._u([\n {\n key: \"action\",\n fn: function ({ attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._b(\n {\n attrs: { small: \"\", color: \"secondarydark\", text: \"\" },\n on: { click: _vm.closeSnackbar },\n },\n \"v-btn\",\n attrs,\n false\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Close\")) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.snackbar,\n callback: function ($$v) {\n _vm.snackbar = $$v\n },\n expression: \"snackbar\",\n },\n },\n [\n _c(\"span\", { staticClass: \"snackbar-text\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(_vm.notification.text)) +\n \"\\n \"\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"Alert\"),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"v-toolbar\",\n { class: \"app-toolbar elevation-4\", attrs: { dense: \"\" } },\n [\n _c(\"v-img\", {\n attrs: {\n src: require(\"@static/systra_logo.png\"),\n contain: \"\",\n \"max-width\": \"6rem\",\n },\n }),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"copyright\" }, [_vm._v(\"©\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"app-name\" }, [\n _vm._v(\"\\n Quetzal Network Editor\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"div\", [_c(\"ScenariosExplorer\")], 1),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n attrs: {\n icon: \"\",\n href: \"https://github.com/systragroup/quetzal-network-editor\",\n target: \"_blank\",\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\"\\n fab fa-github\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [_vm._v(\" \"), _c(\"span\", [_vm._v(\"GitHub\")])]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"switch\" },\n [\n _c(\"v-switch\", {\n attrs: { \"append-icon\": \"fas fa-moon\" },\n model: {\n value: _vm.$vuetify.theme.dark,\n callback: function ($$v) {\n _vm.$set(_vm.$vuetify.theme, \"dark\", $$v)\n },\n expression: \"$vuetify.theme.dark\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"language active\",\n attrs: { text: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$language.current) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n _vm._l(_vm.$language.available, function (language, lang) {\n return _c(\n \"v-list-item\",\n {\n key: lang,\n class: language,\n on: { click: () => _vm.handleChangeLanguage(lang) },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(language.toUpperCase()) +\n \"\\n \"\n ),\n ]\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", [_c(\"Profile\")], 1),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _vm.loggedIn\n ? _c(\n \"v-menu\",\n {\n attrs: {\n \"close-on-content-click\": false,\n \"nudge-width\": 200,\n \"offset-x\": \"\",\n \"offset-y\": \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-avatar\",\n _vm._g(\n _vm._b(\n { attrs: { size: \"34\", color: \"primary\" } },\n \"v-avatar\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"span\", { staticClass: \"white--text text-h6\" }, [\n _vm._v(_vm._s(_vm.initial)),\n ]),\n ]\n ),\n ]\n },\n },\n ],\n null,\n false,\n 3256803526\n ),\n model: {\n value: _vm.menu,\n callback: function ($$v) {\n _vm.menu = $$v\n },\n expression: \"menu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n _vm._s(\n _vm.cognitoInfo.given_name +\n \" \" +\n _vm.cognitoInfo.family_name\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(_vm._s(_vm.cognitoInfo.email)),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm._l(_vm.bucketList, function (group) {\n return _c(\"v-list-item\", { key: group }, [\n _vm._v(\"\\n \" + _vm._s(group) + \"\\n \"),\n ])\n }),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: { click: _vm.logout },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"logout\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 2\n ),\n ],\n 1\n )\n : _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"250\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n { attrs: { icon: \"\" }, on: { click: _vm.login } },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\"\\n fas fa-sign-in-alt\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.$gettext(\"login / signin\")))]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"350\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.applyDialog.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return (() => (_vm.showDialog = false)).apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h4\" }, [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"Redirect\")) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-card-text\", { staticClass: \"text-h6\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"This will ERASE the current project\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: { click: () => (_vm.showDialog = !_vm.showDialog) },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"No\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: { click: _vm.applyDialog },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Yes\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=81b79092&scoped=true&\"\nimport script from \"./Profile.vue?vue&type=script&lang=js&\"\nexport * from \"./Profile.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"81b79092\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _vm.loggedIn && _vm.modelsList.length > 0\n ? _c(\n \"section\",\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"close-on-click\":\n !_vm.showDialog && !_vm.deleteDialog && !_vm.copyDialog,\n \"close-on-content-click\": false,\n \"max-width\": \"460px\",\n \"max-height\": _vm.windowHeight,\n \"offset-y\": \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"div\",\n _vm._g(\n _vm._b(\n { staticClass: \"title\" },\n \"div\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.scenario\n ? _vm.model + \"/\" + _vm.scenario\n : _vm.$gettext(\"Projects\")\n ) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ],\n null,\n false,\n 2682127123\n ),\n model: {\n value: _vm.menu,\n callback: function ($$v) {\n _vm.menu = $$v\n },\n expression: \"menu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-tabs\",\n {\n attrs: { \"show-arrows\": \"\", \"fixed-tabs\": \"\" },\n model: {\n value: _vm.localModel,\n callback: function ($$v) {\n _vm.localModel = $$v\n },\n expression: \"localModel\",\n },\n },\n _vm._l(_vm.modelsList, function (tab) {\n return _c(\n \"v-tab\",\n { key: tab, attrs: { href: \"#\" + tab } },\n [\n _vm._v(\n \"\\n \" + _vm._s(tab.slice(8)) + \"\\n \"\n ),\n ]\n )\n }),\n 1\n ),\n _vm._v(\" \"),\n _vm._l(_vm.scenariosList, function (scen) {\n return _c(\n \"v-list-item\",\n {\n key: scen.model + scen.scenario,\n class: {\n \"is-active\":\n _vm.modelScen === scen.model + scen.scenario,\n },\n attrs: {\n value: scen.model + scen.scenario,\n \"two-line\": \"\",\n },\n on: {\n click: function ($event) {\n return _vm.selectScenario(scen)\n },\n },\n },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(_vm._s(scen.scenario)),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(_vm._s(scen.lastModified)),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(_vm._s(scen.userEmail)),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n staticClass: \"ma-1\",\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return (() => {\n _vm.copyDialog = true\n _vm.selectedScenario = scen.scenario\n _vm.input = scen.scenario + \" copy\"\n }).apply(null, arguments)\n },\n },\n },\n [\n _c(\n \"v-icon\",\n { attrs: { small: \"\", color: \"regular\" } },\n [_vm._v(\"\\n fas fa-copy\\n \")]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n scen.model + scen.scenario === _vm.modelScen ||\n scen.protected,\n },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return (() => {\n _vm.deleteDialog = true\n _vm.scenarioToDelete = scen.scenario\n }).apply(null, arguments)\n },\n },\n },\n [\n _c(\n \"v-icon\",\n { attrs: { small: \"\", color: \"grey\" } },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n scen.protected\n ? \"fas fa-lock\"\n : \"fas fa-trash\"\n ) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loading,\n expression: \"loading\",\n },\n ],\n },\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"v-progress-circular\", {\n attrs: { color: \"primary\", indeterminate: \"\" },\n }),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { text: \"\" },\n on: {\n click: () => {\n _vm.copyDialog = true\n _vm.selectedScenario = null\n _vm.input = \"\"\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"new scenario\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 2\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"350\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.applyDialog.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancelDialog.apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h4\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Load Scenario?\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-card-text\", { staticClass: \"text-h6\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"This will ERASE the current project\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: { click: _vm.cancelDialog },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"No\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: { click: _vm.applyDialog },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Yes\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"350\" },\n on: {\n keydown: function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return (() => (_vm.deleteDialog = false)).apply(\n null,\n arguments\n )\n },\n },\n model: {\n value: _vm.deleteDialog,\n callback: function ($$v) {\n _vm.deleteDialog = $$v\n },\n expression: \"deleteDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h4\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"Delete \") + _vm.scenarioToDelete + \" ?\"\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-card-text\", { staticClass: \"text-h6\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\n \"The scenario will be permanently deleted\"\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: { click: () => (_vm.deleteDialog = false) },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"error\" },\n on: { click: _vm.deleteScenario },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Delete\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"290\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.createProject.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancel.apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.copyDialog,\n callback: function ($$v) {\n _vm.copyDialog = $$v\n },\n expression: \"copyDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.selectedScenario\n ? _vm.$gettext(\"copy\") + \" \" + _vm.selectedScenario\n : _vm.$gettext(\"New Scenario\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\n \"v-container\",\n [\n _c(\n \"v-col\",\n { attrs: { cols: \"12\" } },\n [\n _c(\"v-text-field\", {\n attrs: {\n autofocus: \"\",\n label: _vm.$gettext(\"name\"),\n },\n model: {\n value: _vm.input,\n callback: function ($$v) {\n _vm.input = $$v\n },\n expression: \"input\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n { style: { textAlign: \"center\", color: \"red\" } },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.errorMessage) + \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", text: \"\" },\n on: { click: _vm.closeCopy },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"green darken-1\", text: \"\" },\n on: { click: _vm.createProject },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"ok\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScenariosExplorer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScenariosExplorer.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScenariosExplorer.vue?vue&type=style&index=0&id=f577b33e&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScenariosExplorer.vue?vue&type=style&index=0&id=f577b33e&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ScenariosExplorer.vue?vue&type=template&id=f577b33e&scoped=true&\"\nimport script from \"./ScenariosExplorer.vue?vue&type=script&lang=js&\"\nexport * from \"./ScenariosExplorer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ScenariosExplorer.vue?vue&type=style&index=0&id=f577b33e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f577b33e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toolbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toolbar.vue?vue&type=script&lang=js&\"","\n\n\n\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toolbar.vue?vue&type=style&index=0&id=4d444598&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toolbar.vue?vue&type=style&index=0&id=4d444598&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Toolbar.vue?vue&type=template&id=4d444598&scoped=true&\"\nimport script from \"./Toolbar.vue?vue&type=script&lang=js&\"\nexport * from \"./Toolbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Toolbar.vue?vue&type=style&index=0&id=4d444598&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d444598\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"transition\",\n { attrs: { name: \"fade\" } },\n [\n _c(\n \"v-navigation-drawer\",\n {\n staticClass: \"drawer elevation-4\",\n attrs: {\n app: \"\",\n stateless: \"\",\n temporary: !_vm.mini,\n \"mini-variant\": _vm.mini,\n \"mini-variant-width\": 50,\n },\n on: {\n \"update:miniVariant\": function ($event) {\n _vm.mini = $event\n },\n \"update:mini-variant\": function ($event) {\n _vm.mini = $event\n },\n },\n model: {\n value: _vm.drawer,\n callback: function ($$v) {\n _vm.drawer = $$v\n },\n expression: \"drawer\",\n },\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"drawer-header\",\n on: {\n click: function ($event) {\n _vm.mini = !_vm.mini\n },\n },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.mini ? \"fa fa-bars\" : \"fas fa-angle-left\") +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list\",\n { staticClass: \"drawer-list\", attrs: { dense: \"\" } },\n [\n _vm._l(_vm.getDisplayedRoutes(), function (item, key) {\n return _c(\n \"v-list-item\",\n {\n key: key,\n staticClass: \"drawer-list-item\",\n class: [\n _vm.$route.name === item.name\n ? \"drawer-list-item-selected\"\n : \"\",\n ],\n style: { marginTop: item.margin },\n attrs: {\n disabled:\n item.name === \"Save\" &&\n (!_vm.$store.getters.scenario || _vm.isProtected),\n },\n on: {\n click: function ($event) {\n return _vm.handleClickMenuItem(item)\n },\n },\n nativeOn: {\n click: function ($event) {\n $event.stopPropagation()\n },\n },\n },\n [\n _c(\n \"v-list-item-action\",\n {\n class:\n item.name === \"Save\" &&\n (!_vm.$store.getters.scenario || _vm.isProtected)\n ? \"drawer-list-item-icon-disabled\"\n : \"drawer-list-item-icon\",\n },\n [\n item.name === \"Run\" && _vm.running\n ? _c(\n \"v-badge\",\n {\n attrs: {\n \"offset-x\": \"12px\",\n \"offset-y\": \"10px\",\n color: \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"v-progress-circular\", {\n attrs: {\n size: \"18\",\n width: \"4\",\n color: \"primary\",\n indeterminate: \"\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n title: _vm.$gettext(item.title),\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.icon) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n )\n : item.name === \"Run\" && _vm.runWarning\n ? _c(\n \"v-badge\",\n {\n attrs: {\n \"offset-x\": \"6px\",\n \"offset-y\": \"11px\",\n color: _vm.runError ? \"error\" : \"warning\",\n icon: \"fa-solid fa-exclamation\",\n },\n },\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n title: _vm.$gettext(item.title),\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.icon) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n )\n : item.name === \"Save\" && _vm.saving\n ? _c(\n \"v-badge\",\n {\n attrs: {\n \"offset-x\": \"12px\",\n \"offset-y\": \"10px\",\n color: \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"v-progress-circular\", {\n attrs: {\n size: \"18\",\n width: \"4\",\n color: \"primary\",\n indeterminate: \"\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n title: _vm.$gettext(item.title),\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.icon) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n )\n : _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n title: _vm.$gettext(item.title),\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.icon) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-list-item-title\",\n { style: { marginLeft: \"20px\", color: \"white\" } },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(item.title)) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n staticClass: \"version-number\",\n style: { fontSize: 24 - 2 * _vm.version.length + \"px\" },\n },\n [_c(\"span\", [_vm._v(_vm._s(_vm.version))])]\n ),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=style&index=0&id=5b138161&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=style&index=0&id=5b138161&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationDrawer.vue?vue&type=template&id=5b138161&scoped=true&\"\nimport script from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavigationDrawer.vue?vue&type=style&index=0&id=5b138161&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b138161\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"text-center\" },\n [\n _c(\n \"v-bottom-sheet\",\n {\n attrs: { persistent: \"\" },\n model: {\n value: _vm.sheet,\n callback: function ($$v) {\n _vm.sheet = $$v\n },\n expression: \"sheet\",\n },\n },\n [\n _c(\"v-sheet\", { staticClass: \"text-center\" }, [\n _c(\n \"div\",\n [\n _c(\n \"v-alert\",\n { attrs: { prominent: \"\", type: \"error\" } },\n [\n _c(\n \"v-row\",\n [\n _c(\"v-col\", { staticClass: \"grow\" }, [\n _c(\"h2\", [\n _vm._v(\n \"\\n ERROR: \" +\n _vm._s(_vm.err.name) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.err.message) +\n \"\\n \"\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-col\",\n { staticClass: \"shrink\" },\n [\n _c(\n \"v-btn\",\n { attrs: { icon: \"\" }, on: { click: _vm.close } },\n [\n _c(\"v-icon\", [\n _vm._v(\n \"\\n fas fa-times\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=785f7271&scoped=true&\"\nimport script from \"./Alert.vue?vue&type=script&lang=js&\"\nexport * from \"./Alert.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"785f7271\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=610ce914&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=610ce914&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=610ce914&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=610ce914&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"610ce914\",\n null\n \n)\n\nexport default component.exports","import '@fortawesome/fontawesome-free/css/all.css'\nimport 'vuetify/dist/vuetify.min.css'\nimport 'mapbox-gl/dist/mapbox-gl.css'\nimport '@scss/app.scss'\n\nimport Vue from 'vue'\nimport GetTextPlugin from 'vue-gettext'\nimport { store } from './store'\nimport router from './router'\nimport Vuetify from 'vuetify'\nimport 'promise-polyfill/src/polyfill'\n\nimport fr from 'vuetify/es5/locale/fr'\nimport en from 'vuetify/es5/locale/en'\nimport de from 'vuetify/es5/locale/de'\nimport es from 'vuetify/es5/locale/es'\nimport pt from 'vuetify/es5/locale/pt'\n\nimport translations from './translations.json'\n\nimport App from './App.vue'\nconst mapboxPublicKey = process.env.VUE_APP_MAPBOX_PUBLIC_KEY\nconsole.assert(mapboxPublicKey)\n\nconst languageMixin = {\n methods: {\n $selectBestLanguage (browserLangs, supportedLangs) {\n if (browserLangs.length) {\n for (const lang of browserLangs) {\n const parts = lang.toLowerCase().split('-')\n if (parts.length > 1) {\n parts[1] = parts[1].toUpperCase()\n }\n const normLang = parts.join('-')\n if (supportedLangs.includes(normLang)) {\n return normLang\n } else if (parts.length > 1 && supportedLangs.includes(parts[0])) {\n return parts[0]\n }\n }\n return supportedLangs[0]\n } else {\n return supportedLangs[0]\n }\n },\n },\n}\n\nconst bestLanguage = languageMixin.methods.$selectBestLanguage(navigator.languages, ['en', 'fr', 'es', 'de', 'pt'])\nconst darkMode = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches)\n\nVue.use(Vuetify)\nVue.use(GetTextPlugin, {\n autoAddKeyAttributes: true,\n availableLanguages: {\n en: 'English',\n fr: 'Français',\n es: 'Español',\n de: 'Deutsch',\n pt: 'Português',\n },\n defaultLanguage: bestLanguage,\n translations,\n silent: true,\n})\n\nVue.config.productionTip = false\nVue.config.devtools = false\nVue.config.performance = false\n\nconst vuetify = new Vuetify({\n theme: {\n dark: !!darkMode,\n options: {\n customProperties: true,\n },\n themes: {\n\n light: {\n primary: '#B5E0D6',\n primarydark: '#7EBAAC',\n secondary: '#2C3E4E',\n secondarydark: '#1A242C',\n secondarydarkfix: '#1A242C',\n secondarylight: '#334453',\n background: '#808080',\n lightgrey: '#E3E4E6',\n white: '#fff',\n black: '#000000',\n mediumgrey: '#9E9E9E',\n darkgrey: '#5B5B5C',\n accent: '#2C3E4E',\n linksprimary: '#7EBAAC',\n linkssecondary: '#B5E0D6',\n chart: {\n lightgreen: '#CDDC39',\n darkgreen: '#4CAF50',\n lightblue: '#00BCD4',\n darkblue: '#2196F3',\n purple: '#673AB7',\n pink: '#E91E63',\n orange: '#FF7B30',\n yellow: '#FFC107',\n },\n },\n dark: {\n primary: '#2196F3',\n primarydark: '#191919',\n secondary: '#263238',\n secondarydark: '#fff',\n secondarydarkfix: '#1A242C',\n lightgrey: '#403f3f',\n mediumgrey: '#575757',\n darkgrey: '#d9d9db',\n background: '#000000',\n white: '#000000',\n black: '#fff',\n success: '#2196F3',\n accent: '#d3c1b1',\n linksprimary: '#2196F3',\n linkssecondary: '#90CAF9',\n chart: {\n lightgreen: '#CDDC39',\n darkgreen: '#4CAF50',\n lightblue: '#00BCD4',\n darkblue: '#2196F3',\n purple: '#673AB7',\n pink: '#E91E63',\n orange: '#FF7B30',\n yellow: '#FFC107',\n },\n\n },\n\n },\n },\n icons: {\n iconfont: 'fa',\n },\n lang: {\n locales: { fr, en, es, de, pt },\n current: bestLanguage,\n },\n})\n\nVue.mixin(languageMixin)\n\nVue.mixin({\n methods: {\n $flatEdges (obj, recurse = false) {\n let flatObj = obj\n if (obj.edges) {\n flatObj = obj.edges.map(edge => edge.node)\n }\n if (recurse) {\n for (const key in obj) {\n if (obj[key] !== null && typeof obj[key] === 'object') {\n obj[key] = this.$flatEdges(obj[key], true)\n }\n }\n }\n return flatObj\n },\n },\n})\n\nconst app = new Vue({\n\n router,\n store,\n vuetify,\n render: h => h(App),\n template: '',\n})\n\napp.$mount('#app')\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\"input\", {\n ref: \"zipInput\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"zip-input\", type: \"file\", accept: \".zip\" },\n on: { change: _vm.readZip },\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"layout\" },\n [\n _c(\"div\", {\n staticClass: \"layout-overlay\",\n class: { \"animate-layer\": _vm.loggedIn },\n }),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { staticClass: \"card\", class: { \"animate-login\": _vm.loggedIn } },\n [\n _c(\n \"v-row\",\n [\n _c(\n \"v-col\",\n [\n _c(\n \"v-card-text\",\n { style: { textAlign: \"center\" } },\n [\n _c(\"div\", { staticClass: \"title\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Select a Project\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\n \"Log in and select an existing project or create a new project from project navigation menu\"\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"subtitle\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"OR\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"title\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"Continue Without Project\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\n \"Start importing files individually or start with an empty project\"\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"subtitle\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"OR\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"title\" },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Load Zip\")) +\n \"\\n \"\n ),\n _c(\"InfoZip\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\n \"v-btn\",\n {\n style: { \"margin-right\": \"auto\" },\n attrs: { color: \"normal\" },\n on: {\n click: function ($event) {\n return _vm.buttonHandle(\"zip\")\n },\n },\n },\n [\n _c(\n \"v-icon\",\n { attrs: { small: \"\", left: \"\" } },\n [\n _vm._v(\n \"\\n fas fa-file-archive\\n \"\n ),\n ]\n ),\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Load Zip File\")) +\n \"\\n \"\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"subtitle\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"OR\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"title\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Load Example\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"nudge-left\": \"70\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n style: {\n \"margin-bottom\": \"2rem\",\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\"Load Example\")\n ) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: () =>\n _vm.buttonHandle(\"example1\"),\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"PT & Road\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: () =>\n _vm.buttonHandle(\"example2\"),\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$gettext(\n \"PT, Road, Zones, OD & Results\"\n )\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\", { attrs: { vertical: \"\" } }),\n _vm._v(\" \"),\n _c(\n \"v-col\",\n [\n _c(\"FileLoader\", {\n on: { FilesLoaded: (files) => _vm.loadNetwork(files) },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\", { attrs: { vertical: \"\" } }),\n _vm._v(\" \"),\n _c(\n \"v-col\",\n [\n _c(\"FilesList\", {\n on: { FilesLoaded: (files) => _vm.loadNetwork(files) },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"button-row\" },\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n on: {\n click: function ($event) {\n return _vm.buttonHandle(\"newProject\")\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"New Project\")) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.$gettext(\n \"Delete all network and start from scratch\"\n )\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { disabled: !_vm.filesAdded, color: \"primary\" },\n on: {\n click: function ($event) {\n return _vm.login()\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Go!\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"350\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.applyDialog.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n _vm.showDialog = false\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Overwrite current Project ?\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: {\n click: function ($event) {\n _vm.showDialog = !_vm.showDialog\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"No\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: { click: _vm.applyDialog },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Yes\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n [\n _c(\"input\", {\n ref: \"fileInput\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"file-input\", type: \"file\", accept: \".geojson\" },\n on: { change: _vm.readFile },\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n ref: \"paramsInput\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"params-input\", type: \"file\", accept: \".json\" },\n on: { change: _vm.readParams },\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n ref: \"stylesInput\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"styles-input\", type: \"file\", accept: \".json\" },\n on: { change: _vm.readStyles },\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.linksIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-project-diagram\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.linksIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"PT Network\")) +\n \"\\n \"\n ),\n !_vm.linksIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n { attrs: { icon: \"\", outlined: \"\" } },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fa-solid fa-upload\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: {\n link: \"\",\n disabled:\n _vm.loadedType == \"road\" ||\n _vm.localLinksLoaded,\n },\n on: { click: () => _vm.buttonHandle(\"PT links\") },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Links\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: {\n link: \"\",\n disabled:\n _vm.loadedType == \"road\" ||\n _vm.localNodesLoaded,\n },\n on: { click: () => _vm.buttonHandle(\"PT nodes\") },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Nodes\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.rlinksIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-project-diagram\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.rlinksIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Road Network\")) +\n \"\\n \"\n ),\n !_vm.rlinksIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n { attrs: { icon: \"\", outlined: \"\" } },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fa-solid fa-upload\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: {\n link: \"\",\n disabled:\n _vm.loadedType == \"PT\" || _vm.localLinksLoaded,\n },\n on: { click: () => _vm.buttonHandle(\"road links\") },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Links\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: {\n link: \"\",\n disabled:\n _vm.loadedType == \"PT\" || _vm.localNodesLoaded,\n },\n on: { click: () => _vm.buttonHandle(\"road nodes\") },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Nodes\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.ODIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-exchange-alt\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.ODIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Origin - Destination\")) +\n \"\\n \"\n ),\n !_vm.ODIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"od\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.paramsIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-cog\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.paramsIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Parameters\")) +\n \"\\n \"\n ),\n !_vm.paramsIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"parameters\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"v-icon\",\n {\n staticClass: \"type-icon\",\n style: { opacity: _vm.stylesIsEmpty ? \"0.50\" : \"1\" },\n },\n [_vm._v(\"\\n fas fa-palette\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"subtitle\",\n style: { opacity: _vm.stylesIsEmpty ? \"0.50\" : \"1\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Style presets\")) +\n \"\\n \"\n ),\n !_vm.stylesIsEmpty\n ? _c(\n \"v-icon\",\n {\n staticClass: \"check-icon\",\n attrs: { color: \"success\" },\n },\n [_vm._v(\"\\n fas fa-check\\n \")]\n )\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"element\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"styles\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileLoader.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileLoader.vue?vue&type=style&index=0&id=d3a53384&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileLoader.vue?vue&type=style&index=0&id=d3a53384&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileLoader.vue?vue&type=template&id=d3a53384&scoped=true&\"\nimport script from \"./FileLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./FileLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileLoader.vue?vue&type=style&index=0&id=d3a53384&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d3a53384\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\"div\", [\n _c(\"input\", {\n ref: \"otherInputs\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"other-inputs\", type: \"file\", multiple: \"multiple\" },\n on: { change: _vm.readOtherInputs },\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n ref: \"otherOutputs\",\n staticStyle: { display: \"none\" },\n attrs: { id: \"other-outputs\", type: \"file\", multiple: \"multiple\" },\n on: { change: _vm.readOtherOutputs },\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"files-container\" }, [\n _c(\"div\", { staticClass: \"title-box\" }, [\n _c(\"h1\", { staticClass: \"title\" }, [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"Other Inputs\")) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"upload-button\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"inputs\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"list\" },\n _vm._l(_vm.inputFiles, function (path, key) {\n return _c(\n \"li\",\n { key: key },\n [\n _vm._v(\"\\n \" + _vm._s(path) + \"\\n \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"250\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"list-button\",\n attrs: { icon: \"\" },\n on: { click: () => _vm.buttonHandle(path) },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fa-solid fa-upload\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Replace file inplace\"))),\n ]),\n ]\n ),\n ],\n 1\n )\n }),\n 0\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"files-container\" }, [\n _c(\"div\", { staticClass: \"title-box\" }, [\n _c(\"h1\", { staticClass: \"title\" }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"Outputs\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"upload-button\" },\n [\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", outlined: \"\" },\n on: { click: () => _vm.buttonHandle(\"outputs\") },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\"\\n fa-solid fa-upload\\n \"),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"list\" },\n [\n _vm._l(_vm.outputFiles, function (path) {\n return _c(\"li\", { key: path }, [\n _vm._v(\"\\n \" + _vm._s(path) + \"\\n \"),\n ])\n }),\n _vm._v(\" \"),\n _vm._l(_vm.layers, function (item) {\n return _c(\n \"li\",\n { key: item },\n [\n _vm._v(\"\\n \" + _vm._s(item) + \"\\n \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"250\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-icon\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"list-icon\",\n attrs: { small: \"\" },\n },\n \"v-icon\",\n attrs,\n false\n ),\n on\n ),\n [\n _vm._v(\n \"\\n fa-solid fa-layer-group\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Viewable in results\"))),\n ]),\n ]\n ),\n ],\n 1\n )\n }),\n ],\n 2\n ),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=e186d29a&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=e186d29a&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=e186d29a&scoped=true&\"\nimport script from \"./FilesList.vue?vue&type=script&lang=js&\"\nexport * from \"./FilesList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=e186d29a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e186d29a\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { style: { \"margin-left\": \"10px\" } },\n [\n _c(\n \"v-btn\",\n { attrs: { icon: \"\", small: \"\" }, on: { click: _vm.show } },\n [_c(\"v-icon\", [_vm._v(\"far fa-question-circle small\")])],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { height: _vm.height, width: _vm.width },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\"v-img\", {\n attrs: {\n src: _vm.url,\n contain: \"\",\n height: _vm.height,\n width: _vm.width,\n alt: \"image\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoZip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoZip.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./InfoZip.vue?vue&type=template&id=1b5fbd9c&scoped=true&\"\nimport script from \"./InfoZip.vue?vue&type=script&lang=js&\"\nexport * from \"./InfoZip.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b5fbd9c\",\n null\n \n)\n\nexport default component.exports","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=style&index=0&id=020024f7&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=style&index=0&id=020024f7&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Import.vue?vue&type=template&id=020024f7&scoped=true&\"\nimport script from \"./Import.vue?vue&type=script&lang=js&\"\nexport * from \"./Import.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Import.vue?vue&type=style&index=0&id=020024f7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"020024f7\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n { staticClass: \"map-view\" },\n [\n _c(\n \"v-dialog\",\n {\n attrs: {\n scrollable: \"\",\n persistent: \"\",\n \"max-width\": _vm.numLinks > 1 ? \"40rem\" : \"20rem\",\n },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.applyAction.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancelAction.apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n { attrs: { \"max-height\": \"55rem\" } },\n [\n _c(\"v-card-title\", { staticClass: \"text-h5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n [\"deleteTrip\", \"deleterGroup\"].includes(_vm.action)\n ? _vm.$gettext(\"Delete\") + \" \" + _vm.message + \"?\"\n : _vm.$gettext(\"Edit Properties\")\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm.editForm\n ? _c(\n \"v-card-text\",\n [\n _c(\n \"v-row\",\n _vm._l(_vm.numLinks, function (n, idx) {\n return _c(\n \"v-col\",\n { key: idx },\n [\n _c(\n \"v-list\",\n [\n _vm.numLinks > 1\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-icon\",\n {\n style: {\n \"align-items\": \"center\",\n \"justify-content\": \"center\",\n transform:\n \"rotate(\" +\n _vm.linkDir[idx] +\n \"deg)\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-long-arrow-alt-up\\n \"\n ),\n ]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(\n _vm.orderedForm(idx),\n function (value, key) {\n return _c(\"v-text-field\", {\n key: key,\n attrs: {\n label: key,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.hints[key])\n : \"\",\n \"persistent-hint\": _vm.showHint,\n filled: !value[\"disabled\"],\n type: _vm.$store.getters.attributeType(\n key\n ),\n placeholder: value[\"placeholder\"]\n ? _vm.$gettext(\"multiple Values\")\n : \"\",\n \"persistent-placeholder\": value[\n \"placeholder\"\n ]\n ? true\n : false,\n disabled: value[\"disabled\"],\n },\n on: {\n wheel: function ($event) {\n return $event.target.blur()\n },\n },\n scopedSlots: _vm._u(\n [\n key === \"route_color\"\n ? {\n key: \"append\",\n fn: function () {\n return [\n _c(\"color-picker\", {\n model: {\n value: value[\"value\"],\n callback: function (\n $$v\n ) {\n _vm.$set(\n value,\n \"value\",\n $$v\n )\n },\n expression:\n \"value['value']\",\n },\n }),\n ]\n },\n proxy: true,\n }\n : Object.keys(\n _vm.attributesChoices\n ).includes(key)\n ? {\n key: \"append\",\n fn: function () {\n return [\n _c(\"MenuSelector\", {\n attrs: {\n items:\n _vm\n .attributesChoices[\n key\n ],\n },\n model: {\n value: value[\"value\"],\n callback: function (\n $$v\n ) {\n _vm.$set(\n value,\n \"value\",\n $$v\n )\n },\n expression:\n \"value['value']\",\n },\n }),\n ]\n },\n proxy: true,\n }\n : null,\n _vm.showDeleteOption\n ? {\n key: \"prepend\",\n fn: function () {\n return [\n _c(\n \"v-btn\",\n {\n attrs: {\n icon: \"\",\n \"x-small\": \"\",\n disabled:\n _vm.attributeNonDeletable(\n key\n ),\n color: \"error\",\n },\n on: {\n click: () =>\n _vm.deleteField(\n key\n ),\n },\n },\n [\n _c(\"v-icon\", [\n _vm._v(\n \"fas fa-trash small\"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n }\n : null,\n ],\n null,\n true\n ),\n model: {\n value: value[\"value\"],\n callback: function ($$v) {\n _vm.$set(value, \"value\", $$v)\n },\n expression: \"value['value']\",\n },\n })\n }\n ),\n ],\n 2\n ),\n ],\n 1\n )\n }),\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-row\",\n [\n _c(\"v-text-field\", {\n attrs: {\n label: _vm.$gettext(\"add field\"),\n placeholder: _vm.$gettext(\"new field name\"),\n filled: \"\",\n rules: _vm.rules.newField,\n },\n on: {\n keydown: function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n )\n return null\n $event.stopPropagation()\n return _vm.addField.apply(null, arguments)\n },\n wheel: function ($event) {\n return $event.target.blur()\n },\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"append-outer\",\n fn: function () {\n return [\n _c(\n \"v-btn\",\n {\n staticClass: \"text--primary\",\n attrs: {\n color: \"primary\",\n fab: \"\",\n \"x-small\": \"\",\n },\n on: { click: _vm.addField },\n },\n [_c(\"v-icon\", [_vm._v(\"fas fa-plus\")])],\n 1\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 941361224\n ),\n model: {\n value: _vm.newFieldName,\n callback: function ($$v) {\n _vm.newFieldName = $$v\n },\n expression: \"newFieldName\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n [\"cloneTrip\"].includes(_vm.action)\n ? _c(\n \"v-card-text\",\n [\n _c(\"v-text-field\", {\n attrs: { label: _vm.$gettext(\"New name\") },\n model: {\n value: _vm.cloneName,\n callback: function ($$v) {\n _vm.cloneName = $$v\n },\n expression: \"cloneName\",\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _vm.editForm\n ? _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", \"x-small\": \"\" },\n on: { click: () => (_vm.showHint = !_vm.showHint) },\n },\n [\n _c(\"v-icon\", [\n _vm._v(\"far fa-question-circle small\"),\n ]),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.editForm\n ? _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", \"x-small\": \"\" },\n on: { click: _vm.ToggleDeleteOption },\n },\n [\n _vm.showDeleteOption\n ? _c(\"v-icon\", [\n _vm._v(\n \"\\n fas fa-minus-circle fa-rotate-90\\n \"\n ),\n ])\n : _c(\"v-icon\", [\n _vm._v(\n \"\\n fas fa-minus-circle\\n \"\n ),\n ]),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", text: \"\" },\n on: { click: _vm.cancelAction },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"success\", text: \"\" },\n on: { click: _vm.applyAction },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Save\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { \"max-width\": \"300\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.duplicate()\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancelClone.apply(null, arguments)\n },\n ],\n },\n model: {\n value: _vm.cloneDialog,\n callback: function ($$v) {\n _vm.cloneDialog = $$v\n },\n expression: \"cloneDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [\n _c(\"span\", { staticClass: \"text-h5\" }, [\n _vm._v(_vm._s(_vm.$gettext(\"Duplicate and reverse\"))),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"text-h5\" }, [\n _vm._v(_vm._s(_vm.message + \" ?\")),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\"v-text-field\", {\n attrs: { label: _vm.$gettext(\"New name\") },\n model: {\n value: _vm.cloneName,\n callback: function ($$v) {\n _vm.cloneName = $$v\n },\n expression: \"cloneName\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n { style: { textAlign: \"center\", color: \"red\" } },\n [_vm._v(\"\\n \" + _vm._s(_vm.errorMessage) + \"\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", text: \"\" },\n on: { click: _vm.cancelClone },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"green darken-1\", text: \"\" },\n on: {\n click: function ($event) {\n return _vm.duplicate()\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Save\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"SidePanel\", {\n attrs: {\n \"selected-trips\": _vm.selectedTrips,\n \"selectedr-group\": _vm.selectedrGroup,\n },\n on: {\n \"update-tripList\": _vm.updateSelectedTrips,\n confirmChanges: _vm.confirmChanges,\n abortChanges: _vm.abortChanges,\n deleteButton: _vm.deleteButton,\n cloneButton: _vm.cloneButton,\n propertiesButton: _vm.actionClick,\n \"change-mode\": (e) => (_vm.mode = e),\n },\n }),\n _vm._v(\" \"),\n _c(\"Map\", {\n ref: \"mapref\",\n attrs: { \"selected-trips\": _vm.selectedTrips, mode: _vm.mode },\n on: { clickFeature: _vm.actionClick },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n {\n class: _vm.showLeftPanel ? \"left-panel elevation-4\" : \"left-panel-close\",\n style: { width: _vm.showLeftPanel ? \"400px\" : \"0px\" },\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"left-panel-toggle-btn elevation-4\",\n on: {\n click: function ($event) {\n return _vm.$store.commit(\"changeLeftPanel\")\n },\n },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\", color: \"secondary\" } }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.showLeftPanel\n ? \"fas fa-chevron-left\"\n : \"fas fa-chevron-right\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showLeftPanelContent,\n expression: \"showLeftPanelContent\",\n },\n ],\n ref: \"leftPanel\",\n staticClass: \"left-panel-content\",\n attrs: { id: \"left-panel\" },\n },\n [\n _c(\"div\", [\n _c(\n \"div\",\n {\n style: {\n \"margin-top\": \"20px\",\n \"margin-bottom\": \"20px\",\n \"margin-right\": \"20px\",\n },\n },\n [\n _c(\n \"v-tabs\",\n {\n attrs: {\n \"background-color\": \"secondary\",\n dark: \"\",\n grow: \"\",\n },\n model: {\n value: _vm.tab,\n callback: function ($$v) {\n _vm.tab = $$v\n },\n expression: \"tab\",\n },\n },\n [\n _c(\"v-tab\", [_vm._v(_vm._s(_vm.$gettext(\"PT\")))]),\n _vm._v(\" \"),\n _c(\"v-tab\", [_vm._v(_vm._s(_vm.$gettext(\"Road\")))]),\n _vm._v(\" \"),\n _c(\"v-tab\", [_vm._v(_vm._s(_vm.$gettext(\"OD\")))]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"LinksSidePanel\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.tab === 0,\n expression: \"tab===0\",\n },\n ],\n attrs: {\n height: _vm.windowHeight,\n \"selected-trips\": _vm.selectedTrips,\n },\n on: {\n \"update-tripList\": (e) =>\n _vm.$emit(\"update-tripList\", {\n type: \"links\",\n data: e,\n }),\n confirmChanges: (e) => _vm.$emit(\"confirmChanges\", e),\n abortChanges: (e) => _vm.$emit(\"abortChanges\", e),\n cloneButton: (e) => _vm.$emit(\"cloneButton\", e),\n deleteButton: (e) => _vm.$emit(\"deleteButton\", e),\n propertiesButton: (e) => _vm.$emit(\"propertiesButton\", e),\n },\n }),\n _vm._v(\" \"),\n _c(\"RoadSidePanel\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.tab === 1,\n expression: \"tab===1\",\n },\n ],\n attrs: {\n height: _vm.windowHeight,\n \"selectedr-goup\": _vm.selectedrGroup,\n },\n on: {\n \"update-tripList\": (e) =>\n _vm.$emit(\"update-tripList\", {\n type: \"rlinks\",\n data: e,\n }),\n deleteButton: (e) => _vm.$emit(\"deleteButton\", e),\n propertiesButton: (e) => _vm.$emit(\"propertiesButton\", e),\n },\n }),\n _vm._v(\" \"),\n _c(\"ODSidePanel\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.tab === 2,\n expression: \"tab===2\",\n },\n ],\n attrs: { height: _vm.windowHeight },\n on: {\n deleteButton: (e) => _vm.$emit(\"deleteButton\", e),\n propertiesButton: (e) => _vm.$emit(\"propertiesButton\", e),\n },\n }),\n ],\n 1\n ),\n ]),\n ]\n ),\n ]),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"v-card-title\",\n { staticClass: \"white--text secondary\" },\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n return _vm.showAll()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.tripList == _vm.tripId\n ? \"fa-eye fa\"\n : \"fa-eye-slash fa\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.tripList == _vm.tripId\n ? _vm.$gettext(\"Hide All\")\n : _vm.$gettext(\"Show All\")\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: {\n icon: \"\",\n disabled:\n _vm.tripList.length === 0 ? true : false,\n },\n on: {\n click: function ($event) {\n return _vm.propertiesButton(_vm.tripList)\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\"\\n fas fa-list\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Edit Visibles Properties\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"span\", { style: { color: \"white\" } }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"Lines\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"open-on-hover\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\", dark: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"fa-solid fa-download\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export All\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"visibles\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export Only Visible\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n {\n staticClass: \"mx-auto scrollable\",\n attrs: {\n \"max-width\": \"100%\",\n \"min-width\": \"100%\",\n height: _vm.height,\n },\n },\n [\n _c(\n \"v-list-item\",\n [\n _c(\"v-select\", {\n attrs: {\n items: _vm.filterChoices,\n \"prepend-icon\": \"fas fa-filter\",\n label: _vm.$gettext(\"filter\"),\n \"item-color\": \"secondarydark\",\n color: \"secondarydark\",\n },\n model: {\n value: _vm.vmodelSelectedFilter,\n callback: function ($$v) {\n _vm.vmodelSelectedFilter = $$v\n },\n expression: \"vmodelSelectedFilter\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm._l(_vm.classifiedTripId, function (value, key) {\n return _c(\n \"v-list-group\",\n {\n key: String(value.name) + String(key),\n attrs: {\n color: \"secondarydark\",\n value: false,\n \"no-action\": \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function () {\n return [\n _c(\n \"v-list-item-action\",\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return _vm.showGroup(\n value.tripId\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n staticClass:\n \"list-item-icon\",\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n value.tripId.some(\n (val) =>\n _vm.tripList.includes(\n val\n )\n )\n ? \"fa-eye fa\"\n : \"fa-eye-slash fa\"\n ) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n value.tripId.some((val) =>\n _vm.tripList.includes(val)\n )\n ? _vm.$gettext(\"Hide All\")\n : _vm.$gettext(\"Show All\")\n ) +\n \"\\n \"\n ),\n ]),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _c(\"strong\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n value.name == \"undefined\"\n ? _vm.$gettext(value.name)\n : value.name\n ) +\n \"\\n \"\n ),\n ]),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n _vm.editorTrip != null\n ? true\n : false,\n },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return _vm.propertiesButton(\n value.tripId\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n { attrs: { color: \"regular\" } },\n [\n _vm._v(\n \"\\n fas fa-list\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$gettext(\"Edit Group Properties\"))\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: _vm.editorTrip\n ? true\n : false,\n },\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return _vm.deleteButton({\n trip: value.tripId,\n message: value.name,\n action: \"deleteTrip\",\n })\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n color: \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-trash\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Delete Group\"))),\n ]),\n ]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"v-virtual-scroll\", {\n attrs: {\n items: value.tripId,\n \"item-height\": 45,\n height: Math.min(\n _vm.height - 220,\n 45 * value.tripId.length + 3\n ),\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function ({ item }) {\n return [\n _c(\n \"v-list-item\",\n { key: item, staticClass: \"pl-2\" },\n [\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n staticClass: \"pl-2\",\n attrs: {\n \"on-icon\": \"fa-eye fa\",\n \"off-icon\": \"fa-eye-slash fa\",\n color: \"primary\",\n value: item,\n size: \"10\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.tripList,\n callback: function ($$v) {\n _vm.tripList = $$v\n },\n expression: \"tripList\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: {\n right: \"\",\n \"open-delay\": \"300\",\n \"content-class\": \"custom-tooltip\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [\n item == _vm.editorTrip\n ? _c(\n \"v-list-item-title\",\n _vm._g({}, on),\n [\n _c(\"strong\", [\n _vm._v(_vm._s(item)),\n ]),\n ]\n )\n : _c(\n \"v-list-item-title\",\n _vm._g({}, on),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(item))]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n (item !=\n _vm.editorTrip) &\n (_vm.editorTrip !=\n null)\n ? true\n : false,\n },\n on: {\n click: function (\n $event\n ) {\n return _vm.editButton(\n item\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n color:\n item == _vm.editorTrip\n ? \"regular\"\n : \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-pen\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Edit Line\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n (item !=\n _vm.editorTrip) &\n (_vm.editorTrip !=\n null)\n ? true\n : false,\n },\n on: {\n click: function (\n $event\n ) {\n return _vm.propertiesButton(\n item\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n color:\n item == _vm.editorTrip\n ? \"regular\"\n : \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-list\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.$gettext(\"Edit Line Properties\")\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled:\n (item !=\n _vm.editorTrip) &\n (_vm.editorTrip !=\n null)\n ? true\n : false,\n },\n on: {\n click: function (\n $event\n ) {\n return _vm.cloneButton(\n {\n trip: item,\n message: item,\n }\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n color:\n item == _vm.editorTrip\n ? \"regular\"\n : \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-clone\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Duplicate\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: _vm.editorTrip\n ? true\n : false,\n },\n on: {\n click: function (\n $event\n ) {\n return _vm.deleteButton(\n {\n trip: item,\n message: item,\n action:\n \"deleteTrip\",\n }\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n color: \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-trash\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$gettext(\"Delete Line\"))\n ),\n ]),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n }),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { staticClass: \"mx-auto\" },\n [\n (_vm.editorTrip ? true : false)\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { right: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"mx-2\",\n attrs: {\n color: _vm.$store.getters.anchorMode\n ? \"grey\"\n : \"regular\",\n },\n on: {\n click: function ($event) {\n return _vm.$store.commit(\n \"changeAnchorMode\"\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fas fa-anchor\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n false,\n 3833012906\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \" \" + _vm._s(_vm.$gettext(\"Edit Line geometry\")) + \" \"\n ),\n _c(\"b\", [_vm._v(\"(CTRL)\")]),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n on: {\n click: function ($event) {\n return _vm.$emit(\"abortChanges\")\n },\n },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\", left: \"\" } }, [\n _vm._v(\"\\n fas fa-times-circle\\n \"),\n ]),\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Abort\")) +\n \"\\n \"\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: {\n click: function ($event) {\n return _vm.$emit(\"confirmChanges\")\n },\n },\n },\n [\n _c(\"v-icon\", { attrs: { small: \"\", left: \"\" } }, [\n _vm._v(\"\\n fas fa-save\\n \"),\n ]),\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Confirm\")) +\n \"\\n \"\n ),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.editorTrip ? false : true,\n expression: \"editorTrip ? false: true\",\n },\n ],\n },\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"text--primary\",\n attrs: {\n color: \"primary\",\n fab: \"\",\n small: \"\",\n },\n on: { click: _vm.createNewLine },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"fas fa-plus\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.$gettext(\"Create new Line\")))]),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { persistent: \"\", \"max-width\": \"290\" },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n _vm.$emit(\"confirmChanges\")\n _vm.showDialog = !_vm.showDialog\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n _vm.showDialog = false\n },\n ],\n },\n model: {\n value: _vm.showDialog,\n callback: function ($$v) {\n _vm.showDialog = $$v\n },\n expression: \"showDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", { staticClass: \"text-h5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Save Changes?\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\", left: \"\" },\n on: {\n click: function ($event) {\n _vm.showDialog = false\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Cancel\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"regular\" },\n on: {\n click: function ($event) {\n _vm.$emit(\"abortChanges\")\n _vm.showDialog = !_vm.showDialog\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"No\")) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\" },\n on: {\n click: function ($event) {\n _vm.$emit(\"confirmChanges\")\n _vm.showDialog = !_vm.showDialog\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Yes\")) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinksSidePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinksSidePanel.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinksSidePanel.vue?vue&type=style&index=0&id=61e624f6&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinksSidePanel.vue?vue&type=style&index=0&id=61e624f6&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LinksSidePanel.vue?vue&type=template&id=61e624f6&scoped=true&\"\nimport script from \"./LinksSidePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./LinksSidePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LinksSidePanel.vue?vue&type=style&index=0&id=61e624f6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61e624f6\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"v-card-title\",\n { staticClass: \"white--text secondary\" },\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n return _vm.showAll()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.tripList.length > 0\n ? \"fa-eye fa\"\n : \"fa-eye-slash fa\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.tripList.length > 0\n ? _vm.$gettext(\"Hide All\")\n : _vm.$gettext(\"Show All\")\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: {\n icon: \"\",\n disabled:\n _vm.tripList.length === 0 ? true : false,\n },\n on: {\n click: function ($event) {\n return _vm.editVisible()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\"\\n fas fa-list\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Edit Visibles Properties\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"span\", { style: { color: \"white\" } }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"Roads\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"open-on-hover\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\", dark: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"fa-solid fa-download\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"all\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export All\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"visible\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export Only Visible\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n {\n staticClass: \"mx-auto scrollable\",\n attrs: {\n \"max-width\": \"100%\",\n \"min-width\": \"100%\",\n height: _vm.height,\n },\n },\n [\n _c(\n \"v-list-item\",\n [\n _c(\"v-select\", {\n attrs: {\n items: _vm.filterChoices,\n \"prepend-icon\": \"fas fa-filter\",\n label: _vm.$gettext(\"filter\"),\n \"item-color\": \"secondarydark\",\n color: \"secondarydark\",\n },\n model: {\n value: _vm.vmodelSelectedFilter,\n callback: function ($$v) {\n _vm.vmodelSelectedFilter = $$v\n },\n expression: \"vmodelSelectedFilter\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-virtual-scroll\", {\n attrs: {\n items: _vm.filteredCat,\n \"item-height\": 45,\n height: _vm.height - 71,\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function ({ item }) {\n return [\n _c(\n \"v-list-item\",\n {\n key: _vm.vmodelSelectedFilter.concat(item),\n staticClass: \"pl-2\",\n },\n [\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n staticClass: \"pl-2\",\n attrs: {\n \"on-icon\": \"fa-eye fa\",\n \"off-icon\": \"fa-eye-slash fa\",\n color: \"primary\",\n value: item,\n size: \"10\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.tripList,\n callback: function ($$v) {\n _vm.tripList = $$v\n },\n expression: \"tripList\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" + _vm._s(item) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: false,\n },\n on: {\n click: function ($event) {\n return _vm.propertiesButton(\n item\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n { attrs: { color: \"regular\" } },\n [\n _vm._v(\n \"\\n fas fa-list\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$gettext(\"Edit Line Properties\"))\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: false,\n },\n on: {\n click: function ($event) {\n return _vm.deleteButton({\n trip: item,\n group: _vm.selectedFilter,\n message: item,\n action: \"deleterGroup\",\n })\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n color: \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-trash\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Delete Line\"))),\n ]),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n }),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { staticClass: \"mx-auto\" },\n [\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { right: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"mx-2\",\n attrs: {\n color: _vm.$store.getters.anchorMode\n ? \"grey\"\n : \"regular\",\n },\n on: {\n click: function ($event) {\n return _vm.$store.commit(\n \"changeAnchorMode\"\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fas fa-anchor\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \" \" + _vm._s(_vm.$gettext(\"Edit Line geometry\")) + \" \"\n ),\n _c(\"b\", [_vm._v(\"(CTRL)\")]),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { right: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"mx-2\",\n attrs: {\n disabled: !_vm.$store.getters.hasCycleway,\n color: _vm.$store.getters.cyclewayMode\n ? \"green\"\n : \"regular\",\n },\n on: {\n click: function ($event) {\n return _vm.$store.commit(\n \"changeCyclewayMode\"\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { small: \"\" } }, [\n _vm._v(\n \"\\n fas fa-biking\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$gettext(\n \"Show Cycleway direction instead of road\"\n )\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadSidePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadSidePanel.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadSidePanel.vue?vue&type=style&index=0&id=0e528228&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadSidePanel.vue?vue&type=style&index=0&id=0e528228&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RoadSidePanel.vue?vue&type=template&id=0e528228&scoped=true&\"\nimport script from \"./RoadSidePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./RoadSidePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RoadSidePanel.vue?vue&type=style&index=0&id=0e528228&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e528228\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"v-card-title\",\n { staticClass: \"white--text secondary\" },\n [\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\" },\n on: {\n click: function ($event) {\n return _vm.showAll()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.vmodelSelectedCat.length > 0\n ? \"fa-eye fa\"\n : \"fa-eye-slash fa\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.vmodelSelectedCat.length > 0\n ? _vm.$gettext(\"Hide All\")\n : _vm.$gettext(\"Show All\")\n )\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: {\n icon: \"\",\n disabled:\n _vm.vmodelSelectedCat.length === 0\n ? true\n : false,\n },\n on: {\n click: function ($event) {\n return _vm.editVisible()\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { staticClass: \"list-item-icon\" }, [\n _vm._v(\"\\n fas fa-list\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Edit Visibles Properties\"))),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"span\", { style: { color: \"white\" } }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"OD\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n \"open-on-hover\": \"\",\n \"close-delay\": \"100\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on: on, attrs: attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-2\",\n style: { color: \"white\" },\n attrs: { icon: \"\", dark: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"fa-solid fa-download\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"all\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export All\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n {\n attrs: { link: \"\" },\n on: {\n click: function ($event) {\n return _vm.$store.dispatch(\"exportFiles\", \"visible\")\n },\n },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Export Only Visible\")) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n {\n staticClass: \"mx-auto scrollable\",\n attrs: {\n \"max-width\": \"100%\",\n \"min-width\": \"100%\",\n height: _vm.height,\n },\n },\n [\n _c(\n \"v-list-item\",\n [\n _c(\"v-select\", {\n attrs: {\n items: _vm.filterChoices,\n \"prepend-icon\": \"fas fa-filter\",\n label: _vm.$gettext(\"filter\"),\n \"item-color\": \"secondarydark\",\n color: \"secondarydark\",\n },\n model: {\n value: _vm.vmodelSelectedFilter,\n callback: function ($$v) {\n _vm.vmodelSelectedFilter = $$v\n },\n expression: \"vmodelSelectedFilter\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-virtual-scroll\", {\n attrs: {\n items: _vm.filteredCat,\n \"item-height\": 45,\n height: _vm.height - 71,\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function ({ item }) {\n return [\n _c(\n \"v-list-item\",\n {\n key: _vm.vmodelSelectedFilter.concat(item),\n staticClass: \"pl-2\",\n },\n [\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n staticClass: \"pl-2\",\n attrs: {\n \"on-icon\": \"fa-eye fa\",\n \"off-icon\": \"fa-eye-slash fa\",\n color: \"primary\",\n value: item,\n size: \"10\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.vmodelSelectedCat,\n callback: function ($$v) {\n _vm.vmodelSelectedCat = $$v\n },\n expression: \"vmodelSelectedCat\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" + _vm._s(item) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: false,\n },\n on: {\n click: function ($event) {\n return _vm.propertiesButton(\n item\n )\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n { attrs: { color: \"regular\" } },\n [\n _vm._v(\n \"\\n fas fa-list\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$gettext(\"Edit Line Properties\"))\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { bottom: \"\", \"open-delay\": \"500\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ma-1\",\n attrs: {\n icon: \"\",\n disabled: false,\n },\n on: {\n click: function ($event) {\n return _vm.deleteButton({\n trip: item,\n group: _vm.selectedFilter,\n message: item,\n action: \"deleteODGroup\",\n })\n },\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n small: \"\",\n color: \"regular\",\n },\n },\n [\n _vm._v(\n \"\\n fas fa-trash\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(_vm._s(_vm.$gettext(\"Delete Line\"))),\n ]),\n ]\n ),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n }),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { staticClass: \"mx-auto\" },\n [_c(\"v-list-item\", [_c(\"v-spacer\")], 1)],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODSidePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODSidePanel.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODSidePanel.vue?vue&type=style&index=0&id=56780b52&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODSidePanel.vue?vue&type=style&index=0&id=56780b52&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ODSidePanel.vue?vue&type=template&id=56780b52&scoped=true&\"\nimport script from \"./ODSidePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./ODSidePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ODSidePanel.vue?vue&type=style&index=0&id=56780b52&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56780b52\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidePanel.vue?vue&type=script&lang=js&\"","\n\n\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidePanel.vue?vue&type=style&index=0&id=5064ebfe&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidePanel.vue?vue&type=style&index=0&id=5064ebfe&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SidePanel.vue?vue&type=template&id=5064ebfe&scoped=true&\"\nimport script from \"./SidePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./SidePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SidePanel.vue?vue&type=style&index=0&id=5064ebfe&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5064ebfe\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"MglMap\",\n {\n key: _vm.mapStyle,\n style: { width: \"100%\" },\n attrs: {\n \"access-token\": _vm.mapboxPublicKey,\n \"map-style\": _vm.mapStyle,\n center: _vm.$store.getters.mapCenter,\n zoom: _vm.$store.getters.mapZoom,\n },\n on: {\n load: _vm.onMapLoaded,\n mousemove: _vm.draw,\n mouseout: function ($event) {\n return _vm.resetDraw()\n },\n click: _vm.addPoint,\n mouseup: _vm.rightClickMap,\n },\n },\n [\n _vm.mapIsLoaded ? [_c(\"Settings\")] : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded & (_vm.rasterFiles.length > 0)\n ? [\n _c(\"LayerSelector\", {\n attrs: {\n choices: _vm.rasterFiles,\n \"available-layers\": _vm.availableLayers,\n },\n }),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"MglScaleControl\", { attrs: { position: \"bottom-right\" } }),\n _vm._v(\" \"),\n _c(\"MglNavigationControl\", { attrs: { position: \"bottom-right\" } }),\n _vm._v(\" \"),\n _vm._l(_vm.rasterFiles, function (file) {\n return _c(\n \"div\",\n { key: file.name },\n [\n _vm.mapIsLoaded &&\n _vm.visibleRasters.includes(file.name) &&\n _vm.availableLayers.includes(file.layer)\n ? [\n _c(\"StaticLayer\", {\n attrs: {\n preset: file,\n map: _vm.map,\n order: _vm.visibleRasters.indexOf(file.name),\n },\n }),\n ]\n : _vm._e(),\n ],\n 2\n )\n }),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _c(\n \"RoadLinks\",\n _vm._g(\n {\n ref: \"roadref\",\n attrs: {\n map: _vm.map,\n \"is-editor-mode\": _vm.isEditorMode,\n \"is-road-mode\": _vm.mode === \"road\",\n \"anchor-mode\": _vm.anchorMode,\n },\n },\n _vm.isEditorMode\n ? {}\n : _vm.anchorMode\n ? { clickFeature: _vm.clickFeature }\n : {\n onHover: _vm.onHoverRoad,\n offHover: _vm.offHover,\n clickFeature: _vm.clickFeature,\n }\n )\n ),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _c(\"StaticLinks\", {\n attrs: {\n map: _vm.map,\n \"showed-trips\": _vm.selectedTrips,\n \"is-editor-mode\": _vm.isEditorMode,\n },\n on: { rightClick: (e) => _vm.$emit(\"clickFeature\", e) },\n }),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _c(\n \"EditorLinks\",\n _vm._g(\n { attrs: { map: _vm.map, \"anchor-mode\": _vm.anchorMode } },\n _vm.anchorMode\n ? { clickFeature: _vm.clickFeature }\n : {\n onHover: _vm.onHover,\n offHover: _vm.offHover,\n clickFeature: _vm.clickFeature,\n }\n )\n ),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _c(\"ODMap\", {\n attrs: {\n map: _vm.map,\n \"is-editor-mode\": _vm.isEditorMode,\n \"is-o-d-mode\": _vm.mode === \"od\",\n },\n on: { clickFeature: _vm.clickFeature },\n }),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.mapIsLoaded\n ? [\n _vm.drawMode\n ? _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"drawLink\",\n source: {\n type: \"geojson\",\n data: _vm.drawLink,\n buffer: 0,\n generateId: true,\n },\n \"layer-id\": \"drawLink\",\n layer: {\n type: \"line\",\n minzoom: 2,\n paint: {\n \"line-opacity\": 1,\n \"line-color\":\n _vm.$vuetify.theme.currentTheme.linksprimary,\n \"line-width\": [\n \"case\",\n [\"boolean\", _vm.connectedDrawLink, false],\n 5,\n 3,\n ],\n \"line-dasharray\": [\n \"case\",\n [\"boolean\", _vm.connectedDrawLink, false],\n [\"literal\", []],\n [\"literal\", [0, 2, 4]],\n ],\n },\n },\n },\n })\n : _vm._e(),\n ]\n : _vm._e(),\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"v-menu\",\n {\n attrs: {\n \"close-on-content-click\": false,\n \"close-on-click\": false,\n origin: \"top right\",\n transition: \"scale-transition\",\n \"position-y\": 30,\n \"nudge-width\": 200,\n \"offset-x\": \"\",\n \"offset-y\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n { staticClass: \"setting\", attrs: { fab: \"\", small: \"\" } },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { color: \"regular\" } }, [\n _vm._v(\"\\n fa-solid fa-cog\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.show,\n callback: function ($$v) {\n _vm.show = $$v\n },\n expression: \"show\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n {\n class: { shake: _vm.shake },\n attrs: { \"max-width\": 300 },\n on: {\n keydown: [\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n )\n return null\n return _vm.submit.apply(null, arguments)\n },\n function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\",\n ])\n )\n return null\n return _vm.cancel.apply(null, arguments)\n },\n ],\n },\n },\n [\n _c(\"v-card-title\", { staticClass: \"subtitle\" }, [\n _vm._v(\"\\n \" + _vm._s(_vm.$gettext(\"Settings\")) + \"\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\n \"v-form\",\n { ref: \"form\", attrs: { \"lazy-validation\": \"\" } },\n [\n _c(\n \"v-container\",\n [\n _c(\n \"v-col\",\n [\n _c(\"v-text-field\", {\n attrs: {\n type: _vm.linkSpeed.type,\n label: _vm.$gettext(_vm.linkSpeed.name),\n suffix: _vm.linkSpeed.units,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.linkSpeed.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n rules: _vm.rules,\n required: \"\",\n },\n on: { wheel: () => {} },\n model: {\n value: _vm.linkSpeed.value,\n callback: function ($$v) {\n _vm.$set(_vm.linkSpeed, \"value\", $$v)\n },\n expression: \"linkSpeed.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: _vm.roadSpeed.type,\n label: _vm.$gettext(_vm.roadSpeed.name),\n suffix: _vm.roadSpeed.units,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.roadSpeed.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n rules: _vm.rules,\n required: \"\",\n },\n on: { wheel: () => {} },\n model: {\n value: _vm.roadSpeed.value,\n callback: function ($$v) {\n _vm.$set(_vm.roadSpeed, \"value\", $$v)\n },\n expression: \"roadSpeed.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-select\", {\n attrs: {\n items: _vm.linksPopupContent.choices,\n label: _vm.$gettext(_vm.linksPopupContent.name),\n hint: _vm.showHint\n ? _vm.$gettext(_vm.linksPopupContent.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n \"menu-props\": { top: true, offsetY: true },\n chips: \"\",\n multiple: \"\",\n },\n model: {\n value: _vm.linksPopupContent.value,\n callback: function ($$v) {\n _vm.$set(_vm.linksPopupContent, \"value\", $$v)\n },\n expression: \"linksPopupContent.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-select\", {\n attrs: {\n items: _vm.roadsPopupContent.choices,\n label: _vm.$gettext(_vm.roadsPopupContent.name),\n hint: _vm.showHint\n ? _vm.$gettext(_vm.roadsPopupContent.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n \"menu-props\": { top: true, offsetY: true },\n chips: \"\",\n multiple: \"\",\n },\n model: {\n value: _vm.roadsPopupContent.value,\n callback: function ($$v) {\n _vm.$set(_vm.roadsPopupContent, \"value\", $$v)\n },\n expression: \"roadsPopupContent.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: _vm.defaultHighway.type,\n label: _vm.$gettext(_vm.defaultHighway.name),\n suffix: _vm.defaultHighway.units,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.defaultHighway.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n rules: _vm.zipRules,\n required: \"\",\n },\n model: {\n value: _vm.defaultHighway.value,\n callback: function ($$v) {\n _vm.$set(_vm.defaultHighway, \"value\", $$v)\n },\n expression: \"defaultHighway.value\",\n },\n }),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: _vm.outputName.type,\n label: _vm.$gettext(_vm.outputName.name),\n suffix: _vm.outputName.units,\n hint: _vm.showHint\n ? _vm.$gettext(_vm.outputName.hint)\n : \"\",\n \"persistent-hint\": _vm.showHint,\n rules: _vm.zipRules,\n required: \"\",\n },\n model: {\n value: _vm.outputName.value,\n callback: function ($$v) {\n _vm.$set(_vm.outputName, \"value\", $$v)\n },\n expression: \"outputName.value\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", text: \"\" },\n on: { click: _vm.cancel },\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"Cancel\")) + \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"green darken-1\", text: \"\" },\n on: { click: _vm.submit },\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"Save\")) + \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { icon: \"\", small: \"\" },\n on: {\n click: function ($event) {\n _vm.showHint = !_vm.showHint\n },\n },\n },\n [_c(\"v-icon\", [_vm._v(\"far fa-question-circle small\")])],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=6c428464&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=6c428464&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=6c428464&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=6c428464&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c428464\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"links\",\n source: {\n type: \"geojson\",\n data: _vm.visibleLinks,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"links\",\n layer: {\n interactive: true,\n type: \"line\",\n minzoom: 1,\n maxzoom: 18,\n paint: {\n \"line-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n \"line-opacity\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n 0.1,\n 1,\n ],\n \"line-width\": [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 3,\n ],\n 3,\n ],\n },\n\n layout: {\n \"line-sort-key\": [\"to-number\", [\"get\", \"route_width\"]],\n \"line-cap\": \"round\",\n },\n },\n },\n },\n _vm.isEditorMode\n ? {}\n : {\n mouseenter: _vm.enterLink,\n mouseleave: _vm.leaveLink,\n contextmenu: _vm.editLineProperties,\n }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"nodes\",\n source: {\n type: \"geojson\",\n data: _vm.visibleNodes,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"nodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: 12,\n maxzoom: 18,\n paint: {\n \"circle-color\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n _vm.$vuetify.theme.currentTheme.mediumgrey,\n _vm.$vuetify.theme.currentTheme.accent,\n ],\n \"circle-stroke-color\": _vm.$vuetify.theme.currentTheme.white,\n \"circle-stroke-width\": 1,\n \"circle-radius\": [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 3,\n ],\n 3,\n ],\n },\n },\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StaticLinks.vue?vue&type=template&id=661f6889&scoped=true&\"\nimport script from \"./StaticLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./StaticLinks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"661f6889\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"editorLinks\",\n source: {\n type: \"geojson\",\n data: _vm.$store.getters.editorLinks,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"editorLinks\",\n layer: {\n type: \"line\",\n minzoom: 2,\n paint: {\n \"line-color\": [\n \"case\",\n [\"boolean\", _vm.anchorMode, false],\n _vm.$vuetify.theme.currentTheme.linkssecondary,\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n \"line-width\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 12,\n 5,\n ],\n \"line-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 6,\n 0,\n ],\n },\n },\n },\n on: {\n click: _vm.selectClick,\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n },\n },\n _vm.anchorMode ? {} : { contextmenu: _vm.linkRightClick }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglImageLayer\", {\n attrs: {\n \"source-id\": \"editorLinks\",\n type: \"symbol\",\n source: \"editorLinks\",\n \"layer-id\": \"arrow-layer\",\n layer: {\n type: \"symbol\",\n minzoom: 5,\n layout: {\n \"symbol-placement\": \"line\",\n \"symbol-spacing\": 30,\n \"icon-ignore-placement\": true,\n \"icon-image\": \"arrow\",\n \"icon-size\": 0.5,\n \"icon-rotate\": 90,\n },\n paint: {\n \"icon-color\": [\n \"case\",\n [\"boolean\", _vm.anchorMode, false],\n _vm.$vuetify.theme.currentTheme.linkssecondary,\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n },\n },\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"editorNodes\",\n source: {\n type: \"geojson\",\n data: _vm.$store.getters.editorNodes,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"editorNodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: 2,\n paint: {\n \"circle-color\": _vm.$vuetify.theme.currentTheme.accent,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 16,\n 8,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n },\n },\n },\n on: {\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n },\n },\n _vm.anchorMode\n ? {}\n : { click: _vm.selectClick, contextmenu: _vm.contextMenuNode }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"anchorNodes\",\n source: {\n type: \"geojson\",\n data: _vm.anchorNodes,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"anchorNodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: 2,\n paint: {\n \"circle-color\": \"#ffffff\",\n \"circle-opacity\": 0.5,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 10,\n 5,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n \"circle-stroke-color\": \"#2C3E4E\",\n \"circle-stroke-width\": 2,\n },\n },\n },\n on: {\n click: _vm.selectClick,\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n contextmenu: _vm.contextMenuNode,\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglPopup\",\n {\n attrs: {\n \"close-button\": false,\n showed: _vm.popupEditor.showed,\n coordinates: _vm.popupEditor.coordinates,\n },\n on: {\n close: function ($event) {\n _vm.popupEditor.showed = false\n },\n },\n },\n [\n _c(\"span\", [\n _c(\"h3\", [_vm._v(_vm._s(_vm.popupEditor.content))]),\n _vm._v(\" \"),\n _c(\"hr\"),\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.hoveredStateId?.layerId == \"editorLinks\"\n ? _vm.$gettext(\"Left click to add a stop\")\n : _vm.$gettext(\"Hold left click to drag\")\n ) +\n \"\\n \"\n ),\n _c(\"hr\"),\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.hoveredStateId?.layerId == \"editorLinks\"\n ? _vm.$gettext(\"Right click to edit properties\")\n : _vm.$gettext(\"Right click for context menu\")\n ) +\n \"\\n \"\n ),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"MglPopup\",\n {\n attrs: {\n \"close-button\": false,\n showed: _vm.contextMenu.showed,\n coordinates: _vm.contextMenu.coordinates,\n },\n on: {\n close: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"span\",\n {\n on: {\n mouseleave: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"v-list\",\n { attrs: { dense: \"\", flat: \"\" } },\n [\n _c(\n \"v-list-item-group\",\n _vm._l(_vm.contextMenu.actions, function (action) {\n return _c(\n \"v-list-item\",\n { key: action.id },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { outlined: \"\", small: \"\" },\n on: {\n click: function ($event) {\n return _vm.actionClick({\n action: action,\n feature: _vm.contextMenu.feature,\n coordinates:\n _vm.contextMenu.coordinates,\n })\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(action)) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditorLinks.vue?vue&type=template&id=02bf194d&scoped=true&\"\nimport script from \"./EditorLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorLinks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02bf194d\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"rlinks\",\n source: {\n type: \"geojson\",\n data: _vm.isRoadMode ? _vm.renderedrLinks : _vm.rlinks,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"rlinks\",\n layer: {\n interactive: true,\n type: \"line\",\n minzoom: _vm.minZoom.links,\n paint: {\n \"line-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n \"line-opacity\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n 0.3,\n 1,\n ],\n \"line-width\": [\n \"*\",\n [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 3,\n 1,\n ],\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n \"line-blur\": [\n \"*\",\n [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 1,\n 0,\n ],\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n },\n layout: {\n \"line-sort-key\": [\"to-number\", [\"get\", \"route_width\"]],\n },\n },\n },\n },\n _vm.isEditorMode\n ? {}\n : {\n mouseenter: _vm.onCursor,\n mouseleave: _vm.offCursor,\n click: _vm.selectClick,\n contextmenu: _vm.linkRightClick,\n }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglImageLayer\", {\n attrs: {\n \"source-id\": \"rlinks\",\n type: \"symbol\",\n source: \"rlinks\",\n \"layer-id\": \"arrow-rlinks\",\n layer: {\n type: \"symbol\",\n minzoom: _vm.minZoom.rendered,\n layout: {\n \"symbol-placement\": \"line\",\n \"symbol-spacing\": 200,\n \"icon-ignore-placement\": true,\n \"icon-image\": \"arrow\",\n \"icon-size\": _vm.ArrowSizeCondition,\n \"icon-rotate\": _vm.ArrowDirCondition,\n },\n paint: {\n \"icon-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n },\n },\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglGeojsonLayer\",\n _vm._g(\n {\n attrs: {\n \"source-id\": \"rnodes\",\n source: {\n type: \"geojson\",\n data: _vm.isRoadMode ? _vm.renderedrNodes : _vm.rnodes,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"rnodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: _vm.minZoom.rendered,\n paint: {\n \"circle-color\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n _vm.$vuetify.theme.currentTheme.mediumgrey,\n _vm.$vuetify.theme.currentTheme.accent,\n ],\n \"circle-stroke-color\": _vm.$vuetify.theme.currentTheme.white,\n \"circle-stroke-width\": 1,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 14,\n 3,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n },\n },\n },\n },\n _vm.isEditorMode\n ? {}\n : {\n mouseenter: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n contextmenu: _vm.contextMenuNode,\n }\n )\n ),\n _vm._v(\" \"),\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"anchorrNodes\",\n source: {\n type: \"geojson\",\n data: _vm.isRoadMode\n ? _vm.renderedAnchorrNodes\n : _vm.$store.getters.rnodesHeader,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"anchorrNodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n minzoom: _vm.minZoom.rendered,\n paint: {\n \"circle-color\": \"#ffffff\",\n \"circle-opacity\": 0.5,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 10,\n 5,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n \"circle-stroke-color\": _vm.$vuetify.theme.currentTheme.darkgrey,\n \"circle-stroke-width\": 2,\n },\n },\n },\n on: {\n click: _vm.selectClick,\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n contextmenu: _vm.contextMenuNode,\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglPopup\",\n {\n attrs: {\n \"close-button\": false,\n showed: _vm.contextMenu.showed,\n coordinates: _vm.contextMenu.coordinates,\n },\n on: {\n close: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"span\",\n {\n on: {\n mouseleave: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"v-list\",\n { attrs: { dense: \"\", flat: \"\" } },\n [\n _c(\n \"v-list-item-group\",\n _vm._l(_vm.contextMenu.actions, function (action) {\n return _c(\n \"v-list-item\",\n { key: action.id },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { outlined: \"\", small: \"\" },\n on: {\n click: function ($event) {\n return _vm.actionClick({\n action: action,\n feature: _vm.contextMenu.feature,\n coordinates:\n _vm.contextMenu.coordinates,\n })\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(action)) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoadLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoadLinks.vue?vue&type=template&id=5bdbd7bc&scoped=true&\"\nimport script from \"./RoadLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./RoadLinks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bdbd7bc\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"div\",\n { staticClass: \"map-legend\" },\n [\n _c(\"MapLegend\", {\n attrs: {\n \"color-scale\": _vm.colorScale,\n \"display-settings\": _vm.displaySettings,\n \"base-offset\": 350,\n order: _vm.order,\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n [\"MultiPolygon\", \"Polygon\"].includes(_vm.type)\n ? _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": _vm.preset.name + \"-layer\",\n source: {\n type: \"geojson\",\n data: _vm.layer,\n },\n \"layer-id\": _vm.preset.name + \"-layer\",\n layer: {\n interactive: false,\n type: \"fill\",\n minzoom: 5,\n paint: {\n \"fill-color\": [\"get\", \"display_color\"],\n \"fill-opacity\": _vm.opacity / 100,\n },\n },\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.type == \"LineString\"\n ? _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": _vm.preset.name + \"-layer\",\n source: {\n type: \"geojson\",\n data: _vm.layer,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": _vm.preset.name + \"-layer\",\n layer: {\n interactive: true,\n type: \"line\",\n minzoom: 5,\n paint: {\n \"line-color\": [\"get\", \"display_color\"],\n \"line-opacity\": _vm.opacity / 100,\n \"line-offset\": [\n \"*\",\n _vm.offsetValue * 0.5,\n [\"to-number\", [\"get\", \"display_width\"]],\n ],\n\n \"line-width\": [\"get\", \"display_width\"],\n },\n layout: {\n \"line-sort-key\": [\"to-number\", [\"get\", \"display_width\"]],\n \"line-cap\": \"round\",\n },\n },\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.type == \"Point\"\n ? _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": _vm.preset.name + \"-layer\",\n source: {\n type: \"geojson\",\n data: _vm.layer,\n },\n \"layer-id\": _vm.preset.name + \"-layer\",\n layer: {\n interactive: false,\n type: \"circle\",\n minzoom: 5,\n paint: {\n \"circle-color\": [\"get\", \"display_color\"],\n \"circle-radius\": [\"get\", \"display_width\"],\n \"circle-opacity\": _vm.opacity / 100,\n },\n layout: {\n \"circle-sort-key\": [\"to-number\", [\"get\", \"display_width\"]],\n },\n },\n },\n })\n : _vm._e(),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLayer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLayer.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLayer.vue?vue&type=style&index=0&id=7dc7a5bf&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticLayer.vue?vue&type=style&index=0&id=7dc7a5bf&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./StaticLayer.vue?vue&type=template&id=7dc7a5bf&scoped=true&\"\nimport script from \"./StaticLayer.vue?vue&type=script&lang=js&\"\nexport * from \"./StaticLayer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StaticLayer.vue?vue&type=style&index=0&id=7dc7a5bf&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7dc7a5bf\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"close-on-content-click\": false,\n \"close-on-click\": true,\n origin: \"top right\",\n transition: \"scale-transition\",\n \"position-y\": 30,\n \"nudge-width\": 200,\n \"offset-x\": \"\",\n \"offset-y\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"layer-button\",\n attrs: { fab: \"\", small: \"\" },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { color: \"regular\" } }, [\n _vm._v(\"\\n fas fa-layer-group\\n \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.show,\n callback: function ($$v) {\n _vm.show = $$v\n },\n expression: \"show\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n { attrs: { \"max-width\": 300 } },\n [\n _c(\"v-card-title\", { staticClass: \"subtitle\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(\"Static Layers\")) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.choices, function (item, key) {\n return _c(\n \"v-list-item\",\n { key: key },\n [\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n attrs: {\n value: item.name,\n \"off-icon\": !_vm.availableLayers.includes(\n item.layer\n )\n ? \"fas fa-exclamation-triangle\"\n : \"fa-eye-slash fa\",\n \"on-icon\": \"fa-eye fa\",\n disabled: !_vm.availableLayers.includes(item.layer),\n },\n model: {\n value: _vm.selectedLayers,\n callback: function ($$v) {\n _vm.selectedLayers = $$v\n },\n expression: \"selectedLayers\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: {\n top: \"\",\n \"open-delay\": \"300\",\n \"content-class\": \"custom-tooltip\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [\n _c(\n \"v-list-item-title\",\n _vm._g(\n { style: { cursor: \"default\" } },\n on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.name) +\n \"\\n \"\n ),\n ]\n ),\n ]\n },\n },\n ],\n null,\n true\n ),\n },\n [\n _vm._v(\" \"),\n !_vm.availableLayers.includes(item.layer)\n ? _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.$gettext(\"Data not found: \") + item.layer\n )\n ),\n ])\n : _c(\"span\", [\n _vm._v(\n _vm._s(\n item.displaySettings.selectedFeature +\n \" \" +\n _vm.$gettext(\"from\") +\n \" \" +\n item.layer\n )\n ),\n ]),\n ]\n ),\n ],\n 1\n )\n }),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayerSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayerSelector.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayerSelector.vue?vue&type=style&index=0&id=9ae88e1e&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayerSelector.vue?vue&type=style&index=0&id=9ae88e1e&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LayerSelector.vue?vue&type=template&id=9ae88e1e&scoped=true&\"\nimport script from \"./LayerSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./LayerSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LayerSelector.vue?vue&type=style&index=0&id=9ae88e1e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9ae88e1e\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"section\",\n [\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"od\",\n source: {\n type: \"geojson\",\n data: _vm.layer,\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"od\",\n layer: {\n interactive: true,\n type: \"line\",\n minzoom: 1,\n maxzoom: 18,\n paint: {\n \"line-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n \"line-opacity\": [\n \"case\",\n [\"boolean\", _vm.isEditorMode, false],\n 0.3,\n 1,\n ],\n \"line-width\": [\n \"*\",\n [\"case\", [\"boolean\", [\"feature-state\", \"hover\"], false], 3, 1],\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n \"line-blur\": [\n \"*\",\n [\"case\", [\"boolean\", [\"feature-state\", \"hover\"], false], 1, 0],\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n },\n\n layout: {\n \"line-sort-key\": [\"to-number\", [\"get\", \"route_width\"]],\n \"line-cap\": \"round\",\n },\n },\n },\n on: {\n contextmenu: _vm.linkRightClick,\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n },\n }),\n _vm._v(\" \"),\n _c(\"MglGeojsonLayer\", {\n attrs: {\n \"source-id\": \"ODNodes\",\n source: {\n type: \"geojson\",\n data: _vm.isODMode\n ? _vm.nodes\n : _vm.$store.getters[\"od/layerHeader\"],\n buffer: 0,\n promoteId: \"index\",\n },\n \"layer-id\": \"ODNodes\",\n layer: {\n interactive: true,\n type: \"circle\",\n paint: {\n \"circle-color\": \"#ffffff\",\n \"circle-opacity\": 0.5,\n \"circle-radius\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 10,\n 5,\n ],\n \"circle-blur\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"hover\"], false],\n 0.3,\n 0,\n ],\n \"circle-stroke-color\": _vm.$vuetify.theme.currentTheme.darkgrey,\n \"circle-stroke-width\": 2,\n },\n },\n },\n on: {\n mouseover: _vm.onCursor,\n mouseleave: _vm.offCursor,\n mousedown: _vm.moveNode,\n },\n }),\n _vm._v(\" \"),\n _c(\"MglImageLayer\", {\n attrs: {\n \"source-id\": \"od\",\n type: \"symbol\",\n source: \"od\",\n \"layer-id\": \"arrow-od\",\n layer: {\n type: \"symbol\",\n layout: {\n \"symbol-placement\": \"line\",\n \"symbol-spacing\": 200,\n \"icon-ignore-placement\": true,\n \"icon-image\": \"arrow\",\n \"icon-size\": [\n \"*\",\n 0.2,\n [\n \"case\",\n [\"has\", \"route_width\"],\n [\n \"case\",\n [\"to-boolean\", [\"to-number\", [\"get\", \"route_width\"]]],\n [\"to-number\", [\"get\", \"route_width\"]],\n 2,\n ],\n 2,\n ],\n ],\n \"icon-rotate\": 90,\n },\n paint: {\n \"icon-color\": [\n \"case\",\n [\"has\", \"route_color\"],\n [\"concat\", \"#\", [\"get\", \"route_color\"]],\n _vm.$vuetify.theme.currentTheme.linksprimary,\n ],\n },\n },\n },\n }),\n _vm._v(\" \"),\n _c(\n \"MglPopup\",\n {\n attrs: {\n \"close-button\": false,\n showed: _vm.contextMenu.showed,\n coordinates: _vm.contextMenu.coordinates,\n },\n on: {\n close: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"span\",\n {\n on: {\n mouseleave: function ($event) {\n _vm.contextMenu.showed = false\n },\n },\n },\n [\n _c(\n \"v-list\",\n { attrs: { dense: \"\", flat: \"\" } },\n [\n _c(\n \"v-list-item-group\",\n _vm._l(_vm.contextMenu.actions, function (action) {\n return _c(\n \"v-list-item\",\n { key: action.id },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { outlined: \"\", small: \"\" },\n on: {\n click: function ($event) {\n return _vm.actionClick({\n action: action,\n feature: _vm.contextMenu.feature,\n coordinates:\n _vm.contextMenu.coordinates,\n })\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$gettext(action)) +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ODMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ODMap.vue?vue&type=template&id=af4e3bca&scoped=true&\"\nimport script from \"./ODMap.vue?vue&type=script&lang=js&\"\nexport * from \"./ODMap.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"af4e3bca\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=js&\"","\n\n\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=style&index=0&id=66748ace&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=style&index=0&id=66748ace&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Map.vue?vue&type=template&id=66748ace&scoped=true&\"\nimport script from \"./Map.vue?vue&type=script&lang=js&\"\nexport * from \"./Map.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Map.vue?vue&type=style&index=0&id=66748ace&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66748ace\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"v-menu\",\n {\n attrs: {\n top: \"\",\n \"nudge-bottom\": \"105\",\n \"nudge-left\": \"16\",\n \"close-on-content-click\": false,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [_c(\"div\", _vm._g({ style: _vm.swatchStyle }, on))]\n },\n },\n ]),\n model: {\n value: _vm.menu,\n callback: function ($$v) {\n _vm.menu = $$v\n },\n expression: \"menu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-text\",\n { staticClass: \"pa-0\" },\n [\n _c(\"v-color-picker\", {\n attrs: {\n mode: \"hexa\",\n swatches: _vm.swatches,\n \"show-swatches\": \"\",\n flat: \"\",\n },\n model: {\n value: _vm.color,\n callback: function ($$v) {\n _vm.color = $$v\n },\n expression: \"color\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"grey\", outlined: \"\" },\n on: { click: _vm.cancel },\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"cancel\")) + \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"green darken-1\", outlined: \"\" },\n on: { click: _vm.updateColor },\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(_vm.$gettext(\"apply\")) + \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n \n \n \n \n \n \n \n \n\n \n {{ $gettext(\"cancel\") }}\n \n \n {{ $gettext(\"apply\") }}\n \n \n \n \n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ColorPicker.vue?vue&type=template&id=380a869c&scoped=true&v-slot%3Aappend=true&\"\nimport script from \"./ColorPicker.vue?vue&type=script&lang=js&\"\nexport * from \"./ColorPicker.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"380a869c\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"close-delay\": \"100\",\n \"offset-y\": \"\",\n transition: \"slide-y-transition\",\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n {\n attrs: { icon: \"\", color: \"regular\", \"x-small\": \"\" },\n on: {\n click: function ($event) {\n _vm.openMenu = !_vm.openMenu\n },\n },\n },\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.openMenu\n ? \"fas fa-chevron-left\"\n : \"fas fa-chevron-down\"\n ) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.openMenu,\n callback: function ($$v) {\n _vm.openMenu = $$v\n },\n expression: \"openMenu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-list\",\n _vm._l(_vm.items, function (val, key) {\n return _c(\n \"v-list-item\",\n {\n key: key,\n class: { \"is-active\": val === _vm.selectedVal },\n on: { click: () => _vm.$emit(\"select\", val) },\n },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\"\\n \" + _vm._s(val) + \"\\n \"),\n ]),\n ],\n 1\n )\n }),\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\n\n
\n \n \n\n \n $emit('select',val)\"\n >\n \n {{ val }}\n \n \n \n \n
\n\n\n","import mod from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuSelector.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuSelector.vue?vue&type=style&index=0&id=e63b0890&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuSelector.vue?vue&type=style&index=0&id=e63b0890&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./MenuSelector.vue?vue&type=template&id=e63b0890&scoped=true&v-slot%3Aappend=true&\"\nimport script from \"./MenuSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./MenuSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MenuSelector.vue?vue&type=style&index=0&id=e63b0890&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e63b0890\",\n null\n \n)\n\nexport default component.exports","// this file contains Hints on the different editable attributes\n\nconst $gettext = s => s\n\nconst hints = {\n agency_id: $gettext('transit brand or transit agency'),\n direction_id: $gettext(`direction of travel for a trip. used to separate trips by directions.\n ex: 0 - Travel in one direction. 1 - Travel in the opposite direction.`),\n drop_off_type: $gettext(`0 - Regularly scheduled drop off.\n 1 - No drop off available.\n 2 - Must phone agency to arrange drop off.\n 3 - Must coordinate with driver to arrange drop off.`),\n headway: $gettext('Time between departures in seconds'),\n pickup_type: $gettext(`0 - Regularly scheduled pickup.\n 1 - No pickup available.\n 2 - Must phone agency to arrange pickup.\n 3 - Must coordinate with driver to arrange pickup`),\n route_color: $gettext('color to display on the map (i.e. FFFFFF)'),\n route_id: $gettext('Identifies a route. Often a string'),\n route_long_name: $gettext(\"Full name of a route.This name is generally more descriptive\\\n than the route_short_name and often includes the roudefaultAttributeste's destination or stop\"),\n route_short_name: $gettext(`Short name of a route. This will often be a short,\n abstract identifier like \"32\", \"100X\", or \"Green\"`),\n route_type: $gettext(`Indicates the type of transportation used on a route.\n subway, metro, rail, bus, ferry, tram, etc`),\n route_width: $gettext('width to display on the map'),\n time: $gettext('Travel time on the link. set as length / speed when a link is created or edited (seconds)'),\n trip_id: $gettext(`Line (or trip) identifier (i.e. 100 Est).\n Links are group by trip_id in Quetzal-network-editor.`),\n length: $gettext('links geometry linestring length (meters)'),\n highway: $gettext('Main identifier or any kind of road, street or path. ex: (motorway, residential, primary)'),\n speed: $gettext('speed on the link (Km/h)'),\n cycleway: $gettext('if the road contain a bike path. either yes, no or shared'),\n cycleway_reverse: $gettext('if the road contain a bike path in the opposite direction. either yes, no or shared.\\\n a road can be a oneway and have cycleway on both side.'),\n\n}\n\nexport default hints\n","import mod from \"-!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","\n\n\n\n \n \n \n \n deleteField(key)\"\n >\n fas fa-trash small\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n showHint = !showHint\"\n >\n far fa-question-circle small\n \n \n \n fas fa-minus-circle fa-rotate-90\n \n \n fas fa-minus-circle\n \n \n \n\n \n {{ $gettext(\"Cancel\") }}\n \n\n \n {{ $gettext(\"Save\") }}\n \n \n \n \n\n \n \n \n {{ $gettext('Duplicate and reverse') }}\n {{ message +' ?' }}\n \n \n \n \n \n {{ errorMessage }}\n \n \n \n \n {{ $gettext(\"Cancel\") }}\n \n\n \n {{ $gettext(\"Save\") }}\n \n \n \n \n\n mode = e\"\n />\n \n \n\n\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=00b02151&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-1.use[2]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=00b02151&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=00b02151&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=00b02151&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00b02151\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport Router from 'vue-router'\nimport Import from '@page/Import.vue'\n\nimport auth from '../auth'\nimport Home from '@page/Home.vue'\nimport { store } from '../store/index.js'\nconst Microservices = () => import('@page/Microservices.vue')\nconst ResultMap = () => import('@page/ResultMap.vue')\nconst Run = () => import('@page/Run.vue')\nconst ResultPicture = () => import('@page/ResultPicture.vue')\nconst ResultTable = () => import('@page/ResultTable.vue')\nconst basePath = process.env.VUE_APP_BASE_PATH\n\nVue.use(Router)\n\n// only used to force to see translation to vue-gettext\nconst $gettext = s => s\n\nconst router = new Router({\n linkExactActiveClass: 'active',\n mode: 'history',\n base: basePath,\n routes: [\n {\n path: '/',\n name: Import.name,\n component: Import,\n icon: 'fa-solid fa-upload',\n title: $gettext('Import'),\n },\n {\n path: '/Microservices',\n name: Microservices.name,\n component: Microservices,\n icon: 'fas fa-tachometer-alt',\n title: $gettext('Microservices'),\n beforeEnter: (to, from, next) => {\n if (!store.getters.loggedIn) {\n store.commit('changeNotification',\n {\n text: $gettext('Must be logged in'),\n autoClose: true,\n color: 'error',\n })\n } else {\n next()\n }\n },\n },\n {\n path: '/Home',\n name: Home.name,\n component: Home,\n icon: 'fa-solid fa-map',\n title: $gettext('Map'),\n },\n {\n path: '/Run',\n name: Run.name,\n component: Run,\n icon: 'fa-solid fa-play',\n title: $gettext('Parameters and Run'),\n beforeEnter: (to, from, next) => {\n if (store.getters['run/parametersIsEmpty']) {\n store.commit('changeNotification',\n {\n text: $gettext('you need parameters to enter this page'),\n autoClose: true,\n color: 'error',\n })\n } else {\n next()\n }\n },\n },\n {\n path: '/ResultMap',\n name: ResultMap.name,\n component: ResultMap,\n margin: '5rem',\n icon: 'fa-solid fa-layer-group',\n title: $gettext('Results Map'),\n },\n {\n path: '/ResultPicture',\n name: ResultPicture.name,\n component: ResultPicture,\n icon: 'fas fa-images',\n title: $gettext('Results Pictures'),\n },\n {\n path: '/ResultTable',\n name: ResultTable.name,\n component: ResultTable,\n icon: 'fas fa-table',\n title: $gettext('Result Table'),\n\n },\n {\n path: '/callback',\n name: 'callback',\n beforeEnter: (to, from, next) => {\n const currUrl = window.location.href\n auth.auth.parseCognitoWebResponse(currUrl)\n next('/')\n },\n },\n {\n path: '/signout',\n name: 'signout',\n beforeEnter: (to, from, next) => {\n next('/')\n },\n },\n ],\n})\n\n// router.replace({ 'query.s3Path': null }) // remove query in url when page is load.\n\nrouter.beforeEach((to, from, next) => {\n if ((!['Import', 'callback', 'signout'].includes(to.name)) &&\n store.getters.projectIsUndefined) {\n next({ name: 'Import' })\n } else next()\n})\n\nexport default router\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\nimport length from '@turf/length'\nimport nearestPointOnLine from '@turf/nearest-point-on-line'\nimport Linestring from 'turf-linestring'\nimport Point from 'turf-point'\nimport { serializer } from '@comp/utils/serializer.js'\nimport { IndexAreDifferent } from '@comp/utils/utils.js'\nconst $gettext = s => s\nconst short = require('short-uuid')\n\nexport default {\n state: {\n links: {},\n editorTrip: null,\n editorNodes: {},\n editorLinks: {},\n editorLineInfo: {},\n nodes: {},\n nodesHeader: {},\n linksHeader: {},\n tripId: [],\n selectedTrips: [],\n newLink: {},\n newNode: {},\n changeBounds: true,\n linkSpeed: 20, // 20KmH for time (speed/distance)\n linksDefaultColor: '2196F3',\n lineAttributes: [],\n nodeAttributes: [],\n defaultAttributes: [\n { name: 'index', type: 'String' },\n { name: 'a', type: 'String' },\n { name: 'b', type: 'String' },\n { name: 'trip_id', type: 'String' },\n { name: 'route_id', type: 'String' },\n { name: 'agency_id', type: 'String' },\n { name: 'route_short_name', type: 'String' },\n { name: 'route_type', type: 'String' },\n { name: 'route_color', type: 'String' },\n { name: 'length', type: 'Number' }, // float\n { name: 'time', type: 'Number' }, // float\n { name: 'headway', type: 'Number' }, // float\n { name: 'route_width', type: 'Number' }, // float\n { name: 'pickup_type', type: 'Number' }, // float\n { name: 'drop_off_type', type: 'Number' }, // int\n { name: 'link_sequence', type: 'Number' }, // int\n { name: 'direction_id', type: 'Number' }, // int\n ],\n },\n\n mutations: {\n loadLinks (state, payload) {\n state.links = structuredClone(payload)\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.links.crs.properties.name)) {\n const linksHeader = { ...state.links }\n linksHeader.features = []\n state.linksHeader = linksHeader\n\n state.editorLinks = linksHeader\n // limit geometry precision to 6 digit\n state.links.features.forEach(link => link.geometry.coordinates = link.geometry.coordinates.map(\n points => points.map(coord => Math.round(Number(coord) * 1000000) / 1000000)))\n this.commit('applyPropertiesTypes')\n this.commit('getTripId')\n // set all trips visible\n this.commit('changeSelectedTrips', state.tripId)\n\n this.commit('getLinksProperties')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n loadNodes (state, payload) {\n state.nodes = JSON.parse(JSON.stringify(payload))\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.nodes.crs.properties.name)) {\n const nodesHeader = { ...state.nodes }\n nodesHeader.features = []\n state.nodesHeader = nodesHeader\n state.editorNodes = nodesHeader\n // limit geometry precision to 6 digit\n state.nodes.features.forEach(node => node.geometry.coordinates = node.geometry.coordinates.map(\n coord => Math.round(Number(coord) * 1000000) / 1000000))\n\n this.commit('getNodesProperties')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n unloadFiles (state) {\n // when we reload files (some were already loaded.)\n state.links.features = []\n state.nodes.features = []\n state.editorTrip = null\n state.tripId = []\n state.selectedTrips = []\n },\n loadPTFiles (state, payload) {\n // payload = [{path,content}, ...]\n // get links. check that index are not duplicated, serialize them and then append to project\n // get nodes. check that index are not duplicated, serialize them and then append to project\n\n for (const file of payload) {\n const currentType = file.content.features[0].geometry.type\n if (currentType === 'LineString') {\n if (IndexAreDifferent(file.content, state.links)) {\n this.commit('appendNewLinks', serializer(file.content, file.path, currentType))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n } else if (currentType === 'Point') {\n if (IndexAreDifferent(file.content, state.nodes)) {\n this.commit('appendNewNodes', serializer(file.content, file.path, currentType))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n }\n }\n },\n\n appendNewLinks (state, payload) {\n // append new links to the project. payload = links geojson file\n payload.features.forEach(link => link.geometry.coordinates = link.geometry.coordinates.map(\n points => points.map(coord => Math.round(Number(coord) * 1000000) / 1000000)))\n\n // state.links.features.push(...payload.links.features) will crash with large array (stack size limit)\n payload.features.forEach(link => state.links.features.push(link))\n this.commit('applyPropertiesTypes')\n this.commit('getLinksProperties')\n this.commit('getTripId')\n this.commit('changeSelectedTrips', state.tripId)\n },\n appendNewNodes (state, payload) {\n // append new nodes to the project. payload = nodes geojson file\n payload.features.forEach(node => node.geometry.coordinates = node.geometry.coordinates.map(\n coord => Math.round(Number(coord) * 1000000) / 1000000))\n\n payload.features.forEach(node => state.nodes.features.push(node))\n this.commit('applyPropertiesTypes')\n this.commit('getNodesProperties')\n },\n\n getLinksProperties (state) {\n let header = new Set([])\n state.links.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n // header.delete('index')\n // add all default attributes\n const defaultAttributes = state.defaultAttributes.map(attr => attr.name)\n defaultAttributes.forEach(att => header.add(att))\n header = Array.from(header)\n state.lineAttributes = header\n },\n getNodesProperties (state) {\n let header = new Set([])\n state.nodes.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n // add all default attributes\n const defaultAttributes = [\n 'index',\n 'stop_code',\n 'stop_name']\n defaultAttributes.forEach(att => header.add(att))\n header = Array.from(header)\n state.nodeAttributes = header\n },\n\n addPropertie (state, payload) {\n // when a new line properties is added (in dataframe page)\n if (payload.table === 'links') {\n state.links.features.map(link => link.properties[payload.name] = null)\n state.editorLinks.features.map(link => link.properties[payload.name] = null)\n state.lineAttributes.push(payload.name) // could put that at applied. so we can cancel\n } else {\n state.nodes.features.map(node => node.properties[payload.name] = null)\n state.editorNodes.features.map(node => node.properties[payload.name] = null)\n }\n },\n deletePropertie (state, payload) {\n // when a link property is deleted\n if (payload.table === 'links') {\n state.links.features.filter(link => delete link.properties[payload.name])\n state.editorLinks.features.filter(link => delete link.properties[payload.name])\n state.lineAttributes = state.lineAttributes.filter(item => item !== payload.name)\n } else {\n state.nodes.features.filter(node => delete node.properties[payload.name])\n state.editorNodes.features.filter(node => delete node.properties[payload.name])\n }\n },\n changeSelectedTrips (state, payload) {\n // trips list of visible trip_id.\n state.selectedTrips = payload\n },\n\n setEditorTrip (state, payload) {\n // set Trip Id\n state.editorTrip = payload.tripId\n state.changeBounds = payload.changeBounds\n // set editor links corresponding to trip id\n // var filtered = {...state.links}\n const filtered = JSON.parse(JSON.stringify(state.links))\n filtered.features = filtered.features.filter(link => link.properties.trip_id === state.editorTrip)\n state.editorLinks = filtered\n // get the corresponding nodes\n this.commit('getEditorNodes', { nodes: state.nodes })\n this.commit('getEditorLineInfo')\n },\n\n cloneTrip (state, payload) {\n // clone and reversed a trip.\n const cloned = structuredClone(state.links)\n cloned.features = cloned.features.filter(link => link.properties.trip_id === payload.tripId)\n\n let linkSequence = cloned.features.length\n for (const link of cloned.features) {\n link.properties.trip_id = payload.name\n // mettre dans l'autre sens » inverser 0 et 1 et leur coordonées\n link.geometry.coordinates.reverse()//\n // inverser node a et b (propriétés)\n link.properties.a = [link.properties.b, link.properties.b = link.properties.a][0]\n // changer le link-sequence de tous les objets\n link.properties.link_sequence = linkSequence\n linkSequence -= 1\n // changer la direction\n if (link.properties.direction_id === 0) {\n link.properties.direction_id = 1\n } else {\n link.properties.direction_id = 0\n }\n // changer nom de l'index\n link.properties.index = 'link_' + short.generate()\n }\n // inverser l'ordre des features\n cloned.features.reverse()\n state.links.features.push(...cloned.features)\n this.commit('getTripId')\n },\n getEditorNodes (state, payload) {\n // payload contain nodes. state.nodes or state.editorNodes\n // find the nodes in the editor links\n const a = state.editorLinks.features.map(item => item.properties.a)\n const b = state.editorLinks.features.map(item => item.properties.b)\n const editorNodesList = new Set([...a, ...b])\n // set nodes corresponding to trip id\n const filtered = JSON.parse(JSON.stringify(payload.nodes))\n filtered.features = filtered.features.filter(node => editorNodesList.has(node.properties.index))\n state.editorNodes = filtered\n },\n\n getEditorLineInfo (state) {\n const form = {}\n const uneditable = ['index', 'length', 'a', 'b', 'link_sequence']\n // empty trip, when its a newLine\n if (state.editorLinks.features.length === 0) {\n const defaultValue = {\n route_id: 'Q1',\n agency_id: 'QUENEDI',\n route_short_name: 'Q1',\n route_type: 'quenedi',\n route_color: state.linksDefaultColor,\n route_width: 3,\n headway: 600,\n pickup_type: 0,\n drop_off_type: 0,\n direction_id: 0,\n }\n\n state.lineAttributes.forEach(key => {\n form[key] = {\n value: defaultValue[key],\n disabled: uneditable.includes(key),\n placeholder: false,\n }\n })\n\n form.trip_id = { value: state.editorTrip, disabled: false, placeholder: false }\n } else {\n const features = state.editorLinks.features\n\n state.lineAttributes.forEach(key => {\n const val = new Set(features.map(link => link.properties[key]))\n form[key] = {\n value: val.size > 1 ? '' : [...val][0],\n disabled: uneditable.includes(key),\n placeholder: val.size > 1,\n }\n })\n }\n state.editorLineInfo = form\n },\n\n getTripId (state) {\n state.tripId = Array.from(new Set(state.links.features.map(item => item.properties.trip_id)))\n },\n\n setNewLink (state, payload) {\n // copy editor links geoJSON, only take first (or last) link.\n // delete some properties like id and index.\n const uncopiedPropeties = {\n index: null,\n length: null,\n time: null,\n pickup_type: 0,\n drop_off_type: 0,\n }\n // create link\n const tempLink = structuredClone(state.editorLinks)\n // if there is no link to copy, create one. (new Line)\n if (tempLink.features.length === 0) {\n // copy Line properties.\n const linkProperties = {}\n Object.keys(state.editorLineInfo).forEach((key) => {\n linkProperties[key] = state.editorLineInfo[key].value\n })\n // set default links values\n const defaultValue = {\n index: 'link_' + short.generate(),\n a: state.editorNodes.features[0].properties.index,\n b: state.editorNodes.features[0].properties.index,\n length: null,\n time: null,\n pickup_type: 0,\n drop_off_type: 0,\n link_sequence: 0,\n }\n Object.keys(defaultValue).forEach((key) => {\n linkProperties[key] = defaultValue[key]\n })\n\n const linkGeometry = {\n coordinates: [state.editorNodes.features[0].geometry.coordinates,\n state.editorNodes.features[0].geometry.coordinates],\n type: 'LineString',\n }\n const linkFeature = { geometry: linkGeometry, properties: linkProperties, type: 'Feature' }\n tempLink.features = [linkFeature]\n }\n\n if (payload.action === 'Extend Line Upward') {\n // Take last link and copy properties\n // eslint-disable-next-line no-var\n var features = tempLink.features[tempLink.features.length - 1]\n Object.assign(features.properties, uncopiedPropeties)\n // sequence +1\n features.properties.link_sequence = features.properties.link_sequence + 1\n // replace node a by b and delete node a\n features.properties.a = features.properties.b\n features.geometry.coordinates[0] = features.geometry.coordinates.slice(-1)[0]\n // new node index (hash)\n payload.nodeCopyId = features.properties.a\n this.commit('setNewNode', payload)\n\n features.properties.b = state.newNode.features[0].properties.index\n features.properties.index = 'link_' + short.generate()\n } else if (payload.action === 'Extend Line Downward') {\n // Take first link and copy properties\n // eslint-disable-next-line no-var, no-redeclare\n var features = tempLink.features[0]\n Object.assign(features.properties, uncopiedPropeties)\n // sequence + 1\n features.properties.link_sequence = features.properties.link_sequence - 1\n // replace node b by a and delete node b\n features.properties.b = features.properties.a\n features.geometry.coordinates[1] = features.geometry.coordinates[0]\n // new node index (hash)\n payload.nodeCopyId = features.properties.b\n this.commit('setNewNode', payload)\n features.properties.a = state.newNode.features[0].properties.index\n features.properties.index = 'link_' + short.generate()\n }\n tempLink.features = [features]\n state.newLink = tempLink\n state.newLink.action = payload.action\n },\n createNewNode (state, payload) {\n const nodeProperties = {}\n state.nodeAttributes.forEach(key => {\n nodeProperties[key] = null\n })\n nodeProperties.index = 'node_' + short.generate()\n const nodeGeometry = {\n coordinates: payload,\n type: 'Point',\n }\n // Copy specified nodenewNode\n const nodeFeatures = { geometry: nodeGeometry, properties: nodeProperties, type: 'Feature' }\n state.editorNodes.features = [nodeFeatures]\n },\n\n setNewNode (state, payload) {\n const { coordinates = [null, null] } = payload\n const uncopiedPropeties = {}\n state.nodeAttributes.forEach(key => {\n uncopiedPropeties[key] = null\n })\n // Copy specified node\n const tempNode = JSON.parse(JSON.stringify(state.editorNodes))\n const features = tempNode.features.filter(node => node.properties.index === payload.nodeCopyId)[0]\n Object.assign(features.properties, uncopiedPropeties)\n features.properties.index = 'node_' + short.generate()\n features.geometry.coordinates = coordinates\n tempNode.features = [features]\n state.newNode = tempNode\n },\n\n editNewLink (state, payload) {\n // for realtime viz. this method change the linestring to the payload (mouse position)\n // for some reason, it doesnt work when i only apply payload to coordinates[1]\n state.newNode.features[0].geometry.coordinates = payload\n if (state.newLink.action === 'Extend Line Upward') {\n state.newLink.features[0].geometry.coordinates = [state.newLink.features[0].geometry.coordinates[0], payload]\n } else {\n state.newLink.features[0].geometry.coordinates = [payload, state.newLink.features[0].geometry.coordinates[1]]\n }\n },\n\n applyNewLink (state, payload) {\n // nodeId: this.selectedNodeId, geom: pointGeom, action: Extend Line Upward\n // get linestring length in km\n this.commit('setNewLink', { action: payload.action })\n this.commit('editNewLink', payload.geom)\n\n const distance = length(state.newLink)\n state.newLink.features[0].properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.linkSpeed * 3600 // 20kmh hard code speed. time in secs\n\n state.newLink.features[0].properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n\n const action = state.newLink.action\n if (action === 'Extend Line Upward') {\n state.editorLinks.features.push(state.newLink.features[0])\n state.editorNodes.features.push(state.newNode.features[0])\n } else if (action === 'Extend Line Downward') {\n state.editorLinks.features.splice(0, 0, state.newLink.features[0])\n state.editorNodes.features.splice(0, 0, state.newNode.features[0])\n state.editorLinks.features.forEach(link => link.properties.link_sequence += 1)\n }\n },\n\n deleteNode (state, payload) {\n const nodeIndex = payload.selectedNode.index\n // remove node\n state.editorNodes.features = state.editorNodes.features.filter(node => node.properties.index !== nodeIndex)\n // changing link1 change editorLinks as it is an observer.\n const link1 = state.editorLinks.features.filter(link => link.properties.b === nodeIndex)[0] // link is extented\n const link2 = state.editorLinks.features.filter(link => link.properties.a === nodeIndex)[0] // link is deleted\n // if the last or first node is selected, there is only one link. The node and the link are deleted.\n if (!link1) {\n state.editorLinks.features = state.editorLinks.features.filter(\n link => link.properties.index !== link2.properties.index)\n // a link was remove, link_sequence -1\n state.editorLinks.features.forEach(link => link.properties.link_sequence -= 1)\n } else if (!link2) {\n state.editorLinks.features = state.editorLinks.features.filter(\n link => link.properties.index !== link1.properties.index)\n // the node is inbetween 2 links. 1 link is deleted, and the other is extented.\n } else {\n link1.geometry.coordinates = [\n ...link1.geometry.coordinates.slice(0, -1),\n ...link2.geometry.coordinates.slice(1)]\n link1.properties.b = link2.properties.b\n link1.properties.length = Number(link1.properties.length) + Number(link2.properties.length)\n link1.properties.time = Number(link1.properties.time) + Number(link2.properties.time)\n // find removed link index. drop everylinks link_sequence after by 1\n const featureIndex = state.editorLinks.features.findIndex(\n link => link.properties.index === link2.properties.index)\n state.editorLinks.features.slice(featureIndex).forEach(\n link => link.properties.link_sequence -= 1)\n // delete link2\n state.editorLinks.features = state.editorLinks.features.filter(\n link => link.properties.index !== link2.properties.index)\n }\n },\n\n splitLink (state, payload) {\n const linkIndex = payload.selectedLink.index\n const featureIndex = state.editorLinks.features.findIndex(link => link.properties.index === linkIndex)\n // changing link1 change editorLinks as it is an observer.\n const link1 = state.editorLinks.features[featureIndex] // this link is extented\n const link2 = structuredClone(link1)\n // distance du point (entre 0 et 1) sur le lien original\n const ratio = payload.offset\n\n link1.properties.b = state.newNode.features[0].properties.index\n link1.geometry.coordinates = [\n ...link1.geometry.coordinates.slice(0, payload.sliceIndex),\n state.newNode.features[0].geometry.coordinates,\n ]\n\n link1.properties.index = 'link_' + short.generate() // link1.properties.index+ '-1'\n link1.properties.length = link1.properties.length * ratio\n link1.properties.time = link1.properties.time * ratio\n\n link2.properties.a = state.newNode.features[0].properties.index\n link2.geometry.coordinates = [\n state.newNode.features[0].geometry.coordinates,\n ...link2.geometry.coordinates.slice(payload.sliceIndex),\n ]\n link2.properties.index = 'link_' + short.generate() // link2.properties.index+ '-2'\n link2.properties.length = link2.properties.length * (1 - ratio)\n link2.properties.time = link2.properties.time * (1 - ratio)\n\n state.editorLinks.features.splice(featureIndex + 1, 0, link2)\n state.editorNodes.features.push(state.newNode.features[0])\n\n // add +1 to every link sequence afer link1\n const seq = link1.properties.link_sequence\n // everything after link1 except link2\n state.editorLinks.features.filter(link => link.properties.link_sequence > seq).forEach(\n link => link.properties.link_sequence += 1)\n // add link2 sequence after.\n link2.properties.link_sequence += 1\n },\n\n addNodeInline (state, payload) {\n // payload contain selectedLink and event.lngLat (clicked point)\n let linkGeom = state.editorLinks.features.filter((link) => link.properties.index === payload.selectedLink.index)\n const nodeCopyId = linkGeom[0].properties.a\n linkGeom = Linestring(linkGeom[0].geometry.coordinates)\n const clickedPoint = Point(Object.values(payload.lngLat))\n const snapped = nearestPointOnLine(linkGeom, clickedPoint, { units: 'kilometers' })\n const dist = length(linkGeom, { units: 'kilometers' }) // dist\n // for multiString, gives the index of the closest one, add +1 for the slice.\n const sliceIndex = snapped.properties.index + 1\n const offset = snapped.properties.location / dist\n if (payload.nodes === 'editorNodes') {\n this.commit('setNewNode', { coordinates: snapped.geometry.coordinates, nodeCopyId: nodeCopyId })\n this.commit('splitLink', { selectedLink: payload.selectedLink, offset: offset, sliceIndex: sliceIndex })\n // Anchor Nodes\n } else {\n this.commit('addAnchorNode', {\n selectedLink: payload.selectedLink,\n coordinates: snapped.geometry.coordinates,\n sliceIndex: sliceIndex,\n })\n }\n\n // this.commit('setNewNode', null) // init new node to null\n },\n addAnchorNode (state, payload) {\n const linkIndex = payload.selectedLink.index\n const featureIndex = state.editorLinks.features.findIndex(link => link.properties.index === linkIndex)\n // changing link change editorLinks as it is an observer.\n const link = state.editorLinks.features[featureIndex]\n link.geometry.coordinates.splice(payload.sliceIndex, 0, payload.coordinates)\n },\n deleteAnchorNode (state, payload) {\n const linkIndex = payload.selectedNode.linkIndex\n const coordinatedIndex = payload.selectedNode.coordinatedIndex\n const link = state.editorLinks.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n },\n moveAnchor (state, payload) {\n const linkIndex = payload.selectedNode.properties.linkIndex\n const coordinatedIndex = payload.selectedNode.properties.coordinatedIndex\n const link = state.editorLinks.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n payload.lngLat,\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n\n // update time and distance\n const distance = length(link)\n link.properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.linkSpeed * 3600 // 20kmh hard code speed. time in secs\n link.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n },\n\n moveNode (state, payload) {\n const nodeIndex = payload.selectedNode.properties.index\n // remove node\n const newNode = state.editorNodes.features.filter(node => node.properties.index === nodeIndex)[0]\n newNode.geometry.coordinates = payload.lngLat\n\n // changing links\n const link1 = state.editorLinks.features.filter(link => link.properties.b === nodeIndex)[0]\n const link2 = state.editorLinks.features.filter(link => link.properties.a === nodeIndex)[0]\n // update links geometry. check if exist first (if we take the first|last node there is only 1 link)\n if (link1) {\n // note: props are unchanged. even tho the length change, the time and length are unchanged.\n link1.geometry.coordinates = [...link1.geometry.coordinates.slice(0, -1), payload.lngLat]\n // update time and distance\n const distance = length(link1)\n link1.properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.linkSpeed * 3600 // 20kmh hard code speed. time in secs\n link1.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n }\n if (link2) {\n link2.geometry.coordinates = [payload.lngLat, ...link2.geometry.coordinates.slice(1)]\n // update time and distance\n const distance = length(link2)\n link2.properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.linkSpeed * 3600 // 20kmh hard code speed. time in secs\n link2.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n }\n },\n\n cutLineFromNode (state, payload) {\n // Filter links from selected line\n const nodeId = payload.selectedNode.index\n state.editorLinks.features.sort((a, b) => a.properties.link_sequence - b.properties.link_sequence)\n\n let toDelete = []\n for (const [i, link] of state.editorLinks.features.entries()) {\n if (link.properties.b === nodeId) {\n toDelete = state.editorLinks.features.slice(i + 1)\n break\n }\n }\n // Delete links\n state.editorLinks.features = state.editorLinks.features.filter(item => !toDelete.includes(item))\n this.commit('getEditorNodes', { nodes: state.editorNodes })\n },\n\n cutLineAtNode (state, payload) {\n // Filter links from selected line\n const nodeId = payload.selectedNode.index\n state.editorLinks.features.sort((a, b) => a.properties.link_sequence - b.properties.link_sequence)\n\n let toDelete = []\n for (const [i, link] of state.editorLinks.features.entries()) {\n if (link.properties.a === nodeId) {\n toDelete = state.editorLinks.features.slice(0, i)\n break\n }\n }\n // Delete links\n state.editorLinks.features = state.editorLinks.features.filter(item => !toDelete.includes(item))\n this.commit('getEditorNodes', { nodes: state.editorNodes })\n },\n\n editLineInfo (state, payload) {\n state.editorLineInfo = payload\n // get only keys that are not unmodified multipled Values (value=='' and placeholder==true)\n const props = Object.keys(payload).filter(key =>\n ((payload[key].value !== '') || !payload[key].placeholder) && (!payload[key].disabled))\n // add new line info to each links of each trips.\n state.editorLinks.features.forEach(\n (features) => props.forEach((key) => features.properties[key] = payload[key].value))\n },\n\n editLinkInfo (state, payload) {\n // get selected link in editorLinks and modify the changes attributes.\n const { selectedLinkId, info } = payload\n const props = Object.keys(info)\n state.editorLinks.features.filter(\n function (link) {\n if (link.properties.index === selectedLinkId) {\n props.forEach((key) => link.properties[key] = info[key].value)\n }\n },\n )\n this.commit('getEditorLineInfo')\n },\n\n editNodeInfo (state, payload) {\n // get selected node in editorNodes and modify the changes attributes.\n const { selectedNodeId, info } = payload\n const props = Object.keys(info)\n state.editorNodes.features.filter(\n // eslint-disable-next-line array-callback-return\n function (node) {\n if (node.properties.index === selectedNodeId) {\n props.forEach((key) => node.properties[key] = info[key].value)\n }\n },\n )\n },\n\n editGroupInfo (state, payload) {\n // edit line info on multiple trips at once.\n const editorGroupInfo = payload.info\n const groupTripIds = payload.groupTripIds\n // get only keys that are not unmodified multipled Values (value=='' and placeholder==true)\n const props = Object.keys(editorGroupInfo).filter(key =>\n ((editorGroupInfo[key].value !== '') || !editorGroupInfo[key].placeholder))\n // add new line info to each links of each trips.\n const tempLinks = state.links.features.filter(link => groupTripIds.includes(link.properties.trip_id))\n tempLinks.forEach(\n (features) => props.forEach((key) => features.properties[key] = editorGroupInfo[key].value))\n // get tripId list\n this.commit('getTripId')\n },\n deleteUnusedNodes (state) {\n // delete every every nodes not in links\n const a = state.links.features.map(item => item.properties.a)\n const b = state.links.features.map(item => item.properties.b)\n const nodesInLinks = new Set([...a, ...b])\n state.nodes.features = state.nodes.features.filter(node => nodesInLinks.has(node.properties.index))\n },\n\n confirmChanges (state) { // apply change to Links\n const filtered = { ...state.links }\n\n filtered.features = filtered.features.filter(link => link.properties.trip_id === state.editorTrip)\n const toDelete = filtered.features.filter(item => !state.editorLinks.features.includes(item))\n // find index of soon to be deleted links\n if (state.tripId.includes(state.editorTrip)) {\n // eslint-disable-next-line no-var\n var index = state.links.features.findIndex(link => link.properties.trip_id === state.editorTrip)\n } else {\n // eslint-disable-next-line no-var, no-redeclare\n var index = 0\n }\n // delete links that were edited.\n state.links.features = state.links.features.filter(item => !toDelete.includes(item))\n // add edited links to links.\n\n state.links.features.splice(index, 0, ...state.editorLinks.features)\n // all new nodes.\n const nodesList = state.nodes.features.map(item => item.properties.index)\n const newNodes = { ...state.editorNodes }\n newNodes.features = newNodes.features.filter(node => !nodesList.includes(node.properties.index))\n state.nodes.features.push(...newNodes.features)\n\n // for each editor nodes, apply new properties.\n state.nodes.features.filter(\n function (node) {\n state.editorNodes.features.forEach(\n function (eNode) {\n if (node.properties.index === eNode.properties.index) {\n node.properties = eNode.properties\n node.geometry = eNode.geometry\n }\n })\n })\n\n // delete every every nodes not in links\n this.commit('deleteUnusedNodes')\n\n // For every Links containing an editor Nodes. update Geometry.\n // (this is necessary when we move a node that is share between multiplde lines)\n // get a list of all links (excluding editorLinks) that contain the selected node\n const editorNodesList = new Set(state.editorNodes.features.map(item => item.properties.index))\n // get list of link with a node A modifieed\n const linksA = state.links.features.filter(\n link => link.properties.trip_id !== state.editorTrip).filter(\n item => editorNodesList.has(item.properties.a))\n // apply new node geometry\n linksA.forEach(link => link.geometry.coordinates = [\n state.editorNodes.features.filter(node => node.properties.index === link.properties.a)[0].geometry.coordinates,\n ...link.geometry.coordinates.slice(1),\n ])\n // same for nodes b\n const linksB = state.links.features.filter(\n link => link.properties.trip_id !== state.editorTrip).filter(\n item => editorNodesList.has(item.properties.b))\n linksB.forEach(link => link.geometry.coordinates = [\n ...link.geometry.coordinates.slice(0, -1),\n state.editorNodes.features.filter(node => node.properties.index === link.properties.b)[0].geometry.coordinates,\n ])\n\n state.newLink = {}\n state.newNode = {}\n\n this.commit('applyPropertiesTypes')\n\n // get tripId list\n this.commit('getTripId')\n this.commit('getLinksProperties')\n },\n\n deleteTrip (state, payload) {\n // payload = a single trip_id or a list or trips_id\n // if its a list : delete all of them. else: delete single trip\n if (typeof payload === 'object') {\n state.links.features = state.links.features.filter(link => !payload.includes(link.properties.trip_id))\n } else {\n state.links.features = state.links.features.filter(link => link.properties.trip_id !== payload)\n }\n // delete every every nodes not in links\n this.commit('deleteUnusedNodes')\n // get tripId list\n this.commit('getTripId')\n },\n applyPropertiesTypes (state) {\n state.defaultAttributes.forEach(attr => {\n if (attr.type === 'String') {\n state.links.features.forEach(link => link.properties[attr.name] = String(link.properties[attr.name]))\n } else if (attr.type === 'Number') {\n state.links.features.forEach(link => link.properties[attr.name] = Number(link.properties[attr.name]))\n }\n })\n },\n },\n\n getters: {\n links: (state) => state.links,\n nodes: (state) => state.nodes,\n linkSpeed: (state) => state.linkSpeed,\n linksIsEmpty: (state) => state.links.features.length === 0,\n route_id: (state) => state.route_id,\n editorTrip: (state) => state.editorTrip,\n editorLinks: (state) => state.editorLinks,\n editorNodes: (state) => state.editorNodes,\n tripId: (state) => state.tripId,\n selectedTrips: (state) => state.selectedTrips,\n editorLineInfo: (state) => state.editorLineInfo,\n newLink: (state) => state.newLink,\n newNode: (state) => state.newNode,\n firstNodeId: (state) => state.editorNodes.features.length > 1\n ? state.editorLinks.features[0].properties.a\n : state.editorNodes.features[0].properties.index,\n lastNodeId: (state) => state.editorNodes.features.length > 1\n ? state.editorLinks.features.slice(-1)[0].properties.b\n : state.editorNodes.features[0].properties.index,\n firstNode: (state, getters) => state.editorTrip\n ? state.editorNodes.features.filter(\n (node) => node.properties.index === getters.firstNodeId)[0]\n : null,\n lastNode: (state, getters) => state.editorTrip\n ? state.editorNodes.features.filter(\n (node) => node.properties.index === getters.lastNodeId)[0]\n : null,\n lineAttributes: (state) => state.lineAttributes.sort(),\n nodeAttributes: (state) => state.nodeAttributes,\n changeBounds: (state) => state.changeBounds,\n nodesHeader: (state) => state.nodesHeader,\n linksHeader: (state) => state.linksHeader,\n anchorNodes: (state) => {\n const nodes = structuredClone(state.nodesHeader)\n state.editorLinks.features.filter(link => link.geometry.coordinates.length > 2).forEach(\n feature => {\n const linkIndex = feature.properties.index\n feature.geometry.coordinates.slice(1, -1).forEach(\n (point, idx) => nodes.features.push({\n properties: { index: short.generate(), linkIndex: linkIndex, coordinatedIndex: idx + 1 },\n geometry: { coordinates: point, type: 'Point' },\n }),\n )\n },\n )\n\n return nodes\n },\n // this return the attribute type, of undefined.\n attributeType: (state) => (name) => state.defaultAttributes.filter(attr => attr.name === name)[0]?.type,\n defaultAttributesNames: (state) => state.defaultAttributes.map(attr => attr.name),\n },\n}\n","/* eslint-disable no-case-declarations */\n/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\nimport length from '@turf/length'\nimport nearestPointOnLine from '@turf/nearest-point-on-line'\nimport booleanContains from '@turf/boolean-contains'\nimport booleanCrosses from '@turf/boolean-crosses'\nimport Linestring from 'turf-linestring'\nimport Point from 'turf-point'\nimport bearing from '@turf/bearing'\nimport { serializer } from '@comp/utils/serializer.js'\nimport { IndexAreDifferent } from '@comp/utils/utils.js'\n\nconst $gettext = s => s\n\nconst short = require('short-uuid')\n\nexport default {\n state: {\n rlinks: {},\n rnodes: {},\n rlinksHeader: {},\n rnodesHeader: {},\n selectedrFilter: '',\n selectedrGroup: [],\n filteredrCategory: [],\n rlineAttributes: [],\n rnodeAttributes: [],\n newrNode: {},\n visiblerLinks: {},\n renderedrLinks: {},\n visiblerNodes: {},\n renderedrNodes: {},\n connectedLinks: [],\n defaultHighway: 'quenedi',\n roadSpeed: 20,\n rlinksDefaultColor: '2196F3',\n // those are the list of attributes we do not want to duplicated with _r.\n rcstAttributes: ['a', 'b', 'index', 'length', 'route_color', 'oneway', 'route_width', 'highway', 'cycleway', 'cycleway_reverse', 'incline'],\n rundeletable: ['index', 'a', 'b', 'length', 'route_color', 'oneway', 'time', 'speed', 'time_r', 'speed_r'],\n reversedAttributes: [],\n },\n\n mutations: {\n loadrLinks (state, payload) {\n state.rlinks = structuredClone(payload)\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.rlinks.crs.properties.name)) {\n const rlinksHeader = { ...state.rlinks }\n rlinksHeader.features = []\n state.rlinksHeader = rlinksHeader\n state.visiblerLinks = structuredClone(rlinksHeader)\n state.renderedrLinks = structuredClone(rlinksHeader)\n // limit geometry precision to 6 digit\n state.rlinks.features.forEach(link => link.geometry.coordinates = link.geometry.coordinates.map(\n points => points.map(coord => Math.round(Number(coord) * 1000000) / 1000000)))\n state.filteredrCategory = []\n state.selectedrGroup = []\n this.commit('getrLinksProperties')\n this.commit('splitOneway')\n // set all trips visible\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n loadrNodes (state, payload) {\n state.rnodes = JSON.parse(JSON.stringify(payload))\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.rnodes.crs.properties.name)) {\n const rnodesHeader = { ...state.rnodes }\n rnodesHeader.features = []\n state.rnodesHeader = rnodesHeader\n state.visiblerNodes = structuredClone(rnodesHeader)\n state.renderedrNodes = structuredClone(rnodesHeader)\n // limit geometry precision to 6 digit\n state.rnodes.features.forEach(node => node.geometry.coordinates = node.geometry.coordinates.map(\n coord => Math.round(Number(coord) * 1000000) / 1000000))\n\n this.commit('getrNodesProperties')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n loadRoadFiles (state, payload) {\n // payload = [{path,content},...]\n // get rlinks. check that index are not duplicated, serialize them and then append to project\n // get rnodes. check that index are not duplicated, serialize them and then append to project\n\n for (const file of payload) {\n const currentType = file.content.features[0].geometry.type\n if (currentType === 'LineString') {\n if (IndexAreDifferent(file.content, state.rlinks)) {\n this.commit('appendNewrLinks', serializer(file.content, file.path, currentType))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n } else if (currentType === 'Point') {\n if (IndexAreDifferent(file.content, state.rnodes)) {\n this.commit('appendNewrNodes', serializer(file.content, file.path, currentType))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n }\n }\n },\n\n appendNewrLinks (state, payload) {\n // append new links and node to the project (import page)\n payload.features.forEach(link => link.geometry.coordinates = link.geometry.coordinates.map(\n points => points.map(coord => Math.round(Number(coord) * 1000000) / 1000000)))\n\n payload.features.forEach(link => state.rlinks.features.push(link))\n this.commit('getrLinksProperties')\n this.commit('splitOneway')\n this.commit('getFilteredrCat')\n },\n\n appendNewrNodes (state, payload) {\n // append new links and node to the project (import page)\n payload.features.forEach(node => node.geometry.coordinates = node.geometry.coordinates.map(\n coord => Math.round(Number(coord) * 1000000) / 1000000))\n\n payload.features.forEach(node => state.rnodes.features.push(node))\n this.commit('splitOneway')\n this.commit('getrNodesProperties')\n },\n\n getrLinksProperties (state) {\n let header = new Set([])\n state.rlinks.features.forEach(element => {\n Object.keys(element.properties).forEach(key => { if (!key.endsWith('_r')) header.add(key) })\n })\n // header.delete('index')\n // add all default attributes\n const defaultAttributes = [\n 'index', 'a', 'b', 'route_color']\n defaultAttributes.forEach(att => header.add(att))\n header = Array.from(header)\n state.rlineAttributes = header\n if (header.includes('highway')) {\n state.selectedrFilter = 'highway'\n } else {\n state.selectedrFilter = header[0]\n }\n },\n getrNodesProperties (state) {\n let header = new Set([])\n state.rnodes.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n // add all default attributes\n const defaultAttributes = ['index']\n defaultAttributes.forEach(att => header.add(att))\n header = Array.from(header)\n state.rnodeAttributes = header\n },\n addRoadPropertie (state, payload) {\n // when a new line properties is added (in dataframe page)\n if (payload.table === 'rlinks') {\n state.rlinks.features.map(link => link.properties[payload.name] = null)\n state.visiblerLinks.features.map(link => link.properties[payload.name] = null)\n state.rlineAttributes.push(payload.name) // could put that at applied. so we can cancel\n // add reverse attribute if its not one we dont want to duplicated (ex: route_width)\n if (!state.rcstAttributes.includes(payload.name)) {\n state.reversedAttributes.push(payload.name + '_r')\n }\n } else {\n state.rnodes.features.map(node => node.properties[payload.name] = null)\n state.visiblerNodes.features.map(node => node.properties[payload.name] = null)\n state.rnodeAttributes.push(payload.name)\n }\n },\n deleteRoadPropertie (state, payload) {\n if (payload.table === 'rlinks') {\n state.rlinks.features.filter(link => delete link.properties[payload.name])\n state.rlinks.features.filter(link => delete link.properties[payload.name + '_r'])\n state.visiblerLinks.features.filter(link => delete link.properties[payload.name])\n state.visiblerLinks.features.filter(link => delete link.properties[payload.name + '_r'])\n\n state.rlineAttributes = state.rlineAttributes.filter(item => item !== payload.name)\n state.reversedAttributes = state.reversedAttributes.filter(item => item !== payload.name + '_r')\n } else {\n state.rnodes.features.filter(node => delete node.properties[payload.name])\n state.visiblerNodes.features.filter(node => delete node.properties[payload.name])\n }\n },\n\n changeSelectedrFilter (state, payload) {\n state.selectedrFilter = payload\n this.commit('getFilteredrCat')\n },\n getFilteredrCat (state) {\n // for a given filter (key) get array of unique value\n // e.g. get ['bus','subway'] for route_type\n const val = Array.from(new Set(state.rlinks.features.map(\n item => item.properties[state.selectedrFilter])))\n state.filteredrCategory = val\n },\n splitOneway (state) {\n if (state.rlineAttributes.includes('oneway')) {\n state.rlinks.features.forEach(link => {\n if ([true, 'true', '1', 1].includes(link.properties.oneway)) {\n link.properties.oneway = '1'\n } else {\n link.properties.oneway = '0'\n }\n })\n // const oneways = state.rlinks.features.filter(link => !link.properties.oneway)\n state.reversedAttributes = state.rlineAttributes.filter(\n attr => !state.rcstAttributes.includes(attr)).map(\n attr => attr + '_r')\n state.rlinks.features.forEach(link => {\n if (link.properties.oneway === '0') {\n state.reversedAttributes.forEach(attr => {\n if (!link.properties[attr]) link.properties[attr] = link.properties[attr.slice(0, -2)]\n })\n }\n },\n )\n }\n },\n\n changeVisibleRoads (state, payload) {\n // trips list of visible trip_id.\n const method = payload.method\n const data = payload.data\n const cat = payload.category\n state.selectedrFilter = cat\n let tempLinks = null\n switch (method) {\n case 'showAll':\n state.selectedrGroup = data\n // need to slice. so it doest change if we append to rlinks.\n state.visiblerLinks.features = state.rlinks.features.slice()\n break\n case 'hideAll':\n state.selectedrGroup = data\n state.visiblerLinks.features = []\n break\n case 'add':\n if (!state.selectedrGroup.includes(data[0])) {\n state.selectedrGroup.push(data[0])\n }\n tempLinks = state.rlinks.features.filter(\n link => link.properties[cat] === data[0])\n // state.visiblerLinks.features.push(...tempLinks) will crash with large array (stack size limit)\n tempLinks.forEach(link => state.visiblerLinks.features.push(link))\n break\n case 'remove':\n state.selectedrGroup = state.selectedrGroup.filter(el => el !== data[0])\n tempLinks = new Set(state.visiblerLinks.features.filter(\n link => link.properties[cat] === data[0]))\n state.visiblerLinks.features = state.visiblerLinks.features.filter(link => !tempLinks.has(link))\n break\n }\n this.commit('getVisiblerNodes', { method: method })\n },\n\n refreshVisibleRoads (state) {\n const group = new Set(state.selectedrGroup)\n const cat = state.selectedrFilter\n state.visiblerLinks.features = state.rlinks.features.filter(link => group.has(link.properties[cat]))\n this.commit('getVisiblerNodes', { method: 'add' })\n // when we rename a group (highway => test), are rename many group.\n // remove nonexistant group in the selected group.\n const possibleGroups = new Set(state.visiblerLinks.features.map(\n item => item.properties[cat]))\n state.selectedrGroup = [...possibleGroups].filter(x => group.has(x))\n },\n getVisiblerNodes (state, payload) {\n // payload contain nodes. state.nodes or state.editorNodes\n // find the nodes in the editor links\n let a = []\n let b = []\n let rNodesList = []\n switch (payload.method) {\n case 'showAll':\n state.visiblerNodes.features = state.rnodes.features\n break\n case 'hideAll':\n state.visiblerNodes.features = []\n break\n case 'add':\n // cannot simply remove the nodes from the deleted links. they can be used by others visibles links\n a = state.visiblerLinks.features.map(item => item.properties.a)\n b = state.visiblerLinks.features.map(item => item.properties.b)\n rNodesList = new Set([...a, ...b])\n // use rnodes as they are new to visiblerNodes\n state.visiblerNodes.features = state.rnodes.features.filter(\n node => rNodesList.has(node.properties.index))\n break\n case 'remove' :\n // cannot simply remove the nodes from the deleted links. they can be used by others visibles links\n a = state.visiblerLinks.features.map(item => item.properties.a)\n b = state.visiblerLinks.features.map(item => item.properties.b)\n rNodesList = new Set([...a, ...b])\n // use visibleRnodes, as they are already inside of it.\n state.visiblerNodes.features = state.visiblerNodes.features.filter(\n node => rNodesList.has(node.properties.index))\n break\n // case 'refresh'\n }\n },\n getRenderedrLinks (state, payload) {\n state.renderedrLinks.features = state.visiblerLinks.features.filter(\n link => (booleanContains(payload.bbox, link) || booleanCrosses(payload.bbox, link)))\n this.commit('getRenderedrNodes')\n },\n getRenderedrNodes (state) { // get rendered nodes\n const a = state.renderedrLinks.features.map(item => item.properties.a)\n const b = state.renderedrLinks.features.map(item => item.properties.b)\n const rNodesList = new Set([...a, ...b])\n // filter with rnodesList\n state.renderedrNodes.features = state.visiblerNodes.features.filter(node => rNodesList.has(node.properties.index))\n },\n setRenderedrLinks (state, payload) {\n if (payload.method === 'visible') {\n state.renderedrLinks.features = state.visiblerLinks.features\n state.renderedrNodes.features = []\n } else {\n state.renderedrLinks.features = []\n state.renderedrNodes.features = []\n }\n },\n\n editrLinkInfo (state, payload) {\n // get selected link in editorLinks and modify the changes attributes.\n const { selectedLinkId, info } = payload\n for (let i = 0; i < selectedLinkId.length; i++) {\n const props = Object.keys(info[i])\n const link = state.renderedrLinks.features.filter((link) => link.properties.index === selectedLinkId[i])[0]\n // if we change a one way to a 2 way, copy one way properties to the reverse one.\n if ((info[i].oneway?.value !== link.properties.oneway) && (info[i].oneway?.value === '0')) {\n state.reversedAttributes.forEach(\n (rkey) => link.properties[rkey] = info[i][rkey.slice(0, -2)].value)\n } else if ((info[i].oneway?.value !== link.properties.oneway) && (info[i].oneway?.value === '1')) {\n state.reversedAttributes.forEach(\n (rkey) => delete link.properties[rkey])\n }\n // applied all properties.\n props.forEach((key) => link.properties[key] = info[i][key].value)\n }\n },\n\n editrNodeInfo (state, payload) {\n // get selected node in editorNodes and modify the changes attributes.\n const { selectedNodeId, info } = payload\n const props = Object.keys(info)\n state.rnodes.features.filter(\n // eslint-disable-next-line array-callback-return\n function (node) {\n if (node.properties.index === selectedNodeId) {\n props.forEach((key) => node.properties[key] = info[key].value)\n }\n },\n )\n },\n\n createNewrNode (state, payload) {\n const newNode = structuredClone(state.rnodesHeader)\n const nodeProperties = {}\n state.rnodeAttributes.forEach(key => {\n nodeProperties[key] = null\n })\n nodeProperties.index = 'rnode_' + short.generate()\n const nodeGeometry = {\n coordinates: payload,\n type: 'Point',\n }\n // Copy specified node\n const nodeFeatures = { geometry: nodeGeometry, properties: nodeProperties, type: 'Feature' }\n newNode.features = [nodeFeatures]\n state.newrNode = newNode\n },\n splitrLink (state, payload) {\n // changing link1 change editorLinks as it is an observer.\n const link1 = payload.selectedFeature\n const link2 = structuredClone(link1)\n // distance du point (entre 0 et 1) sur le lien original\n const ratio = payload.offset\n\n link1.properties.b = state.newrNode.features[0].properties.index\n link1.geometry.coordinates = [\n ...link1.geometry.coordinates.slice(0, payload.sliceIndex),\n state.newrNode.features[0].geometry.coordinates,\n ]\n\n link1.properties.index = 'link_' + short.generate() // link1.properties.index+ '-1'\n link1.properties.length = link1.properties.length * ratio\n link1.properties.time = link1.properties.time * ratio\n if (link1.properties.length_r) link1.properties.length_r = link1.properties.length\n if (link1.properties.time_r) link1.properties.time_r = link1.properties.time\n\n link2.properties.a = state.newrNode.features[0].properties.index\n link2.geometry.coordinates = [\n state.newrNode.features[0].geometry.coordinates,\n ...link2.geometry.coordinates.slice(payload.sliceIndex),\n ]\n link2.properties.index = 'rlink_' + short.generate() // link2.properties.index+ '-2'\n link2.properties.length = link2.properties.length * (1 - ratio)\n link2.properties.time = link2.properties.time * (1 - ratio)\n if (link2.properties.length_r) link2.properties.length_r = link2.properties.length\n if (link2.properties.time_r) link2.properties.time_r = link2.properties.time\n\n state.visiblerLinks.features.push(link2)\n state.renderedrLinks.features.push(link2)\n // update actual rlinks and rnodes\n state.rlinks.features.filter((link) => link.properties.index === link1.properties.index)[0] = link1\n state.rlinks.features.push(link2)\n },\n\n addRoadNodeInline (state, payload) {\n // selectedLink : list of links index\n // lngLat : object wit click geometry\n // nodes : str. name of node to add (rnode, anchorrNodeS)\n const selectedFeatures = state.renderedrLinks.features\n .filter((link) => payload.selectedIndex.includes(link.properties.index))\n // for loop. for each selectedc links add the node and split.\n for (let i = 0; i < selectedFeatures.length; i++) {\n const linkGeom = Linestring(selectedFeatures[i].geometry.coordinates)\n const clickedPoint = Point(Object.values(payload.lngLat))\n const snapped = nearestPointOnLine(linkGeom, clickedPoint, { units: 'kilometers' })\n const dist = length(linkGeom, { units: 'kilometers' }) // dist\n // for multiString, gives the index of the closest one, add +1 for the slice.\n const sliceIndex = snapped.properties.index + 1\n const offset = snapped.properties.location / dist\n if (payload.nodes === 'rnodes') {\n // only add one node, takes the first one.\n if (i === 0) {\n this.commit('createNewrNode', snapped.geometry.coordinates)\n state.rnodes.features.push(state.newrNode.features[0])\n state.visiblerNodes.features.push(state.newrNode.features[0])\n state.renderedrNodes.features.push(state.newrNode.features[0])\n }\n this.commit('splitrLink', { selectedFeature: selectedFeatures[i], offset: offset, sliceIndex: sliceIndex })\n\n // Anchor Nodes\n } else {\n this.commit('addAnchorrNode', {\n selectedLink: selectedFeatures[i],\n coordinates: snapped.geometry.coordinates,\n sliceIndex: sliceIndex,\n })\n }\n }\n },\n addAnchorrNode (state, payload) {\n const linkIndex = payload.selectedLink.properties.index\n const featureIndex = state.renderedrLinks.features.findIndex(link => link.properties.index === linkIndex)\n // changing link change visible rLinks as it is an observer.\n const link = state.renderedrLinks.features[featureIndex]\n link.geometry.coordinates.splice(payload.sliceIndex, 0, payload.coordinates)\n },\n createrLink (state, payload) {\n // nodeIdA: node id, nodeIdB: node id, geom: array geom where we clicked, layerId: str. the layer id rnodes, rlinks\n // 3 cases.\n // 1) click on the map. create a node b then connect.\n // 2) click on a node. create a link between node a and b\n // 3) click on a link. create node inline b then create link a to b.\n // create a node if we click on the map (case 1)\n if (!payload.nodeIdB) {\n this.commit('createNewrNode', payload.geom)\n state.visiblerNodes.features.push(state.newrNode.features[0])\n state.renderedrNodes.features.push(state.newrNode.features[0])\n state.rnodes.features.push(state.newrNode.features[0])\n payload.nodeIdB = state.newrNode.features[0].properties.index\n } else if (payload.layerId === 'rlinks') {\n // create a node inline and then the new link\n this.commit('addRoadNodeInline', { selectedIndex: payload.nodeIdB, lngLat: payload.geom, nodes: 'rnodes' })\n payload.nodeIdB = state.newrNode.features[0].properties.index\n }\n const rnodeA = state.visiblerNodes.features.filter(node => node.properties.index === payload.nodeIdA)[0]\n const rnodeB = state.visiblerNodes.features.filter(node => node.properties.index === payload.nodeIdB)[0]\n\n const linkGeometry = {\n coordinates: [rnodeA.geometry.coordinates, rnodeB.geometry.coordinates],\n type: 'LineString',\n }\n\n const linkProperties = {}\n // set default links values\n state.rlineAttributes.forEach((key) => linkProperties[key] = null)\n linkProperties.index = 'rlink_' + short.generate()\n linkProperties.a = payload.nodeIdA\n linkProperties.b = payload.nodeIdB\n linkProperties.highway = state.defaultHighway // quenedi\n linkProperties.route_color = state.rlinksDefaultColor\n // add length, speed, time now that we have a geometry.\n const distance = length(linkGeometry)\n const time = distance / state.roadSpeed * 3600 // 20kmh hard code speed. time in secs\n linkProperties.length = Number((distance * 1000).toFixed(0)) // metres\n linkProperties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n linkProperties.speed = Number(state.roadSpeed) // rounded to 0 decimals\n if (state.rlineAttributes.includes('oneway')) {\n linkProperties.oneway = '0'\n state.reversedAttributes.forEach(\n (rkey) => linkProperties[rkey] = linkProperties[rkey.slice(0, -2)])\n }\n\n const linkFeature = { geometry: linkGeometry, properties: linkProperties, type: 'Feature' }\n state.rlinks.features.push(linkFeature)\n\n // add newly generated group (i.e. highway == quenedi), to visibles checked groups.\n const newLinkGroup = linkProperties[state.selectedrFilter]\n if (!state.filteredrCategory.includes(newLinkGroup)) {\n state.filteredrCategory.push(newLinkGroup)\n }\n if (!state.selectedrGroup.includes(newLinkGroup)) {\n // if its not already selected, push it.\n state.visiblerLinks.features.push(linkFeature)\n state.renderedrLinks.features.push(linkFeature)\n state.selectedrGroup.push(newLinkGroup)\n } else {\n state.visiblerLinks.features.push(linkFeature)\n state.renderedrLinks.features.push(linkFeature)\n }\n },\n\n getConnectedLinks (state, payload) {\n const nodeIndex = payload.selectedNode.properties.index\n // get links connected to the node\n // use rLinks as we could moidified links that are not visible moving a node.\n state.connectedLinks = {\n b: state.rlinks.features.filter(link => link.properties.b === nodeIndex),\n a: state.rlinks.features.filter(link => link.properties.a === nodeIndex),\n }\n },\n moverNode (state, payload) {\n const nodeIndex = payload.selectedNode.properties.index\n // remove node\n const newNode = state.renderedrNodes.features.filter(node => node.properties.index === nodeIndex)[0]\n newNode.geometry.coordinates = payload.lngLat\n\n // changing links\n\n // update links geometry. check if exist first (if we take the first|last node there is only 1 link)\n state.connectedLinks.b.forEach(link => {\n // note: props are unchanged. even tho the length change, the time and length are unchanged.\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, -1), payload.lngLat]\n // update time and distance\n const distance = length(link)\n link.properties.length = Number((distance * 1000).toFixed(0)) // metres\n // const time = distance / state.roadSpeed * 3600 // 20kmh hard code speed. time in secs\n const time = distance / link.properties.speed * 3600\n link.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n // add reverse direction time and length if it exist on the link\n if (link.properties.time_r) {\n const rtime = distance / link.properties.speed_r * 3600\n link.properties.time_r = Number(rtime.toFixed(0)) // rounded to 0 decimals\n }\n if (link.properties.length_r) link.properties.length_r = link.properties.length\n })\n state.connectedLinks.a.forEach(link => {\n link.geometry.coordinates = [payload.lngLat, ...link.geometry.coordinates.slice(1)]\n // update time and distance\n const distance = length(link)\n link.properties.length = Number((distance * 1000).toFixed(0)) // metres\n // const time = distance / state.roadSpeed * 3600 // 20kmh hard code speed. time in secs\n const time = distance / link.properties.speed * 3600\n link.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n // add reverse direction time and length if it exist on the link\n if (link.properties.time_r) {\n const rtime = distance / link.properties.speed_r * 3600\n link.properties.time_r = Number(rtime.toFixed(0)) // rounded to 0 decimals\n }\n if (link.properties.length_r) link.properties.length_r = link.properties.length\n })\n },\n moverAnchor (state, payload) {\n const linkIndex = payload.selectedNode.properties.linkIndex\n const coordinatedIndex = payload.selectedNode.properties.coordinatedIndex\n const link = state.renderedrLinks.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n payload.lngLat,\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n\n // update time and distance\n const distance = length(link)\n link.properties.length = Number((distance * 1000).toFixed(0)) // metres\n const time = distance / state.roadSpeed * 3600 // 20kmh hard code speed. time in secs\n link.properties.time = Number(time.toFixed(0)) // rounded to 0 decimals\n },\n deleteAnchorrNode (state, payload) {\n const linkIndex = payload.selectedNode.linkIndex\n const coordinatedIndex = payload.selectedNode.coordinatedIndex\n const link = state.renderedrLinks.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n },\n deleterLink (state, payload) {\n const linkArr = new Set(payload.selectedIndex)\n state.rlinks.features = state.rlinks.features.filter(link => !linkArr.has(link.properties.index))\n state.visiblerLinks.features = state.visiblerLinks.features.filter(link => !linkArr.has(link.properties.index))\n state.renderedrLinks.features = state.renderedrLinks.features.filter(link => !linkArr.has(link.properties.index))\n this.commit('deleteUnusedrNodes')\n this.commit('getVisiblerNodes', { method: 'remove' })\n this.commit('getRenderedrNodes')\n this.commit('getFilteredrCat')\n },\n deleterGroup (state, payload) {\n const group = payload\n const cat = state.selectedrFilter\n state.rlinks.features = state.rlinks.features.filter(link => link.properties[cat] !== group)\n this.commit('refreshVisibleRoads')\n this.commit('deleteUnusedrNodes')\n this.commit('getFilteredrCat')\n },\n deleteUnusedrNodes (state) {\n // delete every every nodes not in links\n const a = state.rlinks.features.map(item => item.properties.a)\n const b = state.rlinks.features.map(item => item.properties.b)\n const nodesInLinks = new Set([...a, ...b])\n state.rnodes.features = state.rnodes.features.filter(node => nodesInLinks.has(node.properties.index))\n },\n\n editrGroupInfo (state, payload) {\n // edit line info on multiple trips at once.\n const groupInfo = payload.info\n const selectedLinks = payload.selectedLinks // observer of state.links\n // get only keys that are not unmodified multipled Values (value=='' and placeholder==true)\n const props = Object.keys(groupInfo).filter(key =>\n ((groupInfo[key].value !== '') || !groupInfo[key].placeholder))\n\n // if we change everything to 2 way. init links thats were one way with thoses values (ex:speed_r = speed)\n if (groupInfo.oneway?.value === '0') {\n const linksToSplit = selectedLinks.filter(link => link.properties.oneway === '1')\n linksToSplit.forEach(link => {\n state.reversedAttributes.forEach(\n (rkey) => link.properties[rkey] = link.properties[rkey.slice(0, -2)])\n })\n // delete reverse attribute for links going from 2 ways to one way\n } else if (groupInfo.oneway?.value === '1') {\n const linksToSplit = selectedLinks.filter(link => link.properties.oneway === '0')\n linksToSplit.forEach(link => {\n state.reversedAttributes.forEach(\n (rkey) => delete link.properties[rkey])\n })\n }\n\n // this is an oberver. modification will be applied to state.links.\n selectedLinks.forEach(\n (features) => props.forEach((key) => features.properties[key] = groupInfo[key].value))\n // apply the group modification to the reverse links too (ex: speed = 10 and speed_r = 10)\n if (state.rlineAttributes.includes('oneway')) {\n const reversedProps = state.reversedAttributes.filter(rkey => props.includes(rkey.slice(0, -2)))\n selectedLinks.filter(link => link.properties.oneway === '0').forEach(\n (features) => reversedProps.forEach((rkey) => features.properties[rkey] = groupInfo[rkey.slice(0, -2)].value),\n )\n }\n this.commit('refreshVisibleRoads')\n this.commit('getFilteredrCat')\n },\n\n },\n\n getters: {\n rlinks: (state) => state.rlinks,\n rnodes: (state) => state.rnodes,\n roadSpeed: (state) => state.roadSpeed,\n rlinksHeader: (state) => state.rlinksHeader,\n rnodesHeader: (state) => state.rnodesHeader,\n rlineAttributes: (state) => state.rlineAttributes.sort(),\n selectedrGroup: (state) => state.selectedrGroup,\n selectedrFilter: (state) => state.selectedrFilter,\n filteredrCategory: (state) => state.filteredrCategory,\n visiblerLinks: (state) => state.visiblerLinks,\n renderedrLinks: (state) => state.renderedrLinks,\n renderedrNodes: (state) => state.renderedrNodes,\n visiblerNodes: (state) => state.visiblerNodes,\n defaultHighway: (state) => state.defaultHighway,\n rlinksIsEmpty: (state) => state.rlinks.features.length === 0,\n rcstAttributes: (state) => state.rcstAttributes,\n newrNode: (state) => state.newrNode,\n rundeletable: (state) => state.rundeletable,\n hasCycleway: (state) => state.rlineAttributes.includes('cycleway'),\n\n anchorrNodes: (state) => {\n const nodes = structuredClone(state.rnodesHeader)\n state.renderedrLinks.features.filter(link => link.geometry.coordinates.length > 2).forEach(\n feature => {\n const linkIndex = feature.properties.index\n feature.geometry.coordinates.slice(1, -1).forEach(\n (point, idx) => nodes.features.push(Point(\n point,\n { index: short.generate(), linkIndex: linkIndex, coordinatedIndex: idx + 1 },\n ),\n ),\n\n )\n },\n )\n\n return nodes\n },\n rlinkDirection: (state) => (indexList, reversed = false) => {\n const links = state.rlinks.features.filter(link => indexList.includes(link.properties.index))\n const res = []\n links.forEach(link => {\n const geom = link.geometry.coordinates\n if (reversed) {\n res.push(bearing(geom[geom.length - 1], geom[0]))\n } else {\n res.push(bearing(geom[0], geom[geom.length - 1]))\n }\n })\n return res\n },\n grouprLinks: (state) => (category, group) => {\n return state.rlinks.features.filter(link => group === link.properties[category])\n },\n onewayIndex: (state) => {\n return new Set(state.rlinks.features.filter(\n link => link.properties.oneway === '0').map(\n link => link.properties.index))\n },\n rlinksForm: (state) => (linkIndex) => {\n const uneditable = ['a', 'b', 'index']\n const editorForm = state.visiblerLinks.features.filter(\n (link) => link.properties.index === linkIndex)[0].properties\n\n // filter properties to only the one that are editable.\n const form = {}\n state.rlineAttributes.forEach(key => {\n form[key] = {\n value: editorForm[key],\n disabled: uneditable.includes(key),\n placeholder: false,\n }\n })\n return form\n },\n reversedrLinksForm: (state) => (linkIndex) => {\n const uneditable = ['a', 'b', 'index']\n const editorForm = state.visiblerLinks.features.filter(\n (link) => link.properties.index === linkIndex)[0].properties\n\n // filter properties to only the one that are editable.\n const form = {}\n state.reversedAttributes.forEach(key => {\n form[key] = {\n value: editorForm[key],\n disabled: uneditable.includes(key),\n placeholder: false,\n }\n })\n return form\n },\n },\n}\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\nimport Point from 'turf-point'\nimport { serializer } from '@comp/utils/serializer.js'\nimport { IndexAreDifferent } from '@comp/utils/utils.js'\nconst short = require('short-uuid')\nconst $gettext = s => s\n\nexport default {\n namespaced: true,\n state: {\n layer: {},\n visibleLayer: {},\n layerHeader: {}, // empty geojson\n layerAttributes: [], // all the available attributes (columns in pandas)\n filteredCategory: [], // all possible category (to be in selectedCat)\n selectedFilter: '', // ex: highway\n selectedCategory: [], // ex: [motorway, residential] visible one.\n\n },\n\n mutations: {\n loadLayer (state, payload) {\n state.layer = structuredClone(payload)\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.layer.crs.properties.name)) {\n const layerHeader = { ...state.layer }\n layerHeader.features = []\n state.layerHeader = layerHeader\n state.visibleLayer = structuredClone(layerHeader)\n // set all trips visible\n // this.commit('results/changeSelectedTrips', state.tripId)\n this.commit('od/getProperties')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n loadODFiles (state, payload) {\n // payload = [{path,content},...]\n for (const file of payload) {\n if (IndexAreDifferent(file.content, state.layer)) {\n this.commit('od/appendNewOD', serializer(file.content, file.path, 'LineString'))\n } else {\n const err = new Error($gettext(' there is duplicated index, ') + file.path)\n err.name = 'ImportError'\n throw err\n }\n }\n },\n\n appendNewOD (state, payload) {\n // append new links and node to the project (import page)\n function getFirstAndLast (arr) {\n return [arr[0], arr[arr.length - 1]]\n }\n\n payload.features.forEach(link => link.geometry.coordinates = getFirstAndLast(link.geometry.coordinates))\n\n payload.features.forEach(link => state.layer.features.push(link))\n this.commit('od/getProperties')\n this.commit('od/getFilteredCategory')\n this.commit('od/refreshVisibleLayer')\n },\n\n changeSelectedFilter (state, payload) {\n state.selectedFilter = payload\n this.commit('od/refreshVisibleLayer')\n this.commit('od/getFilteredCategory')\n },\n changeSelectedCategory (state, payload) {\n state.selectedCategory = payload\n this.commit('od/refreshVisibleLayer')\n },\n\n getProperties (state) {\n const header = new Set([])\n state.layer.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n // add all default attributes\n const defaultAttributes = [\n 'index', 'name']\n defaultAttributes.forEach(att => header.add(att))\n state.layerAttributes = Array.from(header)\n state.selectedFilter = state.layerAttributes[0]\n state.selectedCategory = Array.from(new Set(state.layer.features.map(\n item => item.properties[state.selectedFilter])))\n },\n\n refreshVisibleLayer (state) {\n const group = new Set(state.selectedCategory)\n const cat = state.selectedFilter\n state.visibleLayer.features = state.layer.features.filter(link => group.has(link.properties[cat]))\n },\n getFilteredCategory (state) {\n // for a given filter (key) get array of unique value\n // e.g. get ['bus','subway'] for route_type\n const val = Array.from(new Set(state.layer.features.map(\n item => item.properties[state.selectedFilter])))\n state.filteredCategory = val\n },\n\n // actions\n deleteOD (state, payload) {\n const linkArr = new Set(payload.selectedIndex)\n state.layer.features = state.layer.features.filter(link => !linkArr.has(link.properties.index))\n this.commit('od/refreshVisibleLayer')\n this.commit('od/getFilteredCategory')\n },\n\n deleteGroup (state, payload) {\n const group = payload\n const cat = state.selectedFilter\n state.layer.features = state.layer.features.filter(link => link.properties[cat] !== group)\n this.commit('od/refreshVisibleLayer')\n this.commit('od/getFilteredCategory')\n },\n\n moveNode (state, payload) {\n const linkIndex = payload.selectedFeature.properties.linkIndex\n const coordinatedIndex = payload.selectedFeature.properties.coordinatedIndex\n\n const link = state.visibleLayer.features.filter(feature => feature.properties.index === linkIndex)[0]\n link.geometry.coordinates = [...link.geometry.coordinates.slice(0, coordinatedIndex),\n payload.lngLat,\n ...link.geometry.coordinates.slice(coordinatedIndex + 1)]\n },\n\n createNewLink (state, payload) {\n const linkGeometry = {\n coordinates: [payload.lngLat, payload.lngLat],\n type: 'LineString',\n }\n\n const linkProperties = {}\n // set default links values\n state.layerAttributes.forEach((key) => linkProperties[key] = null)\n linkProperties.index = payload.index\n // linkProperties.route_color = state.rlinksDefaultColor\n const linkFeature = { geometry: linkGeometry, properties: linkProperties, type: 'Feature' }\n state.layer.features.push(linkFeature)\n\n this.commit('od/getFilteredCategory')\n // add newly create link to the visible\n const newCat = linkProperties[state.selectedFilter]\n const selectedCategorySet = new Set(state.selectedCategory)\n if (!selectedCategorySet.has(newCat)) {\n state.selectedCategory.push(newCat)\n }\n this.commit('od/refreshVisibleLayer')\n },\n\n editLinkInfo (state, payload) {\n // get selected node in editorNodes and modify the changes attributes.\n const { selectedLinkId, info } = payload\n const props = Object.keys(info)\n state.visibleLayer.features.filter(\n // eslint-disable-next-line array-callback-return\n function (link) {\n if (link.properties.index === selectedLinkId) {\n props.forEach((key) => link.properties[key] = info[key].value)\n }\n },\n )\n this.commit('od/getFilteredCategory')\n },\n\n editGroupInfo (state, payload) {\n // edit line info on multiple trips at once.\n const groupInfo = payload.info\n const selectedLinks = payload.selectedLinks // observer of state.links\n // get only keys that are not unmodified multipled Values (value=='' and placeholder==true)\n const props = Object.keys(groupInfo).filter(key =>\n ((groupInfo[key].value !== '') || !groupInfo[key].placeholder))\n // this is an oberver. modification will be applied to state.links.\n selectedLinks.forEach(\n (features) => props.forEach((key) => features.properties[key] = groupInfo[key].value))\n\n this.commit('od/getFilteredCategory')\n this.commit('od/refreshVisibleLayer')\n },\n addPropertie (state, payload) {\n // payload = name\n // when a new line properties is added (in dataframe page)\n state.layer.features.map(link => link.properties[payload] = null)\n state.visibleLayer.features.map(link => link.properties[payload] = null)\n state.layerAttributes.push(payload)\n },\n deletePropertie (state, payload) {\n // when a link property is deleted\n state.layer.features.filter(link => delete link.properties[payload.name])\n state.visibleLayer.features.filter(link => delete link.properties[payload.name])\n state.layerAttributes = state.layerAttributes.filter(item => item !== payload.name)\n },\n },\n\n getters: {\n layer: (state) => state.layer,\n visibleLayer: (state) => state.visibleLayer,\n layerIsEmpty: (state) => state.layer.features.length === 0,\n layerHeader: (state) => state.layerHeader,\n selectedTrips: (state) => state.selectedTrips,\n layerAttributes: (state) => state.layerAttributes.sort(),\n selectedFilter: (state) => state.selectedFilter,\n filteredCategory: (state) => state.filteredCategory,\n selectedCategory: (state) => state.selectedCategory,\n groupLayer: (state) => (category, group) => {\n return state.layer.features.filter(link => group === link.properties[category])\n },\n linkForm: (state) => (linkIndex) => {\n const uneditable = ['index']\n const editorForm = state.visibleLayer.features.filter(\n (link) => link.properties.index === linkIndex)[0].properties\n\n // filter properties to only the one that are editable.\n const form = {}\n state.layerAttributes.forEach(key => {\n form[key] = {\n value: editorForm[key],\n disabled: uneditable.includes(key),\n placeholder: false,\n }\n })\n return form\n },\n nodes: (state) => (layer) => {\n const nodes = structuredClone(state.layerHeader)\n layer.features.forEach(\n feature => {\n const Index = feature.properties.index\n feature.geometry.coordinates.forEach(\n (point, idx) => nodes.features.push(Point(\n point,\n { index: short.generate(), linkIndex: Index, coordinatedIndex: idx },\n ),\n ),\n\n )\n },\n )\n\n return nodes\n },\n\n },\n}\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\n\nimport chroma from 'chroma-js'\nconst seedrandom = require('seedrandom')\n\nfunction isHexColor (variable) {\n const hexRegex = /^#([0-9A-Fa-f]{3}){1,2}$/i\n return hexRegex.test(variable)\n}\nfunction remap (val, minVal, maxVal, reverse, scale, isWidth) {\n if (typeof (val) === 'string') {\n if (isWidth) {\n return 0\n } else {\n const rng = seedrandom(val)\n return rng()\n }\n }\n let res = val\n if (scale === 'log') {\n minVal = minVal > 0 ? Math.log10(minVal) : 0\n maxVal = maxVal > 0 ? Math.log10(maxVal) : 0\n res = val > 0 ? Math.log10(val) : 0\n } else if (scale === 'sqrt') {\n minVal = Math.sqrt(minVal)\n maxVal = Math.sqrt(maxVal)\n res = Math.sqrt(val)\n } else if (scale === 'exp') {\n // need to normalize first. 10**big number is not working\n minVal = minVal / maxVal\n val = val / maxVal\n maxVal = 1\n minVal = 10 ** (minVal)\n maxVal = 10 ** (maxVal)\n res = 10 ** (val)\n } else if (scale === 'quad') {\n // need to normalize first. 10**big number is not working\n minVal = (minVal) ** 2\n maxVal = (maxVal) ** 2\n res = (val) ** 2\n }\n\n if (reverse) {\n res = (-res + maxVal) / (maxVal - minVal)\n } else {\n res = (res - minVal) / (maxVal - minVal)\n }\n return res\n}\n\nconst defaultSettings = {\n selectedFeature: null,\n maxWidth: 10,\n minWidth: 1,\n numStep: 100,\n scale: 'linear', // 'log', 'sqrt'\n fixScale: false,\n minVal: 0, // option to blocked them. so its an input and its not recompute\n maxVal: 1,\n cmap: 'OrRd',\n opacity: 100,\n offset: false,\n showNaN: true,\n reverseColor: false,\n}\n\nexport default {\n namespaced: true,\n state: {\n type: 'links',\n links: {},\n visibleLinks: {},\n NaNLinks: {},\n linksHeader: {},\n lineAttributes: [],\n selectedFilter: '',\n selectedCategory: [],\n displaySettings: defaultSettings,\n\n },\n\n mutations: {\n unload (state) {\n state.type = 'links'\n state.links = {}\n state.visibleLinks = {}\n state.NaNLinks = {}\n state.linksHeader = {}\n state.lineAttributes = []\n state.selectedFilter = ''\n state.selectedCategory = []\n state.displaySettings = defaultSettings\n },\n loadLinks (state, payload) {\n state.links = payload.geojson\n state.type = payload.type\n if (['urn:ogc:def:crs:OGC:1.3:CRS84', 'EPSG:4326'].includes(state.links.crs.properties.name)) {\n const linksHeader = structuredClone(state.links)\n linksHeader.features = []\n state.linksHeader = linksHeader\n state.visibleLinks = structuredClone(linksHeader)\n state.NaNLinks = structuredClone(linksHeader)\n // set all trips visible\n this.commit('results/getLinksProperties')\n if (state.lineAttributes.includes(payload.selectedFeature)) {\n state.displaySettings.selectedFeature = payload.selectedFeature\n } else {\n state.displaySettings.selectedFeature = null\n }\n this.commit('results/refreshVisibleLinks')\n this.commit('results/updateSelectedFeature')\n } else { alert('invalid CRS. use CRS84 / EPSG:4326') }\n },\n\n updateLinks (state, payload) {\n state.links = payload\n this.commit('results/refreshVisibleLinks')\n this.commit('results/updateSelectedFeature')\n },\n changeSelectedFilter (state, payload) {\n state.selectedFilter = payload\n // set all vvisible\n state.selectedCategory = Array.from(new Set(state.links.features.map(\n item => item.properties[state.selectedFilter])))\n this.commit('results/refreshVisibleLinks')\n },\n changeSelectedCategory (state, payload) {\n state.selectedCategory = payload\n this.commit('results/refreshVisibleLinks')\n },\n\n getLinksProperties (state) {\n const header = new Set([])\n state.links.features.forEach(element => {\n Object.keys(element.properties).forEach(key => header.add(key))\n })\n state.lineAttributes = Array.from(header)\n state.lineAttributes = state.lineAttributes.filter(attr => !['display_width', 'display_color'].includes(attr))\n\n // eslint-disable-next-line max-len\n state.selectedFilter = header.has('route_type') ? 'route_type' : header.has('highway') ? 'highway' : state.lineAttributes[0]\n state.selectedCategory = Array.from(new Set(state.links.features.map(\n item => item.properties[state.selectedFilter])))\n },\n applySettings (state, payload) {\n const keys = Object.keys(payload)\n // apply all payload settings to state.displaySettings\n keys.forEach(key => state.displaySettings[key] = payload[key])\n this.commit('results/refreshVisibleLinks')\n this.commit('results/updateSelectedFeature')\n },\n\n updateSelectedFeature (state) {\n const key = state.displaySettings.selectedFeature\n const maxWidth = state.displaySettings.maxWidth\n const minWidth = state.displaySettings.minWidth\n const scale = state.displaySettings.scale\n const numStep = state.displaySettings.numStep\n const cmap = state.displaySettings.cmap\n const featureArr = state.visibleLinks.features.filter(\n link => link.properties[key]).map(\n link => link.properties[key])\n if (!state.displaySettings.fixScale) {\n const arrayMinMax = (arr) =>\n arr.reduce(([min, max], val) => [Math.min(min, val), Math.max(max, val)], [\n Number.POSITIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n ])\n\n const [minV, maxV] = arrayMinMax(featureArr)\n state.displaySettings.minVal = Math.round(minV * 100) / 100\n state.displaySettings.maxVal = Math.round(maxV * 100) / 100\n }\n const minVal = state.displaySettings.minVal\n const maxVal = state.displaySettings.maxVal\n const reverse = state.displaySettings.reverseColor\n\n state.visibleLinks.features.forEach(\n link => {\n let val = link.properties[key]\n if (val < minVal) {\n link.properties.display_width = minWidth\n } else if (val > maxVal) {\n link.properties.display_width = maxWidth\n } else {\n val = remap(val, minVal, maxVal, false, scale, true)\n link.properties.display_width = (maxWidth - minWidth) * val + minWidth\n }\n },\n )\n\n const colorScale = chroma.scale(cmap).padding([0.1, 0])\n .domain([0, 1], scale).classes(numStep)\n\n state.visibleLinks.features.forEach(\n link => {\n const val = link.properties[key]\n if (isHexColor(val)) {\n console.log(val)\n link.properties.display_color = val\n } else {\n link.properties.display_color = colorScale(\n remap(val, minVal, maxVal, reverse, scale, false)).hex()\n }\n },\n )\n },\n refreshVisibleLinks (state) {\n const group = new Set(state.selectedCategory)\n const cat = state.selectedFilter\n const key = state.displaySettings.selectedFeature\n state.visibleLinks.features = state.links.features.filter(link => group.has(link.properties[cat]))\n if (!state.displaySettings.showNaN) {\n // keep track of NaN links to display them when we have a polygon\n state.NaNLinks.features = state.visibleLinks.features.filter(link => !link.properties[key])\n state.visibleLinks.features = state.visibleLinks.features.filter(link => link.properties[key])\n }\n },\n },\n\n getters: {\n type: (state) => state.type,\n links: (state) => state.links,\n visibleLinks: (state) => state.visibleLinks,\n displayLinks: (state) => {\n const layer = structuredClone(state.linksHeader)\n layer.features = state.visibleLinks.features.map(obj => {\n return {\n geometry: obj.geometry,\n properties: {\n display_color: obj.properties.display_color,\n display_width: obj.properties.display_width,\n },\n\n }\n })\n return layer\n },\n NaNLinks: (state) => state.NaNLinks,\n linksHeader: (state) => state.linksHeader,\n lineAttributes: (state) => state.lineAttributes.sort(),\n selectedFilter: (state) => state.selectedFilter,\n selectedCategory: (state) => state.selectedCategory,\n displaySettings: (state) => state.displaySettings,\n selectedFeature: (state) => state.displaySettings.selectedFeature,\n maxWidth: (state) => state.displaySettings.maxWidth,\n minWidth: (state) => state.displaySettings.minWidth,\n numStep: (state) => state.displaySettings.numStep,\n scale: (state) => state.displaySettings.scale,\n opacity: (state) => state.displaySettings.opacity,\n colorScale: (state) => {\n const arr = []\n const colorScale = chroma.scale(state.displaySettings.cmap).padding([0.1, 0])\n .domain([0, 1]).classes(state.displaySettings.numStep)\n for (let i = 0; i < 100; i++) {\n arr.push(colorScale(remap(i, 0, 100, state.displaySettings.reverseColor, state.displaySettings.scale, false)))\n }\n return arr\n },\n },\n}\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-return-assign */\n\nexport default {\n namespaced: true,\n state: () => ({\n layer: {},\n mat: {},\n properties: [],\n type: null,\n }),\n\n mutations: {\n createLayer (state, payload) {\n state.layer = structuredClone(payload.data)\n state.type = state.layer.features[0].geometry.type\n // change Multipolygon to polygon type. just as they the same for mapbox and the app.\n state.type = state.type === 'MultiPolygon' ? 'Polygon' : state.type\n },\n addMatrix (state, payload) {\n // payload is a matrix\n Object.keys(payload).forEach(key => { state.mat[key + ' (OD)'] = payload[key] })\n state.properties = Object.keys(state.mat)\n // if init with nothing, do nothing.\n if (state.layer.features.length > 0) {\n // for each properties in matrix, init the zones to null.\n state.properties.forEach(\n prop =>\n state.layer.features.forEach(\n zone => zone.properties[prop] = null,\n ),\n )\n }\n },\n\n changeZone (state, payload) {\n const selectedProperty = payload.selectedProperty\n\n if (state.properties.includes(selectedProperty)) {\n const index = payload.index\n const row = state.mat[selectedProperty][index]\n // apply new value to each zone. (zone_1 is selected, apply time to zone_1 to every zone)\n // if there is no data, put null (ex: sparse matrix)\n state.layer.features.forEach(\n zone => zone.properties[selectedProperty] = row ? row[zone.properties.index] : null)\n }\n },\n\n },\n\n getters: {\n layer: (state) => state.layer,\n type: (state) => state.type,\n properties: (state) => state.properties,\n hasOD: (state) => state.properties.length > 0,\n mat: (state) => {\n // remove OD in matrix names.\n // return null if there is no od.\n const keys = Object.keys(state.mat)\n if (keys.length > 0) {\n const res = {}\n keys.forEach(\n key => { res[key.slice(0, -5)] = state.mat[key] })\n return res\n } else return null\n },\n },\n}\n","import { quetzalClient } from '@src/axiosClient.js'\nimport { paramsSerializer } from '@src/components/utils/serializer.js'\nimport s3 from '@src/AWSClient'\nconst $gettext = s => s\n\nexport default {\n namespaced: true,\n state: {\n stateMachineArnBase: 'arn:aws:states:ca-central-1:142023388927:stateMachine:',\n steps: [{ name: 'Loading Steps...' }],\n selectedStepFunction: 'default', // default or comparision,\n avalaibleStepFunctions: ['default'],\n running: false,\n executionArn: '',\n currentStep: 0,\n error: false,\n errorMessage: '',\n synchronized: true,\n parameters: [],\n },\n mutations: {\n cleanRun (state) {\n state.steps = [{ name: 'Loading Steps...' }]\n state.selectedStepFunction = 'default'\n state.avalaibleStepFunctions = ['default']\n state.running = false\n state.executionArn = ''\n state.currentStep = 0\n state.error = false\n state.synchronized = true\n state.parameters = []\n },\n setSteps (state, payload) {\n state.steps = payload\n state.steps.splice(0, 0, { name: 'Saving Networks' })\n state.steps.push({ name: 'Loading Results' })\n },\n startExecution (state) {\n state.error = false\n state.running = true\n state.currentStep = 1\n },\n terminateExecution (state, payload) {\n state.running = false\n state.error = true\n state.errorMessage = payload\n state.executionArn = ''\n },\n changeRunning (state, payload) {\n state.running = payload\n },\n succeedExecution (state) {\n state.running = false\n state.currentStep = state.steps.length + 1\n state.executionArn = ''\n this.commit('changeNotification',\n { text: $gettext('simulation executed successfully!'), autoClose: false, color: 'success' })\n },\n updateCurrentStep (state, payload) {\n const stepNames = state.steps.map(a => a.name)\n state.currentStep = stepNames.indexOf(payload.name) + 1\n },\n getLocalParameters (state, payload) {\n payload = paramsSerializer(payload)\n state.parameters = payload\n },\n setSelectedStepFunction (state, payload) {\n state.selectedStepFunction = payload\n },\n setAvalaibleStepFunctions (state, payload) {\n state.avalaibleStepFunctions = payload\n },\n },\n actions: {\n async getParameters ({ state, commit }, payload) {\n // only for the reset button.\n try {\n const params = await s3.readJson(payload.model, payload.path)\n state.parameters = params\n } catch (err) {\n commit('changeAlert', err, { root: true })\n }\n },\n async getOutputs (context) {\n const model = context.rootState.user.model\n const scen = context.rootState.user.scenario + '/'\n const path = scen + 'outputs/'\n let filesList = await s3.listFiles(model, path)\n filesList = filesList.filter(name => !name.endsWith('/'))\n const res = []\n for (const file of filesList) {\n const name = file.slice(scen.length) // remove scen name from file\n if (file.endsWith('.json') || file.endsWith('.geojson')) {\n const content = await s3.readJson(model, file)\n res.push({ path: name, content: content })\n } else {\n res.push({ path: name, content: null })\n }\n }\n\n if (res.length > 0) {\n // unload all results Layers\n context.commit('unloadLayers', {}, { root: true })\n context.commit('loadFiles', res, { root: true })\n // load new Results\n }\n },\n getSteps ({ state, commit, rootState }) {\n let data = { stateMachineArn: state.stateMachineArnBase + rootState.user.model }\n quetzalClient.client.post('/describe/model',\n data = JSON.stringify(data),\n ).then(\n response => {\n const def = JSON.parse(response.data.definition)\n const firstStep = def.StartAt\n\n // check if there is a choice in the definition.\n // if So. Get all choices in state.availableStepFunctions\n // replace the Next of the choice step with the selected one.\n Object.keys(def.States).forEach((key) => {\n if (def.States[key].Type === 'Choice') {\n // could be a list of choices\n state.avalaibleStepFunctions = ['default', ...def.States[key].Choices.map(el => el.StringEquals)]\n if (state.selectedStepFunction === 'default') {\n def.States[key].Next = def.States[key].Default\n } else {\n // if not default. select the one in the list\n const choices = def.States[key].Choices\n def.States[key].Next = choices.filter(el => el.StringEquals === state.selectedStepFunction)[0].Next\n }\n }\n })\n // if there is a choice\n\n // let next = def.States[firstStep].Next\n const steps = []\n let next = firstStep\n while (true) {\n // if there is a choice\n if (def.States[next].Type === 'Choice') {\n next = def.States[next].Next\n }\n steps.push({ name: next })\n if (def.States[next].Next === undefined) break\n next = def.States[next].Next\n }\n\n commit('setSteps', steps)\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n })\n },\n startExecution ({ state, commit, dispatch, rootState }, payload) {\n const filteredParams = state.parameters.filter(param =>\n (Object.keys(param).includes('category')) && param.model === state.selectedStepFunction)\n const paramsDict = filteredParams.reduce((acc, { category, params }) => {\n acc[category] = params.reduce((paramAcc, { name, value, type }) => {\n paramAcc[name] = type?.toLowerCase() === 'number' ? Number(value) : value\n return paramAcc\n }, {})\n return acc\n }, {})\n let data = {\n // eslint-disable-next-line no-useless-escape\n input: JSON.stringify({\n authorization: rootState.user.idToken,\n choice: state.selectedStepFunction,\n scenario_path_S3: payload.scenario + '/',\n launcher_arg: {\n training_folder: '/tmp',\n params: paramsDict,\n },\n metadata: {\n user_email: rootState.user.cognitoInfo.email,\n },\n }),\n stateMachineArn: state.stateMachineArnBase + rootState.user.model,\n }\n quetzalClient.client.post('',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.executionArn = response.data.executionArn\n dispatch('pollExecution')\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n })\n },\n pollExecution ({ commit, state, dispatch }) {\n const intervalId = setInterval(() => {\n let data = { executionArn: state.executionArn }\n quetzalClient.client.post('/describe',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.status = response.data.status\n if (state.status === 'SUCCEEDED') {\n dispatch('getOutputs').then(\n () => {\n commit('succeedExecution')\n clearInterval(intervalId)\n },\n ).catch(err => alert(err))\n } else if (['FAILED', 'TIMED_OUT', 'ABORTED'].includes(state.status)) {\n commit('terminateExecution', JSON.parse(response.data.cause))\n clearInterval(intervalId)\n } else if (state.status === undefined) {\n clearInterval(intervalId)\n }\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n state.running = false\n })\n data = { executionArn: state.executionArn, includeExecutionData: false, reverseOrder: true }\n quetzalClient.client.post('/history',\n data = JSON.stringify(data),\n ).then(\n response => {\n for (const e in response.data.events) {\n const event = response.data.events[e]\n if (event.type === 'TaskStateEntered') {\n commit('updateCurrentStep', event.stateEnteredEventDetails)\n break\n }\n }\n }).catch(\n err => {\n console.log(err)\n })\n }, 5000)\n },\n stopExecution ({ state, commit }) {\n let data = { executionArn: state.executionArn }\n quetzalClient.client.post('/abort',\n data = JSON.stringify(data),\n ).then(\n response => {\n commit('terminateExecution', response.data)\n // Maybe we sould wait for back to say that execution is terminated (but the wait is awkward)\n }).catch(\n err => {\n console.log(err)\n })\n },\n },\n getters: {\n steps: (state) => state.steps,\n avalaibleStepFunctions: (state) => state.avalaibleStepFunctions,\n selectedStepFunction: (state) => state.selectedStepFunction,\n running: (state) => state.running,\n currentStep: (state) => state.currentStep,\n executionArn: (state) => state.executionArn,\n error: (state) => state.error,\n errorMessage: (state) => state.errorMessage,\n synchronized: (state) => state.synchronized,\n parameters: (state) => state.parameters,\n parametersIsEmpty: (state) => state.parameters.length === 0,\n },\n}\n","import { quetzalClient } from '@src/axiosClient.js'\nimport s3 from '@src/AWSClient'\nimport { v4 as uuid } from 'uuid'\n\nconst $gettext = s => s\n\nexport default {\n namespaced: true,\n state: {\n stateMachineArn: 'arn:aws:states:ca-central-1:142023388927:stateMachine:ML_MatrixRoadCaster',\n bucket: 'matrixroadcaster',\n callID: '',\n status: '',\n timer: 0,\n running: false,\n executionArn: '',\n error: false,\n errorMessage: '',\n parameters: {\n callID: 'test',\n num_zones: 100,\n train_size: 100,\n date_time: '2022-12-13T08:00:21-04:00',\n ff_time_col: 'time',\n max_speed: 100,\n num_cores: 1,\n num_random_od: 1,\n create_zone: true,\n hereApiKey: '',\n },\n },\n mutations: {\n cleanRun (state) {\n state.running = false\n state.executionArn = ''\n state.error = false\n },\n setCallID (state) { state.callID = uuid() },\n setParameters (state, payload) { state.parameters = payload },\n terminateExecution (state, payload) {\n state.running = false\n state.error = true\n state.errorMessage = payload\n state.executionArn = ''\n },\n changeRunning (state, payload) {\n state.running = payload\n },\n getApproxTimer (state, payload) {\n // payload is number of road links\n const numZones = state.parameters.num_zones\n const trainSize = state.parameters.train_size\n const numPlotOD = state.parameters.num_random_od\n // API call time (1.8sec per call), 15 iteration X number of links, loadning saving, plotting 15sec.\n state.timer = Math.min(numZones, trainSize) * 1.8 + payload * 0.002 + 15\n state.timer += 10 * numPlotOD // 10 sec per plots\n },\n succeedExecution (state) {\n state.running = false\n state.executionArn = ''\n this.commit('changeNotification',\n { text: $gettext('Matrix Road Caster executed successfully!'), autoClose: false, color: 'success' })\n },\n\n },\n actions: {\n async startExecution ({ state, commit, dispatch }, payload) {\n commit('getApproxTimer', payload.rlinks.features.length)\n commit('setParameters', payload.parameters)\n console.log('exporting roads to s3')\n state.error = false\n state.running = true\n try {\n await s3.putObject(\n state.bucket,\n state.callID.concat('/road_links.geojson'),\n JSON.stringify(payload.rlinks))\n await s3.putObject(\n state.bucket,\n state.callID.concat('/road_nodes.geojson'),\n JSON.stringify(payload.rnodes))\n } catch (err) { commit('changeAlert', err, { root: true }) }\n let data = {\n input: JSON.stringify(state.parameters),\n name: state.callID,\n stateMachineArn: state.stateMachineArn,\n }\n quetzalClient.client.post('',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.executionArn = response.data.executionArn\n dispatch('pollExecution')\n }).catch(err => {\n commit('changeAlert', err, { root: true })\n state.running = false\n state.status = 'FAILED'\n })\n },\n pollExecution ({ commit, state, dispatch }) {\n const intervalId = setInterval(() => {\n let data = { executionArn: state.executionArn }\n state.timer = state.timer - 2\n quetzalClient.client.post('/describe',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.status = response.data.status\n console.log(state.status)\n if (state.status === 'SUCCEEDED') {\n commit('succeedExecution')\n clearInterval(intervalId)\n } else if (['FAILED', 'TIMED_OUT', 'ABORTED'].includes(state.status)) {\n commit('terminateExecution', JSON.parse(response.data.cause))\n clearInterval(intervalId)\n }\n }).catch(err => { commit('changeAlert', err, { root: true }) })\n }, 2000)\n },\n stopExecution ({ state, commit }) {\n let data = { executionArn: state.executionArn }\n quetzalClient.client.post('/abort',\n data = JSON.stringify(data),\n ).then(\n response => {\n commit('terminateExecution', response.data)\n // Maybe we sould wait for back to say that execution is terminated (but the wait is awkward)\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n })\n },\n },\n getters: {\n running: (state) => state.running,\n status: (state) => state.status,\n executionArn: (state) => state.executionArn,\n error: (state) => state.error,\n errorMessage: (state) => state.errorMessage,\n callID: (state) => state.callID,\n bucket: (state) => state.bucket,\n timer: (state) => state.timer,\n parameters: (state) => state.parameters,\n },\n}\n","import s3 from '@src/AWSClient'\nimport { quetzalClient } from '@src/axiosClient.js'\nimport { v4 as uuid } from 'uuid'\nimport router from '../../router'\nimport { highwayColor, highwayWidth } from '@constants/highway.js'\n\nconst $gettext = s => s\n\nexport default {\n namespaced: true,\n state: {\n stateMachineArn: 'arn:aws:states:ca-central-1:142023388927:stateMachine:osm-api',\n bucket: 'quenedi-osm',\n callID: '',\n status: '',\n timer: 0,\n running: false,\n executionArn: '',\n error: false,\n errorMessage: '',\n tags: ['highway', 'maxspeed', 'lanes', 'name', 'oneway', 'surface'],\n highway: [\n 'motorway',\n 'motorway_link',\n 'trunk',\n 'trunk_link',\n 'primary',\n 'primary_link',\n ],\n colorDict: highwayColor,\n widthDict: highwayWidth,\n },\n mutations: {\n cleanRun (state) {\n state.running = false\n state.executionArn = ''\n state.error = false\n },\n setCallID (state) { state.callID = uuid() },\n\n terminateExecution (state, payload) {\n state.running = false\n state.error = true\n state.errorMessage = payload\n state.executionArn = ''\n },\n changeRunning (state, payload) {\n state.running = payload\n },\n changeHighway (state, payload) {\n state.highway = payload\n },\n succeedExecution (state) {\n state.running = false\n state.executionArn = ''\n this.commit('changeNotification',\n { text: $gettext('OSM network imported successfully!'), autoClose: false, color: 'success' })\n },\n\n },\n actions: {\n startExecution ({ state, commit, dispatch }, payload) {\n // commit('setParameters', payload.parameters)\n state.running = true\n state.error = false\n let input = ''\n if (payload.method === 'bbox') {\n input = JSON.stringify({\n bbox: payload.coords,\n highway: state.highway,\n callID: state.callID,\n elevation: true,\n })\n } else {\n input = JSON.stringify({\n poly: payload.coords,\n highway: state.highway,\n callID: state.callID,\n elevation: true,\n })\n }\n let data = {\n input: input,\n name: state.callID,\n stateMachineArn: state.stateMachineArn,\n }\n quetzalClient.client.post('',\n data = JSON.stringify(data),\n ).then(\n response => {\n state.executionArn = response.data.executionArn\n dispatch('pollExecution')\n }).catch(err => {\n commit('changeAlert', err, { root: true })\n state.running = false\n state.status = 'FAILED'\n })\n },\n async pollExecution ({ commit, state, dispatch }) {\n const intervalId = setInterval(() => {\n let data = { executionArn: state.executionArn }\n state.timer = state.timer - 2\n quetzalClient.client.post('/describe',\n data = JSON.stringify(data),\n ).then(\n async response => {\n state.status = response.data.status\n console.log(state.status)\n if (state.status === 'SUCCEEDED') {\n clearInterval(intervalId)\n await dispatch('downloadOSMFromS3')\n commit('succeedExecution')\n } else if (['FAILED', 'TIMED_OUT', 'ABORTED'].includes(state.status)) {\n commit('terminateExecution', JSON.parse(response.data.cause))\n clearInterval(intervalId)\n }\n }).catch(err => { commit('changeAlert', err, { root: true }) })\n }, 2000)\n },\n stopExecution ({ state, commit }) {\n let data = { executionArn: state.executionArn }\n quetzalClient.client.post('/abort',\n data = JSON.stringify(data),\n ).then(\n response => {\n commit('terminateExecution', response.data)\n // Maybe we sould wait for back to say that execution is terminated (but the wait is awkward)\n }).catch(\n err => {\n commit('changeAlert', err, { root: true })\n })\n },\n async downloadOSMFromS3 ({ state, commit }) {\n function applyDict (links) {\n // 00BCD4\n Object.keys(state.colorDict).forEach(highway => {\n links.features.filter(link => link.properties.highway === highway).forEach(\n link => {\n link.properties.route_width = state.widthDict[highway]\n link.properties.route_color = state.colorDict[highway]\n })\n })\n return links\n }\n\n let rlinks = await s3.readJson(state.bucket, state.callID.concat('/links.geojson'))\n rlinks = applyDict(rlinks)\n commit('appendNewrLinks', rlinks, { root: true })\n const rnodes = await s3.readJson(state.bucket, state.callID.concat('/nodes.geojson'))\n commit('appendNewrNodes', rnodes, { root: true })\n console.log('downloaded')\n router.push('/Home').catch(() => {})\n },\n },\n getters: {\n running: (state) => state.running,\n status: (state) => state.status,\n executionArn: (state) => state.executionArn,\n error: (state) => state.error,\n errorMessage: (state) => state.errorMessage,\n callID: (state) => state.callID,\n bucket: (state) => state.bucket,\n timer: (state) => state.timer,\n highway: (state) => state.highway,\n tags: (state) => state.tags,\n },\n}\n","import s3 from '../AWSClient'\nconst $gettext = s => s\n\nexport default {\n namespaced: false,\n state: {\n cognitoInfo: {},\n cognitoGroup: '',\n bucketList: [],\n accesToken: '',\n idToken: '',\n expData: 0,\n loggedIn: false,\n loadingState: true,\n errorLoadingState: false,\n scenariosList: [],\n model: null,\n scenario: null,\n protected: false,\n },\n mutations: {\n unloadProject (state) {\n state.model = null\n state.scenario = null\n },\n setLoggedIn (state) {\n state.loggedIn = true\n },\n setLoggedOut (state) {\n state.loggedIn = false\n state.cognitoInfo = {}\n },\n setCognitoInfo (state, payload) {\n state.cognitoInfo = payload\n },\n setCognitoGroup (state, payload) {\n state.cognitoGroup = payload\n },\n setBucketList (state, payload) {\n state.bucketList = payload\n },\n setAccessToken (state, payload) {\n state.accesToken = payload.jwtToken\n state.expDate = payload.payload.exp\n },\n setIdToken (state, payload) {\n state.idToken = payload\n },\n setScenariosList (state, payload) {\n state.scenariosList = payload\n },\n setModel (state, payload) {\n state.model = payload\n },\n setScenario (state, payload) {\n state.scenario = payload.scenario\n state.protected = payload.protected\n },\n\n },\n\n actions: {\n async getScenario ({ commit, state, dispatch }, payload) {\n const res = await s3.getScenario(payload.model)\n commit('setScenariosList', res)\n },\n isTokenExpired ({ state, commit }) {\n const currentTime = Math.floor(Date.now() / 1000) // Convert to seconds\n if (currentTime > state.expDate) {\n commit('changeAlert', {\n name: $gettext('sign out'),\n message: $gettext('your session has expired. please refresh the page or sign in again'),\n }, { root: true })\n }\n },\n\n },\n\n getters: {\n loggedIn: (state) => state.loggedIn,\n cognitoInfo: (state) => state.cognitoInfo,\n cognitoGroup: (state) => state.cognitoGroup,\n bucketList: (state) => state.bucketList ? state.bucketList : [],\n accesToken: (state) => state.accesToken,\n idToken: (state) => state.idToken,\n scenariosList: (state) => state.scenariosList,\n model: (state) => state.model,\n scenario: (state) => state.scenario,\n protected: (state) => state.protected,\n },\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport linksModule from './links.js'\nimport rlinksModule from './rlinks.js'\nimport odModule from './od.js'\nimport resultsModule from './results.js'\nimport layerModule from './layer.js'\nimport runModule from './api/run.js'\nimport MatrixRoadCasterModule from './api/MatrixRoadCaster.js'\nimport OSMImporterModule from './api/OSMImporter.js'\nimport userModule from './user.js'\nimport JSZip from 'jszip'\nimport saveAs from 'file-saver'\nimport s3 from '../AWSClient'\nimport { serializer, stylesSerializer } from '../components/utils/serializer.js'\n\nimport linksBase from '@static/links_base.geojson'\nimport nodesBase from '@static/nodes_base.geojson'\nVue.use(Vuex)\nconst $gettext = s => s\n\nexport const store = new Vuex.Store({\n modules: {\n user: userModule,\n links: linksModule,\n rlinks: rlinksModule,\n od: odModule,\n results: resultsModule,\n run: runModule,\n runMRC: MatrixRoadCasterModule,\n runOSM: OSMImporterModule,\n },\n\n state: {\n notification: {},\n alert: {},\n darkMode: false,\n loading: false,\n showLeftPanel: true,\n windowHeight: 0,\n anchorMode: false,\n linksPopupContent: ['trip_id'],\n roadsPopupContent: ['highway'],\n cyclewayMode: false,\n outputName: 'output',\n mapCenter: [-73.570337, 45.498310],\n mapZoom: 11,\n availableLayers: ['links', 'rlinks', 'od', 'nodes', 'rnodes'],\n visibleRasters: [], // list of rasterFiles path.\n styles: [], // list of styling for results [{name,layer, displaySettings:{...}}, ...]\n otherFiles: [], // [{path, content}]\n attributesChoices: {}, // { pt: {}, road: { oneway: ['0', '1'] } }\n },\n mutations: {\n changeNotification (state, payload) {\n state.notification = payload\n },\n changeAlert (state, payload) {\n /// payload {name,message}, or just alert\n state.alert = payload\n },\n changeDarkMode (state, payload) {\n state.darkMode = payload\n state.rlinks.rlinksDefaultColor = state.darkMode ? '2196F3' : '7EBAAC' // its the primary color.\n state.links.linksDefaultColor = state.darkMode ? '2196F3' : 'B5E0D6' // its the primary color.\n },\n changeLoading (state, payload) {\n state.loading = payload\n },\n changeWindowHeight (state, payload) {\n state.windowHeight = payload\n },\n changeLeftPanel (state) {\n state.showLeftPanel = !state.showLeftPanel\n },\n saveMapPosition (state, payload) {\n state.mapCenter = payload.mapCenter\n state.mapZoom = payload.mapZoom\n },\n setAnchorMode (state, payload) {\n state.anchorMode = payload\n },\n changeAnchorMode (state) {\n state.anchorMode = !state.anchorMode\n },\n changeCyclewayMode (state, payload) {\n state.cyclewayMode = !state.cyclewayMode\n },\n\n loadFiles (state, payload) {\n // payload: res.push({ path: inputs/pt/links.geojson, content: Array() | null })\n try {\n let otherFiles = []\n let outputFiles = []\n\n const ptFiles = payload.filter(el => el.path.startsWith('inputs/pt/') && el.path.endsWith('.geojson'))\n otherFiles = payload.filter(el => !ptFiles.includes(el))\n\n const roadFiles = otherFiles.filter(el => el.path.startsWith('inputs/road/') && el.path.endsWith('.geojson'))\n otherFiles = otherFiles.filter(el => !roadFiles.includes(el))\n\n const ODFiles = otherFiles.filter(el => el.path.startsWith('inputs/od/') && el.path.endsWith('.geojson'))\n otherFiles = otherFiles.filter(el => !ODFiles.includes(el))\n\n const paramFile = otherFiles.filter(el => el.path === 'inputs/params.json')[0]\n otherFiles = otherFiles.filter(el => el !== paramFile)\n\n const stylesFile = otherFiles.filter(el => el.path === 'styles.json')[0]\n otherFiles = otherFiles.filter(el => el !== stylesFile)\n\n const attributesChoicesFile = otherFiles.filter(el => el.path === 'attributesChoices.json')[0]\n otherFiles = otherFiles.filter(el => el !== attributesChoicesFile)\n\n const inputFiles = otherFiles.filter(el => el.path.startsWith('inputs/'))\n otherFiles = otherFiles.filter(el => !inputFiles.includes(el))\n\n outputFiles = otherFiles.filter(el => el.path.startsWith('outputs/'))\n otherFiles = otherFiles.filter(el => !outputFiles.includes(el))\n\n // PT files should be in pair of 2 (links and nodes)\n if (ptFiles.length % 2 !== 0) {\n const err = new Error($gettext('Need the same number of links and nodes files.'))\n err.name = 'ImportError'\n throw err\n }\n // road files should be in pair of 2 (links and nodes)\n if (roadFiles.length % 2 !== 0) {\n const err = new Error($gettext('Need the same number of road_links and road_nodes files.'))\n err.name = 'ImportError'\n throw err\n }\n this.commit('loadPTFiles', ptFiles)\n this.commit('loadRoadFiles', roadFiles)\n this.commit('od/loadODFiles', ODFiles)\n if (paramFile) this.commit('run/getLocalParameters', paramFile.content)\n if (stylesFile) {\n const json = stylesSerializer(stylesFile.content)\n state.styles = json\n }\n if (attributesChoicesFile) { this.commit('loadAttributesChoices', attributesChoicesFile.content) }\n\n this.commit('loadOtherFiles', inputFiles)\n\n // get outputs geojson files and create Layer with them.\n const layerFiles = outputFiles.filter(el => el.path.endsWith('.geojson'))\n outputFiles = outputFiles.filter(el => !layerFiles.includes(el))\n this.commit('loadLayers', layerFiles)\n\n // get JSON files with the same name as Modules (they are matrix)\n const matrixFiles = outputFiles.filter(el => el.path.endsWith('.json') &&\n state.availableLayers.includes(el.path.slice(0, -5)),\n )\n outputFiles = outputFiles.filter(el => !matrixFiles.includes(el))\n\n this.commit('loadMatrix', matrixFiles)\n\n // load the rest\n this.commit('loadOtherFiles', outputFiles)\n this.commit('changeNotification',\n { text: $gettext('File(s) added'), autoClose: true, color: 'success' })\n } catch (err) {\n this.commit('changeAlert', err)\n }\n },\n\n loadOtherFiles (state, payload) {\n // payload = [{path, content, type}]\n // if a file is updated with the same path (already exist). remove it\n const newPaths = payload.map(file => file.path)\n state.otherFiles = state.otherFiles.filter(file => !newPaths.includes(file.path))\n // push files\n payload.forEach(file => state.otherFiles.push(file))\n },\n\n loadAttributesChoices (state, payload) {\n // eslint-disable-next-line no-return-assign\n Object.keys(payload.pt).forEach(key => state.attributesChoices.pt[key] = payload.pt[key])\n // eslint-disable-next-line no-return-assign\n Object.keys(payload.road).forEach(key => state.attributesChoices.road[key] = payload.road[key])\n },\n setVisibleRasters (state, payload) {\n state.visibleRasters = payload\n },\n\n loadLayers (state, payload) {\n payload.forEach(\n file => {\n const fileName = file.path.slice(0, -8) // remove .geojson\n // let matData = payload.files.filter(json => json?.fileName.slice(0, -5) === fileName)[0]?.data\n // if matDataExist does not exist, we want to ignore index as they are only needed for a OD mat.\n file.content = serializer(file.content, file.path, null, false)\n\n this.commit('createLayer', {\n fileName: fileName,\n data: file.content,\n })\n })\n },\n loadMatrix (state, payload) {\n // payload : [{path,content}]\n payload.forEach(\n file => {\n const moduleName = file.path.slice(0, -5)\n this.commit(`${moduleName}/addMatrix`, file.content)\n },\n )\n },\n\n createLayer (state, payload) {\n const moduleName = payload.fileName\n if (!Object.keys(this._modules.root._children).includes(moduleName)) {\n this.registerModule(moduleName, layerModule)\n }\n this.commit(`${moduleName}/createLayer`, payload)\n if (!state.availableLayers.includes(moduleName)) {\n state.availableLayers.push(moduleName)\n }\n },\n initNetworks (state) {\n this.commit('loadLinks', linksBase)\n this.commit('loadrLinks', linksBase)\n this.commit('loadNodes', nodesBase)\n this.commit('loadrNodes', nodesBase)\n this.commit('od/loadLayer', linksBase)\n state.visibleRasters = []\n state.styles = []\n // default Values. if changed, change the export condition as it check this is changed to export.\n state.attributesChoices = { pt: {}, road: { oneway: ['0', '1'] } }\n state.otherFiles = []\n state.cyclewayMode = false\n },\n unloadLayers (state) {\n const moduleToDelete = Object.keys(this._modules.root._children).filter(\n x => !['links', 'rlinks', 'od', 'results', 'run', 'user', 'runMRC', 'runOSM'].includes(x))\n moduleToDelete.forEach(moduleName => this.unregisterModule(moduleName))\n state.availableLayers = ['links', 'rlinks', 'od', 'nodes', 'rnodes']\n },\n applySettings (state, payload) {\n state.links.linkSpeed = Number(payload.linkSpeed)\n state.rlinks.roadSpeed = Number(payload.roadSpeed)\n state.linksPopupContent = payload.linksPopupContent\n state.roadsPopupContent = payload.roadsPopupContent\n state.rlinks.defaultHighway = payload.defaultHighway\n state.outputName = payload.outputName\n },\n addStyle (state, payload) {\n // payload: styling for results {name,layer, displaySettings:{...}}\n const names = state.styles.map(el => el.name)\n const idx = names.indexOf(payload.name)\n if (idx !== -1) {\n state.styles[idx] = payload\n } else {\n state.styles.push(payload)\n }\n },\n deleteStyle (state, payload) {\n // payload = name of the preset to delete\n state.styles = state.styles.filter(el => el.name !== payload)\n },\n\n },\n actions: {\n async exportFiles ({ state, commit }, payload = 'all') {\n const zip = new JSZip()\n let links = ''\n let nodes = ''\n let rlinks = ''\n let rnodes = ''\n let od = ''\n // export only visible line (line selected)\n commit('applyPropertiesTypes')\n if (payload !== 'all') {\n const tempLinks = structuredClone(state.links.links)\n tempLinks.features = tempLinks.features.filter(\n link => state.links.selectedTrips.includes(link.properties.trip_id))\n links = JSON.stringify(tempLinks)\n // delete every every nodes not in links\n const a = tempLinks.features.map(item => item.properties.a)\n const b = tempLinks.features.map(item => item.properties.b)\n const nodesInLinks = Array.from(new Set([...a, ...b]))\n const tempNodes = structuredClone(state.links.nodes)\n tempNodes.features = tempNodes.features.filter(node => nodesInLinks.includes(node.properties.index))\n nodes = JSON.stringify(tempNodes)\n\n rlinks = JSON.stringify(state.rlinks.visiblerLinks)\n rnodes = JSON.stringify(state.rlinks.visiblerNodes)\n od = JSON.stringify(this.getters['od/visibleLayer'])\n // export everything\n } else {\n links = JSON.stringify(state.links.links)\n nodes = JSON.stringify(state.links.nodes)\n rlinks = JSON.stringify(state.rlinks.rlinks)\n rnodes = JSON.stringify(state.rlinks.rnodes)\n od = JSON.stringify(this.getters['od/layer'])\n }\n // export only if not empty\n if (JSON.parse(links).features.length > 0) {\n let blob = new Blob([links], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/pt/links.geojson', blob)\n blob = new Blob([nodes], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/pt/nodes.geojson', blob)\n }\n if (JSON.parse(rlinks).features.length > 0) {\n let blob = new Blob([rlinks], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/road/road_links.geojson', blob)\n blob = new Blob([rnodes], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/road/road_nodes.geojson', blob)\n }\n if (JSON.parse(od).features.length > 0) {\n const blob = new Blob([od], { type: 'application/json' })\n // use folder.file if you want to add it to a folder\n zip.file('inputs/od/od.geojson', blob)\n }\n if (payload === 'all') {\n if (!this.getters['run/parametersIsEmpty']) {\n const blob = new Blob([JSON.stringify(this.getters['run/parameters'])], { type: 'application/json' })\n zip.file('inputs/params.json', blob)\n }\n if (state.styles.length > 0) {\n const blob = new Blob([JSON.stringify(state.styles)], { type: 'application/json' })\n zip.file('styles.json', blob)\n }\n if (JSON.stringify(state.attributesChoices) !== '{\"pt\":{},\"road\":{\"oneway\":[\"0\",\"1\"]}}') {\n const blob = new Blob([JSON.stringify(state.attributesChoices)], { type: 'application/json' })\n zip.file('attributesChoices.json', blob)\n }\n\n const staticLayers = Object.keys(this._modules.root._children).filter(\n x => !['links', 'rlinks', 'od', 'results', 'run', 'user', 'runMRC', 'runOSM'].includes(x))\n for (const layer of staticLayers) {\n const blob = new Blob([JSON.stringify(this.getters[`${layer}/layer`])], { type: 'application/json' })\n const name = layer + '.geojson'\n // zip name = layer.replace('/', '_') + '.geojson'\n zip.file(name, blob)\n if (this.getters[`${layer}/mat`]) {\n const blob = new Blob([JSON.stringify(this.getters[`${layer}/mat`])], { type: 'application/json' })\n const name = layer + '.json'\n zip.file(name, blob)\n }\n }\n\n for (const file of state.otherFiles) {\n // if others file loaded from S3 (they are not loaded yet. need to download them.)\n if (file.content == null && state.user.model !== null) {\n file.content = await s3.readBytes(state.user.model, state.user.scenario + '/' + file.path)\n }\n if (file.content instanceof Uint8Array) {\n const blob = new Blob([file.content]) // { type: 'text/csv' }\n zip.file(file.path, blob)\n } else {\n const blob = new Blob([JSON.stringify(file.content)], { type: 'application/json' })\n zip.file(file.path, blob)\n }\n }\n }\n zip.generateAsync({ type: 'blob' })\n .then(function (content) {\n // see FileSaver.js\n saveAs(content, state.outputName + '.zip')\n })\n },\n\n async exportToS3 ({ state, commit, dispatch }, payload) {\n // payload = 'inputs'. only export inputs\n // else no payload to export all.\n dispatch('isTokenExpired')\n this.commit('applyPropertiesTypes')\n const scen = state.user.scenario + '/'\n const bucket = state.user.model\n const inputFolder = scen + 'inputs/'\n const ptFolder = inputFolder + 'pt/'\n const roadFolder = inputFolder + 'road/'\n const odFolder = inputFolder + 'od/'\n const paths = {\n links: ptFolder + 'links.geojson',\n nodes: ptFolder + 'nodes.geojson',\n rlinks: roadFolder + 'road_links.geojson',\n rnodes: roadFolder + 'road_nodes.geojson',\n od: odFolder + 'od.geojson',\n params: scen + 'inputs/params.json',\n styles: scen + 'styles.json',\n attributesChoices: scen + 'attributesChoices.json',\n }\n // save params\n if (state.run.parameters.length > 0) {\n await s3.putObject(bucket, paths.params, JSON.stringify(state.run.parameters))\n }\n // save styles if changed\n if (state.styles.length > 0) {\n await s3.putObject(bucket, paths.styles, JSON.stringify(state.styles))\n }\n // save attributes choices if changed\n if (JSON.stringify(state.attributesChoices) !== '{\"pt\":{},\"road\":{\"oneway\":[\"0\",\"1\"]}}') {\n await s3.putObject(bucket, paths.attributesChoices, JSON.stringify(state.attributesChoices))\n }\n // save PT\n if (state.links.links.features.length > 0) {\n await s3.putObject(bucket, paths.links, JSON.stringify(state.links.links))\n await s3.putObject(bucket, paths.nodes, JSON.stringify(state.links.nodes))\n } else {\n // if its deleted in quenedi. delete it on s3. function works with nothing to delete too.\n s3.deleteFolder(bucket, ptFolder)\n }\n // save Roads\n if (state.rlinks.rlinks.features.length > 0) {\n await s3.putObject(bucket, paths.rlinks, JSON.stringify(state.rlinks.rlinks))\n await s3.putObject(bucket, paths.rnodes, JSON.stringify(state.rlinks.rnodes))\n } else {\n // if its deleted in quenedi. delete it on s3. function works with nothing to delete too.\n s3.deleteFolder(bucket, roadFolder)\n }\n // save ods\n if (!this.getters['od/layerIsEmpty']) {\n await s3.putObject(bucket, paths.od, JSON.stringify(this.getters['od/layer']))\n } else {\n // if its deleted in quenedi. delete it on s3. function works with nothing to delete too.\n s3.deleteFolder(bucket, odFolder)\n }\n // save outputs Layers\n if (payload !== 'inputs') {\n const staticLayers = Object.keys(this._modules.root._children).filter(\n x => !['links', 'rlinks', 'od', 'results', 'run', 'user', 'runMRC', 'runOSM'].includes(x))\n for (const layer of staticLayers) {\n const name = layer + '.geojson'\n await s3.putObject(bucket, scen + name, JSON.stringify(this.getters[`${layer}/layer`]))\n if (this.getters[`${layer}/mat`]) {\n const name = layer + '.json'\n await s3.putObject(bucket, scen + name, JSON.stringify(this.getters[`${layer}/mat`]))\n }\n }\n }\n // save others layers\n // if payload === inputs. only export inputs/ files.\n let otherFiles = state.otherFiles\n if (payload === 'inputs') {\n otherFiles = otherFiles.filter(file => !file.path.startsWith('outputs/'))\n }\n for (const file of otherFiles) {\n // if others file loaded from S3 (they are not loaded yet. need to download them.)\n if (file.content == null) {\n // pass\n } else if (file.content instanceof Uint8Array) {\n await s3.putObject(bucket, scen + file.path, file.content)\n } else {\n await s3.putObject(bucket, scen + file.path, JSON.stringify(file.content))\n }\n }\n // console.log(res)\n // commit('setScenariosList', res)\n },\n async deleteOutputsOnS3 ({ state }) {\n await s3.deleteFolder(state.user.model, state.user.scenario + '/outputs/')\n },\n\n },\n getters: {\n notification: (state) => state.notification,\n alert: (state) => state.alert,\n loading: (state) => state.loading,\n mapCenter: (state) => state.mapCenter,\n mapZoom: (state) => state.mapZoom,\n windowHeight: (state) => state.windowHeight,\n anchorMode: (state) => state.anchorMode,\n showLeftPanel: (state) => state.showLeftPanel,\n linksPopupContent: (state) => state.linksPopupContent,\n roadsPopupContent: (state) => state.roadsPopupContent,\n cyclewayMode: (state) => state.cyclewayMode,\n outputName: (state) => state.outputName,\n visibleRasters: (state) => state.visibleRasters,\n styles: (state) => state.styles,\n attributesChoices: (state) => state.attributesChoices,\n otherFiles: (state) => state.otherFiles,\n projectIsUndefined: (state) => Object.keys(state.links.links).length === 0,\n projectIsEmpty: (state) => {\n return (state.links.links.features.length === 0 &&\n state.rlinks.rlinks.features.length === 0 &&\n state.od.layer.features.length === 0)\n },\n availableLayers: (state) => {\n // do not return empty links or rlinks or OD as available.\n let filteredLayers = structuredClone(state.availableLayers)\n if (state.links.links.features.length === 0) {\n filteredLayers = filteredLayers.filter(layer => !['links', 'nodes'].includes(layer))\n }\n if (state.rlinks.rlinks.features.length === 0) {\n filteredLayers = filteredLayers.filter(layer => !['rlinks', 'rnodes'].includes(layer))\n }\n if (state.od.layer.features.length === 0) {\n filteredLayers = filteredLayers.filter(layer => !['od'].includes(layer))\n }\n return filteredLayers\n },\n mapStyle: (state) => {\n if (state.darkMode) {\n return 'mapbox://styles/mapbox/dark-v11?optimize=true'\n } else {\n return 'mapbox://styles/mapbox/light-v11?optimize=true'\n }\n },\n\n },\n})\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".build.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/quetzal-network-editor/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkquetzal_network_editor\"] = self[\"webpackChunkquetzal_network_editor\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [418], () => (__webpack_require__(20655)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","type","crs","properties","name","features","render","_vm","this","_c","_self","directives","rawName","value","isNaN","displaySettings","minVal","expression","staticClass","style","top","windowHeight","left","leftOffset","_l","colorScale","color","key","backgroundColor","_v","_s","selectedFeature","Math","round","maxVal","_withStripped","components","props","Array","default","Object","baseOffset","Number","order","data","computed","$store","getters","showLeftPanel","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","REGION","region","s3Client","apiVersion","signatureVersion","params","s3","async","credentials","IdentityPoolId","Logins","idToken","config","getBucketList","getScenario","bucket","Bucket","moreToLoad","list","Contents","IsTruncated","NextContinuationToken","listObjectsV2","promise","ContinuationToken","err","scenarios","from","Set","map","Key","split","scenList","scen","files","filter","item","startsWith","isLocked","length","maxDateObj","reduce","prev","current","LastModified","maxDate","toLocaleDateString","toLocaleTimeString","userEmail","resp","headObject","Metadata","user_email","commit","model","scenario","lastModified","protected","readJson","ResponseCacheControl","response","getObject","JSON","parse","TextDecoder","decode","Body","trim","readBytes","bucketList","cognitoGroup","listFiles","prefix","isArray","paths","forEach","Prefix","Content","copyFolder","newName","el","Error","file","newFile","join","oldPath","encodeURIComponent","copyParams","CopySource","copyObject","deleteFolder","arr","deleteParams","Delete","Objects","deleteObjects","createFolder","slice","upload","console","log","putObject","body","cognitoInfo","email","ContentType","putBytes","getImagesURL","getSignedUrl","Expires","downloadFolder","zip","fileName","generateAsync","then","content","newScenario","filesToCopy","includes","IDENTITY_POOL_ID","auth","ClientId","AppWebDomain","TokenScopesArray","RedirectUriSignIn","RedirectUriSignOut","UserPoolId","userhandler","onSuccess","result","getIdToken","jwtToken","sessionIdInfo","accessToken","keys","onFailure","alert","go","path","query","message","storage","getStorage","login","getSession","logout","isUserSignedIn","getCognitoStorageKey","removeItem","signOut","keyPrefix","getClientId","tokenUserName","signInUserSession","getAccessToken","getUsername","s","quetzalClient","client","create","baseURL","withCredentials","headers","axiosClient","loginAll","$gettext","serializer","geojson","ignoreIndex","currentType","geometry","paramsSerializer","json","info","expectedKeys","a","b","every","has","stylesSerializer","readFileAsText","Promise","resolve","reject","reader","FileReader","onload","event","target","onerror","error","readAsText","readFileAsBytes","fileBytes","Uint8Array","readAsArrayBuffer","extractZip","ZIP","loadAsync","filesNames","match","endsWith","checkPaths","i","str","getGroupForm","lineAttributes","uneditable","form","val","link","size","disabled","placeholder","IndexAreDifferent","geojsonA","geojsonB","linksIndex","index","newLinksIndex","unzip","csvJSON","bytes","lines","line","obj","currentline","j","highwayList","highwayColor","motorway","motorway_link","trunk","trunk_link","primary","primary_link","secondary","secondary_link","tertiary","tertiary_link","residential","living_street","service","unclassified","cycleway","pedestrian","highwayWidth","onResize","ref","attrs","loading","indeterminate","class","notification","timeout","autoClose","transition","scopedSlots","_u","fn","_b","small","text","on","click","closeSnackbar","snackbar","callback","$$v","dense","src","contain","bottom","_g","icon","href","$vuetify","theme","dark","$set","$language","available","language","lang","handleChangeLanguage","toUpperCase","loggedIn","initial","menu","given_name","family_name","group","persistent","keydown","$event","indexOf","_k","keyCode","applyDialog","apply","arguments","showDialog","events","action","projectIsEmpty","watch","methods","modelsList","deleteDialog","copyDialog","localModel","tab","scenariosList","modelScen","selectScenario","stopPropagation","selectedScenario","input","scenarioToDelete","cancelDialog","deleteScenario","createProject","cancel","cols","autofocus","label","textAlign","errorMessage","closeCopy","_e","localScen","sort","localeCompare","undefined","sensitivity","dispatch","mounted","loadProject","$router","s3Path","catch","p","base","setTimeout","Profile","dialog","app","stateless","temporary","mini","drawer","getDisplayedRoutes","$route","marginTop","margin","isProtected","handleClickMenuItem","nativeOn","running","width","proxy","title","runWarning","runError","saving","marginLeft","fontSize","version","leftSidenav","menuItems","runSychronized","created","routes","concat","o","getRouteTitle","route","tpl","$gettextInterpolate","sheet","prominent","close","Toolbar","NavigationDrawer","Alert","$refs","container","clientHeight","assert","languageMixin","$selectBestLanguage","browserLangs","supportedLangs","parts","toLowerCase","normLang","bestLanguage","navigator","languages","darkMode","window","matchMedia","matches","use","autoAddKeyAttributes","availableLanguages","en","fr","es","de","pt","defaultLanguage","translations","silent","productionTip","devtools","performance","customProperties","themes","light","primarydark","secondarydark","secondarydarkfix","secondarylight","background","lightgrey","white","black","mediumgrey","darkgrey","accent","linksprimary","linkssecondary","chart","lightgreen","darkgreen","lightblue","darkblue","purple","pink","orange","yellow","success","icons","iconfont","locales","mixin","$flatEdges","recurse","flatObj","edges","edge","node","router","store","vuetify","h","App","template","$mount","staticStyle","display","accept","change","readZip","buttonHandle","vertical","FilesLoaded","loadNetwork","filesAdded","readFile","readParams","readStyles","opacity","linksIsEmpty","outlined","loadedType","localLinksLoaded","localNodesLoaded","rlinksIsEmpty","ODIsEmpty","paramsIsEmpty","stylesIsEmpty","loadedLinks","loadedNodes","choice","styles","localFilesAreLoaded","$emit","paramsInput","document","getElementById","stylesInput","fileInput","multiple","readOtherInputs","readOtherOutputs","inputFiles","outputFiles","layers","filesPanel","loadedFiles","otherFiles","availableLayers","otherOutputs","otherInputs","fileList","show","height","url","alt","img","Image","FileLoader","InfoZip","FilesList","loadFilesFromS3","zipInput","loadExample","newProject","zfiles","replace","res","filesList","filesToLoads","fetch","blob","scrollable","numLinks","applyAction","cancelAction","editForm","n","idx","transform","linkDir","orderedForm","hint","showHint","hints","filled","attributeType","wheel","blur","attributesChoices","items","showDeleteOption","attributeNonDeletable","deleteField","rules","newField","addField","fab","newFieldName","cloneName","ToggleDeleteOption","duplicate","cancelClone","cloneDialog","selectedTrips","selectedrGroup","updateSelectedTrips","confirmChanges","abortChanges","deleteButton","cloneButton","propertiesButton","actionClick","e","mode","clickFeature","showLeftPanelContent","grow","showAll","tripList","tripId","filterChoices","vmodelSelectedFilter","classifiedTripId","String","showGroup","some","editorTrip","trip","min","right","editButton","anchorMode","createNewLine","selectedFilter","arrayUniqueTripId","Map","links","trip_id","values","filteredCat","undefinedCat","c","newVal","oldVal","newTrip","dict","$nextTick","changeBounds","lingering","tripIds","generate","editVisible","hasCycleway","cyclewayMode","selectedrGoup","rlineAttributes","filteredrCategory","changes","method","category","structuredClone","selectedrFilter","vmodelSelectedCat","layer","selectedCat","LinksSidePanel","RoadSidePanel","ODSidePanel","mapStyle","mapboxPublicKey","center","mapCenter","zoom","mapZoom","load","onMapLoaded","mousemove","draw","mouseout","resetDraw","addPoint","mouseup","rightClickMap","mapIsLoaded","rasterFiles","choices","position","visibleRasters","preset","isEditorMode","onHover","onHoverRoad","offHover","rightClick","drawMode","source","drawLink","buffer","generateId","minzoom","paint","currentTheme","connectedDrawLink","origin","shake","submit","linkSpeed","suffix","units","required","roadSpeed","linksPopupContent","offsetY","chips","roadsPopupContent","defaultHighway","zipRules","outputName","v","localShow","validate","payload","visibleLinks","promoteId","interactive","maxzoom","layout","mouseenter","enterLink","mouseleave","leaveLink","contextmenu","editLineProperties","visibleNodes","MglGeojsonLayer","selectedFeatures","selectedPopupContent","nodes","showedTrips","setHiddenFeatures","off","selectLine","linksHeader","nodesHeader","getCanvas","cursor","mapboxEvent","popup","isOpen","remove","htmlContent","prop","closeButton","setLngLat","lngLat","lng","lat","setHTML","addTo","showedTripsSet","ab","widthArr","route_width","widthDict","add","totSet","x","newNodes","preventDefault","bbox","point","y","queryRenderedFeatures","editorLinks","selectClick","mouseover","onCursor","offCursor","linkRightClick","editorNodes","mousedown","moveNode","contextMenuNode","anchorNodes","showed","popupEditor","coordinates","hoveredStateId","layerId","contextMenu","flat","actions","feature","MglPopup","MglImageLayer","disablePopup","keepHovering","dragNode","querySourceFeatures","setFeatureState","hover","selectedId","selectedNode","firstNodeId","lastNodeId","originalEvent","button","onMove","stopMovingNode","loaded","isRoadMode","renderedrLinks","rlinks","minZoom","rendered","ArrowSizeCondition","ArrowDirCondition","renderedrNodes","rnodes","renderedAnchorrNodes","rnodesHeader","editorRnodes","visiblerNodes","visiblerLinks","anchorrNodes","defaultCondition","getRouteWidth","getBounds","beforeDestroy","removeLayer","bounds","_sw","_ne","getZoom","uniqueArray","selectedIndex","offsetValue","MapLegend","getLayer","moveLayer","offset","changeLayer","selectedCategory","selectedLayer","selectedLayers","selectedOpacity","isODMode","test","linkIndex","coordinatedIndex","MglMap","MglNavigationControl","MglScaleControl","LayerSelector","StaticLayer","StaticLinks","EditorLinks","RoadLinks","Settings","ODMap","hoverId","hoverLayer","mapDiv","firstNode","lastNode","resize","saveMapPosition","extend","fitBounds","padding","getStyle","setLayoutProperty","getCenter","loadImage","arrow","image","addImage","sdf","dragRotate","disable","pointGeom","nodeIdA","nodeIdB","geom","nodeId","swatchStyle","swatches","updateColor","pcolor","tempArr","openMenu","selectedVal","agency_id","direction_id","drop_off_type","headway","pickup_type","route_color","route_id","route_long_name","route_short_name","route_type","time","highway","speed","cycleway_reverse","SidePanel","ColorPicker","MenuSelector","selectedLink","editorForm","cursorPosition","tripToDelete","tripToClone","groupTripIds","addEventListener","editorLineInfo","linkId","rlinksForm","rlinkDirection","onewayIndex","reversedrLinksForm","grouprLinks","selectedLinks","filtered","selectedLinkId","selectedNodeId","selection","rcstAttributes","table","field","substr","defaultAttributesNames","rundeletable","Microservices","ResultMap","Run","ResultPicture","ResultTable","linkExactActiveClass","Import","component","beforeEnter","to","next","Home","currUrl","location","parseCognitoWebResponse","beforeEach","projectIsUndefined","state","newLink","newNode","linksDefaultColor","nodeAttributes","defaultAttributes","mutations","loadLinks","points","coord","loadNodes","stringify","unloadFiles","loadPTFiles","appendNewLinks","appendNewNodes","getLinksProperties","header","element","attr","att","getNodesProperties","addPropertie","deletePropertie","changeSelectedTrips","setEditorTrip","cloneTrip","cloned","linkSequence","reverse","link_sequence","getEditorNodes","editorNodesList","getEditorLineInfo","defaultValue","getTripId","setNewLink","uncopiedPropeties","tempLink","linkProperties","linkFeature","assign","nodeCopyId","createNewNode","nodeProperties","nodeFeatures","setNewNode","tempNode","editNewLink","applyNewLink","distance","toFixed","splice","deleteNode","nodeIndex","link1","link2","featureIndex","findIndex","splitLink","ratio","sliceIndex","seq","addNodeInline","linkGeom","clickedPoint","snapped","dist","addAnchorNode","deleteAnchorNode","moveAnchor","cutLineFromNode","toDelete","entries","cutLineAtNode","editLineInfo","editLinkInfo","editNodeInfo","editGroupInfo","editorGroupInfo","deleteUnusedNodes","nodesInLinks","nodesList","eNode","deleteTrip","applyPropertiesTypes","rlinksHeader","rnodeAttributes","newrNode","connectedLinks","rlinksDefaultColor","reversedAttributes","loadrLinks","loadrNodes","loadRoadFiles","appendNewrLinks","appendNewrNodes","getrLinksProperties","getrNodesProperties","addRoadPropertie","deleteRoadPropertie","changeSelectedrFilter","getFilteredrCat","splitOneway","oneway","changeVisibleRoads","cat","tempLinks","refreshVisibleRoads","possibleGroups","getVisiblerNodes","rNodesList","getRenderedrLinks","getRenderedrNodes","setRenderedrLinks","editrLinkInfo","rkey","editrNodeInfo","createNewrNode","splitrLink","length_r","time_r","addRoadNodeInline","addAnchorrNode","createrLink","rnodeA","rnodeB","linkGeometry","newLinkGroup","getConnectedLinks","moverNode","rtime","speed_r","moverAnchor","deleteAnchorrNode","deleterLink","linkArr","deleterGroup","deleteUnusedrNodes","editrGroupInfo","groupInfo","reversedProps","indexList","reversed","namespaced","visibleLayer","layerHeader","layerAttributes","filteredCategory","loadLayer","loadODFiles","appendNewOD","changeSelectedFilter","changeSelectedCategory","getProperties","refreshVisibleLayer","getFilteredCategory","deleteOD","deleteGroup","createNewLink","newCat","layerIsEmpty","groupLayer","linkForm","Index","seedrandom","remap","scale","isWidth","rng","log10","sqrt","defaultSettings","maxWidth","minWidth","numStep","fixScale","cmap","showNaN","reverseColor","NaNLinks","unload","updateLinks","applySettings","updateSelectedFeature","featureArr","arrayMinMax","max","POSITIVE_INFINITY","NEGATIVE_INFINITY","minV","maxV","display_width","domain","classes","display_color","hex","refreshVisibleLinks","displayLinks","mat","createLayer","addMatrix","zone","changeZone","selectedProperty","row","hasOD","stateMachineArnBase","steps","selectedStepFunction","avalaibleStepFunctions","executionArn","currentStep","synchronized","parameters","cleanRun","setSteps","startExecution","terminateExecution","changeRunning","succeedExecution","updateCurrentStep","stepNames","getLocalParameters","setSelectedStepFunction","setAvalaibleStepFunctions","root","context","rootState","user","getSteps","stateMachineArn","post","def","definition","firstStep","StartAt","States","Type","Choices","StringEquals","Next","Default","paramsDict","param","acc","paramAcc","authorization","scenario_path_S3","launcher_arg","training_folder","metadata","pollExecution","intervalId","setInterval","status","clearInterval","cause","includeExecutionData","reverseOrder","stateEnteredEventDetails","stopExecution","parametersIsEmpty","callID","timer","num_zones","train_size","date_time","ff_time_col","max_speed","num_cores","num_random_od","create_zone","hereApiKey","setCallID","uuid","setParameters","getApproxTimer","numZones","trainSize","numPlotOD","tags","colorDict","changeHighway","coords","elevation","poly","applyDict","accesToken","expData","loadingState","errorLoadingState","unloadProject","setLoggedIn","setLoggedOut","setCognitoInfo","setCognitoGroup","setBucketList","setAccessToken","expDate","exp","setIdToken","setScenariosList","setModel","setScenario","isTokenExpired","floor","Date","now","modules","od","results","run","runMRC","MatrixRoadCaster","runOSM","OSMImporter","changeNotification","changeAlert","changeDarkMode","changeLoading","changeWindowHeight","changeLeftPanel","setAnchorMode","changeAnchorMode","changeCyclewayMode","loadFiles","ptFiles","roadFiles","ODFiles","paramFile","stylesFile","attributesChoicesFile","layerFiles","matrixFiles","loadOtherFiles","newPaths","loadAttributesChoices","road","setVisibleRasters","loadLayers","loadMatrix","moduleName","_modules","_children","registerModule","initNetworks","unloadLayers","unregisterModule","addStyle","deleteStyle","tempNodes","Blob","staticLayers","inputFolder","ptFolder","roadFolder","odFolder","filteredLayers","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","__webpack_modules__","call","m","amdD","amdO","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","r","getter","__esModule","d","getPrototypeOf","t","ns","getOwnPropertyNames","defineProperty","enumerable","get","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","nc","setAttribute","onScriptComplete","clearTimeout","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","nmd","children","baseURI","self","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 27dcb781..8d60ff23 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Network Editor", "author": "Simon Fortin ; Simon Boivin ", "license": "MIT", - "version": "4.10.2", + "version": "4.10.3", "private": true, "scripts": { "clean": "rm -rf dist && rm -f src/config.js", diff --git a/src/components/layout/ScenariosExplorer.vue b/src/components/layout/ScenariosExplorer.vue index 0029ee01..59ab0817 100644 --- a/src/components/layout/ScenariosExplorer.vue +++ b/src/components/layout/ScenariosExplorer.vue @@ -143,7 +143,7 @@ export default { try { if (this.selectedScenario) { // this is a copy - await s3.copyFolder(this.localModel, this.selectedScenario, this.input) + await s3.copyFolder(this.localModel, this.selectedScenario + '/', this.input) this.$store.commit('changeNotification', { text: $gettext('Scenario successfully copied'), autoClose: true, color: 'success' }) } else { diff --git a/src/store/od.js b/src/store/od.js index 27c4900d..c0b903f6 100644 --- a/src/store/od.js +++ b/src/store/od.js @@ -77,7 +77,7 @@ export default { }) // add all default attributes const defaultAttributes = [ - 'index', ' name'] + 'index', 'name'] defaultAttributes.forEach(att => header.add(att)) state.layerAttributes = Array.from(header) state.selectedFilter = state.layerAttributes[0]