{"version":3,"sources":["webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///./src/mixins/createSnapshot.js","webpack:///./src/mixins/appTypeAndImage.js","webpack:///./src/modules/snapshot/components/TheSnapshotSideBar.vue","webpack:///src/modules/snapshot/components/TheSnapshotSideBar.vue","webpack:///./src/modules/snapshot/components/TheSnapshotSideBar.vue?0c64","webpack:///./src/modules/snapshot/components/TheSnapshotSideBar.vue?a1b3","webpack:///./src/modules/snapshot/components/TheSnapshotSideBar.vue?b0e3","webpack:///./src/mixins/snapshot.js","webpack:///./node_modules/core-js/modules/web.url.to-json.js","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///./src/assets/N-Nuvolos-blue.svg"],"names":["mixins","Colorable","PositionableFactory","Themeable","Toggleable","Transitionable","extend","name","props","avatar","Boolean","bordered","color","type","String","default","content","required","dot","label","icon","inline","offsetX","Number","offsetY","overlap","tile","transition","value","computed","classes","this","bottom","left","themeClasses","computedBottom","computedYOffset","computedLeft","isRtl","computedXOffset","computedRight","computedTop","calcPosition","$vuetify","rtl","offset","styles","right","top","methods","convertToUnit","genBadge","lang","$attrs","t","data","setBackgroundColor","staticClass","style","attrs","title","role","directives","isActive","badge","$createElement","genBadgeContent","origin","mode","slot","getSlot","VIcon","genBadgeWrapper","render","h","children","unshift","push","class","createQuickAndDetailedSnapshots","snapshotCreationLoading","snapshotCreationErrorContent","snapshotCreationError","addSnapshot","newSnapshotType","postBody","longId","shortId","description","$store","dispatch","snackBarText","snackBarTimeout","snackBarIcon","snapshotTypes","QUICK_SNAPSHOT","today","Date","currentDate","toJSON","slice","currentTime","getHours","getMinutes","getSeconds","datetimeLongId","datetimeShortId","replace","long_id","short_id","snapshot_type","DETAILED_SNAPSHOT","userTasksRoute","$router","resolve","href","apiURL","$route","params","iid","$axios","post","then","oid","sid","snid","catch","error","response","reason","includes","finally","appTypeAndImageLink","appTypes","JUPYTER","RSTUDIO","MATLAB","STATA","appDisabledReasons","appIcon","app","icon_url","scopedSlots","on","_vm","require","_c","key","query","_u","fn","closingDelay","model","manageMenu","callback","expression","isInstanceObserver","fileArea","sidebarItems","TABLES","APPLICATIONS","isTrialSpace","path","snapshotMenu","isSpaceArchived","_v","_s","numberOfStagedObjects","proxy","showBadge","staticRenderFns","components","SettingsMenu","ApplicationMenu","TheSnapshotSideBarAssignmentMenuItem","fab","DASHBOARD","SETTINGS","FILES","SNAPSHOTS","DISTRIBUTION","stageClicked","Shepherd","clearPathArray","toggleSidebarBrightness","mapGetters","mapState","watch","immediate","handler","setTimeout","component","snapshotEnums","AUTO_SNAPSHOT","ARCHIVED_SNAPSHOT","RESTED_SNAPSHOT","fileStatusTypes","SAVED_AND_UNCHANGED","SAVED_AND_CHANGED","UNSAVED","STATUS_UNAVAILABLE","snapshotBackupStatusOptions","CREATING_SNAPSHOT","getSnapshotStatusIcon","snapshotData","backup_location","getSnapshotStatusDescription","filesystem_prefix","currentFileStatus","file","status","success","in_last_snapshot","changed","$","call","target","proto","enumerable","URL","prototype","toString","handleGesture","wrapper","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","Math","abs","up","down","touchstart","event","touch","changedTouches","clientX","clientY","start","Object","assign","touchend","end","touchmove","touchmoveX","touchmoveY","move","createHandlers","e","inserted","el","binding","vnode","parent","parentElement","options","passive","handlers","_touchHandlers","context","_uid","keys","forEach","eventName","addEventListener","unbind","removeEventListener","Touch","baseMixins","Dependent","Delayable","Returnable","Roundable","Menuable","ClickOutside","Resize","provide","isInMenu","theme","auto","closeOnClick","closeOnContentClick","disabled","disableKeys","maxHeight","openOnHover","calculatedTopAuto","defaultOffset","hasJustFocused","listIndex","resizeTimeout","selectedIndex","tiles","activeTile","calculatedLeft","menuWidth","max","dimensions","width","parseFloat","calculatedMinWidth","calcXOverflow","calcLeftAuto","calcLeft","calculatedMaxHeight","height","calculatedMaxWidth","maxWidth","minWidth","min","activator","nudgeWidth","pageWidth","isNaN","parseInt","calculatedTop","calcYOverflow","calcTop","hasClickableTiles","find","tabIndex","transformOrigin","zIndex","activeZIndex","val","isContentActive","next","prev","classList","add","scrollTop","$refs","contentHeight","clientHeight","offsetTop","goTo","appOffset","duration","container","remove","created","hasOwnProperty","removed","mounted","callActivate","activate","updateDimensions","requestAnimationFrame","startTransition","calcTopAuto","calcScrollPosition","$el","querySelector","maxScrollTop","scrollHeight","offsetHeight","Array","from","indexOf","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","getTiles","keyCode","keyCodes","tab","nextTile","prevTile","lastTile","home","firstTile","enter","click","preventDefault","closeConditional","_isDestroyed","contains","genActivatorAttributes","attributes","Activatable","id","genActivatorListeners","listeners","keydown","onKeyDown","genTransition","genContent","genDirectives","include","getOpenDependentElements","getScopeIdAttrs","rootThemeClasses","roundedClasses","activatorFixed","menuable__content__active","contentClass","trim","ref","getAttribute","$listeners","scroll","mouseenter","mouseEnterHandler","mouseleave","mouseLeaveHandler","getContentSlot","querySelectorAll","runDelay","_a","relatedTarget","callDeactivate","length","esc","getActivator","$nextTick","focus","onResize","offsetWidth","clearTimeout","window","attach","arg","genActivator","showLazyContent","VThemeProvider","root","light","dark","Vue","mobileBreakpoint","breakpoint","undefined","validator","v","isMobile","mobile","mobileWidth","isNumber","deprecate","absolute","opacity","__scrim","computedOpacity","$slots","VOverlay","hideOverlay","overlayColor","overlayOpacity","animationFrame","overlay","removeOverlay","genOverlay","beforeDestroy","createOverlay","propsData","$mount","parentNode","document","insertBefore","firstChild","hideScroll","getZIndex","showScroll","addOnceEventListener","removeChild","$destroy","cancelAnimationFrame","scrollListener","tagName","isContentEditable","pageup","pagedown","deltaY","body","checkPath","hasScrollbar","nodeType","Node","ELEMENT_NODE","getComputedStyle","overflowY","overflowX","scrollWidth","clientWidth","shouldScroll","hasAttribute","alreadyAtStart","alreadyAtEnd","dir","shiftKey","deltaX","delta","scrollLeft","scrollingUp","scrollingDown","isInside","composedPath","dialog","selected","getSelection","anchorNode","index","documentElement","smAndDown","addPassiveEventListener","Applicationable","Mobile","Overlayable","SSRBootable","isInNav","tag","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","miniVariant","miniVariantWidth","permanent","src","stateless","temporary","touchless","isMouseover","touchArea","stackMinZIndex","applicationProperty","fixed","isMiniVariant","computedMaxHeight","hasApp","application","footer","bar","computedTransform","isBottom","computedWidth","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","translate","transform","$emit","init","updateMiniVariant","beforeMount","calculateTouchArea","parentRect","getBoundingClientRect","genAppend","genPosition","genBackground","image","$scopedSlots","img","VImg","swipeLeft","swipeRight","genListeners","transitionend","currentTarget","resizeEvent","createEvent","initUIEvent","dispatchEvent","genPrepend","genBorder","onRouteChange","updateApplication","module","exports"],"mappings":"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","file":"static/js/chunk-430d6150.c5d21499.js","sourcesContent":["// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-badge__badge',\n style: this.styles,\n attrs: {\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n },\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return this.$createElement(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return this.$createElement('span', {\n staticClass: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (h): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', {\n staticClass: 'v-badge',\n attrs,\n class: this.classes,\n }, children)\n },\n})\n","export const createQuickAndDetailedSnapshots = {\n data() {\n return {\n snapshotCreationLoading: false,\n snapshotCreationErrorContent: 'An error has occurred while creating your snapshot, please try again later.',\n snapshotCreationError: false\n }\n },\n methods: {\n addSnapshot: function (newSnapshotType, longId = null, shortId = null, description = null) {\n this.snapshotCreationError = false\n this.$store.dispatch('showSnackBar', {\n snackBarText: 'Saving snapshot, please wait..',\n snackBarTimeout: 10000,\n snackBarIcon: 'info'\n })\n let postBody\n if (newSnapshotType === this.snapshotTypes.QUICK_SNAPSHOT) {\n const today = new Date()\n const currentDate = today.toJSON().slice(0, 10)\n const currentTime = ('0' + today.getHours()).slice(-2) + ':' + ('0' + today.getMinutes()).slice(-2) + ':' + ('0' + today.getSeconds()).slice(-2)\n const datetimeLongId = currentDate + ' / ' + currentTime\n const datetimeShortId = datetimeLongId.replace(/\\/+/g, '_').replace(/\\s+/g, '').replace('-', '_').replace(/:/g, '_')\n postBody = {\n description: 'Quick snapshot - no description available',\n long_id: 'Quick snapshot ' + datetimeLongId,\n short_id: datetimeShortId,\n snapshot_type: this.snapshotTypes.QUICK_SNAPSHOT\n }\n } else if (newSnapshotType === this.snapshotTypes.DETAILED_SNAPSHOT) {\n this.snapshotCreationLoading = true\n postBody = {\n description,\n long_id: longId,\n short_id: shortId,\n snapshot_type: this.snapshotTypes.DETAILED_SNAPSHOT\n }\n }\n const userTasksRoute = this.$router.resolve({ name: 'user-tasks' }).href\n const apiURL = `/instances/${this.$route.params.iid}/snapshots_async`\n this.$axios\n .post(apiURL, postBody)\n .then(() => {\n this.$store.dispatch('showSnackBar', {\n snackBarText: `Snapshot creation has started, you can track its progress here`,\n snackBarTimeout: 5000,\n snackBarIcon: 'info'\n })\n if (newSnapshotType === this.snapshotTypes.DETAILED_SNAPSHOT) {\n this.$router.push({\n name: 'snapshot-overview',\n params: {\n oid: this.$route.params.oid,\n sid: this.$route.params.sid,\n iid: this.$route.params.iid,\n snid: this.$route.params.snid\n }\n })\n }\n })\n .catch(error => {\n this.$store.dispatch('hideSnackBar')\n if (\n error.response &&\n error.response.data &&\n error.response.data.reason &&\n error.response.data.reason[0].includes('duplicate key value violates unique constraint \"uc_iid_long\"')\n ) {\n this.snapshotCreationError = true\n this.snapshotCreationErrorContent = 'Another snapshot uses the same name you chose for this snapshot, please choose another name'\n } else {\n this.$store.dispatch('showSnackBar', {\n snackBarText: 'Failed to create a snapshot, please try again later.',\n snackBarTimeout: 10000,\n snackBarIcon: 'error'\n })\n }\n })\n .finally(() => {\n this.snapshotCreationLoading = false\n })\n }\n }\n}\n","export const appTypeAndImageLink = {\n data() {\n return {\n appTypes: {\n JUPYTER: { name: 'jupyter' },\n RSTUDIO: { name: 'rstudio' },\n MATLAB: { name: 'matlab' },\n STATA: { name: 'stata' }\n },\n appDisabledReasons: ['This application requires a license', 'You need the tables feature enabled to use this app']\n }\n },\n methods: {\n appIcon(app) {\n return app.icon_url ? app.icon_url : 'https://dlcfc4rxk1sfk.cloudfront.net/nuvolos/app_logos/generic_app_icon.svg'\n }\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-navigation-drawer',{class:_vm.dimmedSidebar && 'dim',attrs:{\"permanent\":\"\",\"mini-variant\":\"\",\"app\":\"\",\"mobile-breakpoint\":\"600\",\"mini-variant-width\":\"65\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\"},on:{\"click\":_vm.toggleSidebarBrightness}},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-brightness-6\")])],1),_c('v-list-item-title',[_vm._v(\"Dim sidebar\")])],1)]}}])},[_c('span',[_vm._v(\"Dim sidebar\")])])]},proxy:true}])},[_c('div',{staticClass:\"d-flex flex-column pa-0\"},[_c('v-sheet',{staticClass:\"d-flex align-center\",attrs:{\"height\":\"48\",\"color\":\"primary\"}},[_c('v-list-item',{attrs:{\"dense\":\"\",\"to\":{ name: 'home-dashboard', params: { oid: _vm.$route.params.oid }, query: _vm.$route.query }}},[_c('v-list-item-icon',[_c('img',{attrs:{\"src\":require(\"@/assets/N-Nuvolos-blue.svg\")}})]),_c('v-list-item-title',[_vm._v(\"Dashboard\")])],1)],1),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\",\"to\":{\n name: 'snapshot-overview',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid },\n query: _vm.$route.query\n },\"e2e-sidebar-overview\":\"\"}},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.sidebarItems.DASHBOARD.icon))])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.sidebarItems.DASHBOARD.title))])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.sidebarItems.DASHBOARD.title))])]),(_vm.currentSpaceType === _vm.spaceTypes.EDUCATION_SPACE)?_c('div',[(!_vm.isInstanceObserver)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\",\"to\":{\n name: 'snapshot-assignments',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid },\n query: _vm.$route.query\n },\"e2e-sidebar-assignments\":\"\"}},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"assignment\")])],1),_c('v-list-item-title',[_vm._v(\"Assignments\")])],1)]}}],null,false,2037426855)},[_c('span',[_vm._v(\"Assignments\")])]):_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":\"\"}},[_vm._v(\"assignment\")])],1)],1)],1):_vm._e(),_c('div',{staticClass:\"shepherd-space-management\"},[_c('v-menu',{attrs:{\"close-on-content-click\":true,\"offset-x\":\"\",\"max-width\":\"340\",\"open-on-hover\":\"\",\"close-delay\":_vm.closingDelay,\"e2e-sidebar-settings\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\"}},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.sidebarItems.SETTINGS.icon))])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.sidebarItems.SETTINGS.title))])],1)]}}]),model:{value:(_vm.manageMenu),callback:function ($$v) {_vm.manageMenu=$$v},expression:\"manageMenu\"}},[_c('SettingsMenu')],1),_c('v-divider')],1),_c('div',{staticClass:\"shepherd-space-files\"},[(!_vm.isInstanceObserver)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\",\"to\":{\n name: 'snapshot-files',\n params: {\n oid: _vm.$route.params.oid,\n sid: _vm.$route.params.sid,\n iid: _vm.$route.params.iid,\n snid: _vm.$route.params.snid,\n localPath: _vm.currentFileLocalPath,\n fileArea: _vm.fileAreaType\n },\n query: _vm.$route.query\n },\"e2e-sidebar-files\":\"\"},on:{\"click\":_vm.clearPathArray}},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.sidebarItems.FILES.icon))])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.sidebarItems.FILES.title))])],1)]}}],null,false,137806730)},[_c('span',[_vm._v(_vm._s(_vm.sidebarItems.FILES.title))])]):_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":\"\"}},[_vm._v(_vm._s(_vm.sidebarItems.FILES.icon))])],1)],1)],1),_c('div',{staticClass:\"shepherd-space-tables\"},[(!_vm.isInstanceObserver)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\",\"to\":{\n name: 'snapshot-tables',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid },\n query: _vm.$route.query\n },\"e2e-sidebar-tables\":\"\"}},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.sidebarItems.TABLES.icon))])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.sidebarItems.TABLES.title))])],1)]}}],null,false,4053669535)},[_c('span',[_vm._v(_vm._s(_vm.sidebarItems.TABLES.title))])]):_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":\"\"}},[_vm._v(_vm._s(_vm.sidebarItems.TABLES.icon))])],1)],1)],1),_c('div',{staticClass:\"shepherd-space-apps\"},[(!_vm.isInstanceObserver)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\",\"to\":{\n name: 'snapshot-applications',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid },\n query: _vm.$route.query\n },\"e2e-sidebar-apps\":\"\"}},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.sidebarItems.APPLICATIONS.icon))])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.sidebarItems.APPLICATIONS.title))])],1)]}}],null,false,2575903652)},[_c('span',[_vm._v(_vm._s(_vm.sidebarItems.APPLICATIONS.title))])]):_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":\"\"}},[_vm._v(_vm._s(_vm.sidebarItems.APPLICATIONS.icon))])],1)],1),_c('v-divider')],1),_c('div',{staticClass:\"shepherd-space-snapshots\"},[(!_vm.isInstanceObserver && !_vm.isTrialSpace)?_c('v-menu',{attrs:{\"close-on-content-click\":true,\"offset-x\":\"\",\"max-width\":\"300\",\"open-on-hover\":\"\",\"close-delay\":_vm.closingDelay},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\",\"input-value\":_vm.$route.path.includes('manage-snapshots'),\"to\":{\n name: 'instance-snapshots',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid },\n query: _vm.$route.query\n },\"e2e-sidebar-snapshots\":\"\"}},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.sidebarItems.SNAPSHOTS.icon))])],1),_c('v-list-item-title',[_vm._v(\"snapshot actions\")])],1)]}}],null,false,385662990),model:{value:(_vm.snapshotMenu),callback:function ($$v) {_vm.snapshotMenu=$$v},expression:\"snapshotMenu\"}},[_c('v-list',{attrs:{\"nav\":\"\",\"dense\":\"\"}},[_c('v-btn',{staticClass:\"justify-start mb-1\",attrs:{\"block\":\"\",\"color\":\"primary\",\"elevation\":\"0\",\"to\":{\n name: 'instance-snapshots',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid },\n query: _vm.$route.query\n },\"e2e-sidebar-view-timeline\":\"\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"timeline\")]),_vm._v(\" View snapshot timeline \")],1),(_vm.currentSpaceType !== _vm.spaceTypes.VENDOR_SPACE && _vm.isDevelopment && _vm.isInstanceEditor)?_c('v-list-item',{attrs:{\"disabled\":_vm.isSpaceArchived},on:{\"click\":function($event){return _vm.addSnapshot(_vm.snapshotTypes.QUICK_SNAPSHOT)}}},[_c('v-list-item-title',{staticClass:\"subtitle-2 d-flex align-center\"},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"mdi-camera-plus-outline\")]),_vm._v(\" Quick snapshot \")],1),_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"small\":\"\",\"color\":\"grey lighten-1\"}},on),[_vm._v(\"mdi-information\")])]}}],null,false,2792354461)},[_c('span',[_vm._v(\"This will create and save a snapshot of your current state, including all your files, tables, and applications.\")])])],1)],1):_vm._e(),(_vm.isDevelopment && _vm.isInstanceEditor)?_c('v-list-item',{attrs:{\"to\":{\n name: 'snapshot-add-snapshot',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid }\n },\"disabled\":_vm.isSpaceArchived,\"e2e-sidebar-take-snapshot\":\"\"}},[_c('v-list-item-title',{staticClass:\"subtitle-2 d-flex align-center\"},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"mdi-camera-plus\")]),_vm._v(\" Take snapshot and describe \")],1),_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"small\":\"\",\"color\":\"grey lighten-1\"}},on),[_vm._v(\"mdi-information\")])]}}],null,false,2792354461)},[_c('span',[_vm._v(\"Create a snapshot of your current state and provide detailed description.\")])])],1)],1):_vm._e()],1)],1):_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":\"\"}},[_vm._v(_vm._s(_vm.sidebarItems.SNAPSHOTS.icon))])],1)],1)]}}])},[(_vm.isTrialSpace)?_c('span',[_vm._v(\" You discovered a premium feature! \"),_c('br'),_vm._v(\" Subscribing to Nuvolos will unlock it. \")]):_c('span',[_vm._v(\"Snapshots are disabled in this space\")])])],1),_c('div',{staticClass:\"shepherd-staging-step-3 shepherd-space-stage shepherd-assignment-step-1\",on:{\"click\":_vm.stageClicked}},[(!_vm.isInstanceObserver)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"dense\":\"\",\"to\":{\n name: 'snapshot-distribute',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid },\n query: _vm.$route.query\n },\"e2e-sidebar-sharing\":\"\"}},on),[_c('v-list-item-icon',[_c('v-badge',{staticClass:\"caption\",attrs:{\"color\":_vm.numberOfStagedObjects > 0 ? 'primary' : 'secondary',\"overlap\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"badge\",fn:function(){return [_c('v-fab-transition',[_c('span',{attrs:{\"fab\":\"\"},domProps:{\"textContent\":_vm._s(_vm.numberOfStagedObjects)}})])]},proxy:true}],null,true),model:{value:(_vm.showBadge),callback:function ($$v) {_vm.showBadge=$$v},expression:\"showBadge\"}},[_c('v-icon',[_vm._v(_vm._s(_vm.sidebarItems.DISTRIBUTION.icon))])],1)],1),_c('v-list-item-title',[_vm._v(\"distribution\")])],1)]}}],null,false,2306268723)},[_c('span',[_vm._v(\"Distribution\")])]):_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":\"\"}},[_vm._v(_vm._s(_vm.sidebarItems.DISTRIBUTION.icon))])],1)],1)],1),_c('div',[(_vm.$route.query.grading && _vm.isSpaceAdmin)?_c('the-snapshot-side-bar-assignment-menu-item'):_vm._e(),_c('ApplicationMenu')],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSnapshotSideBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSnapshotSideBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheSnapshotSideBar.vue?vue&type=template&id=bce917c2&scoped=true&\"\nimport script from \"./TheSnapshotSideBar.vue?vue&type=script&lang=js&\"\nexport * from \"./TheSnapshotSideBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TheSnapshotSideBar.vue?vue&type=style&index=0&id=bce917c2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bce917c2\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSnapshotSideBar.vue?vue&type=style&index=0&id=bce917c2&prod&lang=scss&scoped=true&\"","export const snapshotEnums = {\n data() {\n return {\n snapshotTypes: {\n QUICK_SNAPSHOT: 20,\n AUTO_SNAPSHOT: 30,\n DETAILED_SNAPSHOT: 10,\n ARCHIVED_SNAPSHOT: 40,\n RESTED_SNAPSHOT: 50\n },\n fileStatusTypes: {\n SAVED_AND_UNCHANGED: 'SAVED_AND_UNCHANGED',\n SAVED_AND_CHANGED: 'SAVED_AND_CHANGED',\n UNSAVED: 'UNSAVED',\n STATUS_UNAVAILABLE: 'STATUS_UNAVAILABLE'\n },\n snapshotBackupStatusOptions: {\n CREATING_SNAPSHOT: 'creating'\n }\n }\n },\n methods: {\n getSnapshotStatusIcon: function (snapshotData) {\n if (!snapshotData.backup_location) {\n return 'mdi-lock-off'\n } else if (snapshotData.backup_location === this.snapshotBackupStatusOptions.CREATING_SNAPSHOT) {\n return 'mdi-lock-clock'\n } else {\n return 'mdi-lock-check'\n }\n },\n getSnapshotStatusDescription: function (snapshotData) {\n if (!snapshotData.filesystem_prefix && !snapshotData.backup_location) {\n return 'The data for this snapshot can not be located. Please contact support.'\n } else if (snapshotData.filesystem_prefix && !snapshotData.backup_location) {\n return 'This snapshot has no backup.'\n } else if (snapshotData.filesystem_prefix && snapshotData.backup_location === this.snapshotBackupStatusOptions.CREATING_SNAPSHOT) {\n return 'A backup is being created for this snapshot.'\n } else if (snapshotData.filesystem_prefix && snapshotData.backup_location) {\n return 'A backup exists for this snapshot'\n } else if (!snapshotData.filesystem_prefix && snapshotData.backup_location === this.snapshotBackupStatusOptions.CREATING_SNAPSHOT) {\n return 'The data for this snapshot can not be located. Please contact support.'\n } else if (!snapshotData.filesystem_prefix && snapshotData.backup_location) {\n return 'Files in this snapshot are in cold storage. It can take slightly longer to view or download them.'\n }\n },\n currentFileStatus(file) {\n if (file.status) {\n if (file.status.success && file.status.in_last_snapshot && !file.status.changed) {\n return this.fileStatusTypes.SAVED_AND_UNCHANGED\n } else if (file.status.success && file.status.in_last_snapshot && file.status.changed) {\n return this.fileStatusTypes.SAVED_AND_CHANGED\n } else if (file.status.success && !file.status.in_last_snapshot) {\n return this.fileStatusTypes.UNSAVED\n }\n }\n return this.fileStatusTypes.STATUS_UNAVAILABLE\n }\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return call(URL.prototype.toString, this);\n }\n});\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'mobile',\n\n props: {\n mobileBreakpoint: {\n type: [Number, String] as PropType,\n default (): number | BreakpointName | undefined {\n // Avoid destroying unit\n // tests for users\n return this.$vuetify\n ? this.$vuetify.breakpoint.mobileBreakpoint\n : undefined\n },\n validator: v => (\n !isNaN(Number(v)) ||\n ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n ),\n },\n },\n\n computed: {\n isMobile (): boolean {\n const {\n mobile,\n width,\n name,\n mobileBreakpoint,\n } = this.$vuetify.breakpoint\n\n // Check if local mobileBreakpoint matches\n // the application's mobileBreakpoint\n if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n const isNumber = !isNaN(mobileWidth)\n\n return isNumber\n ? width < mobileWidth\n : name === this.mobileBreakpoint\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n deprecate('mobile-break-point', 'mobile-breakpoint', this)\n }\n },\n})\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n on: this.$listeners,\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n const overlay = new VOverlay({\n propsData: {\n absolute: this.absolute,\n value: false,\n color: this.overlayColor,\n opacity: this.overlayOpacity,\n },\n })\n\n overlay.$mount()\n\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]')\n\n parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n this.overlay = overlay\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlay.$destroy()\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent | KeyboardEvent) {\n if ('key' in e) {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e as WheelEvent)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd)) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false })\n window.addEventListener('keydown', this.scrollListener)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener)\n window.removeEventListener('keydown', this.scrollListener)\n },\n },\n})\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, this.$slots.default)\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n","module.exports = __webpack_public_path__ + \"static/img/N-Nuvolos-blue.9d4ed140.svg\";"],"sourceRoot":""}