{"version":3,"sources":["webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///./src/layouts/layout.vue?e8a4","webpack:///src/layouts/layout.vue","webpack:///./src/layouts/layout.vue?0b32","webpack:///../../../src/mixins/applicationable/index.ts","webpack:///../../../src/mixins/scrollable/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///../../../src/components/VFooter/VFooter.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VTabs/VTabs.ts","webpack:///./src/layouts/layout.vue","webpack:///./src/layouts/layout.vue?7003","webpack:///../../../src/components/VGrid/VLayout.ts","webpack:///../../../src/mixins/ssr-bootable/index.ts","webpack:///./src/layouts/layout.vue?0049","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/mixins/transitionable/index.ts","webpack:///../../../src/components/VMain/VMain.ts","webpack:///../../../src/directives/scroll/index.ts"],"names":["name","props","app","centered","contentClass","type","default","multiLine","text","timeout","Number","transition","Boolean","validator","v","vertical","data","activeTimeout","computed","classes","this","bottom","hasBackground","isDark","styles","absolute","$vuetify","top","paddingBottom","paddingLeft","paddingRight","paddingTop","bar","watch","isActive","mounted","setTimeout","created","$attrs","hasOwnProperty","methods","genActions","$createElement","staticClass","attrs","class","genContent","role","genWrapper","setColor","style","directives","value","on","pointerenter","window","pointerleave","genTransition","render","h","_vm","_h","_c","_self","_e","model","callback","$$v","tab","expression","$event","$router","push","_v","staticStyle","isMobile","scopedSlots","_u","key","fn","ref","_b","reloadPage","showUpdate","_s","version","versionServer","textUpdate","staticRenderFns","filter","String","empCode","menuPin","publicPath","env","apiPath","staticPath","selectedPRvalue","selectedPR","selectedSaraban","menuleft","menuPR","menuPRAS","menutop","fav","menu","mini","avatarMenu","message","hints","File1","clipped","drawer","fixed","miniVariant","right","rightDrawer","title","currentDate","Date","result","items","checkVersion","$store","getters","empConfig","isAuthen","$nextTick","updateLeftMenu","rootpath","prListCount","prListCountAll","prMy","prFilter","prApprove","assetMy","assetFilter","assetApprove","$route","path","indexOf","pinMenu","toggleMenu","location","reload","loadprHistory","checkPermission","permissionArray","layoutRefresh","errorHandel","res","status","state","users","custmain","console","log","navigateTo","route","signOut","dispatch","DelNoti","item","ID","bookServ","delNotificate","then","response","error","el","EmpCode","App","code","substring","length","yy","parseInt","insertDate","UpStatus","events","mixins","applicationProperty","prev","removeApplication","activated","i","deactivated","destroyed","callUpdate","force","updateApplication","Scroll","scrollTarget","scrollThreshold","currentScroll","currentThreshold","isScrollingUp","previousScroll","savedScroll","target","canScroll","computedScrollThreshold","document","onScroll","Math","thresholdMet","baseMixins","provide","VAppBar","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","VToolbar","collapse","scrollRatio","threshold","computedContentHeight","min","dense","max","computedFontSize","computedLeft","application","computedMarginTop","computedOpacity","computedOriginalHeight","height","computedRight","computedTransform","hideShadow","isCollapsed","isProminent","fontSize","marginTop","transform","left","val","genBackground","opacity","computedHeight","arg","functional","d","Object","icon","listeners","defaultSlot","slots","VBtn","VIcon","avatar","bordered","color","content","required","dot","label","inline","offsetX","offsetY","overlap","tile","themeClasses","computedBottom","computedTop","computedXOffset","calcPosition","computedYOffset","isRtl","offset","genBadge","lang","setBackgroundColor","badge","origin","mode","genBadgeContent","slot","genBadgeWrapper","children","inset","padless","tag","VSheet","isPositioned","isNaN","$el","$slots","ClickOutside","Resize","Touch","isInNav","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","miniVariantWidth","permanent","src","stateless","temporary","touchless","width","isMouseover","touchArea","stackMinZIndex","computedMaxHeight","computedWidth","isMiniVariant","hasApp","isBottom","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","translate","maxHeight","removeOverlay","beforeMount","calculateTouchArea","parent","parentRect","closeConditional","genAppend","genPosition","image","$scopedSlots","img","VImg","genDirectives","handler","include","getOpenDependentElements","swipeRight","genListeners","mouseenter","mouseleave","transitionend","e","resizeEvent","genPrepend","genBorder","init","onRouteChange","swipeLeft","updateMiniVariant","$emit","ripple","proxyClass","groupClasses","to","resolve","click","href","blur","toggle","tabsBar","tabindex","keydown","bias","c","x","clientWidth","selectedElement","offsetLeft","rtl","widths","currentScrollOffset","totalWidth","itemOffset","additionalOffset","offsetCentered","BaseSlideGroup","activeClass","centerActive","nextIcon","prevIcon","showArrows","internalItemsLength","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","wrapper","canTouch","__cachedNext","__cachedPrev","hasAffixes","hasNext","hasPrev","internalValue","scroll","beforeUpdate","$children","updated","onFocusin","vm","calculateUpdatedOffset","genNext","next","focusin","genData","onResize","genIcon","upperLocation","hasAffix","disabled","genPrev","start","move","end","calculateNewOffset","sign","newAbosluteOffset","direction","onAffixClick","onTouchStart","onTouchMove","diffX","diffY","onTouchEnd","maxScrollOffset","overflowCheck","scrollIntoView","lastItemPosition","wrapperPosition","$refs","selectedIndex","calculateCenteredOffset","selectedItem","scrollTo","setWidths","slideGroup","callSlider","newPath","oldPath","oldVal","hasNew","hasOld","undefined","windowGroup","continuous","mandatory","reverse","showArrowsOnHover","touch","changedByDelimiters","internalHeight","transitionHeight","transitionCount","isBooted","isReverse","computedTransition","axis","internalReverse","hasActiveItems","find","internalIndex","findIndex","updateReverse","genDefaultSlot","genContainer","t","large","genControlIcons","icons","getNextIndex","nextIndex","index","getPrevIndex","prevIndex","getValue","lastIndex","itemsLength","alignWithTitle","backgroundColor","fixedTabs","grow","hideSlider","iconsAndText","mobileBreakpoint","optional","sliderColor","sliderSize","slider","transitionTime","isReversed","sliderStyles","computedColor","selectedItems","activeTab","scrollWidth","genBar","dark","light","change","VTabsBar","genSlider","genItems","VTabsItems","VTabsSlider","clearTimeout","parseNodes","vnode","modifiers","quiet","component","VAppBarNavIcon","VAvatar","VBadge","VCard","VCardActions","VContainer","VDivider","VFooter","VLayout","VList","VListGroup","VListItem","VListItemAction","VListItemAvatar","VListItemContent","VListItemIcon","VListItemSubtitle","VListItemTitle","VMain","VMenu","VNavigationDrawer","VSnackbar","VSpacer","VTab","VTabs","VTextField","breakpoint","includes","mobile","mobileWidth","isNumber","footer","inserted","binding","self","options","passive","unbind"],"mappings":"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","file":"js/chunk-0ff5149e.aabc224b.js","sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { deprecate, removed } from '../../util/console'\n\n// Types\nimport { PropType, VNode } from 'vue'\n\nexport default mixins(\n VSheet,\n Colorable,\n Toggleable,\n PositionableFactory([\n 'absolute',\n 'bottom',\n 'left',\n 'right',\n 'top',\n ])\n/* @vue/component */\n).extend({\n name: 'v-snackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n text: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n transition: {\n type: [Boolean, String] as PropType,\n default: 'v-snack-transition',\n validator: v => typeof v === 'string' || v === false,\n },\n vertical: Boolean,\n },\n\n data: () => ({\n activeTimeout: -1,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-snack--absolute': this.absolute,\n 'v-snack--active': this.isActive,\n 'v-snack--bottom': this.bottom || !this.top,\n 'v-snack--centered': this.centered,\n 'v-snack--has-background': this.hasBackground,\n 'v-snack--left': this.left,\n 'v-snack--multi-line': this.multiLine && !this.vertical,\n 'v-snack--right': this.right,\n 'v-snack--text': this.text,\n 'v-snack--top': this.top,\n 'v-snack--vertical': this.vertical,\n }\n },\n // Text and outlined styles both\n // use transparent backgrounds\n hasBackground (): boolean {\n return (\n !this.text &&\n !this.outlined\n )\n },\n // Snackbar is dark by default\n // override themeable logic.\n isDark (): boolean {\n return this.hasBackground\n ? !this.light\n : Themeable.options.computed.isDark.call(this)\n },\n styles (): object {\n if (this.absolute || !this.app) return {}\n\n const {\n bar,\n bottom,\n footer,\n insetFooter,\n left,\n right,\n top,\n } = this.$vuetify.application\n\n return {\n paddingBottom: convertToUnit(bottom + footer + insetFooter),\n paddingLeft: convertToUnit(left),\n paddingRight: convertToUnit(right),\n paddingTop: convertToUnit(bar + top),\n }\n },\n },\n\n watch: {\n isActive: 'setTimeout',\n timeout: 'setTimeout',\n },\n\n mounted () {\n if (this.isActive) this.setTimeout()\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('auto-height')) {\n removed('auto-height', this)\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line eqeqeq\n if (this.timeout == 0) {\n deprecate('timeout=\"0\"', '-1', this)\n }\n },\n\n methods: {\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-snack__action ',\n }, [\n getSlot(this, 'action', {\n attrs: { class: 'v-snack__btn' },\n }),\n ])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-snack__content',\n class: {\n [this.contentClass]: true,\n },\n attrs: {\n role: 'status',\n 'aria-live': 'polite',\n },\n }, [getSlot(this)])\n },\n genWrapper () {\n const setColor = this.hasBackground\n ? this.setBackgroundColor\n : this.setTextColor\n\n const data = setColor(this.color, {\n staticClass: 'v-snack__wrapper',\n class: VSheet.options.computed.classes.call(this),\n style: VSheet.options.computed.styles.call(this),\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: {\n pointerenter: () => window.clearTimeout(this.activeTimeout),\n pointerleave: this.setTimeout,\n },\n })\n\n return this.$createElement('div', data, [\n this.genContent(),\n this.genActions(),\n ])\n },\n genTransition () {\n return this.$createElement('transition', {\n props: { name: this.transition },\n }, [this.genWrapper()])\n },\n setTimeout () {\n window.clearTimeout(this.activeTimeout)\n\n const timeout = Number(this.timeout)\n\n if (\n !this.isActive ||\n // TODO: remove 0 in v3\n [0, -1].includes(timeout)\n ) {\n return\n }\n\n this.activeTimeout = window.setTimeout(() => {\n this.isActive = false\n }, timeout)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-snack',\n class: this.classes,\n style: this.styles,\n }, [\n this.transition !== false\n ? this.genTransition()\n : this.genWrapper(),\n ])\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ma-0 pb-0\"},[_c('v-card',{staticClass:\"pb-4\",attrs:{\"height\":\"100vh\"}},[(false && _vm.$store.getters.isAuthen)?_c('v-navigation-drawer',{attrs:{\"app\":\"\",\"mini-variant\":_vm.mini,\"expand-on-hover\":!_vm.menuPin && !_vm.isMobile,\"permanent\":!_vm.isMobile,\"width\":\"350\"},model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-list',[_c('v-list-item',{staticClass:\"px-2\",attrs:{\"link\":\"\"}},[_c('v-list-item-avatar',{on:{\"click\":_vm.toggleMenu}},[_c('img',{attrs:{\"src\":_vm.apiPath + 'content/emp_img.asp?w=450&img=' + _vm.$store.state.users.custmain.Description + '.jpg'}})]),_c('v-list-item-content',{on:{\"click\":function($event){return _vm.$router.push('/profile')}}},[_c('v-list-item-title',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$store.state.users.custmain.FullName)+\"\\n \")]),_c('v-list-item-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.$store.state.users.custmain.EmailAddress)+\"\\n \")])],1),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.pinMenu}},[(!_vm.menuPin)?_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-pin-off\")]):_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-pin\")])],1)],1)],1),_c('v-divider'),_c('v-list',{attrs:{\"dense\":\"\",\"nav\":\"\"}},[_c('v-list-item',{attrs:{\"link\":\"\",\"to\":'/'},on:{\"click\":_vm.layoutRefresh}},[_c('v-list-item-icon',{on:{\"click\":_vm.toggleMenu}},[_c('v-icon',[_vm._v(\"home\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"หน้าแรก\")])],1)],1),(false)?_c('v-list-group',{attrs:{\"prepend-icon1\":\"mdi-cart\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-icon',{on:{\"click\":function($event){_vm.mini = false}}},[(_vm.prListCountAll > 0)?_c('v-badge',{attrs:{\"color\":\"red\",\"dot\":\"\"}},[_c('v-icon',[_vm._v(\"store\")])],1):_vm._e(),(!(_vm.prListCountAll > 0))?_c('v-icon',[_vm._v(\"store\")]):_vm._e()],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"ใบขอซื้อ/ขอจ้าง\")])],1)]},proxy:true}],null,false,908593773),model:{value:(_vm.selectedPR),callback:function ($$v) {_vm.selectedPR=$$v},expression:\"selectedPR\"}},[_c('v-divider'),_vm._l((_vm.menuPR),function(item){return _c('v-list-item',{key:item.title,attrs:{\"link\":\"\",\"to\":item.to}},[_c('v-list-item-icon',{on:{\"mouseover1\":function($event){_vm.drawer = false}}},[(_vm.prListCount[item.nfloat] > 0)?_c('v-badge',{attrs:{\"color\":\"red\",\"dot\":\"\"}},[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1):_vm._e(),(!(_vm.prListCount[item.nfloat] > 0))?_c('v-icon',[_vm._v(_vm._s(item.icon))]):_vm._e()],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(item.title)}}),_c('v-list-item-subtitle',[_vm._v(_vm._s(item.subt))])],1),_c('v-list-item-icon',{on:{\"mouseover1\":function($event){_vm.drawer = false}}},[(_vm.prListCount[item.nfloat] > 0)?_c('v-badge',{staticClass:\"caption\",attrs:{\"color\":\"red\",\"content\":_vm.prListCount[item.nfloat],\"inline\":\"\"}}):_vm._e()],1)],1)}),_c('v-divider'),_vm._l((_vm.menuPRAS),function(item){return _c('v-list-item',{key:item.title,attrs:{\"link\":\"\",\"to\":item.to}},[_c('v-list-item-icon',{on:{\"mouseover1\":function($event){_vm.mini = false}}},[(_vm.prListCount[item.nfloat] > 0)?_c('v-badge',{attrs:{\"color\":\"red\",\"dot\":\"\"}},[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1):_vm._e(),(!(_vm.prListCount[item.nfloat] > 0))?_c('v-icon',[_vm._v(_vm._s(item.icon))]):_vm._e()],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(item.title)}}),_c('v-list-item-subtitle',[_vm._v(_vm._s(item.subt))])],1),_c('v-list-item-icon',{on:{\"mouseover1\":function($event){_vm.drawer = false}}},[(_vm.prListCount[item.nfloat] > 0)?_c('v-badge',{staticClass:\"caption\",attrs:{\"color\":\"red\",\"content\":_vm.prListCount[item.nfloat],\"inline\":\"\"}}):_vm._e()],1)],1)}),_c('v-divider')],2):_vm._e(),(false)?_c('v-list-group',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-icon',{on:{\"click\":function($event){_vm.mini = false}}},[_c('v-icon',[_vm._v(\"mdi-file-document-multiple\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"ระบบงานสารบรรณ\")])],1)]},proxy:true}],null,false,3128403186),model:{value:(_vm.selectedSaraban),callback:function ($$v) {_vm.selectedSaraban=$$v},expression:\"selectedSaraban\"}},_vm._l((_vm.menuleft),function(item){return _c('v-list-item',{key:item.title,attrs:{\"link\":\"\",\"to\":item.to}},[_c('v-list-item-icon',{on:{\"mouseover1\":function($event){_vm.drawer = false}}},[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(item.title)}})],1),_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-circle-small\")])],1)],1)}),1):_vm._e()],1)],1):_vm._e(),(false)?_c('v-app-bar',{attrs:{\"dense\":\"\",\"app\":\"\",\"clipped-left1\":\"\",\"color\":\"indigo\",\"dark\":\"\",\"fixed1\":\"\"}},[_c('v-app-bar-nav-icon',{staticClass:\"hidden-sm-and-up\",on:{\"click\":function($event){_vm.drawer = !_vm.drawer\n _vm.mini = false}}}),_c('span',{staticClass:\"title ml-3 mr-5\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.navigateTo({ name: '/' })}}},[_vm._v(\"TAI \\n \"),(_vm.env === 'production')?_c('span',{staticClass:\"font-weight-light\"},[_vm._v(\"System\")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.env)+\" \")])]),(false)?_c('v-text-field',{attrs:{\"solo-inverted\":\"\",\"flat\":\"\",\"hide-details\":\"\",\"label\":\"Search\",\"prepend-inner-icon\":\"search\"}}):_vm._e(),_c('v-spacer'),_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false,\"nudge-width\":200},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [(false)?_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[(_vm.$store.getters.isAuthen)?_c('v-badge',{attrs:{\"color\":\"cyan\",\"overlap\":\"\"}},[_c('span',{attrs:{\"slot\":\"badge\"},slot:\"badge\"},[_vm._v(_vm._s(_vm.$store.state.users.notificate.length))]),_c('v-icon',[_vm._v(\"notifications\")])],1):_vm._e()],1):_vm._e()]}}],null,false,477009026),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-card',[_c('v-list',_vm._l((_vm.$store.state.users.notificate),function(item){return _c('v-list-item',{key:'noti' + item.ID + item.EmpCode,attrs:{\"filter\":'EmpCode = \\'' + _vm.$store.state.users.custmain.empCode + '\\''},on:{\"click\":function($event){$event.stopPropagation();return _vm.DelNoti(item)}}},[_c('v-list-item-avatar',[_c('v-avatar',{attrs:{\"size\":\"55px\"}},[_c('img',{attrs:{\"src\":_vm.staticPath + 'doc-images/app/' + item.App + '.jpg',\"alt\":item.EmpCode}})])],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(item.Title)}}),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm._f(\"datetime\")(item.insertDate)))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm._f(\"datedif\")(item.insertDate)))])],1),_c('v-list-item-action',[_c('v-avatar',{staticClass:\"info\",attrs:{\"size\":\"55px\"}},[_vm._v(_vm._s(item.App))])],1)],1)}),1),_c('v-divider'),_c('v-card-actions',[_c('v-btn',{attrs:{\"to\":'/bookview2'},nativeOn:{\"click\":function($event){_vm.menu = false}}},[_vm._v(\"ดูทั้งหมด\")]),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.menu = false}}},[_vm._v(\"ปิด\")])],1)],1)],1),(!_vm.$store.getters.isAuthen)?_c('v-btn',{key:'signin',attrs:{\"text\":\"\",\"dark\":\"\",\"to\":'/signin'}},[_vm._v(\"\\n Sign In\\n \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\"lock_open\")])],1):_vm._e(),(_vm.$store.getters.isAuthen)?_c('v-btn',{key:'signOutIcon',staticClass:\"d-sm-none d-xs-none\",attrs:{\"icon\":\"\",\"text\":\"\",\"dark\":\"\"},on:{\"click\":_vm.signOut}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-location-exit\")])],1):_vm._e(),(_vm.$store.getters.isAuthen)?_c('v-btn',{key:'signOut',staticClass:\"d-none d-xs-flex d-sm-flex\",attrs:{\"text\":\"\",\"dark\":\"\"},on:{\"click\":_vm.signOut}},[_vm._v(\"\\n Sign Out\\n \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\"mdi-location-exit\")])],1):_vm._e(),(_vm.$store.getters.isAuthen && _vm.isMobile && false)?_c('v-list-item-avatar',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false,\"nudge-width\":200},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-avatar',_vm._g({attrs:{\"size\":\"36px\"}},on),[_c('img',{attrs:{\"src\":_vm.apiPath + 'content/emp_img.asp?w=450&img=' + _vm.$store.state.users.custmain.Description + '.jpg'}})])]}}],null,false,2510720143),model:{value:(_vm.avatarMenu),callback:function ($$v) {_vm.avatarMenu=$$v},expression:\"avatarMenu\"}},[_c('v-card',[_c('v-list',[_c('v-list-item',{attrs:{\"to\":'/profile'}},[_c('v-list-item-title',[_vm._v(\"profile\")])],1)],1)],1)],1)],1):_vm._e()],1):_vm._e(),_c('v-main',[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\",\"fill-height\":\"\"}},[_c('v-tabs',{staticClass:\"ma-0 pa-0\",attrs:{\"center-active\":\"\",\"background-color\":\"blue darken-4\",\"centered\":\"\",\"dark\":\"\",\"icons-and-text\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#tab-0\"},on:{\"click\":function($event){return _vm.$router.push('/')}}},[_vm._v(\"\\n ขอรับบริการ\\n \"),_c('v-icon',[_vm._v(\"mdi-plus\")])],1),(true)?_c('v-tab',{attrs:{\"href\":\"#tab-1\"},on:{\"click\":function($event){return _vm.$router.push('/servicelist')}}},[_vm._v(\"\\n รายการคำขอ\\n \"),_c('v-icon',[_vm._v(\"mdi-certificate-outline\")])],1):_vm._e(),(false)?_c('v-tab',{attrs:{\"href\":\"#tab-2\"}},[_vm._v(\"\\n ที่ต้องได้รับ\\n \"),_c('v-icon',[_vm._v(\"mdi-inbox\")])],1):_vm._e(),(false)?_c('v-tab',{attrs:{\"href\":\"#tab-3\"}},[_vm._v(\"\\n ที่ต้องชำระ\\n \"),_c('v-icon',[_vm._v(\"mdi-cash\")])],1):_vm._e(),(false)?_c('v-tab',{attrs:{\"href\":\"#tab-4\"}},[_vm._v(\"\\n สำเร็จ\\n \"),_c('v-icon',[_vm._v(\"mdi-certificate-outline\")])],1):_vm._e(),_c('v-tab',{attrs:{\"href\":\"#tab-5\"},on:{\"click\":function($event){return _vm.$router.push('/profile')}}},[_vm._v(\"\\n ฉัน\\n \"),_c('v-icon',[_vm._v(\"mdi-account\")])],1)],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}}),_c('v-layout',{staticClass:\"ma-0 pa-0\",attrs:{\"justify-center\":\"\"}},[_c('router-view',{staticClass:\"ma-0 pa-0\",attrs:{\"align-center\":\"\"}})],1)],1)],1),_c('v-footer',{attrs:{\"color\":\"indigo\",\"fixed\":\"\"}},[_c('v-spacer'),_c('span',{staticClass:\"white--text\",staticStyle:{\"font-size\":\"10px\"}},[_vm._v(\"© 2022 - Ver:1.20.0\"),(!_vm.isMobile)?_c('span',[_vm._v(\" Build:20240307.015017\")]):_vm._e()]),_c('v-spacer')],1),_c('v-snackbar',{attrs:{\"timeout\":\"-1\"},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._b({attrs:{\"color\":\"red\",\"text\":\"\"},on:{\"click\":_vm.reloadPage}},'v-btn',attrs,false),[_vm._v(\" Reload \")])]}}]),model:{value:(_vm.showUpdate),callback:function ($$v) {_vm.showUpdate=$$v},expression:\"showUpdate\"}},[_vm._v(\"\\n [\"+_vm._s(_vm.version)+\" ==> \"+_vm._s(_vm.versionServer)+\"] - \"+_vm._s(_vm.textUpdate)+\"\\n\\n \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=script&lang=js&\"","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 './VAppBar.sass'\n\n// Extensions\nimport VToolbar from '../VToolbar/VToolbar'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Scrollable from '../../mixins/scrollable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VToolbar,\n Scrollable,\n SSRBootable,\n Toggleable,\n Applicationable('top', [\n 'clippedLeft',\n 'clippedRight',\n 'computedHeight',\n 'invertedScroll',\n 'isExtended',\n 'isProminent',\n 'value',\n ])\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-app-bar',\n\n directives: { Scroll },\n\n provide (): object {\n return { VAppBar: this }\n },\n\n props: {\n clippedLeft: Boolean,\n clippedRight: Boolean,\n collapseOnScroll: Boolean,\n elevateOnScroll: Boolean,\n fadeImgOnScroll: Boolean,\n hideOnScroll: Boolean,\n invertedScroll: Boolean,\n scrollOffScreen: Boolean,\n shrinkOnScroll: Boolean,\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n isActive: this.value,\n }\n },\n\n computed: {\n applicationProperty (): string {\n return !this.bottom ? 'top' : 'bottom'\n },\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.invertedScroll ||\n this.elevateOnScroll ||\n this.hideOnScroll ||\n this.collapseOnScroll ||\n this.isBooted ||\n // If falsy, user has provided an\n // explicit value which should\n // overwrite anything we do\n !this.value\n )\n )\n },\n classes (): object {\n return {\n ...VToolbar.options.computed.classes.call(this),\n 'v-toolbar--collapse': this.collapse || this.collapseOnScroll,\n 'v-app-bar': true,\n 'v-app-bar--clipped': this.clippedLeft || this.clippedRight,\n 'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll,\n 'v-app-bar--elevate-on-scroll': this.elevateOnScroll,\n 'v-app-bar--fixed': !this.absolute && (this.app || this.fixed),\n 'v-app-bar--hide-shadow': this.hideShadow,\n 'v-app-bar--is-scrolled': this.currentScroll > 0,\n 'v-app-bar--shrink-on-scroll': this.shrinkOnScroll,\n }\n },\n scrollRatio (): number {\n const threshold = this.computedScrollThreshold\n return Math.max((threshold - this.currentScroll) / threshold, 0)\n },\n computedContentHeight (): number {\n if (!this.shrinkOnScroll) return VToolbar.options.computed.computedContentHeight.call(this)\n\n const min = this.dense ? 48 : 56\n const max = this.computedOriginalHeight\n\n return min + (max - min) * this.scrollRatio\n },\n computedFontSize (): number | undefined {\n if (!this.isProminent) return undefined\n\n const min = 1.25\n const max = 1.5\n\n return min + (max - min) * this.scrollRatio\n },\n computedLeft (): number {\n if (!this.app || this.clippedLeft) return 0\n\n return this.$vuetify.application.left\n },\n computedMarginTop (): number {\n if (!this.app) return 0\n\n return this.$vuetify.application.bar\n },\n computedOpacity (): number | undefined {\n if (!this.fadeImgOnScroll) return undefined\n\n return this.scrollRatio\n },\n computedOriginalHeight (): number {\n let height = VToolbar.options.computed.computedContentHeight.call(this)\n if (this.isExtended) height += parseInt(this.extensionHeight)\n return height\n },\n computedRight (): number {\n if (!this.app || this.clippedRight) return 0\n\n return this.$vuetify.application.right\n },\n computedScrollThreshold (): number {\n if (this.scrollThreshold) return Number(this.scrollThreshold)\n\n return this.computedOriginalHeight - (this.dense ? 48 : 56)\n },\n computedTransform (): number {\n if (\n !this.canScroll ||\n (this.elevateOnScroll && this.currentScroll === 0 && this.isActive)\n ) return 0\n\n if (this.isActive) return 0\n\n const scrollOffScreen = this.scrollOffScreen\n ? this.computedHeight\n : this.computedContentHeight\n\n return this.bottom ? scrollOffScreen : -scrollOffScreen\n },\n hideShadow (): boolean {\n if (this.elevateOnScroll && this.isExtended) {\n return this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.elevateOnScroll) {\n return this.currentScroll === 0 ||\n this.computedTransform < 0\n }\n\n return (\n !this.isExtended ||\n this.scrollOffScreen\n ) && this.computedTransform !== 0\n },\n isCollapsed (): boolean {\n if (!this.collapseOnScroll) {\n return VToolbar.options.computed.isCollapsed.call(this)\n }\n\n return this.currentScroll > 0\n },\n isProminent (): boolean {\n return (\n VToolbar.options.computed.isProminent.call(this) ||\n this.shrinkOnScroll\n )\n },\n styles (): object {\n return {\n ...VToolbar.options.computed.styles.call(this),\n fontSize: convertToUnit(this.computedFontSize, 'rem'),\n marginTop: convertToUnit(this.computedMarginTop),\n transform: `translateY(${convertToUnit(this.computedTransform)})`,\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n computedTransform () {\n // Normally we do not want the v-app-bar\n // to update the application top value\n // to avoid screen jump. However, in\n // this situation, we must so that\n // the clipped drawer can update\n // its top value when scrolled\n if (\n !this.canScroll ||\n (!this.clippedLeft && !this.clippedRight)\n ) return\n\n this.callUpdate()\n },\n invertedScroll (val: boolean) {\n this.isActive = !val || this.currentScroll !== 0\n },\n hideOnScroll (val: boolean) {\n this.isActive = !val || this.currentScroll < this.computedScrollThreshold\n },\n },\n\n created () {\n if (this.invertedScroll) this.isActive = false\n },\n\n methods: {\n genBackground () {\n const render = VToolbar.options.methods.genBackground.call(this)\n\n render.data = this._b(render.data || {}, render.tag!, {\n style: { opacity: this.computedOpacity },\n })\n\n return render\n },\n updateApplication (): number {\n return this.invertedScroll\n ? 0\n : this.computedHeight + this.computedTransform\n },\n thresholdMet () {\n if (this.invertedScroll) {\n this.isActive = this.currentScroll > this.computedScrollThreshold\n return\n }\n\n if (this.hideOnScroll) {\n this.isActive = this.isScrollingUp ||\n this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n },\n\n render (h): VNode {\n const render = VToolbar.options.render.call(this, h)\n\n render.data = render.data || {}\n\n if (this.canScroll) {\n render.data.directives = render.data.directives || []\n render.data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return render\n },\n})\n","// Components\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn/VBtn'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-app-bar-nav-icon',\n\n functional: true,\n\n render (h, { slots, listeners, props, data }) {\n const d = Object.assign(data, {\n staticClass: (`v-app-bar__nav-icon ${data.staticClass || ''}`).trim(),\n props: {\n ...props,\n icon: true,\n },\n on: listeners,\n })\n\n const defaultSlot = slots().default\n\n return h(VBtn, d, defaultSlot || [h(VIcon, '$menu')])\n },\n})\n","// 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","// Styles\nimport './VFooter.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types/vnode'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Applicationable('footer', [\n 'height',\n 'inset',\n ]),\n SSRBootable\n).extend({\n name: 'v-footer',\n\n props: {\n height: {\n default: 'auto',\n type: [Number, String],\n },\n inset: Boolean,\n padless: Boolean,\n tag: {\n type: String,\n default: 'footer',\n },\n },\n\n computed: {\n applicationProperty (): string {\n return this.inset ? 'insetFooter' : 'footer'\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-footer--absolute': this.absolute,\n 'v-footer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-footer--padless': this.padless,\n 'v-footer--inset': this.inset,\n }\n },\n computedBottom (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app\n ? this.$vuetify.application.bottom\n : 0\n },\n computedLeft (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app && this.inset\n ? this.$vuetify.application.left\n : 0\n },\n computedRight (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app && this.inset\n ? this.$vuetify.application.right\n : 0\n },\n isPositioned (): boolean {\n return Boolean(\n this.absolute ||\n this.fixed ||\n this.app\n )\n },\n styles (): object {\n const height = parseInt(this.height)\n\n return {\n ...VSheet.options.computed.styles.call(this),\n height: isNaN(height) ? height : convertToUnit(height),\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n bottom: convertToUnit(this.computedBottom),\n }\n },\n },\n\n methods: {\n updateApplication () {\n const height = parseInt(this.height)\n\n return isNaN(height)\n ? this.$el ? this.$el.clientHeight : 0\n : height\n },\n },\n\n render (h): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-footer',\n class: this.classes,\n style: this.styles,\n })\n\n return h(this.tag, data, this.$slots.default)\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.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","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { ExtractVue } from './../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n// Components\nimport VTabsBar from '../VTabs/VTabsBar'\n\nconst baseMixins = mixins(\n Routable,\n // Must be after routable\n // to overwrite activeClass\n GroupableFactory('tabsBar'),\n Themeable\n)\n\ntype VTabBarInstance = InstanceType\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n tabsBar: VTabBarInstance\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-tab',\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n data: () => ({\n proxyClass: 'v-tab--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-tab': true,\n ...Routable.options.computed.classes.call(this),\n 'v-tab--disabled': this.disabled,\n ...this.groupClasses,\n }\n },\n value (): any {\n let to = this.to || this.href\n\n if (to == null) return to\n\n if (this.$router &&\n this.to === Object(this.to)\n ) {\n const resolve = this.$router.resolve(\n this.to,\n this.$route,\n this.append\n )\n\n to = resolve.href\n }\n\n return to.replace('#', '')\n },\n },\n\n methods: {\n click (e: KeyboardEvent | MouseEvent): void {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n if (this.disabled) {\n e.preventDefault()\n return\n }\n\n // If user provides an\n // actual link, do not\n // prevent default\n if (this.href &&\n this.href.indexOf('#') > -1\n ) e.preventDefault()\n\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n toggle () {\n // VItemGroup treats a change event as a click\n if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {\n this.$emit('change')\n }\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n 'aria-selected': String(this.isActive),\n role: 'tab',\n tabindex: 0,\n }\n data.on = {\n ...data.on,\n keydown: (e: KeyboardEvent) => {\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n return h(tag, data, this.$slots.default)\n },\n})\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n internalItemsLength: 0,\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n beforeUpdate () {\n this.internalItemsLength = (this.$children || []).length\n },\n\n updated () {\n if (this.internalItemsLength === (this.$children || []).length) return\n this.setWidths()\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : this.$slots.next || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, this.$slots.default)\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : this.$slots.prev || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { Route } from 'vue-router'\nimport { VNode } from 'vue'\n\ntype VTabInstance = InstanceType\n\nexport default mixins(\n BaseSlideGroup,\n SSRBootable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide () {\n return {\n tabsBar: this,\n }\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange',\n },\n\n methods: {\n callSlider () {\n if (!this.isBooted) return\n\n this.$emit('call:slider')\n },\n genContent () {\n const render = BaseSlideGroup.options.methods.genContent.call(this)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-tabs-bar__content'\n\n return render\n },\n onRouteChange (val: Route, oldVal: Route) {\n /* istanbul ignore next */\n if (this.mandatory) return\n\n const items = this.items as unknown as VTabInstance[]\n const newPath = val.path\n const oldPath = oldVal.path\n\n let hasNew = false\n let hasOld = false\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true\n else if (item.to === newPath) hasNew = true\n\n if (hasNew && hasOld) break\n }\n\n // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n if (!hasNew && hasOld) this.internalValue = undefined\n },\n },\n\n render (h): VNode {\n const render = BaseSlideGroup.options.render.call(this, h)\n\n render.data!.attrs = {\n role: 'tablist',\n }\n\n return render\n },\n})\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from 'vuetify/types'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-window',\n\n directives: { Touch },\n\n provide (): object {\n return {\n windowGroup: this,\n }\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active',\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true,\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object as PropType,\n touchless: Boolean,\n value: {\n required: false,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n changedByDelimiters: false,\n internalHeight: undefined as undefined | string, // This can be fixed by child class.\n transitionHeight: undefined as undefined | string, // Intermediate height during transition.\n transitionCount: 0, // Number of windows in transition state.\n isBooted: false,\n isReverse: false,\n }\n },\n\n computed: {\n isActive (): boolean {\n return this.transitionCount > 0\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover,\n }\n },\n computedTransition (): string {\n if (!this.isBooted) return ''\n\n const axis = this.vertical ? 'y' : 'x'\n const reverse = this.internalReverse ? !this.isReverse : this.isReverse\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n },\n hasActiveItems (): boolean {\n return Boolean(\n this.items.find(item => !item.disabled)\n )\n },\n hasNext (): boolean {\n return this.continuous || this.internalIndex < this.items.length - 1\n },\n hasPrev (): boolean {\n return this.continuous || this.internalIndex > 0\n },\n internalIndex (): number {\n return this.items.findIndex((item, i) => {\n return this.internalValue === this.getValue(item, i)\n })\n },\n internalReverse (): boolean {\n return this.$vuetify.rtl ? !this.reverse : this.reverse\n },\n },\n\n watch: {\n internalIndex (val, oldVal) {\n this.isReverse = this.updateReverse(val, oldVal)\n },\n },\n\n mounted () {\n window.requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n genDefaultSlot () {\n return this.$slots.default\n },\n genContainer (): VNode {\n const children = [this.genDefaultSlot()]\n\n if (this.showArrows) {\n children.push(this.genControlIcons())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive,\n },\n style: {\n height: this.internalHeight || this.transitionHeight,\n },\n }, children)\n },\n genIcon (\n direction: 'prev' | 'next',\n icon: string,\n click: () => void\n ) {\n const on = {\n click: (e: Event) => {\n e.stopPropagation()\n this.changedByDelimiters = true\n click()\n },\n }\n const attrs = {\n 'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`),\n }\n const children = this.$scopedSlots[direction]?.({\n on,\n attrs,\n }) ?? [this.$createElement(VBtn, {\n props: { icon: true },\n attrs,\n on,\n }, [\n this.$createElement(VIcon, {\n props: { large: true },\n }, icon),\n ])]\n\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`,\n }, children)\n },\n genControlIcons () {\n const icons = []\n\n const prevIcon = this.$vuetify.rtl\n ? this.nextIcon\n : this.prevIcon\n\n /* istanbul ignore else */\n if (\n this.hasPrev &&\n prevIcon &&\n typeof prevIcon === 'string'\n ) {\n const icon = this.genIcon('prev', prevIcon, this.prev)\n icon && icons.push(icon)\n }\n\n const nextIcon = this.$vuetify.rtl\n ? this.prevIcon\n : this.nextIcon\n\n /* istanbul ignore else */\n if (\n this.hasNext &&\n nextIcon &&\n typeof nextIcon === 'string'\n ) {\n const icon = this.genIcon('next', nextIcon, this.next)\n icon && icons.push(icon)\n }\n\n return icons\n },\n getNextIndex (index: number): number {\n const nextIndex = (index + 1) % this.items.length\n const item = this.items[nextIndex]\n\n if (item.disabled) return this.getNextIndex(nextIndex)\n\n return nextIndex\n },\n getPrevIndex (index: number): number {\n const prevIndex = (index + this.items.length - 1) % this.items.length\n const item = this.items[prevIndex]\n\n if (item.disabled) return this.getPrevIndex(prevIndex)\n\n return prevIndex\n },\n next () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasNext) return\n\n const nextIndex = this.getNextIndex(this.internalIndex)\n const item = this.items[nextIndex]\n\n this.internalValue = this.getValue(item, nextIndex)\n },\n prev () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasPrev) return\n\n const lastIndex = this.getPrevIndex(this.internalIndex)\n const item = this.items[lastIndex]\n\n this.internalValue = this.getValue(item, lastIndex)\n },\n updateReverse (val: number, oldVal: number) {\n const itemsLength = this.items.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) return val < oldVal\n\n if (val === lastIndex && oldVal === 0) {\n return true\n } else if (val === 0 && oldVal === lastIndex) {\n return false\n } else {\n return val < oldVal\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: [] as VNodeDirective[],\n }\n\n if (!this.touchless) {\n const value = this.touch || {\n left: () => {\n this.$vuetify.rtl ? this.prev() : this.next()\n },\n right: () => {\n this.$vuetify.rtl ? this.next() : this.prev()\n },\n end: (e: TouchEvent) => {\n e.stopPropagation()\n },\n start: (e: TouchEvent) => {\n e.stopPropagation()\n },\n }\n\n data.directives.push({\n name: 'touch',\n value,\n })\n }\n\n return h('div', data, [this.genContainer()])\n },\n})\n","// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Types & Components\nimport { BaseItemGroup, GroupableInstance } from './../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default VWindow.extend({\n name: 'v-tabs-items',\n\n props: {\n mandatory: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.options.computed.classes.call(this),\n 'v-tabs-items': true,\n }\n },\n isDark (): boolean {\n return this.rootIsDark\n },\n },\n\n methods: {\n getValue (item: GroupableInstance, i: number) {\n return item.id || BaseItemGroup.options.methods.getValue.call(this, item, i)\n },\n },\n})\n","// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(Colorable).extend({\n name: 'v-tabs-slider',\n\n render (h): VNode {\n return h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-tabs-slider',\n }))\n },\n})\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n Colorable,\n Proxyable,\n Themeable\n)\n\ninterface options extends ExtractVue {\n $refs: {\n items: InstanceType\n }\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-tabs',\n\n directives: {\n Resize,\n },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n alignWithTitle: Boolean,\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next',\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n resizeTimeout: 0,\n slider: {\n height: null as null | number,\n left: null as null | number,\n right: null as null | number,\n top: null as null | number,\n width: null as null | number,\n },\n transitionTime: 300,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses,\n }\n },\n isReversed (): boolean {\n return this.$vuetify.rtl && this.vertical\n },\n sliderStyles (): object {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width),\n }\n },\n computedColor (): string {\n if (this.color) return this.color\n else if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n },\n\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize',\n },\n\n mounted () {\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30)\n })\n },\n\n methods: {\n callSlider () {\n if (\n this.hideSlider ||\n !this.$refs.items ||\n !this.$refs.items.selectedItems.length\n ) {\n this.slider.width = 0\n return false\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0]\n /* istanbul ignore if */\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0\n this.slider.left = 0\n return\n }\n const el = activeTab.$el as HTMLElement\n\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n }\n })\n\n return true\n },\n genBar (items: VNode[], slider: VNode | null) {\n const data = {\n style: {\n height: convertToUnit(this.height),\n },\n props: {\n activeClass: this.activeClass,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n value: this.internalValue,\n },\n on: {\n 'call:slider': this.callSlider,\n change: (val: any) => {\n this.internalValue = val\n },\n },\n ref: 'items',\n }\n\n this.setTextColor(this.computedColor, data)\n this.setBackgroundColor(this.backgroundColor, data)\n\n return this.$createElement(VTabsBar, data, [\n this.genSlider(slider),\n items,\n ])\n },\n genItems (items: VNode | null, item: VNode[]) {\n // If user provides items\n // opt to use theirs\n if (items) return items\n\n // If no tabs are provided\n // render nothing\n if (!item.length) return null\n\n return this.$createElement(VTabsItems, {\n props: {\n value: this.internalValue,\n },\n on: {\n change: (val: any) => {\n this.internalValue = val\n },\n },\n }, item)\n },\n genSlider (slider: VNode | null) {\n if (this.hideSlider) return null\n\n if (!slider) {\n slider = this.$createElement(VTabsSlider, {\n props: { color: this.sliderColor },\n })\n }\n\n return this.$createElement('div', {\n staticClass: 'v-tabs-slider-wrapper',\n style: this.sliderStyles,\n }, [slider])\n },\n onResize () {\n if (this._isDestroyed) return\n\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n },\n parseNodes () {\n let items = null\n let slider = null\n const item = []\n const tab = []\n const slot = this.$slots.default || []\n const length = slot.length\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i]\n\n if (vnode.componentOptions) {\n switch (vnode.componentOptions.Ctor.options.name) {\n case 'v-tabs-slider': slider = vnode\n break\n case 'v-tabs-items': items = vnode\n break\n case 'v-tab-item': item.push(vnode)\n break\n // case 'v-tab' - intentionally omitted\n default: tab.push(vnode)\n }\n } else {\n tab.push(vnode)\n }\n }\n\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n return { tab, slider, items, item }\n },\n },\n\n render (h): VNode {\n const { tab, slider, items, item } = this.parseNodes()\n\n return h('div', {\n staticClass: 'v-tabs',\n class: this.classes,\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n }, [\n this.genBar(tab, slider),\n this.genItems(items, item),\n ])\n },\n})\n","import { render, staticRenderFns } from \"./layout.vue?vue&type=template&id=45b21852&\"\nimport script from \"./layout.vue?vue&type=script&lang=js&\"\nexport * from \"./layout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./layout.vue?vue&type=style&index=0&scope=true&lang=css&\"\nimport style1 from \"./layout.vue?vue&type=style&index=1&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\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAppBar,VAppBarNavIcon,VAvatar,VBadge,VBtn,VCard,VCardActions,VContainer,VDivider,VFooter,VIcon,VLayout,VList,VListGroup,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemIcon,VListItemSubtitle,VListItemTitle,VMain,VMenu,VNavigationDrawer,VSnackbar,VSpacer,VTab,VTabs,VTabsItems,VTabsSlider,VTextField})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=style&index=1&lang=css&\"","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('layout')\n","import Vue from 'vue'\n\n/**\n * SSRBootable\n *\n * @mixin\n *\n * Used in layout components (drawer, toolbar, content)\n * to avoid an entry animation when using SSR\n */\nexport default Vue.extend({\n name: 'ssr-bootable',\n\n data: () => ({\n isBooted: false,\n }),\n\n mounted () {\n // Use setAttribute instead of dataset\n // because dataset does not work well\n // with unit tests\n window.requestAnimationFrame(() => {\n this.$el.setAttribute('data-booted', 'true')\n this.isBooted = true\n })\n },\n})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=style&index=0&scope=true&lang=css&\"","// 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 Vue from 'vue'\n\nexport default Vue.extend({\n name: 'transitionable',\n\n props: {\n mode: String,\n origin: String,\n transition: String,\n },\n})\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n this.$slots.default\n ),\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":""}