@simonbackx/vue-app-navigation 1.23.3 → 1.23.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://@simonbackx/vue-app-navigation/./src/NavigationController.vue","webpack://@simonbackx/vue-app-navigation/./src/Popup.vue","webpack://@simonbackx/vue-app-navigation/./src/Sheet.vue","webpack://@simonbackx/vue-app-navigation/./src/SideView.vue","webpack://@simonbackx/vue-app-navigation/./src/SplitViewController.vue"],"names":[],"mappings":"AAunBA,uBAEI,iBACA,kBAIQ,yFAEI,kBACA,YAEA,iGACI,iBACA,sCACA,gBACA,qCAEA,sBAEA,oDACA,4BAIR,yFAEI,kBAKA,QACA,SACA,UACA,WACA,eAGA,sBAEA,iGAEI,WACA,YAKJ,gDACI,wBAIR,4CACI,uBAMA,mDACI,qDAIR,uFAEI,kBACA,cAKA,QACA,SACA,UACA,WAEA,+FAEI,gBACA,qCACA,WACA,YAIR,uFAEI,kBAIA,+CACI,4BAOZ,0CACI,iBAEA,8CACI,yBAIR,0CACI,iBAGA,sBAEA,8CACI,yBAIR,6EAEI,kBACA,YAGJ,6EAEI,kBAKA,QACA,SACA,UACA,WAIA,qFAEI,WACA,YAIR,sCACI,uBAQA,uCACI,2BAGA,+DAKJ,0CACI,2BAGA,+DAMP,yCACG,iBAGA,uBAEA,6CACI,0BAIR,yCACI,iBAEA,6CACI,0BAIR,2EAEI,kBACA,aAGJ,2EAEI,kBAEA,QACA,SACA,UACA,WACA,YAEA,mFAEI,WACA,YAIR,kCACI,uBAIA,sCACI,2BAGA,+DAKJ,yCACI,2BAGA,+D;ACluBhB,OAGI,eACA,OACA,MACA,SACA,QACA,aACA,mBACA,uBACA,cACA,gCAEA,aACI,0BACA,WACA,kBACA,OACA,MACA,SACA,QACA,UACA,gCACA,oBACA,uBACA,UAGJ,oBACI,aAKJ,WACI,gBACA,gBACA,gBACA,qCACA,kBAGA,gBAEA,iBACA,sCACA,yCAEA,iCACA,8BAEA,sBAEA,gCACA,8BAEA,2BAGA,+BACA,wBAEA,mBACA,+DACA,UACA,kBAEA,iCACI,gBACA,gBAEA,yCACA,YACA,4BAGJ,iBACI,0BACA,WACA,kBACA,OACA,MACA,SACA,QACA,UACA,gCACA,+BACA,kBACA,cACA,+CAKJ,0BACI,6DACA,kBACA,UACA,mDAEA,gCACI,UACA,mBACA,iDAMR,qBACI,qDAEA,2BACI,UACA,mBACA,iDAKZ,cACI,qBAEA,kBACI,iBACA,0BACA,4BACA,6BAEA,oBAEI,wBAMR,+BACI,uBAGJ,6BAEI,gEAKJ,+BACI,uBAGJ,6BAEI,gEAKJ,mDACI,UAGJ,+CACI,6BACA,U;AC5MZ,OAGI,eACA,OACA,MACA,SACA,QACA,aACA,mBACA,uBACA,cACA,aACA,gCAEA,8BACI,oDACA,mBAGJ,aACI,0BACA,WACA,kBACA,OACA,MACA,SACA,QACA,UACA,gCACA,oBACA,uBACA,UAGJ,oBACI,aAKJ,WACI,gBACA,gBACA,qCACA,kBAGA,gBAEA,iBACA,8BACA,6CAEA,gBACA,gBACA,iCACA,8BAEA,sBAEA,2BAGA,+BACA,yBACA,UACA,2BACA,8CAEA,aACI,yCAKJ,+BACI,uBAGJ,6BAEI,gEAKJ,+BACI,uBAGJ,6BAEI,gEAKJ,mDACI,UAGJ,+CACI,6BACA,U;AC5EZ,WAEI,0BACA,eACA,OACA,MACA,SACA,QACA,cACA,mBACA,UACA,sEAEA,sBACI,gCAKJ,eACI,eACA,QACA,MACA,SACA,WACA,gBACA,gBACA,qCACA,kBAGA,gBAEA,YAEA,gBACA,gBACA,iCACA,8BAEA,sBAGA,+BAGA,2CACA,wBAGJ,0BACI,oEACA,kBACA,UACA,gCAEA,8BACI,mDACA,kBAIR,qBACI,gCAEA,yBACI,qDACA,kBAIR,+FAGI,eAEA,2GACI,yBAGR,+CACI,+BAEA,uDACI,6BAIR,0DAEI,c;ACRR,uBAEI,kBACA,WACA,sBAwCA,iBACA,sCAvCA,+BACI,cACA,YACA,gBACA,OACA,MACA,aACA,kCAEA,gBACA,kBACA,iCAIA,8BAEA,0CACI,kBACA,iBACA,WACA,YAoBR,6CACI,aACA,gCACA,yDAEA,qDACI,YAGJ,qDACI,YACA,iBACA,sC","file":"main.css","sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.navigation-controller {\n // Scrolling should happen inside the children!\n overflow: visible;\n position: relative;\n\n > .modal {\n &-push {\n &-enter,\n &-enter-active {\n position: relative;\n z-index: 100;\n \n & > div {\n min-height: 100vh;\n min-height: calc(var(--vh, 1vh) * 100);\n background: white;\n background: var(--color-white, white);\n\n will-change: transform;\n\n transition: transform 0.30s cubic-bezier(0.0, 0.0, 0.2, 1);\n transform: translateY(100vh);\n }\n }\n\n &-leave,\n &-leave-active {\n position: absolute;\n\n // During leave animation, the div inside this container will transition to the left, causing scroll offsets\n // We'll need to ignore these\n //overflow: hidden !important;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n contain: strict;\n\n // Darkness in sync with enter animation\n transition: filter 0.30s;\n\n & > div {\n //overflow: hidden !important;\n width: 100%;\n height: 100%;\n }\n }\n\n &-enter-to {\n & > div {\n transform: translateY(0);\n }\n }\n\n &-leave-to {\n filter: brightness(80%);\n }\n }\n\n &-pop {\n &-leave-active {\n & > div {\n transition: transform 0.25s cubic-bezier(0.4, 0.0, 1, 1);\n }\n }\n\n &-leave,\n &-leave-active {\n position: absolute;\n z-index: 10000;\n\n // During leave animation, the div inside this container will transition to the left, causing scroll offsets\n // We'll need to ignore these\n //overflow: hidden !important;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n\n & > div {\n //overflow: hidden !important;\n background: white;\n background: var(--color-white, white);\n width: 100%;\n height: 100%;\n }\n }\n\n &-enter,\n &-enter-active {\n position: relative;\n }\n\n &-leave-to {\n & > div {\n transform: translateY(100vh);\n }\n }\n }\n }\n\n > .push {\n &-enter-active {\n user-select: none;\n\n & > div {\n transition: transform 0.30s;\n }\n }\n\n &-leave-active {\n user-select: none;\n\n // Darkness in sync with enter animation\n transition: filter 0.30s;\n\n & > div {\n transition: transform 0.30s;\n }\n }\n\n &-enter,\n &-enter-active {\n position: relative;\n z-index: 100;\n }\n\n &-leave,\n &-leave-active {\n position: absolute;\n\n // During leave animation, the div inside this container will transition to the left, causing scroll offsets\n // We'll need to ignore these\n //overflow: hidden !important;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n\n // Top, left and bottom will get adjusted\n\n & > div {\n //overflow: hidden !important;\n width: 100%;\n height: 100%;\n }\n }\n\n &-leave-to /* .fade-leave-active below version 2.1.8 */ {\n filter: brightness(80%);\n }\n\n /*&-enter, &-leave-to {\n opacity: 0;\n }*/\n\n &-enter {\n & > div {\n transform: translateX(100%);\n\n // RTL support\n transform: translateX(calc(100% * var(--direction-scale-x, 1)));\n }\n }\n\n &-leave-to {\n & > div {\n transform: translateX(-40%);\n\n // RTL support\n transform: translateX(calc(-40% * var(--direction-scale-x, 1)));\n }\n }\n }\n\n > .pop {\n &-enter-active {\n user-select: none;\n\n // Opacity in sync with leave\n transition: filter 0.25s;\n\n & > div {\n transition: transform 0.25s;\n }\n }\n\n &-leave-active {\n user-select: none;\n\n & > div {\n transition: transform 0.25s;\n }\n }\n\n &-enter,\n &-enter-active {\n position: relative;\n z-index: -100;\n }\n\n &-leave,\n &-leave-active {\n position: absolute;\n //overflow: hidden !important;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 100;\n\n & > div {\n //overflow: hidden !important;\n width: 100%;\n height: 100%;\n }\n }\n\n &-enter/*, &-leave-to *//* .fade-leave-active below version 2.1.8 */ {\n filter: brightness(80%);\n }\n\n &-enter {\n & > div {\n transform: translateX(-40%);\n\n // RTL support\n transform: translateX(calc(-40% * var(--direction-scale-x, 1)));\n }\n }\n\n &-leave-to {\n & > div {\n transform: translateX(100%);\n\n // RTL support\n transform: translateX(calc(100% * var(--direction-scale-x, 1)));\n }\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.popup {\n // DO NOT ADD MAX HEIGHT HERE! Always add it to the children of the navigation controllers!\n //background: rgba(black, 0.7);\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n contain: size layout style paint;\n\n &:after {\n background: rgba(black, 0.7);\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 1;\n contain: size layout style paint;\n will-change: opacity;\n transition: opacity 0.3s;\n z-index: 0;\n }\n\n ~.popup:after {\n display: none;\n }\n\n // Improve performance\n\n & > div {\n max-width: 800px;\n flex-basis: 100%;\n background: white;\n background: var(--color-white, white);\n border-radius: 5px;\n\n // Rounded corners need overflow hidden on scroll\n overflow: hidden;\n\n max-height: 100vh;\n max-height: calc(var(--vh, 1vh) * 100);\n height: calc(var(--vh, 1vh) * 100 - 80px);\n\n -webkit-overflow-scrolling: touch;\n overscroll-behavior-y: contain;\n\n box-sizing: border-box;\n\n contain: size layout style paint;\n will-change: transform, opacity;\n\n --saved-vh: var(--vh, 1vh);\n\n // Fix chrome bug that scrollbars are not visible anymore\n transform: translate3d(0, 0, 0);\n transform-origin: 50% 0%;\n\n visibility: visible;\n transition: transform 0.3s, opacity 0.3s, visibility step-start 0.3s;\n z-index: 1;\n position: relative;\n\n > .scrollable-container {\n overflow: hidden;\n overflow-y: auto;\n // Pass updated vh to children\n --vh: calc(var(--saved-vh, 1vh) - 0.8px);\n height: 100%;\n will-change: scroll-position;\n }\n\n &:after {\n background: rgba(black, 0.4);\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 0;\n contain: size layout style paint;\n will-change: opacity, visibility;\n visibility: hidden;\n z-index: 20000;\n transition: opacity 0.3s, visibility step-end 0.3s;\n }\n }\n\n &.push-down-full {\n & > div {\n transition: transform 0.3s, opacity 0.3s, visibility step-end 0.3s;\n visibility: hidden;\n opacity: 0;\n transform: scale(0.9, 0.9) translate3d(0, -15px, 0);\n\n &:after {\n opacity: 1;\n visibility: visible;\n transition: opacity 0.3s, visibility step-start 0.3s;\n }\n }\n }\n\n &.push-down {\n & > div {\n transform: scale(0.95, 0.95) translate3d(0, -10px, 0);\n\n &:after {\n opacity: 1;\n visibility: visible;\n transition: opacity 0.3s, visibility step-start 0.3s;\n }\n }\n }\n\n &.sticky {\n align-items: flex-end;\n\n > div {\n max-height: 100vh;\n height: calc(100vh - 80px);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n\n > * {\n // Pass updated vh to children\n --vh: calc(1vh - 0.8px);\n }\n }\n }\n\n &.fade-enter-active {\n &:after {\n transition: opacity 0.3s;\n }\n\n & > div {\n // Decelerated easing\n transition: transform 0.3s cubic-bezier(0.0, 0.0, 0.2, 1), opacity 0.3s;\n }\n }\n\n &.fade-leave-active {\n &:after {\n transition: opacity 0.3s;\n }\n\n & > div {\n // Accelerated easing\n transition: transform 0.3s cubic-bezier(0.4, 0.0, 1, 1), opacity 0.3s;\n }\n }\n\n &.fade-enter, &.fade-leave-to {\n &:after {\n opacity: 0;\n }\n\n & > div {\n transform: translate(0, 50vh);\n opacity: 0;\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.sheet {\n // DO NOT ADD MAX HEIGHT HERE! Always add it to the children of the navigation controllers!\n // background: rgba(black, 0.7);\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n padding: 20px;\n contain: size layout style paint;\n\n .navigation-controller {\n transition: height 0.25s cubic-bezier(0.4, 0.0, 0.2, 1);\n will-change: height;\n }\n\n &:after {\n background: rgba(black, 0.7);\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 1;\n contain: size layout style paint;\n will-change: opacity;\n transition: opacity 0.3s;\n z-index: 0;\n }\n\n ~.sheet:after {\n display: none;\n }\n\n // Improve performance\n\n & > div {\n max-width: 800px;\n background: white;\n background: var(--color-white, white);\n border-radius: 5px;\n\n // Rounded corners need overflow hidden on scroll\n overflow: hidden;\n\n max-height: 100vh;\n max-height: calc(100vh - 80px);\n max-height: calc(var(--vh, 1vh) * 100 - 80px);\n\n overflow: hidden;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n overscroll-behavior-y: contain;\n\n box-sizing: border-box;\n\n --saved-vh: var(--vh, 1vh);\n\n // Fix chrome bug that scrollbars are not visible anymore\n transform: translate3d(0, 0, 0);\n transform-origin: 50% 50%;\n z-index: 1;\n contain: layout style paint;\n will-change: transform, opacity, scroll-position;\n\n > * {\n --vh: calc(var(--saved-vh, 1vh) - 0.8px);\n }\n }\n\n &.fade-enter-active {\n &:after {\n transition: opacity 0.3s;\n }\n\n & > div {\n // Decelerated easing\n transition: transform 0.3s cubic-bezier(0.0, 0.0, 0.2, 1), opacity 0.3s;\n }\n }\n\n &.fade-leave-active {\n &:after {\n transition: opacity 0.3s;\n }\n\n & > div {\n // Accelerated easing\n transition: transform 0.3s cubic-bezier(0.4, 0.0, 1, 1), opacity 0.3s;\n }\n }\n\n &.fade-enter, &.fade-leave-to {\n &:after {\n opacity: 0;\n }\n\n & > div {\n transform: translate(0, 30vh);\n opacity: 0;\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.side-view {\n // DO NOT ADD MAX HEIGHT HERE! Always add it to the children of the navigation controllers!\n background: rgba(black, 0.7);\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10000;\n visibility: visible;\n opacity: 1;\n transition: background-color 0.3s, opacity 0.3s, visibility step-start 0.3s;\n\n ~.side-view {\n background-color: rgba(black, 0.4);\n }\n\n // Improve performance\n\n & > div {\n position: fixed;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n max-width: 800px;\n background: white;\n background: var(--color-white, white);\n border-radius: 0px;\n\n // Rounded corners need overflow hidden on scroll\n overflow: hidden;\n\n height: 100%;\n\n overflow: hidden;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n overscroll-behavior-y: contain;\n\n box-sizing: border-box;\n\n // Fix chrome bug that scrollbars are not visible anymore\n transform: translate3d(0, 0, 0);\n\n // Push down\n transition: transform 0.3s, border-radius 0.3s;\n transform-origin: 0% 50%;\n }\n\n &.push-down-full {\n transition: background-color 0.3s, opacity 0.3s, visibility step-end 0.3s;\n visibility: hidden;\n opacity: 0;\n background-color: rgba(black, 0.6);\n\n & > div {\n transform: scale(0.9, 0.9) translate3d(-15px, 0, 0);\n border-radius: 5px;\n }\n }\n\n &.push-down {\n background-color: rgba(black, 0.6);\n\n & > div {\n transform: scale(0.95, 0.95) translate3d(-10px, 0, 0);\n border-radius: 5px;\n }\n }\n\n &.fade-enter-active,\n &.fade-leave-active,\n &[data-extended-enter=\"true\"] {\n position: fixed;\n\n & > div {\n transition: transform 0.3s;\n }\n }\n &.fade-enter, &.fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n background-color: rgba(black, 0);\n\n & > div {\n transform: translate(100%, 0);\n }\n }\n\n &.fade-enter-active,\n &.fade-leave-active {\n z-index: 10000;\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.split-view-controller {\n //background: $color-white-shade;\n position: relative;\n width: 100%;\n box-sizing: border-box;\n\n & > .master {\n flex-shrink: 0;\n flex-grow: 0;\n position: sticky;\n left: 0;\n top: 0;\n height: 100vh;\n height: calc(var(--vh, 1vh) * 100);\n\n overflow: hidden;\n overflow-y: scroll;\n -webkit-overflow-scrolling: touch;\n\n // do not start scrolling parents if we reached the edge of this view\n // we'll need to add a polyfill for Safari in JS to disable overscroll (currently not available)\n overscroll-behavior-y: contain;\n\n &:last-child {\n position: relative;\n overflow: visible;\n width: 100%;\n height: auto;\n }\n }\n\n & > .detail {\n /*background: $color-white;\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;*/\n\n // Clip contents (during animations)\n // Sometimes not working on iOS (need to fix)\n // clip-path: inset(0px 0px);\n\n // @extend .style-side-view-shadow;\n }\n\n // Make sure our background color etc fills the whole view\n min-height: 100vh;\n min-height: calc(var(--vh, 1vh) * 100);\n\n &[data-has-detail=\"true\"] {\n display: grid;\n grid-template-columns: 320px 1fr;\n grid-template-columns: var(--split-view-width, 320px) 1fr;\n\n & > .master {\n min-width: 0;\n }\n\n & > .detail {\n min-width: 0;\n min-height: 100vh;\n min-height: calc(var(--vh, 1vh) * 100);\n }\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"file":"main.css","mappings":"AA8nBA,uBAEI,iBACA,kBAIQ,yFAEI,kBACA,YAEA,iGACI,iBACA,sCACA,gBACA,qCAEA,sBAEA,oDACA,4BAIR,yFAEI,kBAKA,QACA,SACA,UACA,WACA,eAGA,sBAEA,iGAEI,WACA,YAKJ,gDACI,wBAIR,4CACI,uBAMA,mDACI,qDAIR,uFAEI,kBACA,cAKA,QACA,SACA,UACA,WAEA,+FAEI,gBACA,qCACA,WACA,YAIR,uFAEI,kBAIA,+CACI,4BAOZ,0CACI,iBAEA,8CACI,yBAIR,0CACI,iBAGA,sBAEA,8CACI,yBAIR,6EAEI,kBACA,YAGJ,6EAEI,kBAKA,QACA,SACA,UACA,WAIA,qFAEI,WACA,YAIR,sCACI,uBAQA,uCACI,2BAGA,+DAKJ,0CACI,2BAGA,+DAMP,yCACG,iBAGA,uBAEA,6CACI,0BAIR,yCACI,iBAEA,6CACI,0BAIR,2EAEI,kBACA,aAGJ,2EAEI,kBAEA,QACA,SACA,UACA,WACA,YAEA,mFAEI,WACA,YAIR,kCACI,uBAIA,sCACI,2BAGA,+DAKJ,yCACI,2BAGA,+D;ACzuBhB,OAGI,eACA,OACA,MACA,SACA,QACA,aACA,mBACA,uBACA,cACA,gCAEA,aACI,0BACA,WACA,kBACA,OACA,MACA,SACA,QACA,UACA,gCACA,oBACA,uBACA,UAGJ,oBACI,aAKJ,WACI,gBACA,gBACA,gBACA,qCACA,kBAGA,gBAEA,iBACA,sCACA,yCAEA,iCACA,8BAEA,sBAEA,gCACA,8BAEA,2BAGA,+BACA,wBAEA,mBACA,+DACA,UACA,kBAEA,iCACI,gBACA,gBAEA,yCACA,YACA,4BAGJ,iBACI,0BACA,WACA,kBACA,OACA,MACA,SACA,QACA,UACA,gCACA,+BACA,kBACA,cACA,+CAKJ,0BACI,6DACA,kBACA,UACA,mDAEA,gCACI,UACA,mBACA,iDAMR,qBACI,qDAEA,2BACI,UACA,mBACA,iDAKZ,cACI,qBAEA,kBACI,iBACA,0BACA,4BACA,6BAEA,oBAEI,wBAMR,+BACI,uBAGJ,6BAEI,gEAKJ,+BACI,uBAGJ,6BAEI,gEAKJ,mDACI,UAGJ,+CACI,6BACA,U;AC5MZ,OAGI,eACA,OACA,MACA,SACA,QACA,aACA,mBACA,uBACA,cACA,aACA,gCAEA,8BACI,oDACA,mBAGJ,aACI,0BACA,WACA,kBACA,OACA,MACA,SACA,QACA,UACA,gCACA,oBACA,uBACA,UAGJ,oBACI,aAKJ,WACI,gBACA,gBACA,qCACA,kBAGA,gBAEA,iBACA,8BACA,6CAEA,gBACA,gBACA,iCACA,8BAEA,sBAEA,2BAGA,+BACA,yBACA,UACA,2BACA,8CAEA,aACI,yCAKJ,+BACI,uBAGJ,6BAEI,gEAKJ,+BACI,uBAGJ,6BAEI,gEAKJ,mDACI,UAGJ,+CACI,6BACA,U;AC5EZ,WAEI,0BACA,eACA,OACA,MACA,SACA,QACA,cACA,mBACA,UACA,sEAEA,sBACI,gCAKJ,eACI,eACA,QACA,MACA,SACA,WACA,gBACA,gBACA,qCACA,kBAGA,gBAEA,YAEA,gBACA,gBACA,iCACA,8BAEA,sBAGA,+BAGA,2CACA,wBAGJ,0BACI,oEACA,kBACA,UACA,gCAEA,8BACI,mDACA,kBAIR,qBACI,gCAEA,yBACI,qDACA,kBAIR,+FAGI,eAEA,2GACI,yBAGR,+CACI,+BAEA,uDACI,6BAIR,0DAEI,c;ACRR,uBAEI,kBACA,WACA,sBAwCA,iBACA,sCAvCA,+BACI,cACA,YACA,gBACA,OACA,MACA,aACA,kCAEA,gBACA,kBACA,iCAIA,8BAEA,0CACI,kBACA,iBACA,WACA,YAoBR,6CACI,aACA,gCACA,yDAEA,qDACI,YAGJ,qDACI,YACA,iBACA,sC","sources":["webpack://@simonbackx/vue-app-navigation/./src/NavigationController.vue","webpack://@simonbackx/vue-app-navigation/./src/Popup.vue","webpack://@simonbackx/vue-app-navigation/./src/Sheet.vue","webpack://@simonbackx/vue-app-navigation/./src/SideView.vue","webpack://@simonbackx/vue-app-navigation/./src/SplitViewController.vue"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.navigation-controller {\n // Scrolling should happen inside the children!\n overflow: visible;\n position: relative;\n\n > .modal {\n &-push {\n &-enter,\n &-enter-active {\n position: relative;\n z-index: 100;\n \n & > div {\n min-height: 100vh;\n min-height: calc(var(--vh, 1vh) * 100);\n background: white;\n background: var(--color-white, white);\n\n will-change: transform;\n\n transition: transform 0.30s cubic-bezier(0.0, 0.0, 0.2, 1);\n transform: translateY(100vh);\n }\n }\n\n &-leave,\n &-leave-active {\n position: absolute;\n\n // During leave animation, the div inside this container will transition to the left, causing scroll offsets\n // We'll need to ignore these\n //overflow: hidden !important;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n contain: strict;\n\n // Darkness in sync with enter animation\n transition: filter 0.30s;\n\n & > div {\n //overflow: hidden !important;\n width: 100%;\n height: 100%;\n }\n }\n\n &-enter-to {\n & > div {\n transform: translateY(0);\n }\n }\n\n &-leave-to {\n filter: brightness(80%);\n }\n }\n\n &-pop {\n &-leave-active {\n & > div {\n transition: transform 0.25s cubic-bezier(0.4, 0.0, 1, 1);\n }\n }\n\n &-leave,\n &-leave-active {\n position: absolute;\n z-index: 10000;\n\n // During leave animation, the div inside this container will transition to the left, causing scroll offsets\n // We'll need to ignore these\n //overflow: hidden !important;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n\n & > div {\n //overflow: hidden !important;\n background: white;\n background: var(--color-white, white);\n width: 100%;\n height: 100%;\n }\n }\n\n &-enter,\n &-enter-active {\n position: relative;\n }\n\n &-leave-to {\n & > div {\n transform: translateY(100vh);\n }\n }\n }\n }\n\n > .push {\n &-enter-active {\n user-select: none;\n\n & > div {\n transition: transform 0.30s;\n }\n }\n\n &-leave-active {\n user-select: none;\n\n // Darkness in sync with enter animation\n transition: filter 0.30s;\n\n & > div {\n transition: transform 0.30s;\n }\n }\n\n &-enter,\n &-enter-active {\n position: relative;\n z-index: 100;\n }\n\n &-leave,\n &-leave-active {\n position: absolute;\n\n // During leave animation, the div inside this container will transition to the left, causing scroll offsets\n // We'll need to ignore these\n //overflow: hidden !important;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n\n // Top, left and bottom will get adjusted\n\n & > div {\n //overflow: hidden !important;\n width: 100%;\n height: 100%;\n }\n }\n\n &-leave-to /* .fade-leave-active below version 2.1.8 */ {\n filter: brightness(80%);\n }\n\n /*&-enter, &-leave-to {\n opacity: 0;\n }*/\n\n &-enter {\n & > div {\n transform: translateX(100%);\n\n // RTL support\n transform: translateX(calc(100% * var(--direction-scale-x, 1)));\n }\n }\n\n &-leave-to {\n & > div {\n transform: translateX(-40%);\n\n // RTL support\n transform: translateX(calc(-40% * var(--direction-scale-x, 1)));\n }\n }\n }\n\n > .pop {\n &-enter-active {\n user-select: none;\n\n // Opacity in sync with leave\n transition: filter 0.25s;\n\n & > div {\n transition: transform 0.25s;\n }\n }\n\n &-leave-active {\n user-select: none;\n\n & > div {\n transition: transform 0.25s;\n }\n }\n\n &-enter,\n &-enter-active {\n position: relative;\n z-index: -100;\n }\n\n &-leave,\n &-leave-active {\n position: absolute;\n //overflow: hidden !important;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 100;\n\n & > div {\n //overflow: hidden !important;\n width: 100%;\n height: 100%;\n }\n }\n\n &-enter/*, &-leave-to *//* .fade-leave-active below version 2.1.8 */ {\n filter: brightness(80%);\n }\n\n &-enter {\n & > div {\n transform: translateX(-40%);\n\n // RTL support\n transform: translateX(calc(-40% * var(--direction-scale-x, 1)));\n }\n }\n\n &-leave-to {\n & > div {\n transform: translateX(100%);\n\n // RTL support\n transform: translateX(calc(100% * var(--direction-scale-x, 1)));\n }\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.popup {\n // DO NOT ADD MAX HEIGHT HERE! Always add it to the children of the navigation controllers!\n //background: rgba(black, 0.7);\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n contain: size layout style paint;\n\n &:after {\n background: rgba(black, 0.7);\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 1;\n contain: size layout style paint;\n will-change: opacity;\n transition: opacity 0.3s;\n z-index: 0;\n }\n\n ~.popup:after {\n display: none;\n }\n\n // Improve performance\n\n & > div {\n max-width: 800px;\n flex-basis: 100%;\n background: white;\n background: var(--color-white, white);\n border-radius: 5px;\n\n // Rounded corners need overflow hidden on scroll\n overflow: hidden;\n\n max-height: 100vh;\n max-height: calc(var(--vh, 1vh) * 100);\n height: calc(var(--vh, 1vh) * 100 - 80px);\n\n -webkit-overflow-scrolling: touch;\n overscroll-behavior-y: contain;\n\n box-sizing: border-box;\n\n contain: size layout style paint;\n will-change: transform, opacity;\n\n --saved-vh: var(--vh, 1vh);\n\n // Fix chrome bug that scrollbars are not visible anymore\n transform: translate3d(0, 0, 0);\n transform-origin: 50% 0%;\n\n visibility: visible;\n transition: transform 0.3s, opacity 0.3s, visibility step-start 0.3s;\n z-index: 1;\n position: relative;\n\n > .scrollable-container {\n overflow: hidden;\n overflow-y: auto;\n // Pass updated vh to children\n --vh: calc(var(--saved-vh, 1vh) - 0.8px);\n height: 100%;\n will-change: scroll-position;\n }\n\n &:after {\n background: rgba(black, 0.4);\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 0;\n contain: size layout style paint;\n will-change: opacity, visibility;\n visibility: hidden;\n z-index: 20000;\n transition: opacity 0.3s, visibility step-end 0.3s;\n }\n }\n\n &.push-down-full {\n & > div {\n transition: transform 0.3s, opacity 0.3s, visibility step-end 0.3s;\n visibility: hidden;\n opacity: 0;\n transform: scale(0.9, 0.9) translate3d(0, -15px, 0);\n\n &:after {\n opacity: 1;\n visibility: visible;\n transition: opacity 0.3s, visibility step-start 0.3s;\n }\n }\n }\n\n &.push-down {\n & > div {\n transform: scale(0.95, 0.95) translate3d(0, -10px, 0);\n\n &:after {\n opacity: 1;\n visibility: visible;\n transition: opacity 0.3s, visibility step-start 0.3s;\n }\n }\n }\n\n &.sticky {\n align-items: flex-end;\n\n > div {\n max-height: 100vh;\n height: calc(100vh - 80px);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n\n > * {\n // Pass updated vh to children\n --vh: calc(1vh - 0.8px);\n }\n }\n }\n\n &.fade-enter-active {\n &:after {\n transition: opacity 0.3s;\n }\n\n & > div {\n // Decelerated easing\n transition: transform 0.3s cubic-bezier(0.0, 0.0, 0.2, 1), opacity 0.3s;\n }\n }\n\n &.fade-leave-active {\n &:after {\n transition: opacity 0.3s;\n }\n\n & > div {\n // Accelerated easing\n transition: transform 0.3s cubic-bezier(0.4, 0.0, 1, 1), opacity 0.3s;\n }\n }\n\n &.fade-enter, &.fade-leave-to {\n &:after {\n opacity: 0;\n }\n\n & > div {\n transform: translate(0, 50vh);\n opacity: 0;\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.sheet {\n // DO NOT ADD MAX HEIGHT HERE! Always add it to the children of the navigation controllers!\n // background: rgba(black, 0.7);\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n padding: 20px;\n contain: size layout style paint;\n\n .navigation-controller {\n transition: height 0.25s cubic-bezier(0.4, 0.0, 0.2, 1);\n will-change: height;\n }\n\n &:after {\n background: rgba(black, 0.7);\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 1;\n contain: size layout style paint;\n will-change: opacity;\n transition: opacity 0.3s;\n z-index: 0;\n }\n\n ~.sheet:after {\n display: none;\n }\n\n // Improve performance\n\n & > div {\n max-width: 800px;\n background: white;\n background: var(--color-white, white);\n border-radius: 5px;\n\n // Rounded corners need overflow hidden on scroll\n overflow: hidden;\n\n max-height: 100vh;\n max-height: calc(100vh - 80px);\n max-height: calc(var(--vh, 1vh) * 100 - 80px);\n\n overflow: hidden;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n overscroll-behavior-y: contain;\n\n box-sizing: border-box;\n\n --saved-vh: var(--vh, 1vh);\n\n // Fix chrome bug that scrollbars are not visible anymore\n transform: translate3d(0, 0, 0);\n transform-origin: 50% 50%;\n z-index: 1;\n contain: layout style paint;\n will-change: transform, opacity, scroll-position;\n\n > * {\n --vh: calc(var(--saved-vh, 1vh) - 0.8px);\n }\n }\n\n &.fade-enter-active {\n &:after {\n transition: opacity 0.3s;\n }\n\n & > div {\n // Decelerated easing\n transition: transform 0.3s cubic-bezier(0.0, 0.0, 0.2, 1), opacity 0.3s;\n }\n }\n\n &.fade-leave-active {\n &:after {\n transition: opacity 0.3s;\n }\n\n & > div {\n // Accelerated easing\n transition: transform 0.3s cubic-bezier(0.4, 0.0, 1, 1), opacity 0.3s;\n }\n }\n\n &.fade-enter, &.fade-leave-to {\n &:after {\n opacity: 0;\n }\n\n & > div {\n transform: translate(0, 30vh);\n opacity: 0;\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.side-view {\n // DO NOT ADD MAX HEIGHT HERE! Always add it to the children of the navigation controllers!\n background: rgba(black, 0.7);\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10000;\n visibility: visible;\n opacity: 1;\n transition: background-color 0.3s, opacity 0.3s, visibility step-start 0.3s;\n\n ~.side-view {\n background-color: rgba(black, 0.4);\n }\n\n // Improve performance\n\n & > div {\n position: fixed;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n max-width: 800px;\n background: white;\n background: var(--color-white, white);\n border-radius: 0px;\n\n // Rounded corners need overflow hidden on scroll\n overflow: hidden;\n\n height: 100%;\n\n overflow: hidden;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n overscroll-behavior-y: contain;\n\n box-sizing: border-box;\n\n // Fix chrome bug that scrollbars are not visible anymore\n transform: translate3d(0, 0, 0);\n\n // Push down\n transition: transform 0.3s, border-radius 0.3s;\n transform-origin: 0% 50%;\n }\n\n &.push-down-full {\n transition: background-color 0.3s, opacity 0.3s, visibility step-end 0.3s;\n visibility: hidden;\n opacity: 0;\n background-color: rgba(black, 0.6);\n\n & > div {\n transform: scale(0.9, 0.9) translate3d(-15px, 0, 0);\n border-radius: 5px;\n }\n }\n\n &.push-down {\n background-color: rgba(black, 0.6);\n\n & > div {\n transform: scale(0.95, 0.95) translate3d(-10px, 0, 0);\n border-radius: 5px;\n }\n }\n\n &.fade-enter-active,\n &.fade-leave-active,\n &[data-extended-enter=\"true\"] {\n position: fixed;\n\n & > div {\n transition: transform 0.3s;\n }\n }\n &.fade-enter, &.fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n background-color: rgba(black, 0);\n\n & > div {\n transform: translate(100%, 0);\n }\n }\n\n &.fade-enter-active,\n &.fade-leave-active {\n z-index: 10000;\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.split-view-controller {\n //background: $color-white-shade;\n position: relative;\n width: 100%;\n box-sizing: border-box;\n\n & > .master {\n flex-shrink: 0;\n flex-grow: 0;\n position: sticky;\n left: 0;\n top: 0;\n height: 100vh;\n height: calc(var(--vh, 1vh) * 100);\n\n overflow: hidden;\n overflow-y: scroll;\n -webkit-overflow-scrolling: touch;\n\n // do not start scrolling parents if we reached the edge of this view\n // we'll need to add a polyfill for Safari in JS to disable overscroll (currently not available)\n overscroll-behavior-y: contain;\n\n &:last-child {\n position: relative;\n overflow: visible;\n width: 100%;\n height: auto;\n }\n }\n\n & > .detail {\n /*background: $color-white;\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;*/\n\n // Clip contents (during animations)\n // Sometimes not working on iOS (need to fix)\n // clip-path: inset(0px 0px);\n\n // @extend .style-side-view-shadow;\n }\n\n // Make sure our background color etc fills the whole view\n min-height: 100vh;\n min-height: calc(var(--vh, 1vh) * 100);\n\n &[data-has-detail=\"true\"] {\n display: grid;\n grid-template-columns: 320px 1fr;\n grid-template-columns: var(--split-view-width, 320px) 1fr;\n\n & > .master {\n min-width: 0;\n }\n\n & > .detail {\n min-width: 0;\n min-height: 100vh;\n min-height: calc(var(--vh, 1vh) * 100);\n }\n }\n}\n"],"names":[],"sourceRoot":""}
package/dist/main.js CHANGED
@@ -1,2 +1,2 @@
1
- module.exports=(()=>{"use strict";var t={929:(t,e,o)=>{o.r(e),o.d(e,{ComponentWithProperties:()=>ComponentWithProperties,ComponentWithPropertiesInstance:()=>l,FramedComponent:()=>y,HistoryManager:()=>n,ModalStackComponent:()=>B,NavigationController:()=>A,NavigationMixin:()=>Z,Popup:()=>N,Sheet:()=>j,SideView:()=>R,SplitViewController:()=>Q,StackComponent:()=>T});const n=new class HistoryManagerStatic{constructor(){this.states=[],this.counter=0,this.active=!1,this.animateHistoryPop=!0,this.isAdjustingState=!1,this.manualStateAction=!1,this.delayedUrlSetting=null}setUrl(t){if(this.active){if(this.manualStateAction)return ComponentWithProperties.debug&&console.log("Setting url, delayed: "+t+", current counter: "+this.counter),void(this.delayedUrlSetting={url:t,counter:this.counter});ComponentWithProperties.debug&&console.log("Set url: "+t+", current counter: "+this.counter),history.replaceState({counter:this.counter},"",t),this.states[this.states.length-1].url=t}}pushState(t,e,o){this.active&&(this.counter++,this.states.push({url:t,index:this.counter,adjustHistory:o,undoAction:e}),o?history.pushState({counter:this.counter},"",t):history.replaceState({counter:this.counter},"",t),ComponentWithProperties.debug&&console.log("Push new state ",this.states[this.states.length-1]))}returnToHistoryIndex(t){if(ComponentWithProperties.debug&&console.log("Did return to history index "+t+", coming from "+this.counter),t<this.counter){this.counter=t;const e=this.states.splice(this.counter+1).filter((t=>t.adjustHistory)).length;e>0&&!this.isAdjustingState&&(this.manualStateAction=!0,ComponentWithProperties.debug&&console.log("Adjusting browser history state: popping "+e+" items"),history.go(-e)),!this.states[this.counter].adjustHistory&&this.states[this.counter].url&&(ComponentWithProperties.debug&&console.log("Setting manual url without history api: "+this.states[this.counter].url),this.setUrl(this.states[this.counter].url))}return this.counter}activate(){window.addEventListener("popstate",(t=>{var e;if(ComponentWithProperties.debug&&console.log("HistoryManager popstate"),this.isAdjustingState)return void console.warn("Duplicate popstate");if(this.manualStateAction)return this.manualStateAction=!1,this.delayedUrlSetting&&this.counter===this.delayedUrlSetting.counter&&this.setUrl(this.delayedUrlSetting.url),void(this.delayedUrlSetting=null);this.isAdjustingState=!0;const o=null===(e=t.state)||void 0===e?void 0:e.counter;if(void 0!==o)if(o>this.counter){const t=o-this.counter;history.go(-t),ComponentWithProperties.debug&&console.log("Not allowed to go forward, going back "+t+" steps")}else{const t=this.counter-o==1&&this.animateHistoryPop;this.counter=o;const e=this.states.splice(this.counter+1);for(const o of e.reverse())o.undoAction&&(ComponentWithProperties.debug&&console.log("Executing undoAction..."),o.undoAction(t))}this.isAdjustingState=!1})),this.active=!0,history.replaceState({counter:this.counter},""),this.states.push({index:this.counter,adjustHistory:!1,url:"/"})}};class ComponentWithProperties{constructor(t,e={}){this.key=null,this.type=null,this.hide=!1,this.vnode=null,this.keepAlive=!1,this.isKeptAlive=!1,this.isMounted=!1,this.modalDisplayStyle="cover",this.animated=!0,this.historyIndex=null,this.isContainerView=!1,this.component=t,this.properties=e,this.key=ComponentWithProperties.keyCounter++}beforeMount(){ComponentWithProperties.debug&&console.log("Before mount: "+this.component.name),this.vnode&&this.isKeptAlive&&(this.isKeptAlive=!1,ComponentWithProperties.keepAliveCounter--,ComponentWithProperties.debug&&console.log("Total components kept alive: "+ComponentWithProperties.keepAliveCounter)),this.isContainerView?null===this.historyIndex&&(this.historyIndex=n.counter):"overlay"!=this.modalDisplayStyle&&this.assignHistoryIndex()}getHistoryIndex(){if(this.component)return this.historyIndex}mounted(){ComponentWithProperties.debug&&console.log("Component mounted: "+this.component.name),this.isMounted=!0,ComponentWithProperties.ignoreActivate=this}onMountedChildComponent(t){this.isContainerView=!0,ComponentWithProperties.debug&&console.log("Container mounted child component: "+this.component.name+" got "+t.component.name)}onActivatedChildComponent(t){this.isContainerView=!0,ComponentWithProperties.debug&&console.log("Container got activated child component: "+this.component.name+" got "+t.component.name)}assignHistoryIndex(){null==this.historyIndex?(ComponentWithProperties.debug&&console.log("Assigned history index: "+this.component.name+" = "+n.counter),this.historyIndex=n.counter):this.historyIndex=n.returnToHistoryIndex(this.historyIndex)}activated(){if(ComponentWithProperties.debug&&console.log("Component activated: "+this.component.name),ComponentWithProperties.ignoreActivate===this)return ComponentWithProperties.debug&&console.log("Ignore component activation: "+this.component.name),void(ComponentWithProperties.ignoreActivate=null);ComponentWithProperties.ignoreActivate=null,this.isContainerView||"overlay"!=this.modalDisplayStyle&&null!==this.historyIndex&&(this.historyIndex=n.returnToHistoryIndex(this.historyIndex))}componentInstance(){var t;return null===(t=this.vnode)||void 0===t?void 0:t.componentInstance}async shouldNavigateAway(){const t=this.componentInstance();if(t&&t.shouldNavigateAway){const e=t.shouldNavigateAway();if("boolean"==typeof e){if(!e)return!1}else if(e.then&&e.catch){if(!(await e))return!1}}return!0}destroy(){var t;if(this.isMounted=!1,this.vnode){if(this.keepAlive)return this.keepAlive=!1,void(this.isKeptAlive||(this.isKeptAlive=!0,ComponentWithProperties.keepAliveCounter++,ComponentWithProperties.debug&&console.log("Kept component alive "+this.component.name),ComponentWithProperties.debug&&console.log("Total components kept alive: "+ComponentWithProperties.keepAliveCounter)));this.isKeptAlive&&(this.isKeptAlive=!1,ComponentWithProperties.keepAliveCounter--,ComponentWithProperties.debug&&console.log("Freed component from alive stack "+this.component.name),ComponentWithProperties.debug&&console.log("Total components kept alive: "+ComponentWithProperties.keepAliveCounter)),ComponentWithProperties.debug&&console.log("Destroyed component "+this.component.name),null===(t=this.vnode.componentInstance)||void 0===t||t.$destroy(),this.vnode=null}}setDisplayStyle(t){return this.modalDisplayStyle=t,this}setAnimated(t){return this.animated=t,this}}ComponentWithProperties.keepAliveCounter=0,ComponentWithProperties.keyCounter=0,ComponentWithProperties.debug=!1,ComponentWithProperties.ignoreActivate=null;const i=require("vue");var s=o.n(i);const r=s().extend({props:{component:ComponentWithProperties},watch:{component(t){throw new Error("Changing component during life is not yet supported")}},created(){this.destroy=!0},beforeMount(){this.component.beforeMount()},activated(){this.component.activated();let t=this.$parent;for(;t;)t instanceof r&&t.component.onActivatedChildComponent(this.component),t=t.$parent},mounted(){this.component.mounted();let t=this.$parent;for(;t;)t instanceof r&&t.component.onMountedChildComponent(this.component),t=t.$parent},destroyed(){this.component.destroy()},render(t){var e,o;if(this.component.vnode)return this.component.vnode.componentInstance.$parent=this,this.$children=[this.component.vnode.componentInstance],this.component.vnode;let n={};if(null===(o=null===(e=this.component.component)||void 0===e?void 0:e.options)||void 0===o?void 0:o.props)for(const i in this.component.properties)Object.prototype.hasOwnProperty.call(this.component.properties,i)&&(Object.prototype.hasOwnProperty.call(this.component.component.options.props,i)||(n[i]=this.component.properties[i]));else n=this.component.properties;return this.component.component.options.inheritAttrs=!1,this.component.vnode=t(this.component.component,{props:this.component.properties,attrs:n,key:this.component.key}),this.component.vnode.data.keepAlive=!0,this.component.vnode}}),l=r;var a=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",[o("div",{ref:"scrollContainer"},[o("ComponentWithPropertiesInstance",{attrs:{component:t.root}})],1)])};a._withStripped=!0;function p(t,e,o,n){var i,s=arguments.length,r=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var l=t.length-1;l>=0;l--)(i=t[l])&&(r=(s<3?i(r):s>3?i(e,o,r):i(e,o))||r);return s>3&&r&&Object.defineProperty(e,o,r),r}const h=require("vue-class-component");var c=o.n(h);var d="undefined"!=typeof Reflect&&void 0!==Reflect.getMetadata;function u(t){return void 0===t&&(t={}),function(e,o){!function(t,e,o){if(d&&!Array.isArray(t)&&"function"!=typeof t&&!t.hasOwnProperty("type")&&void 0===t.type){var n=Reflect.getMetadata("design:type",e,o);n!==Object&&(t.type=n)}}(t,e,o),(0,h.createDecorator)((function(e,o){(e.props||(e.props={}))[o]=t}))(e,o)}}function m(t){return(0,h.createDecorator)((function(e,o){e.computed=e.computed||{},e.computed[o]={cache:!1,get:function(){return this.$refs[t||o]}}}))}let v=class FramedComponent extends(s()){pop(t){this.$emit("pop",t)}push(t){this.$emit("push",t)}};p([u()],v.prototype,"root",void 0),p([m()],v.prototype,"scrollContainer",void 0),v=p([c()({components:{ComponentWithPropertiesInstance:l}})],v);function f(t,e,o,n,i,s,r,l){var a,p="function"==typeof t?t.options:t;if(e&&(p.render=e,p.staticRenderFns=o,p._compiled=!0),n&&(p.functional=!0),s&&(p._scopeId="data-v-"+s),r?(a=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},p._ssrRegister=a):i&&(a=l?function(){i.call(this,(p.functional?this.parent:this).$root.$options.shadowRoot)}:i),a)if(p.functional){p._injectStyles=a;var h=p.render;p.render=function(t,e){return a.call(e),h(t,e)}}else{var c=p.beforeCreate;p.beforeCreate=c?[].concat(c,a):[a]}return{exports:t,options:p}}var g=f(v,a,[],!1,null,null,null);g.options.__file="src/FramedComponent.vue";const y=g.exports;var C=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",[o("NavigationController",{ref:"navigationController",attrs:{"animation-type":"modal",root:t.root},on:{present:t.present}}),t._v(" "),o("StackComponent",{ref:"stackComponent",on:{present:t.present}})],1)};C._withStripped=!0;var w=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"navigation-controller",attrs:{"data-animation-type":t.animationType}},[t.mainComponent?o("transition",{attrs:{css:!1},on:{"before-enter":t.beforeEnter,"before-leave":t.beforeLeave,enter:t.enter,leave:t.leave,"after-leave":t.afterLeave,"after-enter":t.afterEnter,"enter-cancelled":t.enterCancelled}},[o("FramedComponent",{key:t.mainComponent.key,ref:"child",attrs:{root:t.mainComponent,name:t.mainComponent.key},on:{push:t.push,show:t.push,pop:t.pop}})],1):t._e()],1)};w._withStripped=!0;let S=class NavigationController extends(s()){constructor(){super(...arguments),this.components=[],this.mainComponent=null,this.transitionName="none",this.savedScrollPositions=[],this.nextScrollPosition=0,this.previousScrollPosition=0,this.nextInternalScrollPosition=0,this.savedInternalScrollPositions=[]}beforeMount(){this.initialComponents&&this.initialComponents.length>0?(this.mainComponent=this.initialComponents[this.initialComponents.length-1],this.components=this.initialComponents.slice(0),this.initialComponents.splice(0,this.initialComponents.length)):(this.mainComponent=this.root,this.components=[this.root])}freezeSize(){const t=this.$el;t.style.width=t.offsetWidth+"px",t.style.height=t.offsetHeight+"px"}growSize(t,e){const o=this.$el;o.style.height=e+"px",o.style.width=t+"px"}unfreezeSize(){const t=this.$el;t.style.width="",t.style.height=""}getInternalScrollElement(t=null){const e=(null!=t?t:this.$el).querySelector("main");return e?this.getScrollElement(e):null}getScrollElement(t=null){t||(t=this.$el);const e=window.getComputedStyle(t);return"scroll"==e.overflowY||"scroll"==e.overflow||"auto"==e.overflow||"auto"==e.overflowY?t:t.parentElement?this.getScrollElement(t.parentElement):document.documentElement}shouldAnimate(){return this.getScrollElement().offsetWidth<=900}async push(t){var e,o,i,s,r,l;if(0==t.components.length)return void console.error("Missing component when pushing");null===(e=document.activeElement)||void 0===e||e.blur();const a=t.components,p=a[a.length-1],h=null===(o=t.destroy)||void 0===o||o,c=null!==(i=t.force)&&void 0!==i&&i,d=!!this.shouldAnimate()&&(void 0===t.animated?p.animated:t.animated);let u=null!==(s=t.replace)&&void 0!==s?s:0;if(u>this.components.length&&(u=this.components.length),ComponentWithProperties.debug&&console.log("Pushing new component on navigation controller: "+p.component.name),u>0&&h&&!c)for(let n=this.components.length-1;n>=this.components.length-u;n--){const t=this.components[n];if(!(await t.shouldNavigateAway()))return}this.transitionName=d?"modal"==this.animationType?"modal-push":t.reverse?"pop":"push":"none";const m=this.getInternalScrollElement(),v=this.getScrollElement(),f=window;let g=v.clientHeight;v===document.documentElement&&f.visualViewport&&(g=f.visualViewport.height);let y=null==m?void 0:m.clientHeight;if(this.previousScrollPosition=v.scrollTop,this.savedScrollPositions.push(this.previousScrollPosition+g),this.savedInternalScrollPositions.push((null!==(r=null==m?void 0:m.scrollTop)&&void 0!==r?r:0)+(null!=y?y:0)),this.nextScrollPosition=0,this.nextInternalScrollPosition=0,d&&this.freezeSize(),u>0){const t=this.components.splice(this.components.length-u,u,...a);if(!h)for(const e of t)e.keepAlive=!0}else this.components.push(...a);if(this.mainComponent&&(this.mainComponent.keepAlive=!u),this.mainComponent=p,this.$emit("didPush"),0==u&&this)for(let C=0;C<a.length;C++)n.pushState(null==t?void 0:t.url,(t=>{this.pop({animated:d&&t})}),null===(l=null==t?void 0:t.adjustHistory)||void 0===l||l),C<a.length-1&&a[C].assignHistoryIndex()}async shouldNavigateAway(){for(let t=this.components.length-1;t>=0;t--){const e=this.components[t];if(!(await e.shouldNavigateAway()))return!1}return!0}popToRoot(t={}){return t.count=this.components.length-1,this.pop(t)}getPoppableParent(){let t=this,e=this.$parent;for(;e;){if(t.$listeners.pop)return t;t=e,e=e.$parent}return null}async pop(t={}){var e,o,n,i,s,r,l;null===(e=document.activeElement)||void 0===e||e.blur();const a=!!this.shouldAnimate()&&(null===(o=t.animated)||void 0===o||o),p=null===(n=t.destroy)||void 0===n||n,h=null!==(i=t.count)&&void 0!==i?i:1,c=null!==(s=t.force)&&void 0!==s&&s;if(this.components.length<=h){const e=this.getPoppableParent();return t.count=1,e?void e.$emit("pop",t):(console.error("Tried to pop an empty navigation controller, but couldn't find a parent to pop"),void this.$emit("pop",t))}if(0===h)return;if(p&&!c)for(let f=this.components.length-1;f>=this.components.length-h;f--){const t=this.components[f];if(!(await t.shouldNavigateAway()))return}this.previousScrollPosition=this.getScrollElement().scrollTop,a?(this.transitionName="modal"==this.animationType?"modal-pop":"pop",this.freezeSize()):this.transitionName="none";const d=this.components.splice(this.components.length-h,h);if(!p)for(const f of d)f.keepAlive=!0;const u=this.getScrollElement(),m=window;let v=u.clientHeight;return u===document.documentElement&&m.visualViewport&&(v=m.visualViewport.height),this.nextScrollPosition=Math.max(0,(null!==(r=this.savedScrollPositions.pop())&&void 0!==r?r:0)-v),this.nextInternalScrollPosition=Math.max(0,null!==(l=this.savedInternalScrollPositions.pop())&&void 0!==l?l:0),this.mainComponent=this.components[this.components.length-1],this.$emit("didPop"),d}beforeEnter(t){"none"!=this.transitionName&&(t.className=this.transitionName+"-enter-active "+this.transitionName+"-enter")}beforeLeave(t){this.transitionName}beforeBeforeEnterAnimation(){if(this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.beforeBeforeEnterAnimation&&t.beforeBeforeEnterAnimation()}}finishedEnterAnimation(){if(this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.finishedEnterAnimation&&t.finishedEnterAnimation()}}enter(t,e){if("none"==this.transitionName){this.getScrollElement().scrollTop=this.nextScrollPosition;const o=this.getInternalScrollElement(t);return o&&(o.scrollTop=Math.max(0,this.nextInternalScrollPosition-o.clientHeight)),void e()}if(this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.beforeBeforeEnterAnimation&&t.beforeBeforeEnterAnimation()}const o=this.getScrollElement(),n=t.firstElementChild.firstElementChild.offsetWidth,i=t.firstElementChild.offsetHeight,s=this.getScrollOuterHeight(o);let r=this.nextScrollPosition;r>i-s&&(r=Math.max(0,i-s),this.nextScrollPosition=r);const l=this.getInternalScrollElement(t);let a=this.nextInternalScrollPosition;if(l){a=Math.max(0,this.nextInternalScrollPosition-l.clientHeight);const t=this.getScrollOuterHeight(l),e=l.scrollHeight;a>e-t&&(a=Math.max(0,e-t))}const p=t.firstElementChild;let h=300;"pop"!==this.transitionName&&"modal-pop"!=this.transitionName||(h=250),"push"!=this.transitionName&&"pop"!=this.transitionName&&"modal-push"!=this.transitionName||(p.style.willChange="transform"),o.scrollTop!==r&&(o.style.willChange="scroll-position"),l&&l.scrollTop!==a&&(l.style.willChange="scroll-position"),this.growSize(n,i),requestAnimationFrame((()=>{if(o.scrollTop=r,l&&(l.scrollTop=a),this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.beforeEnterAnimation&&t.beforeEnterAnimation()}requestAnimationFrame((()=>{if(t.className=this.transitionName+"-enter-active "+this.transitionName+"-enter-to",this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.beginEnterAnimation&&t.beginEnterAnimation()}setTimeout((()=>{if(t.style.willChange="",p.style.willChange="",o.style.willChange="",l&&(l.style.willChange=""),this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.finishedEnterAnimation&&t.finishedEnterAnimation()}e()}),h+25)}))}))}getScrollOuterHeight(t){let e=t.clientHeight;if(t===document.documentElement){const t=window;t.visualViewport&&(e=t.visualViewport.height)}return e}leave(t,e){if("none"==this.transitionName)return void e();const o=this.getScrollElement();let n=this.getScrollOuterHeight(o);const i=t.firstElementChild;i.style.willChange="scroll-position,transform";let s=300;"pop"!==this.transitionName&&"modal-pop"!=this.transitionName||(s=250),requestAnimationFrame((()=>{const o=this.previousScrollPosition,r=this.nextScrollPosition,l=n+"px";t.className=this.transitionName+"-leave-active "+this.transitionName+"-leave",t.style.top=r+"px",t.style.height=l,t.style.bottom="auto",t.style.overflow="hidden",i.style.overflow="hidden",i.style.height=n+"px",i.scrollTop=o,requestAnimationFrame((()=>{t.className=this.transitionName+"-leave-active "+this.transitionName+"-leave-to",setTimeout((()=>{t.style.overflow="",t.style.top="",t.style.height="",t.style.bottom="",i.style.overflow="",i.style.willChange="",e()}),s+25)}))}))}afterLeave(t){"none"!=this.transitionName&&(t.className="")}afterEnter(t){"none"!=this.transitionName&&(this.unfreezeSize(),t.className="")}enterCancelled(t){this.unfreezeSize()}destroyed(){for(const t of this.components)t.isKeptAlive&&t.destroy();this.components=[],this.mainComponent=null}};p([u()],S.prototype,"root",void 0),p([u({default:null})],S.prototype,"initialComponents",void 0),p([u({default:"default"})],S.prototype,"animationType",void 0),p([m()],S.prototype,"child",void 0),S=p([c()({components:{FramedComponent:y}})],S);var P=f(S,w,[],!1,null,null,null);P.options.__file="src/NavigationController.vue";const A=P.exports;var k=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("transition",{attrs:{appear:t.shouldAppear,name:"fade",duration:300}},[o("div",{staticClass:"popup",class:{sticky:t.sticky,"push-down":1==t.pushDown,"push-down-full":t.pushDown>1},on:{mousedown:t.dismiss,touchdown:t.dismiss}},[o("div",{on:{mousedown:function(t){t.stopPropagation()},touchdown:function(t){t.stopPropagation()}}},[o("div",{staticClass:"scrollable-container"},[o("ComponentWithPropertiesInstance",{key:t.root.key,attrs:{component:t.root},on:{pop:t.dismiss}})],1)])])])};k._withStripped=!0;let x=class ModalMixin extends(s()){get modalStackComponent(){let t=this.$parent;for(;t;){if(t instanceof B)return t;t=t.$parent}return null}pop(t={}){const e=this.getPoppableParent();e?e.$listeners.pop?e.$emit("pop",t):console.error("Couldn't pop. Failed"):console.warn("No navigation controller to pop")}getPoppableParent(){let t=this,e=this.$parent;for(;e;){if(t.$listeners.pop)return t;t=e,e=e.$parent}return null}};var E;x=p([c()],x);const I=window.visualViewport;let b=E=class Popup extends x{constructor(){super(...arguments),this.sticky=!1}get shouldAppear(){return this.root.animated}get pushDown(){var t,e,o;const n=null!==(o=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components.filter((t=>t.component===E)))&&void 0!==o?o:[];return n.length>0&&n[n.length-1].componentInstance()!==this?n.length>1&&n[n.length-2].componentInstance()===this?1:2:0}get isFocused(){var t,e,o;const n=null!==(o=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components)&&void 0!==o?o:[];return!(n.length>0&&n[n.length-1].componentInstance()!==this)}activated(){document.addEventListener("keydown",this.onKey),this.resize(),I&&I.addEventListener("resize",this.resize)}deactivated(){document.removeEventListener("keydown",this.onKey),I&&I.removeEventListener("resize",this.resize)}async dismiss(t){var e,o,i;if(!(null==t?void 0:t.force)){if(!(await this.shouldNavigateAway()))return!1}const s=null!==(i=null===(o=null===(e=this.modalStackComponent)||void 0===e?void 0:e.stackComponent)||void 0===o?void 0:o.components.filter((t=>"overlay"!==t.modalDisplayStyle)))&&void 0!==i?i:[];if(0===s.length||s[s.length-1].componentInstance()===this){const t=this.root.getHistoryIndex();null!=t&&n.returnToHistoryIndex(t-1)}this.pop(t)}resize(){I&&(document.documentElement.clientHeight-I.height>200?this.sticky=!0:this.sticky=!1)}onKey(t){if(t.defaultPrevented||t.repeat)return;if(!this.isFocused)return;const e=t.key||t.keyCode;"Escape"!==e&&"Esc"!==e&&27!==e||(this.dismiss(),t.preventDefault())}shouldNavigateAway(){return this.root.shouldNavigateAway()}};p([u({required:!0})],b.prototype,"root",void 0),b=E=p([c()({components:{ComponentWithPropertiesInstance:l}})],b);var $=f(b,k,[],!1,null,null,null);$.options.__file="src/Popup.vue";const N=$.exports;var _=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",t._l(t.components,(function(e,n){return o("ComponentWithPropertiesInstance",{key:e.key,ref:"children",refInFor:!0,attrs:{component:e},on:{pop:function(o){return t.removeAt(n,e.key)}}})})),1)};_._withStripped=!0;let W=class StackComponent extends(s()){constructor(){super(...arguments),this.components=[]}show(t){this.components.push(t)}removeAt(t,e){if(!this.components[t])for(const[o,n]of this.components.entries())if(n.key===e){console.warn("Corrected index from "+t+" to "+o),t=o;break}void 0!==this.components[t]&&this.components[t].key===e?this.components.splice(t,1):console.warn("Expected component with key "+e+" at index"+t)}beforeDestroy(){this.components=[]}};W=p([c()({components:{ComponentWithPropertiesInstance:l}})],W);var D=f(W,_,[],!1,null,null,null);D.options.__file="src/StackComponent.vue";const T=D.exports;var H=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("transition",{attrs:{appear:t.shouldAppear,name:"fade",duration:300}},[o("div",{staticClass:"sheet",on:{mousedown:t.dismiss,touchdown:t.dismiss}},[o("div",{on:{mousedown:function(t){t.stopPropagation()},touchdown:function(t){t.stopPropagation()}}},[o("ComponentWithPropertiesInstance",{key:t.root.key,attrs:{component:t.root},on:{pop:t.dismiss}})],1)])])};H._withStripped=!0;let M=class Sheet extends x{get shouldAppear(){return this.root.animated}activated(){document.addEventListener("keydown",this.onKey)}deactivated(){document.removeEventListener("keydown",this.onKey)}get isFocused(){var t,e,o;const n=null!==(o=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components)&&void 0!==o?o:[];return!(n.length>0&&n[n.length-1].componentInstance()!==this)}async dismiss(t){var e,o,i;if(!(null==t?void 0:t.force)){if(!(await this.shouldNavigateAway()))return!1}const s=null!==(i=null===(o=null===(e=this.modalStackComponent)||void 0===e?void 0:e.stackComponent)||void 0===o?void 0:o.components.filter((t=>"overlay"!==t.modalDisplayStyle)))&&void 0!==i?i:[];if(0===s.length||s[s.length-1].componentInstance()===this){const t=this.root.getHistoryIndex();null!=t&&n.returnToHistoryIndex(t-1)}this.pop(t)}onKey(t){if(t.defaultPrevented||t.repeat)return;if(!this.isFocused)return;const e=t.key||t.keyCode;"Escape"!==e&&"Esc"!==e&&27!==e||(this.dismiss(),t.preventDefault())}shouldNavigateAway(){return this.root.shouldNavigateAway()}};p([u({required:!0})],M.prototype,"root",void 0),M=p([c()({components:{ComponentWithPropertiesInstance:l}})],M);var z=f(M,H,[],!1,null,null,null);z.options.__file="src/Sheet.vue";const j=z.exports;var F,O=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("transition",{attrs:{appear:t.shouldAppear,name:"fade"}},[o("div",{staticClass:"side-view",class:{"push-down":1==t.pushDown,"push-down-full":t.pushDown>1},on:{mousedown:t.dismiss,touchdown:t.dismiss}},[o("div",{on:{mousedown:function(t){t.stopPropagation()},touchdown:function(t){t.stopPropagation()}}},[o("ComponentWithPropertiesInstance",{key:t.root.key,attrs:{component:t.root},on:{pop:t.dismiss}})],1)])])};O._withStripped=!0;const K=window.visualViewport;let V=F=class SideView extends x{get shouldAppear(){return this.root.animated}get pushDown(){var t,e,o;const n=null!==(o=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components.filter((t=>t.component===F)))&&void 0!==o?o:[];return n.length>0&&n[n.length-1].componentInstance()!==this?n.length>1&&n[n.length-2].componentInstance()===this?1:2:0}get isFocused(){var t,e,o;const n=null!==(o=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components)&&void 0!==o?o:[];return!(n.length>0&&n[n.length-1].componentInstance()!==this)}activated(){document.addEventListener("keydown",this.onKey),this.resize(),K&&K.addEventListener("resize",this.resize)}deactivated(){document.removeEventListener("keydown",this.onKey),K&&K.removeEventListener("resize",this.resize)}async dismiss(t){var e,o,i;if(!(null==t?void 0:t.force)){if(!(await this.shouldNavigateAway()))return!1}const s=null!==(i=null===(o=null===(e=this.modalStackComponent)||void 0===e?void 0:e.stackComponent)||void 0===o?void 0:o.components.filter((t=>"overlay"!==t.modalDisplayStyle)))&&void 0!==i?i:[];if(0===s.length||s[s.length-1].componentInstance()===this){const t=this.root.getHistoryIndex();null!=t&&n.returnToHistoryIndex(t-1)}this.pop(t)}resize(){}onKey(t){if(t.defaultPrevented||t.repeat)return;if(!this.isFocused)return;const e=t.key||t.keyCode;"Escape"!==e&&"Esc"!==e&&27!==e||(this.dismiss(),t.preventDefault())}shouldNavigateAway(){return this.root.shouldNavigateAway()}};p([u({required:!0})],V.prototype,"root",void 0),V=F=p([c()({components:{ComponentWithPropertiesInstance:l}})],V);var L=f(V,O,[],!1,null,null,null);L.options.__file="src/SideView.vue";const R=L.exports;let U=class ModalStackComponent extends(s()){present(t){var e,o,i,s,r;const l=t.components[t.components.length-1];void 0!==t.animated&&(l.animated=t.animated);const a=null!==(o=null!==(e=t.modalDisplayStyle)&&void 0!==e?e:l.modalDisplayStyle)&&void 0!==o?o:"cover";if(l.setDisplayStyle(a),"popup"===a&&this.$el.offsetWidth>800){const e=new ComponentWithProperties(N,{root:l});return n.pushState(null==t?void 0:t.url,(t=>{var o;null===(o=e.componentInstance())||void 0===o||o.pop({animated:t})}),null===(i=null==t?void 0:t.adjustHistory)||void 0===i||i),void this.stackComponent.show(e)}if("sheet"===a&&this.$el.offsetWidth>700){const e=new ComponentWithProperties(j,{root:l});return n.pushState(null==t?void 0:t.url,(t=>{var o;null===(o=e.componentInstance())||void 0===o||o.pop({animated:t})}),null===(s=null==t?void 0:t.adjustHistory)||void 0===s||s),void this.stackComponent.show(e)}if("side-view"===a&&this.$el.offsetWidth>800){const e=new ComponentWithProperties(R,{root:l});return n.pushState(null==t?void 0:t.url,(t=>{var o;null===(o=e.componentInstance())||void 0===o||o.pop({animated:t})}),null===(r=null==t?void 0:t.adjustHistory)||void 0===r||r),void this.stackComponent.show(e)}"overlay"!==a?this.$refs.navigationController.push(t):this.stackComponent.show(l)}replace(t,e=!0){const o=this.$refs.navigationController;o.push({components:[t],animated:e,replace:o.components.length})}};p([u()],U.prototype,"root",void 0),p([m()],U.prototype,"stackComponent",void 0),U=p([c()({components:{NavigationController:A,StackComponent:T}})],U);var q=f(U,C,[],!1,null,null,null);q.options.__file="src/ModalStackComponent.vue";const B=q.exports;var Y=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"split-view-controller",attrs:{"data-has-detail":t.detail?"true":"false"}},[o("div",{ref:"masterElement",staticClass:"master"},[o("NavigationController",{ref:"navigationController",attrs:{root:t.root},on:{showDetail:t.showDetail}})],1),t._v(" "),t.detail?o("div",{staticClass:"detail"},[o("FramedComponent",{key:t.detail.key,ref:"detailFrame",attrs:{root:t.detail}})],1):t._e()])};Y._withStripped=!0;const X=(t,e)=>{let o,n;return function(){const i=this,s=arguments;n?(clearTimeout(o),o=setTimeout((function(){Date.now()-n>=e&&(t.apply(i,s),n=Date.now())}),e-(Date.now()-n))):(t.apply(i,s),n=Date.now())}};let G=class SplitViewController extends(s()){constructor(){super(...arguments),this.detail=null,this.detailKey=null}activated(){this.listener=X(this.onResize,200),window.addEventListener("resize",this.listener,{passive:!0})}mounted(){this.detailWidth&&this.$el.style.setProperty("--split-view-width",this.detailWidth)}deactivated(){window.removeEventListener("resize",this.listener,{passive:!0})}onResize(){this.shouldCollapse()?this.detail&&this.collapse():this.lastIsDetail&&!this.detail&&this.expand()}get lastIsDetail(){var t;return null!=this.detailKey&&(null===(t=this.$refs.navigationController.mainComponent)||void 0===t?void 0:t.key)==this.detailKey}getScrollElement(t=null){t||(t=this.$el);const e=window.getComputedStyle(t);return"scroll"==e.overflowY||"scroll"==e.overflow||"auto"==e.overflow||"auto"==e.overflowY?t:t.parentElement?this.getScrollElement(t.parentElement):document.documentElement}async shouldNavigateAway(){if(this.detail){if(!(await this.detail.shouldNavigateAway()))return!1}return!this.navigationController||await this.navigationController.shouldNavigateAway()}async showDetail(t){const e=t.components[t.components.length-1];if(this.detailKey=e.key,this.shouldCollapse()){if(this.lastIsDetail||this.detail)return console.error("Pusing a detail when a detail is already presented is not allowed"),!1;this.navigationController.push(t)}else{if(this.detail){if(!(await this.detail.shouldNavigateAway()))return!1}this.getScrollElement().scrollTop=0,this.detail=e}return!0}shouldCollapse(){return this.$el.offsetWidth<850}collapse(){if(this.lastIsDetail)return void console.error("Cannot collapse when the detail is already collaped");if(!this.detail)return void console.error("Cannot collapse without detail");this.detail.keepAlive=!0;const t=this.detail;this.detail=null,this.navigationController.push({components:[t],animated:!1})}async expand(){if(this.detail)return void console.error("Cannot expand when detail is already visible");if(!this.lastIsDetail)return void console.error("Cannot expand when there is no detail");const t=await this.navigationController.pop({animated:!1,destroy:!1});t&&0!=t.length&&this.$nextTick((()=>{this.detail=t[0]}))}};p([u()],G.prototype,"root",void 0),p([u()],G.prototype,"detailWidth",void 0),p([m()],G.prototype,"navigationController",void 0),p([m()],G.prototype,"detailKeepAlive",void 0),p([m()],G.prototype,"masterElement",void 0),G=p([c()({components:{NavigationController:A,FramedComponent:y}})],G);var J=f(G,Y,[],!1,null,null,null);J.options.__file="src/SplitViewController.vue";const Q=J.exports;let Z=class NavigationMixin extends(s()){constructor(){super(...arguments),this.canPop=!1,this.canDismiss=!1}emitParents(t,e){let o=this.$parent;for(;o;){if(o.$listeners[t])return void o.$emit(t,e);o=o.$parent}console.warn("No handlers found for event "+t)}show(t){t.components?this.emitParents("show",t):this.emitParents("show",{components:[t]})}present(t){t.components?this.emitParents("present",t):this.emitParents("present",{components:[t]})}showDetail(t){t.components?this.emitParents("showDetail",t):this.emitParents("showDetail",{components:[t]})}pop(t={}){const e=this.getPoppableParent();e?e.$listeners.pop?e.$emit("pop",t):console.error("Couldn't pop. Failed"):console.warn("No navigation controller to pop")}dismiss(t={}){const e=this.modalOrPopup;if(e){if(e instanceof j||e instanceof N||e instanceof R)return void e.dismiss(t);e.pop(t)}else console.warn("Tried to dismiss without being displayed as a modal. Use pop instead"),this.pop(t)}get navigationController(){let t=this.$parent;for(;t;){if(t instanceof A)return t;t=t.$parent}return null}get modalOrPopup(){let t=this.$parent;for(;t;){if(t instanceof A&&"modal"==t.animationType)return t;if(t instanceof j)return t;if(t instanceof N)return t;if(t instanceof R)return t;t=t.$parent}return null}get modalNavigationController(){let t=this.$parent;for(;t;){if(t instanceof A&&"modal"==t.animationType)return t;t=t.$parent}return null}get splitViewController(){let t=this.$parent;for(;t;){if(t instanceof Q)return t;t=t.$parent}return null}getPoppableParent(){let t=this,e=this.$parent;for(;e;){if(t.$listeners.pop)return t;t=e,e=e.$parent}return null}activated(){this.canPop=this.calculateCanPop(),this.canDismiss=this.calculateCanDismiss()}get poppableNavigationController(){let t=this.$parent;for(;t;){if(t instanceof A){if("modal"==t.animationType)return null;if(t.components.length>1)return t}t=t.$parent}return null}isFocused(){const t=this.modalOrPopup;return!(t instanceof N||t instanceof j||t instanceof R)||!!t.isFocused}calculateCanPop(){return null!=this.poppableNavigationController}calculateCanDismiss(){const t=this.modalOrPopup;return null!==t&&!(t instanceof A&&t.components.length<=1)}};Z=p([c()],Z)}},e={};function o(n){if(e[n])return e[n].exports;var i=e[n]={exports:{}};return t[n](i,i.exports,o),i.exports}return o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o(929)})();
1
+ (()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{ComponentWithProperties:()=>ComponentWithProperties,ComponentWithPropertiesInstance:()=>r,FramedComponent:()=>y,HistoryManager:()=>n,ModalStackComponent:()=>q,NavigationController:()=>P,NavigationMixin:()=>Q,Popup:()=>$,Sheet:()=>M,SideView:()=>L,SplitViewController:()=>J,StackComponent:()=>D});const n=new class HistoryManagerStatic{constructor(){this.states=[],this.counter=0,this.active=!1,this.animateHistoryPop=!0,this.isAdjustingState=!1,this.manualStateAction=!1,this.delayedUrlSetting=null}setUrl(t){if(this.active){if(this.manualStateAction)return ComponentWithProperties.debug&&this.counter,void(this.delayedUrlSetting={url:t,counter:this.counter});ComponentWithProperties.debug&&this.counter,history.replaceState({counter:this.counter},"",t),this.states[this.states.length-1].url=t}}pushState(t,e,n){this.active&&(this.counter++,this.states.push({url:t,index:this.counter,adjustHistory:n,undoAction:e}),n?history.pushState({counter:this.counter},"",t):history.replaceState({counter:this.counter},"",t),ComponentWithProperties.debug&&this.states[this.states.length-1])}returnToHistoryIndex(t){if(ComponentWithProperties.debug&&this.counter,t<this.counter){this.counter=t;const e=this.states.splice(this.counter+1).filter((t=>t.adjustHistory)).length;e>0&&!this.isAdjustingState&&(this.manualStateAction=!0,ComponentWithProperties.debug,history.go(-e)),!this.states[this.counter].adjustHistory&&this.states[this.counter].url&&(ComponentWithProperties.debug&&this.states[this.counter].url,this.setUrl(this.states[this.counter].url))}return this.counter}activate(){window.addEventListener("popstate",(t=>{var e;if(ComponentWithProperties.debug,this.isAdjustingState)return void console.warn("Duplicate popstate");if(this.manualStateAction)return this.manualStateAction=!1,this.delayedUrlSetting&&this.counter===this.delayedUrlSetting.counter&&this.setUrl(this.delayedUrlSetting.url),void(this.delayedUrlSetting=null);this.isAdjustingState=!0;const n=null===(e=t.state)||void 0===e?void 0:e.counter;if(void 0!==n)if(n>this.counter){const t=n-this.counter;history.go(-t),ComponentWithProperties.debug}else{const t=this.counter-n==1&&this.animateHistoryPop;this.counter=n;const e=this.states.splice(this.counter+1);for(const n of e.reverse())n.undoAction&&(ComponentWithProperties.debug,n.undoAction(t))}this.isAdjustingState=!1})),this.active=!0,history.replaceState({counter:this.counter},""),this.states.push({index:this.counter,adjustHistory:!1,url:"/"})}};class ComponentWithProperties{constructor(t,e={}){this.key=null,this.type=null,this.hide=!1,this.vnode=null,this.keepAlive=!1,this.isKeptAlive=!1,this.isMounted=!1,this.modalDisplayStyle="cover",this.animated=!0,this.historyIndex=null,this.isContainerView=!1,this.component=t,this.properties=e,this.key=ComponentWithProperties.keyCounter++}beforeMount(){ComponentWithProperties.debug&&this.component.name,this.vnode&&this.isKeptAlive&&(this.isKeptAlive=!1,ComponentWithProperties.keepAliveCounter--,ComponentWithProperties.debug&&ComponentWithProperties.keepAliveCounter),this.isContainerView?null===this.historyIndex&&(this.historyIndex=n.counter):"overlay"!=this.modalDisplayStyle&&this.assignHistoryIndex()}getHistoryIndex(){if(this.component)return this.historyIndex}mounted(){ComponentWithProperties.debug&&this.component.name,this.isMounted=!0,ComponentWithProperties.ignoreActivate=this}onMountedChildComponent(t){this.isContainerView=!0,ComponentWithProperties.debug&&(this.component.name,t.component.name)}onActivatedChildComponent(t){this.isContainerView=!0,ComponentWithProperties.debug&&(this.component.name,t.component.name)}assignHistoryIndex(){null==this.historyIndex?(ComponentWithProperties.debug&&(this.component.name,n.counter),this.historyIndex=n.counter):this.historyIndex=n.returnToHistoryIndex(this.historyIndex)}activated(){if(ComponentWithProperties.debug&&this.component.name,ComponentWithProperties.ignoreActivate===this)return ComponentWithProperties.debug&&this.component.name,void(ComponentWithProperties.ignoreActivate=null);ComponentWithProperties.ignoreActivate=null,this.isContainerView||"overlay"!=this.modalDisplayStyle&&null!==this.historyIndex&&(this.historyIndex=n.returnToHistoryIndex(this.historyIndex))}componentInstance(){var t;return null===(t=this.vnode)||void 0===t?void 0:t.componentInstance}async shouldNavigateAway(){const t=this.componentInstance();if(t&&t.shouldNavigateAway){const e=t.shouldNavigateAway();if("boolean"==typeof e){if(!e)return!1}else if(e.then&&e.catch){if(!await e)return!1}}return!0}destroy(){var t;if(this.isMounted=!1,this.vnode){if(this.keepAlive)return this.keepAlive=!1,void(this.isKeptAlive||(this.isKeptAlive=!0,ComponentWithProperties.keepAliveCounter++,ComponentWithProperties.debug&&this.component.name,ComponentWithProperties.debug&&ComponentWithProperties.keepAliveCounter));this.isKeptAlive&&(this.isKeptAlive=!1,ComponentWithProperties.keepAliveCounter--,ComponentWithProperties.debug&&this.component.name,ComponentWithProperties.debug&&ComponentWithProperties.keepAliveCounter),ComponentWithProperties.debug&&this.component.name,null===(t=this.vnode.componentInstance)||void 0===t||t.$destroy(),this.vnode=null}}setDisplayStyle(t){return this.modalDisplayStyle=t,this}setAnimated(t){return this.animated=t,this}}ComponentWithProperties.keepAliveCounter=0,ComponentWithProperties.keyCounter=0,ComponentWithProperties.debug=!1,ComponentWithProperties.ignoreActivate=null;const o=require("vue");var i=t.n(o);const s=i().extend({props:{component:ComponentWithProperties},watch:{component(t){throw new Error("Changing component during life is not yet supported")}},created(){this.destroy=!0},beforeMount(){this.component.beforeMount()},activated(){this.component.activated();let t=this.$parent;for(;t;)t instanceof s&&t.component.onActivatedChildComponent(this.component),t=t.$parent},mounted(){this.component.mounted();let t=this.$parent;for(;t;)t instanceof s&&t.component.onMountedChildComponent(this.component),t=t.$parent},destroyed(){this.component.destroy()},render(t){var e,n;if(this.component.vnode)return this.component.vnode.componentInstance.$parent=this,this.$children=[this.component.vnode.componentInstance],this.component.vnode;let o={};if(null===(n=null===(e=this.component.component)||void 0===e?void 0:e.options)||void 0===n?void 0:n.props)for(const t in this.component.properties)Object.prototype.hasOwnProperty.call(this.component.properties,t)&&(Object.prototype.hasOwnProperty.call(this.component.component.options.props,t)||(o[t]=this.component.properties[t]));else o=this.component.properties;return this.component.component.options.inheritAttrs=!1,this.component.vnode=t(this.component.component,{props:this.component.properties,attrs:o,key:this.component.key}),this.component.vnode.data.keepAlive=!0,this.component.vnode}}),r=s;var l=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("div",{ref:"scrollContainer"},[n("ComponentWithPropertiesInstance",{attrs:{component:t.root}})],1)])};l._withStripped=!0;function a(t,e,n,o){var i,s=arguments.length,r=s<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,o);else for(var l=t.length-1;l>=0;l--)(i=t[l])&&(r=(s<3?i(r):s>3?i(e,n,r):i(e,n))||r);return s>3&&r&&Object.defineProperty(e,n,r),r}const p=require("vue-class-component");var h=t.n(p);var c="undefined"!=typeof Reflect&&void 0!==Reflect.getMetadata;function d(t){return void 0===t&&(t={}),function(e,n){!function(t,e,n){if(c&&!Array.isArray(t)&&"function"!=typeof t&&!t.hasOwnProperty("type")&&void 0===t.type){var o=Reflect.getMetadata("design:type",e,n);o!==Object&&(t.type=o)}}(t,e,n),(0,p.createDecorator)((function(e,n){(e.props||(e.props={}))[n]=t}))(e,n)}}function u(t){return(0,p.createDecorator)((function(e,n){e.computed=e.computed||{},e.computed[n]={cache:!1,get:function(){return this.$refs[t||n]}}}))}let m=class FramedComponent extends(i()){pop(t){this.$emit("pop",t)}push(t){this.$emit("push",t)}};a([d()],m.prototype,"root",void 0),a([u()],m.prototype,"scrollContainer",void 0),m=a([h()({components:{ComponentWithPropertiesInstance:r}})],m);function v(t,e,n,o,i,s,r,l){var a,p="function"==typeof t?t.options:t;if(e&&(p.render=e,p.staticRenderFns=n,p._compiled=!0),o&&(p.functional=!0),s&&(p._scopeId="data-v-"+s),r?(a=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},p._ssrRegister=a):i&&(a=l?function(){i.call(this,(p.functional?this.parent:this).$root.$options.shadowRoot)}:i),a)if(p.functional){p._injectStyles=a;var h=p.render;p.render=function(t,e){return a.call(e),h(t,e)}}else{var c=p.beforeCreate;p.beforeCreate=c?[].concat(c,a):[a]}return{exports:t,options:p}}var f=v(m,l,[],!1,null,null,null);f.options.__file="src/FramedComponent.vue";const y=f.exports;var g=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("NavigationController",{ref:"navigationController",attrs:{"animation-type":"modal",root:t.root},on:{present:t.present}}),t._v(" "),n("StackComponent",{ref:"stackComponent",on:{present:t.present}})],1)};g._withStripped=!0;var C=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"navigation-controller",attrs:{"data-animation-type":t.animationType}},[t.mainComponent?n("transition",{attrs:{css:!1},on:{"before-enter":t.beforeEnter,"before-leave":t.beforeLeave,enter:t.enter,leave:t.leave,"after-leave":t.afterLeave,"after-enter":t.afterEnter,"enter-cancelled":t.enterCancelled}},[n("FramedComponent",{key:t.mainComponent.key,ref:"child",attrs:{root:t.mainComponent,name:t.mainComponent.key},on:{push:t.push,show:t.push,pop:t.pop}})],1):t._e()],1)};C._withStripped=!0;let w=class NavigationController extends(i()){constructor(){super(...arguments),this.components=[],this.mainComponent=null,this.transitionName="none",this.savedScrollPositions=[],this.nextScrollPosition=0,this.previousScrollPosition=0,this.nextInternalScrollPosition=0,this.savedInternalScrollPositions=[]}beforeMount(){this.initialComponents&&this.initialComponents.length>0?(this.mainComponent=this.initialComponents[this.initialComponents.length-1],this.components=this.initialComponents.slice(0),this.initialComponents.splice(0,this.initialComponents.length)):(this.mainComponent=this.root,this.components=[this.root])}freezeSize(){const t=this.$el;t.style.width=t.offsetWidth+"px",t.style.height=t.offsetHeight+"px"}growSize(t,e){const n=this.$el;n.style.height=e+"px",n.style.width=t+"px"}unfreezeSize(){const t=this.$el;t.style.width="",t.style.height=""}getInternalScrollElement(t=null){const e=(null!=t?t:this.$el).querySelector("main");return e?this.getScrollElement(e):null}getScrollElement(t=null){t||(t=this.$el);const e=window.getComputedStyle(t);return"scroll"==e.overflowY||"scroll"==e.overflow||"auto"==e.overflow||"auto"==e.overflowY||"overlay"==e.overflow||"overlay"==e.overflowY?t:t.parentElement?this.getScrollElement(t.parentElement):document.documentElement}shouldAnimate(){return this.$el.offsetWidth<=1600}async push(t){var e,o,i,s,r,l;if(0==t.components.length)return void console.error("Missing component when pushing");null===(e=document.activeElement)||void 0===e||e.blur();const a=t.components,p=a[a.length-1],h=null===(o=t.destroy)||void 0===o||o,c=null!==(i=t.force)&&void 0!==i&&i,d=!!this.shouldAnimate()&&(void 0===t.animated?p.animated:t.animated);let u=null!==(s=t.replace)&&void 0!==s?s:0;if(u>this.components.length&&(u=this.components.length),ComponentWithProperties.debug&&p.component.name,u>0&&h&&!c)for(let t=this.components.length-1;t>=this.components.length-u;t--){const e=this.components[t];if(!await e.shouldNavigateAway())return}this.transitionName=d?"modal"==this.animationType?"modal-push":t.reverse?"pop":"push":"none";const m=this.getInternalScrollElement(),v=this.getScrollElement(),f=window;let y=v.clientHeight;v===document.documentElement&&f.visualViewport&&(y=f.visualViewport.height);let g=null==m?void 0:m.clientHeight;if(this.previousScrollPosition=v.scrollTop,this.savedScrollPositions.push(this.previousScrollPosition+y),this.savedInternalScrollPositions.push((null!==(r=null==m?void 0:m.scrollTop)&&void 0!==r?r:0)+(null!=g?g:0)),this.nextScrollPosition=0,this.nextInternalScrollPosition=0,d&&this.freezeSize(),u>0){const t=this.components.splice(this.components.length-u,u,...a);if(!h)for(const e of t)e.keepAlive=!0}else this.components.push(...a);if(this.mainComponent&&(this.mainComponent.keepAlive=!u),this.mainComponent=p,this.$emit("didPush"),0==u&&this)for(let e=0;e<a.length;e++)n.pushState(null==t?void 0:t.url,(t=>{this.pop({animated:d&&t})}),null===(l=null==t?void 0:t.adjustHistory)||void 0===l||l),e<a.length-1&&a[e].assignHistoryIndex()}async shouldNavigateAway(){for(let t=this.components.length-1;t>=0;t--){const e=this.components[t];if(!await e.shouldNavigateAway())return!1}return!0}popToRoot(t={}){return t.count=this.components.length-1,this.pop(t)}getPoppableParent(){let t=this,e=this.$parent;for(;e;){if(t.$listeners.pop)return t;t=e,e=e.$parent}return null}async pop(t={}){var e,n,o,i,s,r,l;null===(e=document.activeElement)||void 0===e||e.blur();const a=!!this.shouldAnimate()&&(null===(n=t.animated)||void 0===n||n),p=null===(o=t.destroy)||void 0===o||o,h=null!==(i=t.count)&&void 0!==i?i:1,c=null!==(s=t.force)&&void 0!==s&&s;if(this.components.length<=h){const e=this.getPoppableParent();return t.count=1,e?void e.$emit("pop",t):(console.error("Tried to pop an empty navigation controller, but couldn't find a parent to pop"),void this.$emit("pop",t))}if(0===h)return;if(p&&!c)for(let t=this.components.length-1;t>=this.components.length-h;t--){const e=this.components[t];if(!await e.shouldNavigateAway())return}this.previousScrollPosition=this.getScrollElement().scrollTop,a?(this.transitionName="modal"==this.animationType?"modal-pop":"pop",this.freezeSize()):this.transitionName="none";const d=this.components.splice(this.components.length-h,h);if(!p)for(const t of d)t.keepAlive=!0;const u=this.getScrollElement(),m=window;let v=u.clientHeight;return u===document.documentElement&&m.visualViewport&&(v=m.visualViewport.height),this.nextScrollPosition=Math.max(0,(null!==(r=this.savedScrollPositions.pop())&&void 0!==r?r:0)-v),this.nextInternalScrollPosition=Math.max(0,null!==(l=this.savedInternalScrollPositions.pop())&&void 0!==l?l:0),this.mainComponent=this.components[this.components.length-1],this.$emit("didPop"),d}beforeEnter(t){"none"!=this.transitionName&&(t.className=this.transitionName+"-enter-active "+this.transitionName+"-enter")}beforeLeave(t){this.transitionName}beforeBeforeEnterAnimation(){if(this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.beforeBeforeEnterAnimation&&t.beforeBeforeEnterAnimation()}}finishedEnterAnimation(){if(this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.finishedEnterAnimation&&t.finishedEnterAnimation()}}enter(t,e){if("none"==this.transitionName){this.getScrollElement().scrollTop=this.nextScrollPosition;const n=this.getInternalScrollElement(t);return n&&(n.scrollTop=Math.max(0,this.nextInternalScrollPosition-n.clientHeight)),void e()}if(this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.beforeBeforeEnterAnimation&&t.beforeBeforeEnterAnimation()}const n=this.getScrollElement(),o=t.firstElementChild.firstElementChild.offsetWidth,i=t.firstElementChild.offsetHeight,s=this.getScrollOuterHeight(n);let r=this.nextScrollPosition;r>i-s&&(r=Math.max(0,i-s),this.nextScrollPosition=r);const l=this.getInternalScrollElement(t);let a=this.nextInternalScrollPosition;if(l){a=Math.max(0,this.nextInternalScrollPosition-l.clientHeight);const t=this.getScrollOuterHeight(l),e=l.scrollHeight;a>e-t&&(a=Math.max(0,e-t))}const p=t.firstElementChild;let h=300;"pop"!==this.transitionName&&"modal-pop"!=this.transitionName||(h=250),"push"!=this.transitionName&&"pop"!=this.transitionName&&"modal-push"!=this.transitionName||(p.style.willChange="transform"),n.scrollTop!==r&&(n.style.willChange="scroll-position"),l&&l.scrollTop!==a&&(l.style.willChange="scroll-position"),this.growSize(o,i),requestAnimationFrame((()=>{if(n.scrollTop=r,l&&(l.scrollTop=a),this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.beforeEnterAnimation&&t.beforeEnterAnimation()}requestAnimationFrame((()=>{if(t.className=this.transitionName+"-enter-active "+this.transitionName+"-enter-to",this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.beginEnterAnimation&&t.beginEnterAnimation()}setTimeout((()=>{if(t.style.willChange="",p.style.willChange="",n.style.willChange="",l&&(l.style.willChange=""),this.mainComponent){const t=this.mainComponent.componentInstance();t&&t.finishedEnterAnimation&&t.finishedEnterAnimation()}e()}),h+25)}))}))}getScrollOuterHeight(t){let e=t.clientHeight;if(t===document.documentElement){const t=window;t.visualViewport&&(e=t.visualViewport.height)}return e}leave(t,e){if("none"==this.transitionName)return void e();const n=this.getScrollElement();let o=this.getScrollOuterHeight(n);const i=t.firstElementChild;i.style.willChange="scroll-position,transform";let s=300;"pop"!==this.transitionName&&"modal-pop"!=this.transitionName||(s=250),requestAnimationFrame((()=>{const n=this.previousScrollPosition,r=this.nextScrollPosition,l=o+"px";t.className=this.transitionName+"-leave-active "+this.transitionName+"-leave",t.style.top=r+"px",t.style.height=l,t.style.bottom="auto",t.style.overflow="hidden",i.style.overflow="hidden",i.style.height=o+"px",i.scrollTop=n,requestAnimationFrame((()=>{t.className=this.transitionName+"-leave-active "+this.transitionName+"-leave-to",setTimeout((()=>{t.style.overflow="",t.style.top="",t.style.height="",t.style.bottom="",i.style.overflow="",i.style.willChange="",e()}),s+25)}))}))}afterLeave(t){"none"!=this.transitionName&&(t.className="")}afterEnter(t){"none"!=this.transitionName&&(this.unfreezeSize(),t.className="")}enterCancelled(t){this.unfreezeSize()}destroyed(){for(const t of this.components)t.isKeptAlive&&t.destroy();this.components=[],this.mainComponent=null}};a([d()],w.prototype,"root",void 0),a([d({default:null})],w.prototype,"initialComponents",void 0),a([d({default:"default"})],w.prototype,"animationType",void 0),a([u()],w.prototype,"child",void 0),w=a([h()({components:{FramedComponent:y}})],w);var S=v(w,C,[],!1,null,null,null);S.options.__file="src/NavigationController.vue";const P=S.exports;var A=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{appear:t.shouldAppear,name:"fade",duration:300}},[n("div",{staticClass:"popup",class:{sticky:t.sticky,"push-down":1==t.pushDown,"push-down-full":t.pushDown>1},on:{mousedown:t.dismiss,touchdown:t.dismiss}},[n("div",{on:{mousedown:function(t){t.stopPropagation()},touchdown:function(t){t.stopPropagation()}}},[n("div",{staticClass:"scrollable-container"},[n("ComponentWithPropertiesInstance",{key:t.root.key,attrs:{component:t.root},on:{pop:t.dismiss}})],1)])])])};A._withStripped=!0;let k=class ModalMixin extends(i()){get modalStackComponent(){let t=this.$parent;for(;t;){if(t instanceof q)return t;t=t.$parent}return null}pop(t={}){const e=this.getPoppableParent();e?e.$listeners.pop?e.$emit("pop",t):console.error("Couldn't pop. Failed"):console.warn("No navigation controller to pop")}getPoppableParent(){let t=this,e=this.$parent;for(;e;){if(t.$listeners.pop)return t;t=e,e=e.$parent}return null}};var x;k=a([h()],k);const E=window.visualViewport;let I=x=class Popup extends k{constructor(){super(...arguments),this.sticky=!1}get shouldAppear(){return this.root.animated}get pushDown(){var t,e,n;const o=null!==(n=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components.filter((t=>t.component===x)))&&void 0!==n?n:[];return o.length>0&&o[o.length-1].componentInstance()!==this?o.length>1&&o[o.length-2].componentInstance()===this?1:2:0}get isFocused(){var t,e,n;const o=null!==(n=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components)&&void 0!==n?n:[];return!(o.length>0&&o[o.length-1].componentInstance()!==this)}activated(){document.addEventListener("keydown",this.onKey),this.resize(),E&&E.addEventListener("resize",this.resize)}deactivated(){document.removeEventListener("keydown",this.onKey),E&&E.removeEventListener("resize",this.resize)}async dismiss(t){var e,o,i;if(!(null==t?void 0:t.force)){if(!await this.shouldNavigateAway())return!1}const s=null!==(i=null===(o=null===(e=this.modalStackComponent)||void 0===e?void 0:e.stackComponent)||void 0===o?void 0:o.components.filter((t=>"overlay"!==t.modalDisplayStyle)))&&void 0!==i?i:[];if(0===s.length||s[s.length-1].componentInstance()===this){const t=this.root.getHistoryIndex();null!=t&&n.returnToHistoryIndex(t-1)}this.pop(t)}resize(){E&&(document.documentElement.clientHeight-E.height>200?this.sticky=!0:this.sticky=!1)}onKey(t){if(t.defaultPrevented||t.repeat)return;if(!this.isFocused)return;const e=t.key||t.keyCode;"Escape"!==e&&"Esc"!==e&&27!==e||(this.dismiss(),t.preventDefault())}shouldNavigateAway(){return this.root.shouldNavigateAway()}};a([d({required:!0})],I.prototype,"root",void 0),I=x=a([h()({components:{ComponentWithPropertiesInstance:r}})],I);var b=v(I,A,[],!1,null,null,null);b.options.__file="src/Popup.vue";const $=b.exports;var N=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",t._l(t.components,(function(e,o){return n("ComponentWithPropertiesInstance",{key:e.key,ref:"children",refInFor:!0,attrs:{component:e},on:{pop:function(n){return t.removeAt(o,e.key)}}})})),1)};N._withStripped=!0;let _=class StackComponent extends(i()){constructor(){super(...arguments),this.components=[]}show(t){this.components.push(t)}removeAt(t,e){if(!this.components[t])for(const[n,o]of this.components.entries())if(o.key===e){console.warn("Corrected index from "+t+" to "+n),t=n;break}void 0!==this.components[t]&&this.components[t].key===e?this.components.splice(t,1):console.warn("Expected component with key "+e+" at index"+t)}beforeDestroy(){this.components=[]}};_=a([h()({components:{ComponentWithPropertiesInstance:r}})],_);var W=v(_,N,[],!1,null,null,null);W.options.__file="src/StackComponent.vue";const D=W.exports;var H=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{appear:t.shouldAppear,name:"fade",duration:300}},[n("div",{staticClass:"sheet",on:{mousedown:t.dismiss,touchdown:t.dismiss}},[n("div",{on:{mousedown:function(t){t.stopPropagation()},touchdown:function(t){t.stopPropagation()}}},[n("ComponentWithPropertiesInstance",{key:t.root.key,attrs:{component:t.root},on:{pop:t.dismiss}})],1)])])};H._withStripped=!0;let T=class Sheet extends k{get shouldAppear(){return this.root.animated}activated(){document.addEventListener("keydown",this.onKey)}deactivated(){document.removeEventListener("keydown",this.onKey)}get isFocused(){var t,e,n;const o=null!==(n=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components)&&void 0!==n?n:[];return!(o.length>0&&o[o.length-1].componentInstance()!==this)}async dismiss(t){var e,o,i;if(!(null==t?void 0:t.force)){if(!await this.shouldNavigateAway())return!1}const s=null!==(i=null===(o=null===(e=this.modalStackComponent)||void 0===e?void 0:e.stackComponent)||void 0===o?void 0:o.components.filter((t=>"overlay"!==t.modalDisplayStyle)))&&void 0!==i?i:[];if(0===s.length||s[s.length-1].componentInstance()===this){const t=this.root.getHistoryIndex();null!=t&&n.returnToHistoryIndex(t-1)}this.pop(t)}onKey(t){if(t.defaultPrevented||t.repeat)return;if(!this.isFocused)return;const e=t.key||t.keyCode;"Escape"!==e&&"Esc"!==e&&27!==e||(this.dismiss(),t.preventDefault())}shouldNavigateAway(){return this.root.shouldNavigateAway()}};a([d({required:!0})],T.prototype,"root",void 0),T=a([h()({components:{ComponentWithPropertiesInstance:r}})],T);var z=v(T,H,[],!1,null,null,null);z.options.__file="src/Sheet.vue";const M=z.exports;var j,F=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{appear:t.shouldAppear,name:"fade"}},[n("div",{staticClass:"side-view",class:{"push-down":1==t.pushDown,"push-down-full":t.pushDown>1},on:{mousedown:t.dismiss,touchdown:t.dismiss}},[n("div",{on:{mousedown:function(t){t.stopPropagation()},touchdown:function(t){t.stopPropagation()}}},[n("ComponentWithPropertiesInstance",{key:t.root.key,attrs:{component:t.root},on:{pop:t.dismiss}})],1)])])};F._withStripped=!0;const O=window.visualViewport;let K=j=class SideView extends k{get shouldAppear(){return this.root.animated}get pushDown(){var t,e,n;const o=null!==(n=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components.filter((t=>t.component===j)))&&void 0!==n?n:[];return o.length>0&&o[o.length-1].componentInstance()!==this?o.length>1&&o[o.length-2].componentInstance()===this?1:2:0}get isFocused(){var t,e,n;const o=null!==(n=null===(e=null===(t=this.modalStackComponent)||void 0===t?void 0:t.stackComponent)||void 0===e?void 0:e.components)&&void 0!==n?n:[];return!(o.length>0&&o[o.length-1].componentInstance()!==this)}activated(){document.addEventListener("keydown",this.onKey),this.resize(),O&&O.addEventListener("resize",this.resize)}deactivated(){document.removeEventListener("keydown",this.onKey),O&&O.removeEventListener("resize",this.resize)}async dismiss(t){var e,o,i;if(!(null==t?void 0:t.force)){if(!await this.shouldNavigateAway())return!1}const s=null!==(i=null===(o=null===(e=this.modalStackComponent)||void 0===e?void 0:e.stackComponent)||void 0===o?void 0:o.components.filter((t=>"overlay"!==t.modalDisplayStyle)))&&void 0!==i?i:[];if(0===s.length||s[s.length-1].componentInstance()===this){const t=this.root.getHistoryIndex();null!=t&&n.returnToHistoryIndex(t-1)}this.pop(t)}resize(){}onKey(t){if(t.defaultPrevented||t.repeat)return;if(!this.isFocused)return;const e=t.key||t.keyCode;"Escape"!==e&&"Esc"!==e&&27!==e||(this.dismiss(),t.preventDefault())}shouldNavigateAway(){return this.root.shouldNavigateAway()}};a([d({required:!0})],K.prototype,"root",void 0),K=j=a([h()({components:{ComponentWithPropertiesInstance:r}})],K);var V=v(K,F,[],!1,null,null,null);V.options.__file="src/SideView.vue";const L=V.exports;let R=class ModalStackComponent extends(i()){present(t){var e,o,i,s,r;const l=t.components[t.components.length-1];void 0!==t.animated&&(l.animated=t.animated);const a=null!==(o=null!==(e=t.modalDisplayStyle)&&void 0!==e?e:l.modalDisplayStyle)&&void 0!==o?o:"cover";if(l.setDisplayStyle(a),"popup"===a&&this.$el.offsetWidth>800){const e=new ComponentWithProperties($,{root:l});return n.pushState(null==t?void 0:t.url,(t=>{var n;null===(n=e.componentInstance())||void 0===n||n.pop({animated:t})}),null===(i=null==t?void 0:t.adjustHistory)||void 0===i||i),void this.stackComponent.show(e)}if("sheet"===a&&this.$el.offsetWidth>700){const e=new ComponentWithProperties(M,{root:l});return n.pushState(null==t?void 0:t.url,(t=>{var n;null===(n=e.componentInstance())||void 0===n||n.pop({animated:t})}),null===(s=null==t?void 0:t.adjustHistory)||void 0===s||s),void this.stackComponent.show(e)}if("side-view"===a&&this.$el.offsetWidth>800){const e=new ComponentWithProperties(L,{root:l});return n.pushState(null==t?void 0:t.url,(t=>{var n;null===(n=e.componentInstance())||void 0===n||n.pop({animated:t})}),null===(r=null==t?void 0:t.adjustHistory)||void 0===r||r),void this.stackComponent.show(e)}"overlay"!==a?this.$refs.navigationController.push(t):this.stackComponent.show(l)}replace(t,e=!0){const n=this.$refs.navigationController;n.push({components:[t],animated:e,replace:n.components.length})}};a([d()],R.prototype,"root",void 0),a([u()],R.prototype,"stackComponent",void 0),R=a([h()({components:{NavigationController:P,StackComponent:D}})],R);var U=v(R,g,[],!1,null,null,null);U.options.__file="src/ModalStackComponent.vue";const q=U.exports;var B=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"split-view-controller",attrs:{"data-has-detail":t.detail?"true":"false"}},[n("div",{ref:"masterElement",staticClass:"master"},[n("NavigationController",{ref:"navigationController",attrs:{root:t.root},on:{showDetail:t.showDetail}})],1),t._v(" "),t.detail?n("div",{staticClass:"detail"},[n("FramedComponent",{key:t.detail.key,ref:"detailFrame",attrs:{root:t.detail}})],1):t._e()])};B._withStripped=!0;const Y=(t,e)=>{let n,o;return function(){const i=this,s=arguments;o?(clearTimeout(n),n=setTimeout((function(){Date.now()-o>=e&&(t.apply(i,s),o=Date.now())}),e-(Date.now()-o))):(t.apply(i,s),o=Date.now())}};let X=class SplitViewController extends(i()){constructor(){super(...arguments),this.detail=null,this.detailKey=null}activated(){this.listener=Y(this.onResize,200),window.addEventListener("resize",this.listener,{passive:!0})}mounted(){this.detailWidth&&this.$el.style.setProperty("--split-view-width",this.detailWidth)}deactivated(){window.removeEventListener("resize",this.listener,{passive:!0})}onResize(){this.shouldCollapse()?this.detail&&this.collapse():this.lastIsDetail&&!this.detail&&this.expand()}get lastIsDetail(){var t;return null!=this.detailKey&&(null===(t=this.$refs.navigationController.mainComponent)||void 0===t?void 0:t.key)==this.detailKey}getScrollElement(t=null){t||(t=this.$el);const e=window.getComputedStyle(t);return"scroll"==e.overflowY||"scroll"==e.overflow||"auto"==e.overflow||"auto"==e.overflowY?t:t.parentElement?this.getScrollElement(t.parentElement):document.documentElement}async shouldNavigateAway(){if(this.detail){if(!await this.detail.shouldNavigateAway())return!1}return!this.navigationController||await this.navigationController.shouldNavigateAway()}async showDetail(t){const e=t.components[t.components.length-1];if(this.detailKey=e.key,this.shouldCollapse()){if(this.lastIsDetail||this.detail)return console.error("Pusing a detail when a detail is already presented is not allowed"),!1;this.navigationController.push(t)}else{if(this.detail){if(!await this.detail.shouldNavigateAway())return!1}this.getScrollElement().scrollTop=0,this.detail=e}return!0}shouldCollapse(){return this.$el.offsetWidth<850}collapse(){if(this.lastIsDetail)return void console.error("Cannot collapse when the detail is already collaped");if(!this.detail)return void console.error("Cannot collapse without detail");this.detail.keepAlive=!0;const t=this.detail;this.detail=null,this.navigationController.push({components:[t],animated:!1})}async expand(){if(this.detail)return void console.error("Cannot expand when detail is already visible");if(!this.lastIsDetail)return void console.error("Cannot expand when there is no detail");const t=await this.navigationController.pop({animated:!1,destroy:!1});t&&0!=t.length&&this.$nextTick((()=>{this.detail=t[0]}))}};a([d()],X.prototype,"root",void 0),a([d()],X.prototype,"detailWidth",void 0),a([u()],X.prototype,"navigationController",void 0),a([u()],X.prototype,"detailKeepAlive",void 0),a([u()],X.prototype,"masterElement",void 0),X=a([h()({components:{NavigationController:P,FramedComponent:y}})],X);var G=v(X,B,[],!1,null,null,null);G.options.__file="src/SplitViewController.vue";const J=G.exports;let Q=class NavigationMixin extends(i()){constructor(){super(...arguments),this.canPop=!1,this.canDismiss=!1}emitParents(t,e){let n=this.$parent;for(;n;){if(n.$listeners[t])return void n.$emit(t,e);n=n.$parent}console.warn("No handlers found for event "+t)}show(t){t.components?this.emitParents("show",t):this.emitParents("show",{components:[t]})}present(t){t.components?this.emitParents("present",t):this.emitParents("present",{components:[t]})}showDetail(t){t.components?this.emitParents("showDetail",t):this.emitParents("showDetail",{components:[t]})}pop(t={}){const e=this.getPoppableParent();e?e.$listeners.pop?e.$emit("pop",t):console.error("Couldn't pop. Failed"):console.warn("No navigation controller to pop")}dismiss(t={}){const e=this.modalOrPopup;if(e){if(e instanceof M||e instanceof $||e instanceof L)return void e.dismiss(t);e.pop(t)}else console.warn("Tried to dismiss without being displayed as a modal. Use pop instead"),this.pop(t)}get navigationController(){let t=this.$parent;for(;t;){if(t instanceof P)return t;t=t.$parent}return null}get modalOrPopup(){let t=this.$parent;for(;t;){if(t instanceof P&&"modal"==t.animationType)return t;if(t instanceof M)return t;if(t instanceof $)return t;if(t instanceof L)return t;t=t.$parent}return null}get modalNavigationController(){let t=this.$parent;for(;t;){if(t instanceof P&&"modal"==t.animationType)return t;t=t.$parent}return null}get splitViewController(){let t=this.$parent;for(;t;){if(t instanceof J)return t;t=t.$parent}return null}getPoppableParent(){let t=this,e=this.$parent;for(;e;){if(t.$listeners.pop)return t;t=e,e=e.$parent}return null}activated(){this.canPop=this.calculateCanPop(),this.canDismiss=this.calculateCanDismiss()}get poppableNavigationController(){let t=this.$parent;for(;t;){if(t instanceof P){if("modal"==t.animationType)return null;if(t.components.length>1)return t}t=t.$parent}return null}isFocused(){const t=this.modalOrPopup;return!(t instanceof $||t instanceof M||t instanceof L)||!!t.isFocused}calculateCanPop(){return null!=this.poppableNavigationController}calculateCanDismiss(){const t=this.modalOrPopup;return null!==t&&!(t instanceof P&&t.components.length<=1)}};Q=a([h()],Q),module.exports=e})();
2
2
  //# sourceMappingURL=main.js.map