{"version":3,"sources":["webpack:///../../../src/mixins/overlayable/index.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///../../../src/mixins/button-group/index.ts","webpack:///./src/components/appdash.vue?2d5c","webpack:///./src/components/home.vue?40eb","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","webpack:///../../../src/mixins/applicationable/index.ts","webpack:///../../../src/mixins/scrollable/index.ts","webpack:///../../../src/components/VBottomNavigation/VBottomNavigation.ts","webpack:///./src/components/home.vue","webpack:///./src/components/appdash.vue","webpack:///src/components/appdash.vue","webpack:///./src/components/appdash.vue?f410","webpack:///./src/components/appdash.vue?bb1c","webpack:///./src/components/auth.vue","webpack:///./src/components/timeout.vue","webpack:///src/components/timeout.vue","webpack:///./src/components/timeout.vue?e798","webpack:///./src/components/timeout.vue?40d9","webpack:///src/components/auth.vue","webpack:///./src/components/auth.vue?f502","webpack:///./src/components/auth.vue?a9b3","webpack:///src/components/home.vue","webpack:///./src/components/home.vue?eef1","webpack:///./src/components/home.vue?f41b","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/directives/scroll/index.ts"],"names":["Vue","extend","name","props","hideOverlay","Boolean","overlayColor","String","overlayOpacity","Number","data","animationFrame","overlay","watch","value","this","isActive","removeOverlay","genOverlay","beforeDestroy","methods","createOverlay","VOverlay","propsData","absolute","color","opacity","$mount","parent","$el","parentNode","document","querySelector","insertBefore","firstChild","hideScroll","requestAnimationFrame","undefined","activeZIndex","zIndex","getZIndex","showScroll","addOnceEventListener","removeChild","$destroy","cancelAnimationFrame","scrollListener","e","includes","target","tagName","isContentEditable","up","keyCodes","pageup","down","pagedown","keyCode","deltaY","type","body","checkPath","preventDefault","hasScrollbar","el","nodeType","Node","ELEMENT_NODE","style","window","getComputedStyle","overflowY","scrollHeight","clientHeight","overflowX","scrollWidth","clientWidth","shouldScroll","hasAttribute","dir","shiftKey","deltaX","delta","alreadyAtStart","alreadyAtEnd","scrollTop","scrollLeft","scrollingUp","scrollingDown","isInside","path","composedPath","dialog","$refs","selected","getSelection","anchorNode","index","length","documentElement","content","$vuetify","breakpoint","smAndDown","classList","add","addPassiveEventListener","passive","addEventListener","remove","removeEventListener","baseMixins","mixins","Dependent","Detachable","Overlayable","Returnable","Stackable","Activatable","directives","ClickOutside","dark","disabled","fullscreen","light","maxWidth","noClickAnimation","origin","default","persistent","retainFocus","scrollable","transition","width","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","computed","classes","contentClass","trim","contentClasses","hasActivator","$slots","activator","$scopedSlots","val","show","unbind","_a","focus","created","$attrs","hasOwnProperty","removed","beforeMount","$nextTick","isBooted","animateClick","clearTimeout","setTimeout","closeConditional","_isDestroyed","contains","getMaxZIndex","options","call","activeElement","_b","bind","onFocusin","onClickOutside","$emit","onKeydown","esc","getOpenDependents","getActivator","getOpenDependentElements","some","focusable","querySelectorAll","find","genContent","showLazyContent","$createElement","VThemeProvider","root","class","attrs","role","getScopeIdAttrs","on","keydown","ref","genTransition","genInnerContent","appear","tabindex","handler","include","transformOrigin","convertToUnit","getContentSlot","render","h","staticClass","attach","genActivator","Elevatable","Measurable","Themeable","boilerplate","loading","tile","types","Object","isLoading","themeClasses","elevationClasses","rootTypes","actions","article","avatar","button","card","chip","heading","image","paragraph","sentences","table","text","genBone","children","genBones","bone","split","generator","genStructure","Array","from","map","indexOf","mapBones","push","genSkeleton","getSlot","afterEnter","resetStyles","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","leaveCancelled","bones","replace","_initialStyle","display","setProperty","$listeners","measurableStyles","BaseItemGroup","provide","btnToggle","genData","VBtn","inheritAttrs","items","sortBy","sortDesc","customSort","Function","sortItems","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","groupItems","locale","disableSort","disablePagination","disableFiltering","search","customFilter","searchItems","serverItemsLength","internalOptions","wrapInArray","assign","sortDiff","groupDiff","fillArray","itemsLength","filteredItems","pageCount","Math","ceil","pageStart","pageStop","min","isGrouped","pagination","slice","computedItems","paginateItems","groupedItems","scopedProps","sort","sortArray","group","updateOptions","originalItemsLength","computedOptions","old","deepEqual","deep","immediate","isArray","toggle","key","oldBy","oldDesc","by","desc","byIndex","findIndex","k","splice","s","i","max","required","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","option","genDataItemsPerPageOption","obj","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","lang","t","genItemsPerPageSelect","computedIPPO","ippo","VSelect","hideDetails","auto","minWidth","input","genPaginationInfo","genIcon","click","label","icon","VIcon","genIcons","before","after","rtl","unshift","toString","Mobile","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","every","isSelected","someItems","sanitizedFooterProps","camelizeObjectKeys","filter","item","isSelectable","reduce","getObjectValueByPath","keys","values","breakingProps","forEach","original","replacement","breaking","removedProps","prop","mounted","onKeyDown","onKeyUp","shift","toggleSelectAll","select","emit","x","lastEntryKey","lastEntryKeySelected","multipleSelect","start","end","currentItem","isExpanded","expand","createItemProps","v","isMobile","genEmptyWrapper","genEmpty","filteredItemsLength","noData","noResults","genItems","empty","genFooter","scopedSlots","getPrefixedScopedSlots","VDataFooter","genDefaultScopedSlot","outerProps","$props","applicationable","events","PositionableFactory","app","applicationProperty","prev","removeApplication","callUpdate","newVal","oldVal","application","unregister","_uid","activated","$watch","deactivated","destroyed","register","updateApplication","force","Scroll","scrollTarget","scrollThreshold","currentScroll","currentThreshold","isScrollingUp","previousScroll","savedScroll","canScroll","computedScrollThreshold","consoleWarn","onScroll","pageYOffset","abs","thresholdMet","Applicationable","Colorable","ToggleableFactory","Proxyable","Scrollable","activeClass","backgroundColor","grow","height","hideOnScroll","horizontal","inputValue","mandatory","tag","fixed","styles","transform","updateValue","setBackgroundColor","internalValue","change","arg","ButtonGroup","setTextColor","_c","_vm","nav_val","clear_loadingapps","model","expression","rawName","staticRenderFns","staticStyle","$event","$$v","doSomething","closeDialog","search_apps","no_results_text","loading_text","dialog_form","appname","done","open","copy","elem","info","element","favoriteApp","unFavoriteApp","submitFavApp","isfavoriting","console","component","_self","showtimeout","loginURL","_e","modal_show","modal_continue","yesModal","warnTimer","finalTimer","cnt","close_modal_now","checkFinal","clearInterval","checkWarn","startup","parseInt","modal_reaming","modal_reaming_perc","components","timeout","refreshTimer","self","token","then","response","email","date","auth","roles","rpduserId","local_roleId","catch","error","title","confirmButtonText","confirmButtonColor","timer","didClose","appdash","admindash","rolesdash","admin_mode","overlay_loading","app_list","tURL","fakeLoadingCards","logout","favoriting","validator","isNaN","mobile","mobileWidth","isNumber","deprecate","inserted","binding","vnode","modifiers","_onScroll","context"],"mappings":"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ACAtiB,OACA,OACAga,cACAuI,kBACAnB,eAEAC,oCAIA5H,UAEA,WAAA9V,qCACA,oBACA,WACA,0CACA,QACA6e,wBACAA,4BACA,CACA,OAAAC,oCAGA,mCACAC,KAAAC,IAEA,OACAC,mBACAC,+BACAC,QACAL,mBACAM,mBACAC,2BACAC,kCAGA,kCAEAC,MAAAC,IACA,YAEA,YACAC,qBACArV,qGACA2I,aACA2M,uBACAC,6BACAC,UACAC,iBAKA,MAGAza,UAEA,WAAApF,qCACA,8BACA,+BACA,OAEA,qBAEA,OACA,YACAyf,qBACArV,qGACA2I,aACA2M,uBACAC,6BACAC,UACAC,iBAIA,CAEA,oBAEA,GACAf,SAGA,OAEA,mCACAC,KAAAC,IACA,OACAC,mBACAC,+BACAC,QACAL,mBACAM,mBACAC,2BACAC,kCAGA,kCAEAC,MAAAC,IACA,YAEA,YACAC,qBACArV,qGACA2I,aACA2M,uBACAC,6BACAC,UACAC,kBC3H8U,ICO1U,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCgCf,kGACA,4FACA,QACAhkB,YACA8G,gBACA7G,qBACA4iB,YAAAoB,UAAAC,aAAAZ,OAAAa,cACA3jB,OACA,OACA4jB,cACArE,wBACAsE,mBACAC,YACAC,QAEA1C,kCACA2C,qBAIAtjB,SACAujB,SACA,WAEAtgB,wCAGA,oGAEA,aAEA,OAAA8e,0CACA,oCACAC,KAAAC,IACA,8BACA,8BACA,uBACAnZ,gBACA,4CACA,OACA0Z,MAAAC,IACA,YACA,gEAGA,yBAGA3D,oBACA,uCACA,gCACA,gCAKA,sBAGA,gDACA,iBAEA,WAAA7b,wCAEA,OAAA8e,mCAAAnC,sBAAA4D,iCACA,4CACAxB,KAAAC,IACA,gCAEAO,MAAAC,IACA,aAEA,+DAEA,YACAC,eACArV,yBACA2I,aACA2M,uBACAC,6BACAC,UACAC,aAIA,8DAGA,qBAQArjB,OAGAof,aACA,cACA,eACAle,+CAKA,qCACA,kCACA,cAKAoY,aCpK8U,MCQ1U,I,UAAY,eACd,GACA,EACAmG,GACA,EACA,KACA,KACA,OAIa,gB,yFCjBf,4BAIetgB,cAAIC,OAAO,CACxBC,KAAM,SAENC,MAAO,CACL8X,iBAAkB,CAChBtU,KAAM,CAAClD,OAAQF,QACfyH,UAGE,OAAOjH,KAAKsF,SACRtF,KAAKsF,SAASC,WAAW2R,sBACzB5V,GAENwiB,UAAWzJ,IACR0J,MAAMrkB,OAAO2a,KACd,CAAC,KAAM,KAAM,KAAM,KAAM,MAAMpY,SAASzC,OAAO6a,MAKrDzS,SAAU,CACR0S,WACE,MAAM,OACJ0J,EADI,MAEJ1c,EAFI,KAGJnI,EAHI,iBAIJ+X,GACElX,KAAKsF,SAASC,WAIlB,GAAI2R,IAAqBlX,KAAKkX,iBAAkB,OAAO8M,EAEvD,MAAMC,EAAcpC,SAAS7hB,KAAKkX,iBAAkB,IAC9CgN,GAAYH,MAAME,GAExB,OAAOC,EACH5c,EAAQ2c,EACR9kB,IAASa,KAAKkX,mBAItBxO,UAEM1I,KAAK2I,OAAOC,eAAe,uBAC7Bub,eAAU,qBAAsB,oBAAqBnkB,U,kCCtC3D,SAASokB,EAAUnhB,EAAiBohB,EAA+BC,GACjE,MAAM,KAAEnC,GAAO,GAAUkC,EAAQE,WAAa,GACxCxkB,EAAQskB,EAAQtkB,MAChByJ,EAA4B,kBAAVzJ,GAAsBA,EAAMyJ,SAAY,CAAE5D,SAAS,GACrE6F,EAA2B,oBAAV1L,GAAwB,gBAAiBA,EAAQA,EAAQA,EAAM0L,QAEhFvJ,EAASigB,EACXlf,EACAohB,EAAQxF,IACN7d,SAASC,cAAcojB,EAAQxF,KAC/Bvb,OAEDpB,IAELA,EAAO2D,iBAAiB,SAAU4F,EAASjC,GAE3CvG,EAAGuhB,UAAY9X,OAAOzJ,EAAGuhB,WACzBvhB,EAAGuhB,UAAWF,EAAMG,QAASxI,MAAQ,CACnCxQ,UACAjC,UAEAtH,OAAQigB,OAAO7gB,EAAYY,IAI/B,SAASqG,EAAQtF,EAAiBohB,EAA+BC,G,MAC/D,KAAiB,QAAZ,EAAArhB,EAAGuhB,iBAAShc,WAAA,EAAAA,EAAG8b,EAAMG,QAASxI,OAAO,OAE1C,MAAM,QAAExQ,EAAF,QAAWjC,EAAX,OAAoBtH,EAASe,GAAOA,EAAGuhB,UAAUF,EAAMG,QAASxI,MAEtE/Z,EAAO6D,oBAAoB,SAAU0F,EAASjC,UACvCvG,EAAGuhB,UAAUF,EAAMG,QAASxI,MA/BrC,kCAkCO,MAAMQ,EAAS,CACpB2H,WACA7b,UAGakU","file":"js/chunk-6c7e24f4.b6f316ee.js","sourcesContent":["// 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 './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\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 beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","// Styles\nimport './VSkeletonLoader.sass'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\nimport { PropValidator } from 'vue/types/options'\n\nexport interface HTMLSkeletonLoaderElement extends HTMLElement {\n _initialStyle?: {\n display: string | null\n transition: string\n }\n}\n\n/* @vue/component */\nexport default mixins(\n Elevatable,\n Measurable,\n Themeable,\n).extend({\n name: 'VSkeletonLoader',\n\n props: {\n boilerplate: Boolean,\n loading: Boolean,\n tile: Boolean,\n transition: String,\n type: String,\n types: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n },\n\n computed: {\n attrs (): object {\n if (!this.isLoading) return this.$attrs\n\n return !this.boilerplate ? {\n 'aria-busy': true,\n 'aria-live': 'polite',\n role: 'alert',\n ...this.$attrs,\n } : {}\n },\n classes (): object {\n return {\n 'v-skeleton-loader--boilerplate': this.boilerplate,\n 'v-skeleton-loader--is-loading': this.isLoading,\n 'v-skeleton-loader--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n isLoading (): boolean {\n return !('default' in this.$scopedSlots) || this.loading\n },\n rootTypes (): Record {\n return {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, card-heading',\n 'card-avatar': 'image, list-item-avatar',\n 'card-heading': 'heading',\n chip: 'chip',\n 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'heading, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'table-cell@6',\n 'table-cell': 'text',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n ...this.types,\n }\n },\n },\n\n methods: {\n genBone (text: string, children: VNode[]) {\n return this.$createElement('div', {\n staticClass: `v-skeleton-loader__${text} v-skeleton-loader__bone`,\n }, children)\n },\n genBones (bone: string): VNode[] {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [string, number]\n const generator = () => this.genStructure(type)\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(generator)\n },\n // Fix type when this is merged\n // https://github.com/microsoft/TypeScript/pull/33050\n genStructure (type?: string): any {\n let children = []\n type = type || this.type || ''\n const bone = this.rootTypes[type] || ''\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.indexOf(',') > -1) return this.mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.indexOf('@') > -1) return this.genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.indexOf(',') > -1) children = this.mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.indexOf('@') > -1) children = this.genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(this.genStructure(bone))\n\n return [this.genBone(type, children)]\n },\n genSkeleton () {\n const children = []\n\n if (!this.isLoading) children.push(getSlot(this))\n else children.push(this.genStructure())\n\n /* istanbul ignore else */\n if (!this.transition) return children\n\n /* istanbul ignore next */\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n // Only show transition when\n // content has been loaded\n on: {\n afterEnter: this.resetStyles,\n beforeEnter: this.onBeforeEnter,\n beforeLeave: this.onBeforeLeave,\n leaveCancelled: this.resetStyles,\n },\n }, children)\n },\n mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(this.genStructure)\n },\n onBeforeEnter (el: HTMLSkeletonLoaderElement) {\n this.resetStyles(el)\n\n if (!this.isLoading) return\n\n el._initialStyle = {\n display: el.style.display,\n transition: el.style.transition,\n }\n\n el.style.setProperty('transition', 'none', 'important')\n },\n onBeforeLeave (el: HTMLSkeletonLoaderElement) {\n el.style.setProperty('display', 'none', 'important')\n },\n resetStyles (el: HTMLSkeletonLoaderElement) {\n if (!el._initialStyle) return\n\n el.style.display = el._initialStyle.display || ''\n el.style.transition = el._initialStyle.transition\n\n delete el._initialStyle\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-skeleton-loader',\n attrs: this.attrs,\n on: this.$listeners,\n class: this.classes,\n style: this.isLoading ? this.measurableStyles : undefined,\n }, [this.genSkeleton()])\n },\n})\n","// Extensions\nimport { BaseItemGroup } from '../../components/VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'button-group',\n\n provide (): object {\n return {\n btnToggle: this,\n }\n },\n\n computed: {\n classes (): object {\n return BaseItemGroup.options.computed.classes.call(this)\n },\n },\n\n methods: {\n // Isn't being passed down through types\n genData: BaseItemGroup.options.methods.genData,\n },\n})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/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!./appdash.vue?vue&type=style&index=0&id=501ca762&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=style&index=0&id=5eb4fe00&prod&lang=css&\"","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n sortBy: {\n type: [String, Array],\n } as PropValidator,\n sortDesc: {\n type: [Boolean, Array],\n } as PropValidator,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator,\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1,\n },\n itemsPerPage: {\n type: Number,\n default: 10,\n },\n groupBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator,\n locale: {\n type: String,\n default: 'en-US',\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems,\n } as PropValidator,\n serverItemsLength: {\n type: Number,\n default: -1,\n },\n },\n\n data () {\n let internalOptions: DataOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort,\n }\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options)\n }\n\n const { sortBy, sortDesc, groupBy, groupDesc } = internalOptions\n const sortDiff = sortBy.length - sortDesc.length\n const groupDiff = groupBy.length - groupDesc.length\n\n if (sortDiff > 0) {\n internalOptions.sortDesc.push(...fillArray(sortDiff, false))\n }\n\n if (groupDiff > 0) {\n internalOptions.groupDesc.push(...fillArray(groupDiff, false))\n }\n\n return {\n internalOptions,\n }\n },\n\n computed: {\n itemsLength (): number {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length\n },\n pageCount (): number {\n return this.internalOptions.itemsPerPage <= 0\n ? 1\n : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage)\n },\n pageStart (): number {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0\n\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage\n },\n pageStop (): number {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength\n if (!this.items.length) return 0\n\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage)\n },\n isGrouped (): boolean {\n return !!this.internalOptions.groupBy.length\n },\n pagination (): DataPagination {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength,\n }\n },\n filteredItems (): any[] {\n let items = this.items.slice()\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search)\n }\n\n return items\n },\n computedItems (): any[] {\n let items = this.filteredItems.slice()\n\n if ((!this.disableSort || this.internalOptions.groupBy.length) && this.serverItemsLength <= 0) {\n items = this.sortItems(items)\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items)\n }\n\n return items\n },\n groupedItems (): ItemGroup[] | null {\n return this.isGrouped ? this.groupItems(this.computedItems) : null\n },\n scopedProps (): DataScopeProps {\n return {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length,\n }\n },\n computedOptions (): DataOptions {\n return { ...this.options } as DataOptions\n },\n },\n\n watch: {\n computedOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n\n this.updateOptions(options)\n },\n deep: true,\n immediate: true,\n },\n internalOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n this.$emit('update:options', options)\n },\n deep: true,\n immediate: true,\n },\n page (page: number) {\n this.updateOptions({ page })\n },\n 'internalOptions.page' (page: number) {\n this.$emit('update:page', page)\n },\n itemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage })\n },\n 'internalOptions.itemsPerPage' (itemsPerPage: number) {\n this.$emit('update:items-per-page', itemsPerPage)\n },\n sortBy (sortBy: string | string[]) {\n this.updateOptions({ sortBy: wrapInArray(sortBy) })\n },\n 'internalOptions.sortBy' (sortBy: string[], old: string[]) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0])\n },\n sortDesc (sortDesc: boolean | boolean[]) {\n this.updateOptions({ sortDesc: wrapInArray(sortDesc) })\n },\n 'internalOptions.sortDesc' (sortDesc: boolean[], old: boolean[]) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0])\n },\n groupBy (groupBy: string | string[]) {\n this.updateOptions({ groupBy: wrapInArray(groupBy) })\n },\n 'internalOptions.groupBy' (groupBy: string[], old: string[]) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0])\n },\n groupDesc (groupDesc: boolean | boolean[]) {\n this.updateOptions({ groupDesc: wrapInArray(groupDesc) })\n },\n 'internalOptions.groupDesc' (groupDesc: boolean[], old: boolean[]) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0])\n },\n multiSort (multiSort: boolean) {\n this.updateOptions({ multiSort })\n },\n 'internalOptions.multiSort' (multiSort: boolean) {\n this.$emit('update:multi-sort', multiSort)\n },\n mustSort (mustSort: boolean) {\n this.updateOptions({ mustSort })\n },\n 'internalOptions.mustSort' (mustSort: boolean) {\n this.$emit('update:must-sort', mustSort)\n },\n pageCount: {\n handler (pageCount: number) {\n this.$emit('page-count', pageCount)\n },\n immediate: true,\n },\n computedItems: {\n handler (computedItems: any[]) {\n this.$emit('current-items', computedItems)\n },\n immediate: true,\n },\n pagination: {\n handler (pagination: DataPagination, old: DataPagination) {\n if (deepEqual(pagination, old)) return\n this.$emit('pagination', this.pagination)\n },\n immediate: true,\n },\n },\n\n methods: {\n toggle (key: string, oldBy: string[], oldDesc: boolean[], page: number, mustSort: boolean, multiSort: boolean) {\n let by = oldBy.slice()\n let desc = oldDesc.slice()\n const byIndex = by.findIndex((k: string) => k === key)\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = []\n desc = []\n }\n\n by.push(key)\n desc.push(false)\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true\n } else if (!mustSort) {\n by.splice(byIndex, 1)\n desc.splice(byIndex, 1)\n } else {\n desc[byIndex] = false\n }\n\n // Reset page to 1 if sortBy or sortDesc have changed\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1\n }\n\n return { by, desc, page }\n },\n group (key: string): void {\n const { by: groupBy, desc: groupDesc, page } = this.toggle(\n key,\n this.internalOptions.groupBy,\n this.internalOptions.groupDesc,\n this.internalOptions.page,\n true,\n false\n )\n this.updateOptions({ groupBy, groupDesc, page })\n },\n sort (key: string | string[]): void {\n if (Array.isArray(key)) return this.sortArray(key)\n\n const { by: sortBy, desc: sortDesc, page } = this.toggle(\n key,\n this.internalOptions.sortBy,\n this.internalOptions.sortDesc,\n this.internalOptions.page,\n this.internalOptions.mustSort,\n this.internalOptions.multiSort\n )\n this.updateOptions({ sortBy, sortDesc, page })\n },\n sortArray (sortBy: string[]) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex((k: string) => k === s)\n return i > -1 ? this.internalOptions.sortDesc[i] : false\n })\n\n this.updateOptions({ sortBy, sortDesc })\n },\n updateOptions (options: any) {\n this.internalOptions = {\n ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0\n ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount))\n : options.page || this.internalOptions.page,\n }\n },\n sortItems (items: any[]): any[] {\n let sortBy: string[] = []\n let sortDesc: boolean[] = []\n\n if (!this.disableSort) {\n sortBy = this.internalOptions.sortBy\n sortDesc = this.internalOptions.sortDesc\n }\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy]\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc]\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale)\n },\n groupItems (items: any[]): ItemGroup[] {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc)\n },\n paginateItems (items: any[]): any[] {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, Math.ceil(items.length / this.internalOptions.itemsPerPage)) || 1 // Prevent NaN\n }\n\n return items.slice(this.pageStart, this.pageStop)\n },\n },\n\n render (): VNode {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps) as any\n },\n})\n","import './VDataFooter.sass'\n\n// Components\nimport VSelect from '../VSelect/VSelect'\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { DataPagination, DataOptions, DataItemsPerPageOption } from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\nimport { getSlot } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-data-footer',\n\n props: {\n options: {\n type: Object as PropType,\n required: true,\n },\n pagination: {\n type: Object as PropType,\n required: true,\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => ([5, 10, 15, -1]),\n } as PropValidator,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n itemsPerPageAllText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageAll',\n },\n showFirstLastPage: Boolean,\n showCurrentPage: Boolean,\n disablePagination: Boolean,\n disableItemsPerPage: Boolean,\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n },\n\n computed: {\n disableNextPageIcon (): boolean {\n return this.options.itemsPerPage <= 0 ||\n this.options.page * this.options.itemsPerPage >= this.pagination.itemsLength ||\n this.pagination.pageStop < 0\n },\n computedDataItemsPerPageOptions (): any[] {\n return this.itemsPerPageOptions.map(option => {\n if (typeof option === 'object') return option\n else return this.genDataItemsPerPageOption(option)\n })\n },\n },\n\n methods: {\n updateOptions (obj: object) {\n this.$emit('update:options', Object.assign({}, this.options, obj))\n },\n onFirstPage () {\n this.updateOptions({ page: 1 })\n },\n onPreviousPage () {\n this.updateOptions({ page: this.options.page - 1 })\n },\n onNextPage () {\n this.updateOptions({ page: this.options.page + 1 })\n },\n onLastPage () {\n this.updateOptions({ page: this.pagination.pageCount })\n },\n onChangeItemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage, page: 1 })\n },\n genDataItemsPerPageOption (option: number) {\n return {\n text: option === -1 ? this.$vuetify.lang.t(this.itemsPerPageAllText) : String(option),\n value: option,\n }\n },\n genItemsPerPageSelect () {\n let value = this.options.itemsPerPage\n const computedIPPO = this.computedDataItemsPerPageOptions\n\n if (computedIPPO.length <= 1) return null\n\n if (!computedIPPO.find(ippo => ippo.value === value)) value = computedIPPO[0]\n\n return this.$createElement('div', {\n staticClass: 'v-data-footer__select',\n }, [\n this.$vuetify.lang.t(this.itemsPerPageText),\n this.$createElement(VSelect, {\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.itemsPerPageText),\n },\n props: {\n disabled: this.disableItemsPerPage,\n items: computedIPPO,\n value,\n hideDetails: true,\n auto: true,\n minWidth: '75px',\n },\n on: {\n input: this.onChangeItemsPerPage,\n },\n }),\n ])\n },\n genPaginationInfo () {\n let children: VNodeChildrenArrayContents = ['–']\n const itemsLength: number = this.pagination.itemsLength\n let pageStart: number = this.pagination.pageStart\n let pageStop: number = this.pagination.pageStop\n\n if (this.pagination.itemsLength && this.pagination.itemsPerPage) {\n pageStart = this.pagination.pageStart + 1\n pageStop = itemsLength < this.pagination.pageStop || this.pagination.pageStop < 0\n ? itemsLength\n : this.pagination.pageStop\n\n children = this.$scopedSlots['page-text']\n ? [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n : [this.$vuetify.lang.t(this.pageText, pageStart, pageStop, itemsLength)]\n } else if (this.$scopedSlots['page-text']) {\n children = [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n }\n\n return this.$createElement('div', {\n class: 'v-data-footer__pagination',\n }, children)\n },\n genIcon (click: Function, disabled: boolean, label: string, icon: string): VNode {\n return this.$createElement(VBtn, {\n props: {\n disabled: disabled || this.disablePagination,\n icon: true,\n text: true,\n // dark: this.dark, // TODO: add mixin\n // light: this.light // TODO: add mixin\n },\n on: {\n click,\n },\n attrs: {\n 'aria-label': label, // TODO: Localization\n },\n }, [this.$createElement(VIcon, icon)])\n },\n genIcons () {\n const before: VNodeChildrenArrayContents = []\n const after: VNodeChildrenArrayContents = []\n\n before.push(this.genIcon(\n this.onPreviousPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.prevPage'),\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon\n ))\n\n after.push(this.genIcon(\n this.onNextPage,\n this.disableNextPageIcon,\n this.$vuetify.lang.t('$vuetify.dataFooter.nextPage'),\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon\n ))\n\n if (this.showFirstLastPage) {\n before.unshift(this.genIcon(\n this.onFirstPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.firstPage'),\n this.$vuetify.rtl ? this.lastIcon : this.firstIcon\n ))\n\n after.push(this.genIcon(\n this.onLastPage,\n this.options.page >= this.pagination.pageCount || this.options.itemsPerPage === -1,\n this.$vuetify.lang.t('$vuetify.dataFooter.lastPage'),\n this.$vuetify.rtl ? this.firstIcon : this.lastIcon\n ))\n }\n\n return [\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-before',\n }, before),\n this.showCurrentPage && this.$createElement('span', [this.options.page.toString()]),\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-after',\n }, after),\n ]\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-data-footer',\n }, [\n getSlot(this, 'prepend'),\n this.genItemsPerPageSelect(),\n this.genPaginationInfo(),\n this.genIcons(),\n ])\n },\n})\n","// Components\nimport { VData } from '../VData'\nimport VDataFooter from './VDataFooter'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, camelizeObjectKeys, keyCodes } from '../../util/helpers'\nimport { breaking, removed } from '../../util/console'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { DataItemProps, DataScopeProps } from 'vuetify/types'\n\n/* @vue/component */\nexport default mixins(\n Mobile,\n Themeable\n).extend({\n name: 'v-data-iterator',\n\n props: {\n ...VData.options.props, // TODO: filter out props not used\n itemKey: {\n type: String,\n default: 'id',\n },\n value: {\n type: Array,\n default: () => [],\n } as PropValidator,\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => [],\n } as PropValidator,\n mobileBreakpoint: {\n ...Mobile.options.props.mobileBreakpoint,\n default: 600,\n },\n singleExpand: Boolean,\n loading: [Boolean, String],\n noResultsText: {\n type: String,\n default: '$vuetify.dataIterator.noResultsText',\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideDefaultFooter: Boolean,\n footerProps: Object,\n selectableKey: {\n type: String,\n default: 'isSelectable',\n },\n },\n\n data: () => ({\n selection: {} as Record,\n expansion: {} as Record,\n internalCurrentItems: [] as any[],\n shiftKeyDown: false,\n lastEntry: -1,\n }),\n\n computed: {\n everyItem (): boolean {\n return !!this.selectableItems.length && this.selectableItems.every((i: any) => this.isSelected(i))\n },\n someItems (): boolean {\n return this.selectableItems.some((i: any) => this.isSelected(i))\n },\n sanitizedFooterProps (): Record {\n return camelizeObjectKeys(this.footerProps)\n },\n selectableItems (): any[] {\n return this.internalCurrentItems.filter(item => this.isSelectable(item))\n },\n },\n\n watch: {\n value: {\n handler (value: any[]) {\n this.selection = value.reduce((selection, item) => {\n selection[getObjectValueByPath(item, this.itemKey)] = item\n return selection\n }, {})\n },\n immediate: true,\n },\n selection (value: Record, old: Record) {\n if (deepEqual(Object.keys(value), Object.keys(old))) return\n\n this.$emit('input', Object.values(value))\n },\n expanded: {\n handler (value: any[]) {\n this.expansion = value.reduce((expansion, item) => {\n expansion[getObjectValueByPath(item, this.itemKey)] = true\n return expansion\n }, {})\n },\n immediate: true,\n },\n expansion (value: Record, old: Record) {\n if (deepEqual(value, old)) return\n const keys = Object.keys(value).filter(k => value[k])\n const expanded = !keys.length ? [] : this.items.filter(i => keys.includes(String(getObjectValueByPath(i, this.itemKey))))\n this.$emit('update:expanded', expanded)\n },\n },\n\n created () {\n const breakingProps = [\n ['disable-initial-sort', 'sort-by'],\n ['filter', 'custom-filter'],\n ['pagination', 'options'],\n ['total-items', 'server-items-length'],\n ['hide-actions', 'hide-default-footer'],\n ['rows-per-page-items', 'footer-props.items-per-page-options'],\n ['rows-per-page-text', 'footer-props.items-per-page-text'],\n ['prev-icon', 'footer-props.prev-icon'],\n ['next-icon', 'footer-props.next-icon'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n const removedProps = [\n 'expand',\n 'content-class',\n 'content-props',\n 'content-tag',\n ]\n\n /* istanbul ignore next */\n removedProps.forEach(prop => {\n if (this.$attrs.hasOwnProperty(prop)) removed(prop)\n })\n },\n\n mounted () {\n window.addEventListener('keydown', this.onKeyDown)\n window.addEventListener('keyup', this.onKeyUp)\n },\n beforeDestroy () {\n window.removeEventListener('keydown', this.onKeyDown)\n window.removeEventListener('keyup', this.onKeyUp)\n },\n\n methods: {\n onKeyDown (e: KeyboardEvent): void {\n if (e.keyCode !== keyCodes.shift) return\n this.shiftKeyDown = true\n },\n onKeyUp (e: KeyboardEvent): void {\n if (e.keyCode !== keyCodes.shift) return\n this.shiftKeyDown = false\n },\n toggleSelectAll (value: boolean): void {\n const selection = Object.assign({}, this.selection)\n\n for (let i = 0; i < this.selectableItems.length; i++) {\n const item = this.selectableItems[i]\n\n if (!this.isSelectable(item)) continue\n\n const key = getObjectValueByPath(item, this.itemKey)\n if (value) selection[key] = item\n else delete selection[key]\n }\n\n this.selection = selection\n this.$emit('toggle-select-all', { items: this.internalCurrentItems, value })\n },\n isSelectable (item: any): boolean {\n return getObjectValueByPath(item, this.selectableKey) !== false\n },\n isSelected (item: any): boolean {\n return !!this.selection[getObjectValueByPath(item, this.itemKey)] || false\n },\n select (item: any, value = true, emit = true): void {\n if (!this.isSelectable(item)) return\n\n const selection = this.singleSelect ? {} : Object.assign({}, this.selection)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) selection[key] = item\n else delete selection[key]\n\n const index = this.selectableItems.findIndex(x => getObjectValueByPath(x, this.itemKey) === key)\n if (this.lastEntry === -1) this.lastEntry = index\n else if (this.shiftKeyDown && !this.singleSelect && emit) {\n const lastEntryKey = getObjectValueByPath(this.selectableItems[this.lastEntry], this.itemKey)\n const lastEntryKeySelected = Object.keys(this.selection).includes(String(lastEntryKey))\n this.multipleSelect(lastEntryKeySelected, emit, selection, index)\n }\n this.lastEntry = index\n\n if (this.singleSelect && emit) {\n const keys = Object.keys(this.selection)\n const old = keys.length && getObjectValueByPath(this.selection[keys[0]], this.itemKey)\n old && old !== key && this.$emit('item-selected', { item: this.selection[old], value: false })\n }\n this.selection = selection\n emit && this.$emit('item-selected', { item, value })\n },\n multipleSelect (value = true, emit = true, selection: any, index: number): void {\n const start = index < this.lastEntry ? index : this.lastEntry\n const end = index < this.lastEntry ? this.lastEntry : index\n for (let i = start; i <= end; i++) {\n const currentItem = this.selectableItems[i]\n const key = getObjectValueByPath(currentItem, this.itemKey)\n if (value) selection[key] = currentItem\n else delete selection[key]\n emit && this.$emit('item-selected', { currentItem, value })\n }\n },\n isExpanded (item: any): boolean {\n return this.expansion[getObjectValueByPath(item, this.itemKey)] || false\n },\n expand (item: any, value = true): void {\n const expansion = this.singleExpand ? {} : Object.assign({}, this.expansion)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) expansion[key] = true\n else delete expansion[key]\n\n this.expansion = expansion\n this.$emit('item-expanded', { item, value })\n },\n createItemProps (item: any, index: number): DataItemProps {\n return {\n item,\n index,\n select: (v: boolean) => this.select(item, v),\n isSelected: this.isSelected(item),\n expand: (v: boolean) => this.expand(item, v),\n isExpanded: this.isExpanded(item),\n isMobile: this.isMobile,\n }\n },\n genEmptyWrapper (content: VNodeChildren) {\n return this.$createElement('div', content)\n },\n genEmpty (originalItemsLength: number, filteredItemsLength: number) {\n if (originalItemsLength === 0 && this.loading) {\n const loading = this.$slots.loading || this.$vuetify.lang.t(this.loadingText)\n return this.genEmptyWrapper(loading)\n } else if (originalItemsLength === 0) {\n const noData = this.$slots['no-data'] || this.$vuetify.lang.t(this.noDataText)\n return this.genEmptyWrapper(noData)\n } else if (filteredItemsLength === 0) {\n const noResults = this.$slots['no-results'] || this.$vuetify.lang.t(this.noResultsText)\n return this.genEmptyWrapper(noResults)\n }\n\n return null\n },\n genItems (props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n if (this.$scopedSlots.default) {\n return this.$scopedSlots.default({\n ...props,\n isSelected: this.isSelected,\n select: this.select,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n expand: this.expand,\n })\n }\n\n if (this.$scopedSlots.item) {\n return props.items.map((item: any, index) => this.$scopedSlots.item!(this.createItemProps(\n item,\n index\n )))\n }\n\n return []\n },\n genFooter (props: DataScopeProps) {\n if (this.hideDefaultFooter) return null\n\n const data = {\n props: {\n ...this.sanitizedFooterProps,\n options: props.options,\n pagination: props.pagination,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n }\n\n const scopedSlots = getPrefixedScopedSlots('footer.', this.$scopedSlots)\n\n return this.$createElement(VDataFooter, {\n scopedSlots,\n ...data,\n })\n },\n genDefaultScopedSlot (props: any) {\n const outerProps = {\n ...props,\n someItems: this.someItems,\n everyItem: this.everyItem,\n toggleSelectAll: this.toggleSelectAll,\n }\n\n return this.$createElement('div', {\n staticClass: 'v-data-iterator',\n }, [\n getSlot(this, 'header', outerProps, true),\n this.genItems(props),\n this.genFooter(props),\n getSlot(this, 'footer', outerProps, true),\n ])\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: this.$props,\n on: {\n 'update:options': (v: any, old: any) => !deepEqual(v, old) && this.$emit('update:options', v),\n 'update:page': (v: any) => this.$emit('update:page', v),\n 'update:items-per-page': (v: any) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: any) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: any) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: any) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: any) => this.$emit('update:group-desc', v),\n pagination: (v: any, old: any) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","import { factory as PositionableFactory } from '../positionable'\nimport { TargetProp } from 'vuetify/types/services/application'\n\n// Util\nimport mixins from '../../util/mixins'\n\nexport default function applicationable (value: TargetProp, events: string[] = []) {\n /* @vue/component */\n return mixins(PositionableFactory(['absolute', 'fixed'])).extend({\n name: 'applicationable',\n\n props: {\n app: Boolean,\n },\n\n computed: {\n applicationProperty (): TargetProp {\n return value\n },\n },\n\n watch: {\n // If previous value was app\n // reset the provided prop\n app (x: boolean, prev: boolean) {\n prev\n ? this.removeApplication(true)\n : this.callUpdate()\n },\n applicationProperty (newVal, oldVal) {\n this.$vuetify.application.unregister(this._uid, oldVal)\n },\n },\n\n activated () {\n this.callUpdate()\n },\n\n created () {\n for (let i = 0, length = events.length; i < length; i++) {\n this.$watch(events[i], this.callUpdate)\n }\n this.callUpdate()\n },\n\n mounted () {\n this.callUpdate()\n },\n\n deactivated () {\n this.removeApplication()\n },\n\n destroyed () {\n this.removeApplication()\n },\n\n methods: {\n callUpdate () {\n if (!this.app) return\n\n this.$vuetify.application.register(\n this._uid,\n this.applicationProperty,\n this.updateApplication()\n )\n },\n removeApplication (force = false) {\n if (!force && !this.app) return\n\n this.$vuetify.application.unregister(\n this._uid,\n this.applicationProperty\n )\n },\n updateApplication: () => 0,\n },\n })\n}\n","// Directives\nimport { Scroll } from '../../directives'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\n/**\n * Scrollable\n *\n * Used for monitoring scrolling and\n * invoking functions based upon\n * scrolling thresholds being\n * met.\n */\n/* @vue/component */\nexport default Vue.extend({\n name: 'scrollable',\n\n directives: { Scroll },\n\n props: {\n scrollTarget: String,\n scrollThreshold: [String, Number],\n },\n\n data: () => ({\n currentScroll: 0,\n currentThreshold: 0,\n isActive: false,\n isScrollingUp: false,\n previousScroll: 0,\n savedScroll: 0,\n target: null as Element | null,\n }),\n\n computed: {\n /**\n * A computed property that returns\n * whether scrolling features are\n * enabled or disabled\n */\n canScroll (): boolean {\n return typeof window !== 'undefined'\n },\n /**\n * The threshold that must be met before\n * thresholdMet function is invoked\n */\n computedScrollThreshold (): number {\n return this.scrollThreshold\n ? Number(this.scrollThreshold)\n : 300\n },\n },\n\n watch: {\n isScrollingUp () {\n this.savedScroll = this.savedScroll || this.currentScroll\n },\n isActive () {\n this.savedScroll = 0\n },\n },\n\n mounted () {\n if (this.scrollTarget) {\n this.target = document.querySelector(this.scrollTarget)\n\n if (!this.target) {\n consoleWarn(`Unable to locate element with identifier ${this.scrollTarget}`, this)\n }\n }\n },\n\n methods: {\n onScroll () {\n if (!this.canScroll) return\n\n this.previousScroll = this.currentScroll\n this.currentScroll = this.target\n ? this.target.scrollTop\n : window.pageYOffset\n\n this.isScrollingUp = this.currentScroll < this.previousScroll\n this.currentThreshold = Math.abs(this.currentScroll - this.computedScrollThreshold)\n\n this.$nextTick(() => {\n if (\n Math.abs(this.currentScroll - this.savedScroll) >\n this.computedScrollThreshold\n ) this.thresholdMet()\n })\n },\n /**\n * The method invoked when\n * scrolling in any direction\n * has exceeded the threshold\n */\n thresholdMet () { /* noop */ },\n },\n})\n","// Styles\nimport './VBottomNavigation.sass'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport ButtonGroup from '../../mixins/button-group'\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Proxyable from '../../mixins/proxyable'\nimport Scrollable from '../../mixins/scrollable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Applicationable('bottom', [\n 'height',\n 'inputValue',\n ]),\n Colorable,\n Measurable,\n ToggleableFactory('inputValue'),\n Proxyable,\n Scrollable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-bottom-navigation',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-btn--active',\n },\n backgroundColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: 56,\n },\n hideOnScroll: Boolean,\n horizontal: Boolean,\n inputValue: {\n type: Boolean,\n default: true,\n },\n mandatory: Boolean,\n shift: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n isActive: this.inputValue,\n }\n },\n\n computed: {\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.hideOnScroll ||\n !this.inputValue\n )\n )\n },\n classes (): object {\n return {\n 'v-bottom-navigation--absolute': this.absolute,\n 'v-bottom-navigation--grow': this.grow,\n 'v-bottom-navigation--fixed': !this.absolute && (this.app || this.fixed),\n 'v-bottom-navigation--horizontal': this.horizontal,\n 'v-bottom-navigation--shift': this.shift,\n }\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n transform: this.isActive ? 'none' : 'translateY(100%)',\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('active')) {\n breaking('active.sync', 'value or v-model', this)\n }\n },\n\n methods: {\n thresholdMet () {\n if (this.hideOnScroll) {\n this.isActive = !this.isScrollingUp ||\n this.currentScroll > this.computedScrollThreshold\n\n this.$emit('update:input-value', this.isActive)\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n updateApplication (): number {\n return this.$el\n ? this.$el.clientHeight\n : 0\n },\n updateValue (val: any) {\n this.$emit('change', val)\n },\n },\n\n render (h): VNode {\n const data = this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-bottom-navigation',\n class: this.classes,\n style: this.styles,\n props: {\n activeClass: this.activeClass,\n mandatory: Boolean(\n this.mandatory ||\n this.value !== undefined\n ),\n tag: this.tag,\n value: this.internalValue,\n },\n on: { change: this.updateValue },\n })\n\n if (this.canScroll) {\n data.directives = data.directives || []\n\n data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return h(ButtonGroup, this.setTextColor(this.color, data), this.$slots.default)\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Transition',{attrs:{\"name\":\"scroll-y-reverse-transition\",\"mode\":\"out-in\"}},[_c('v-container',{attrs:{\"id\":\"home-container\"}},[_c('auth'),_c('Transition',{attrs:{\"name\":\"scroll-y-reverse-transition\",\"mode\":\"out-in\"}},[(_vm.nav_val == 'apps')?_c('appdash',{attrs:{\"app_list\":_vm.app_list,\"tURL\":_vm.tURL,\"fakeLoadingCards\":_vm.fakeLoadingCards},on:{\"clear_loadingapps\":_vm.clear_loadingapps,\"submitFavApp\":_vm.submitFavApp}}):_vm._e(),(_vm.nav_val == 'users')?_c('admindash'):_vm._e(),(_vm.nav_val == 'roles')?_c('rolesdash'):_vm._e()],1),_c('v-bottom-navigation',{attrs:{\"fixed\":\"\"},model:{value:(_vm.nav_val),callback:function ($$v) {_vm.nav_val=$$v},expression:\"nav_val\"}},[_c('v-btn',{attrs:{\"value\":\"apps\",\"id\":\"apps_button\"}},[_c('span',[_vm._v(\"Apps\")]),_c('v-icon',[_vm._v(\"$appViewDash\")])],1),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.admin_mode),expression:\"admin_mode\"}],attrs:{\"value\":\"users\",\"id\":\"admin_button\"}},[_c('span',[_vm._v(\"Users\")]),_c('v-icon',[_vm._v(\"$accountEdit\")])],1),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.admin_mode),expression:\"admin_mode\"}],attrs:{\"value\":\"roles\",\"id\":\"admin_button2\"}},[_c('span',[_vm._v(\"Roles\")]),_c('v-icon',[_vm._v(\"$databaseCog\")])],1),_c('v-btn',{attrs:{\"value\":\"logout\",\"id\":\"logout_button\"},on:{\"click\":_vm.logout}},[_c('span',[_vm._v(\"Logout\")]),_c('v-icon',[_vm._v(\"$logout\")])],1)],1),_c('v-overlay',{attrs:{\"absolute\":\"\",\"value\":_vm.overlay_loading}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":80,\"width\":7,\"color\":\"primary\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Transition',{attrs:{\"name\":\"fade-transition\"}},[_c('div',{staticStyle:{\"overflow-y\":\"auto\",\"max-height\":\"93vh\"},attrs:{\"id\":\"appdash\"}},[_c('h2',{staticClass:\"white--text mx-auto align-center text-center\"},[_vm._v(\"Reno Police Department Apps\")]),_c('v-data-iterator',{staticClass:\"mx-auto white--text pa-5 mb-12\",staticStyle:{\"max-width\":\"900px\"},attrs:{\"loading\":true,\"loading-text\":_vm.loading_text,\"items\":_vm.app_list,\"search\":_vm.search_apps,\"no-results-text\":_vm.no_results_text,\"hide-default-footer\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('v-row',_vm._l((_vm.fakeLoadingCards),function(index){return _c('v-col',{key:index,attrs:{\"cols\":\"12\",\"md\":\"12\",\"lg\":\"6\"}},[_c('v-skeleton-loader',{staticClass:\"pa-5 secondary\",attrs:{\"elevation\":\"6\",\"type\":\"heading\",\"color\":\"secondary\"}}),_c('v-skeleton-loader',{attrs:{\"elevation\":\"6\",\"type\":\"list-item\"}})],1)}),1)]},proxy:true},{key:\"header\",fn:function(){return [_c('v-card',{staticClass:\"mb-5\",attrs:{\"elevation\":\"6\"}},[_c('v-text-field',{attrs:{\"color\":\"primary\",\"clearable\":\"\",\"flat\":\"\",\"solo\":\"\",\"hide-details\":\"\",\"prepend-inner-icon\":\"$magnify\",\"label\":\"Filter apps by keyword(s)\"},model:{value:(_vm.search_apps),callback:function ($$v) {_vm.search_apps=$$v},expression:\"search_apps\"}})],1)]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('transition-group',{staticClass:\"row\",attrs:{\"name\":\"fade-transition\"}},_vm._l((props.items),function(item,index){return _c('v-col',{key:index,attrs:{\"cols\":\"12\",\"md\":\"12\",\"lg\":\"6\"}},[_c('v-card',{attrs:{\"elevation\":\"12\"}},[_c('v-overlay',{attrs:{\"absolute\":\"\",\"value\":item.isLoading}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":65,\"width\":5,\"color\":\"white\"}})],1),_c('v-card-title',{staticClass:\"text-h6 text-md-h5 secondary white--text text-uppercase\"},[_c('v-btn',{staticClass:\"mr-1\",attrs:{\"icon\":\"\",\"color\":\"white\",\"left\":\"\",\"width\":\"25px\",\"height\":\"25px\"},on:{\"click\":function($event){return _vm.info(item.appname, item.desc)}}},[_c('v-icon',[_vm._v(\"$info\")])],1),_vm._v(_vm._s(item.appname)+\" \"),_c('v-spacer'),(item.isFavorite)?_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"yellow\",\"left\":\"\",\"width\":\"25px\",\"height\":\"25px\"},on:{\"click\":function($event){return _vm.unFavoriteApp(item)}}},[_c('v-icon',[_vm._v(\"$staron\")])],1):_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"white\",\"left\":\"\",\"width\":\"25px\",\"height\":\"25px\"},on:{\"click\":function($event){return _vm.favoriteApp(item)}}},[_c('v-icon',[_vm._v(\"$staroff\")])],1)],1),_c('v-card-subtitle',{staticClass:\"secondary white--text\",staticStyle:{\"word-break\":\"break-all\",\"padding-top\":\"5px\"}}),_c('v-divider'),_c('v-card-actions',[_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"#2B5F2B\",\"block\":\"\"},on:{\"click\":function($event){return _vm.open(item, item.url)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"$exitToApp\")]),_vm._v(\"Open\")],1)],1)],1)],1)}),1)],1)]}}])}),_c('v-dialog',{attrs:{\"width\":\"800px\",\"scrollable\":\"\",\"eager\":\"\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"filter-card\",staticStyle:{\"height\":\"fit-content\"},attrs:{\"tile\":\"\",\"max-height\":\"400px\"}},[_c('v-card-title',{staticClass:\"secondary white--text\"},[_c('span',{staticClass:\"text-h5 app_title\",on:{\"click\":_vm.doSomething}},[_vm._v(_vm._s(_vm.dialog_form.appname))])]),_c('v-card-text',{staticClass:\"pa-0\"},[_c('v-container',[(_vm.dialog_form.desc)?_c('div',{staticClass:\"ma-2 report-container\"},[_c('h3',{staticClass:\"pb-1\"},[_vm._v(\"Description\")]),_c('div',[_vm._v(_vm._s(_vm.dialog_form.desc))])]):_c('div',{staticClass:\"ma-2 report-container\"},[_c('h3',{staticClass:\"pb-1\"},[_vm._v(\"Description\")]),_c('div',[_vm._v(\" No app description is available for this app.\")])])])],1),_c('v-card-actions',{staticStyle:{\"align-self\":\"center\"}},[_c('v-spacer'),_c('v-btn',{staticClass:\"pa-2 ma-2 text-center\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.closeDialog}},[_vm._v(\"Close\")]),_c('v-spacer')],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appdash.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appdash.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./appdash.vue?vue&type=template&id=501ca762&scoped=true&\"\nimport script from \"./appdash.vue?vue&type=script&lang=js&\"\nexport * from \"./appdash.vue?vue&type=script&lang=js&\"\nimport style0 from \"./appdash.vue?vue&type=style&index=0&id=501ca762&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 \"501ca762\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showtimeout)?_c('timeout',{attrs:{\"seconds_to_warn\":600,\"seconds_to_final\":60,\"loginURL\":_vm.loginURL}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"timeout\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"600\"},model:{value:(_vm.modal_show),callback:function ($$v) {_vm.modal_show=$$v},expression:\"modal_show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5 text-center align-center justify-center\"},[_vm._v(\" Continue working? \")]),_c('v-card-text',{staticClass:\"text--black text--darken-4\"},[_c('div',{staticClass:\"mx-auto text-center\"},[_c('v-progress-circular',{staticClass:\"mx-auto\",attrs:{\"size\":125,\"rotate\":-90,\"width\":15,\"value\":_vm.modal_reaming_perc,\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.modal_reaming)+\"s \")])],1),_c('br'),_c('div',{staticClass:\"text-center\"},[_vm._v(\" Your session is about to expire and you will be redirected to the login page. Click continue to keep working. \")])]),_c('v-card-actions',{staticClass:\"align-center justify-center\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.modal_continue}},[_vm._v(\" Continue \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./timeout.vue?vue&type=template&id=59ac8a8e&scoped=true&\"\nimport script from \"./timeout.vue?vue&type=script&lang=js&\"\nexport * from \"./timeout.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59ac8a8e\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auth.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auth.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./auth.vue?vue&type=template&id=57ce748d&\"\nimport script from \"./auth.vue?vue&type=script&lang=js&\"\nexport * from \"./auth.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./home.vue?vue&type=template&id=5eb4fe00&\"\nimport script from \"./home.vue?vue&type=script&lang=js&\"\nexport * from \"./home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./home.vue?vue&type=style&index=0&id=5eb4fe00&prod&lang=css&\"\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 null,\n null\n \n)\n\nexport default component.exports","// 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","import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions, VNode } from 'vue'\n\ninterface ScrollVNodeDirective extends Omit {\n value: EventListener | {\n handler: EventListener\n options?: boolean | AddEventListenerOptions\n } | EventListenerObject & { options?: boolean | AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ScrollVNodeDirective, vnode: VNode) {\n const { self = false } = binding.modifiers || {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n el._onScroll![vnode.context!._uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ScrollVNodeDirective, vnode: VNode) {\n if (!el._onScroll?.[vnode.context!._uid]) return\n\n const { handler, options, target = el } = el._onScroll[vnode.context!._uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[vnode.context!._uid]\n}\n\nexport const Scroll = {\n inserted,\n unbind,\n} as DirectiveOptions\n\nexport default Scroll\n"],"sourceRoot":""}