{"version":3,"sources":["webpack:///./src/components/shared/core/settings/UserSettings.vue","webpack:///src/components/shared/core/settings/UserSettings.vue","webpack:///./src/components/shared/core/settings/UserSettings.vue?2ac0","webpack:///./src/components/shared/core/settings/UserSettings.vue?029d","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/validatable/index.ts","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///./src/mixins/shared/base/settings/dialogToolbarSettingsMixin.js","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VTabs/VTabItem.ts","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VTabs/VTabs.ts"],"names":["attrs","value","tabs","$$v","expression","proxy","_vm","_v","class","model","callback","_c","optionCollapseOnScroll","iconFetchRecords","optionRecordsFetchCount","optionButtonTextStyle","optionButtonOutlined","optionButtonElevation","disabledOptionEnableSearch","iconFeature","key","featureStatusText","disabledOptionEnableFolder","optionEnableFolder","featureName","Execute","scopedSlots","_u","fn","_s","disabledOptionEnableCategory","optionEnableCategory","titleCategory","directives","name","optionEnableWorkflowMyTasks","optionEnableWorkflowProjects","optionEnableAgendaMeetings","optionEnableWebScan","on","staticRenderFns","render","mixins","userSettingsMixin","dialogToolbarSettingsMixin","publicAccessMixin","userMixin","components","BaseButton","BaseTooltipIcon","data","visibleMenu","commandLabelClose","commandNames","close","iconName","iconConfigure","toolbarGradient","indigoGradient","iconFeatureNotAvailable","iconClear","displayRecordOptions","iconFolderRefresh","computed","titleSearch","moduleTitles","Search","titleFolder","Folder","Category","titleMyTasks","Tasks","titleProjects","Projects","titleAgenda","Agenda","titleWebScan","toolbarColor","dialogToolbarStyle","dialogTitleColorClass","undefined","toolbarIconColor","toolbarTitleClass","Text","mdDialogTitleColor","getClassText","toolbarDark","tabsColor","canApplyGradient","optionAppTabs","get","usesAppTabs","set","setUsesAppTabs","appBarCollapseOnScroll","setAppBarCollapseOnScroll","optionSidebarImage","usesSidebarImage","setUsesSidebarImage","optionEnableMiniDrawer","enableMiniDrawer","setEnableMiniDrawer","recordsFetchCount","setRecordsFetchCount","buttonTextStyle","setButtonTextStyle","buttonOutlined","setButtonOutlined","optionButtonRounded","buttonRounded","setButtonRounded","buttonElevation","setButtonElevation","enableCategoryModule","setEnableModuleCategory","optionEnableSearch","enableSearchModule","setEnableModuleSearch","isLicensedModule","moduleNames","enableTasksModule","setEnableModuleTasks","disabledOptionWorkflowMyTasks","enableProjectsModule","setEnableModuleProjects","disabledOptionWorkflowProjects","enableAgendaModule","setEnableModuleAgenda","disabledOptionAgendaMeetings","enableWebScan","console","log","visibleProjects","isPublicAccess","allowedAccessWFProjects","enabledProjects","isAvailableFeature","WFx","methods","$emit","eventNames","save","allowed","_this$featureStatus","status","featureStatus","statusText","_status$supported","supported","licenced","released","iconCheck","component","Vue","extend","props","loading","type","Boolean","String","default","loaderHeight","Number","genProgress","this","getSlot","$createElement","VProgressLinear","absolute","color","height","indeterminate","baseMixins","Colorable","RegistrableInject","Themeable","disabled","error","errorCount","errorMessages","Array","messages","readonly","rules","success","successMessages","validateOnBlur","required","errorBucket","hasColor","hasFocused","hasInput","isFocused","isResetting","lazyValue","valid","computedColor","isDisabled","isDark","appIsDark","hasError","internalErrorMessages","length","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","shouldValidate","genInternalMessages","internalMessages","internalValue","val","_a","form","isInteractive","isReadonly","validations","slice","validationState","watch","handler","newVal","oldVal","deepEqual","validate","deep","$nextTick","setTimeout","beforeMount","created","register","beforeDestroy","unregister","isArray","reset","resetValidation","force","index","rule","push","consoleError","Routable","GroupableFactory","ripple","Object","tabValue","proxyClass","classes","options","call","groupClasses","to","href","$router","resolve","$route","append","replace","click","e","preventDefault","indexOf","detail","$el","blur","toggle","isActive","tabsBar","mandatory","h","tag","generateRouteLink","role","tabindex","keydown","keyCode","keyCodes","enter","bias","c","x","Math","abs","sign","calculateUpdatedOffset","selectedElement","widths","rtl","currentScrollOffset","clientWidth","offsetLeft","content","totalWidth","wrapper","itemOffset","additionalOffset","max","min","calculateCenteredOffset","offsetCentered","BaseSlideGroup","BaseItemGroup","Mobile","Resize","Touch","activeClass","centerActive","nextIcon","prevIcon","showArrows","validator","v","includes","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","window","__cachedNext","genTransition","__cachedPrev","hasAffixes","isMobile","hasNext","hasPrev","$vuetify","scroll","$refs","style","transform","mounted","ResizeObserver","obs","onResize","observe","$on","disconnect","itemsLength","children","setWidths","onScroll","scrollLeft","onFocusin","el","composedPath","vm","items","genNext","slot","$scopedSlots","next","staticClass","onAffixClick","genContent","ref","focusin","genData","genIcon","location","icon","upperLocation","toUpperCase","hasAffix","VIcon","genPrev","prev","VFadeTransition","genWrapper","start","overflowCheck","onTouchStart","move","onTouchMove","end","onTouchEnd","calculateNewOffset","direction","newAbosluteOffset","scrollTo","_isDestroyed","touchstartX","setProperty","diffX","touchmoveX","diffY","touchmoveY","touchstartY","document","documentElement","overflowY","maxScrollOffset","removeProperty","stopPropagation","scrollIntoView","selectedItem","lastItemPosition","getBoundingClientRect","wrapperPosition","right","left","selectedIndex","requestAnimationFrame","provide","slideGroup","PositionableFactory","Proxyable","intersect","active","backgroundColor","backgroundOpacity","bufferValue","query","reverse","rounded","stream","striped","internalLazyValue","isVisible","__cachedBackground","setBackgroundColor","backgroundStyle","__cachedBar","computedTransition","__cachedBarType","__cachedIndeterminate","__cachedDeterminate","__cachedBuffer","styles","width","convertToUnit","normalizedValue","genProgressBar","__cachedStream","setTextColor","normalizedBuffer","parseFloat","opacity","isReversed","fixed","reactive","themeClasses","VSlideXTransition","normalize","$listeners","change","genListeners","listeners","onClick","offsetX","onObserve","entries","observer","isIntersecting","bottom","top","mapGetters","createNamespacedHelpers","dialogTitleColor","Color","variantType","variantNumber","getClassColor","VCardActions","createSimpleFunctional","VCardSubtitle","VCardText","VCardTitle","VCard","functional","Ripple","indeterminateIcon","onIcon","offIcon","dark","light","def","center","mergeData","input","wrapInArray","forEach","f","windowGroup","continuous","showArrowsOnHover","touch","touchless","vertical","changedByDelimiters","internalHeight","transitionHeight","transitionCount","isBooted","isReverse","axis","internalReverse","hasActiveItems","find","item","internalIndex","findIndex","i","getValue","updateReverse","genDefaultSlot","genContainer","genControlIcons","lang","t","_b","VBtn","large","icons","getNextIndex","nextIndex","getPrevIndex","prevIndex","lastIndex","VWindow","rootIsDark","id","Loadable","VSheet","flat","hover","img","link","raised","isClickable","background","Selectable","inset","VInput","switchData","genSwitch","genLabel","title","switchAttrs","attrs$","genInput","genRipple","onSwipeLeft","onSwipeRight","VFabTransition","VProgressCircular","size","onChange","onKeydown","focused","for","ctx","newData","functionalThemeClasses","position","VLabel","genChildren","map","genMessage","message","VMessages","BindsAttrs","Validatable","inheritAttrs","appendIcon","dense","hideDetails","hideSpinButtons","hint","label","persistentHint","prependIcon","hasMouseDown","showDetails","isLabelActive","isDirty","computedId","_uid","hasDetails","messagesToDisplay","hasHint","hasLabel","$slots","$_modelEvent","validation","validationResult","filter","beforeCreate","$options","event","genPrependSlot","genControl","genAppendSlot","genInputSlot","genMessages","cb","extraData","eventName","kebabCase","hasListener","listeners$","localeKey","prepend","prependInner","appendOuter","clear","mouseup","mousedown","onMouseDown","onMouseUp","genSlot","handleGesture","touchendX","touchendY","dirRatio","minDistance","offsetY","up","down","touchstart","changedTouches","clientX","clientY","assign","touchend","touchmove","createHandlers","inserted","binding","vnode","target","parent","parentElement","passive","handlers","_touchHandlers","context","keys","addEventListener","unbind","removeEventListener","Bootable","reverseTransition","transition","inTransition","genWindowItem","onAfterTransition","onBeforeTransition","clientHeight","onTransitionCancelled","onEnter","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","showLazyContent","VWindowItem","domProps","mobileBreakpoint","breakpoint","isNaN","mobile","mobileWidth","parseInt","isNumber","$attrs","hasOwnProperty","deprecate","SSRBootable","callSlider","onRouteChange","newPath","path","oldPath","hasNew","hasOld","alignWithTitle","centered","fixedTabs","grow","hideSlider","iconsAndText","optional","sliderColor","sliderSize","slider","transitionTime","sliderStyles","selectedItems","activeTab","scrollHeight","offsetWidth","offsetTop","scrollWidth","genBar","VTabsBar","genSlider","genItems","VTabsItems","VTabsSlider","clearTimeout","parseNodes","tab","componentOptions","Ctor","modifiers","quiet"],"mappings":"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","file":"js/chunk-690fc7b4.87ee9785.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":_vm.toolbarColor,\"dark\":_vm.toolbarDark},scopedSlots:_vm._u([{key:\"img\",fn:function({ props }){return [(_vm.canApplyGradient)?_c('v-img',_vm._b({attrs:{\"gradient\":_vm.toolbarGradient}},'v-img',props,false)):_vm._e()]}},{key:\"extension\",fn:function(){return [_c('v-tabs',{attrs:{\"show-arrows\":\"\",\"fixed-tabs\":\"\",\"color\":_vm.tabsColor},model:{value:(_vm.tabs),callback:function ($$v) {_vm.tabs=$$v},expression:\"tabs\"}},[_c('v-tabs-slider'),_c('v-tab',[_vm._v(\"App Bar\")]),_c('v-tab',[_vm._v(\"Side Bar\")]),_c('v-tab',[_vm._v(\"Records\")]),_c('v-tab',[_vm._v(\"Buttons\")]),_c('v-tab',[_vm._v(\"Features\")])],1)]},proxy:true}])},[(_vm.iconName)?_c('v-avatar',[_c('v-icon',{attrs:{\"color\":_vm.toolbarIconColor}},[_vm._v(_vm._s(_vm.iconName))])],1):_vm._e(),_c('v-toolbar-title',{class:_vm.toolbarTitleClass},[_vm._t(\"default\",function(){return [_vm._v(\"User Settings\")]})],2)],1),_c('v-card-text',[_c('v-tabs-items',{model:{value:(_vm.tabs),callback:function ($$v) {_vm.tabs=$$v},expression:\"tabs\"}},[_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-list',[_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.optionAppTabs),callback:function ($$v) {_vm.optionAppTabs=$$v},expression:\"optionAppTabs\"}})],1),_c('v-list-item-title',[_vm._v(\"Use Application Tabs\")])],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.optionCollapseOnScroll),callback:function ($$v) {_vm.optionCollapseOnScroll=$$v},expression:\"optionCollapseOnScroll\"}})],1),_c('v-list-item-title',[_vm._v(\"Collapse On Scroll\")])],1)],1)],1)],1),_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-list',[_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.optionSidebarImage),callback:function ($$v) {_vm.optionSidebarImage=$$v},expression:\"optionSidebarImage\"}})],1),_c('v-list-item-title',[_vm._v(\"Sidebar Image\")])],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.optionEnableMiniDrawer),callback:function ($$v) {_vm.optionEnableMiniDrawer=$$v},expression:\"optionEnableMiniDrawer\"}})],1),_c('v-list-item-title',[_vm._v(\"Enable Mini Sidebar\")])],1)],1)],1)],1),_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-list',[_c('v-list-item',[_c('v-list-item-action',[_c('v-select',{attrs:{\"label\":\"Fetch Records\",\"prepend-icon\":_vm.iconFetchRecords,\"items\":_vm.displayRecordOptions},model:{value:(_vm.optionRecordsFetchCount),callback:function ($$v) {_vm.optionRecordsFetchCount=$$v},expression:\"optionRecordsFetchCount\"}})],1)],1)],1)],1)],1),_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-list',[_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.optionButtonTextStyle),callback:function ($$v) {_vm.optionButtonTextStyle=$$v},expression:\"optionButtonTextStyle\"}})],1),_c('v-list-item-title',[_vm._v(\"Text Style\")])],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.optionButtonOutlined),callback:function ($$v) {_vm.optionButtonOutlined=$$v},expression:\"optionButtonOutlined\"}})],1),_c('v-list-item-title',[_vm._v(\"Outlined\")])],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.optionButtonRounded),callback:function ($$v) {_vm.optionButtonRounded=$$v},expression:\"optionButtonRounded\"}})],1),_c('v-list-item-title',[_vm._v(\"Rounded\")])],1),_c('v-list-item',[_c('v-slider',{attrs:{\"max\":\"24\",\"min\":\"0\",\"label\":\"Elevation\"},model:{value:(_vm.optionButtonElevation),callback:function ($$v) {_vm.optionButtonElevation=$$v},expression:\"optionButtonElevation\"}})],1)],1)],1)],1),_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-list',[_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":_vm.disabledOptionEnableSearch},model:{value:(_vm.optionEnableSearch),callback:function ($$v) {_vm.optionEnableSearch=$$v},expression:\"optionEnableSearch\"}})],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.titleSearch))]),_c('v-list-item-action',[_c('base-tooltip-icon',{attrs:{\"top\":\"\",\"icon-name\":_vm.iconFeature(_vm.featureName.Execute)},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.featureStatusText(_vm.featureName.Execute))+\" \")]},proxy:true}])})],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":_vm.disabledOptionEnableFolder},model:{value:(_vm.optionEnableFolder),callback:function ($$v) {_vm.optionEnableFolder=$$v},expression:\"optionEnableFolder\"}})],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.titleFolder))]),_c('v-list-item-action',[_c('base-tooltip-icon',{attrs:{\"top\":\"\",\"icon-name\":_vm.iconFeature(_vm.featureName.Execute)},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.featureStatusText(_vm.featureName.Execute))+\" \")]},proxy:true}])})],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":_vm.disabledOptionEnableCategory},model:{value:(_vm.optionEnableCategory),callback:function ($$v) {_vm.optionEnableCategory=$$v},expression:\"optionEnableCategory\"}})],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.titleCategory))]),_c('v-list-item-action',[_c('base-tooltip-icon',{attrs:{\"top\":\"\",\"icon-name\":_vm.iconFeature(_vm.featureName.Execute)},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.featureStatusText(_vm.featureName.Execute))+\" \")]},proxy:true}])})],1)],1),_c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isPublicAccess),expression:\"!isPublicAccess\"}]},[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":!_vm.isAvailableFeature(_vm.featureName.WFx)},model:{value:(_vm.optionEnableWorkflowMyTasks),callback:function ($$v) {_vm.optionEnableWorkflowMyTasks=$$v},expression:\"optionEnableWorkflowMyTasks\"}})],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.titleMyTasks))]),_c('v-list-item-action',[_c('base-tooltip-icon',{attrs:{\"top\":\"\",\"icon-name\":_vm.iconFeature(_vm.featureName.WFx)},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.featureStatusText(_vm.featureName.WFx))+\" \")]},proxy:true}])})],1)],1),_c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visibleProjects),expression:\"visibleProjects\"}]},[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":!_vm.enabledProjects},model:{value:(_vm.optionEnableWorkflowProjects),callback:function ($$v) {_vm.optionEnableWorkflowProjects=$$v},expression:\"optionEnableWorkflowProjects\"}})],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.titleProjects))]),_c('v-list-item-action',[_c('base-tooltip-icon',{attrs:{\"top\":\"\",\"icon-name\":_vm.iconFeature(_vm.featureName.WFx, _vm.allowedAccessWFProjects)},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.featureStatusText( _vm.featureName.WFx, _vm.allowedAccessWFProjects ))+\" \")]},proxy:true}])})],1)],1),_c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isPublicAccess),expression:\"!isPublicAccess\"}]},[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":!_vm.isAvailableFeature(_vm.featureName.LSx)},model:{value:(_vm.optionEnableAgendaMeetings),callback:function ($$v) {_vm.optionEnableAgendaMeetings=$$v},expression:\"optionEnableAgendaMeetings\"}})],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.titleAgenda))]),_c('v-list-item-action',[_c('base-tooltip-icon',{attrs:{\"top\":\"\",\"icon-name\":_vm.iconFeature(_vm.featureName.LSx)},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.featureStatusText(_vm.featureName.LSx))+\" \")]},proxy:true}])})],1)],1),_c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isPublicAccess),expression:\"!isPublicAccess\"}]},[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":true},model:{value:(_vm.optionEnableWebScan),callback:function ($$v) {_vm.optionEnableWebScan=$$v},expression:\"optionEnableWebScan\"}})],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.titleWebScan))]),_c('v-list-item-action',[_c('base-tooltip-icon',{attrs:{\"top\":\"\",\"icon-name\":_vm.iconFeature(_vm.featureName.WebScan)},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.featureStatusText(_vm.featureName.WebScan))+\" \")]},proxy:true}])})],1)],1)],1)],1)],1)],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('base-button',{on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.commandLabelClose))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./UserSettings.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!./UserSettings.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserSettings.vue?vue&type=template&id=88edc54a\"\nimport script from \"./UserSettings.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettings.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","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\nimport { getSlot } from '../../util/helpers'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return getSlot(this, 'progress') || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n readonly: {\n type: Boolean,\n default: null,\n },\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n validateOnBlur: Boolean,\n value: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled ?? (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly ?? (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeDestroy () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\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 { getSlot, 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 tabValue: {\n required: false,\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 if (this.tabValue != null) return this.tabValue\n\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: this.disabled ? -1 : 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, getSlot(this))\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, getSlot } 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: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'never',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\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 // Always hide arrows\n case 'never': return false\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 mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n obs.observe(this.$refs.content)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n } else {\n let itemsLength = 0\n this.$on('hook:beforeUpdate', () => {\n itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\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 : getSlot(this, '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 }, getSlot(this))\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 : getSlot(this, '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","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","// design\r\nimport { Color } from \"@/design/colors/Color\";\r\n\r\n// vuex/store\r\nimport { createNamespacedHelpers } from \"vuex\";\r\nconst { mapGetters } = createNamespacedHelpers(\"solution\");\r\n\r\n/**\r\n * Dialog Toolbar Settings Mixin encapsulate Settings functionality of dialog Toolbar\r\n */\r\nexport const dialogToolbarSettingsMixin = {\r\n computed: {\r\n ...mapGetters({\r\n dialogToolbarStyle: \"dialogToolbarStyle\",\r\n dialogTitleColor: \"dialogTitleColor\"\r\n }),\r\n /**\r\n * Get Material Design Dialog Title Text Color\r\n * @returns {Color}\r\n */\r\n mdDialogTitleColor() {\r\n return new Color(\r\n this.dialogTitleColor.name,\r\n this.dialogTitleColor.variantType,\r\n this.dialogTitleColor.variantNumber\r\n );\r\n },\r\n /**\r\n * Get Dialog Title Text Color Class\r\n * @returns {string|*}\r\n */\r\n dialogTitleColorClass() {\r\n return this.mdDialogTitleColor.getClassColor();\r\n }\r\n }\r\n};\r\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\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","import './VSimpleCheckbox.sass'\n\nimport Ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-simple-checkbox',\n\n functional: true,\n\n directives: {\n Ripple,\n },\n\n props: {\n ...Colorable.options.props,\n ...Themeable.options.props,\n disabled: Boolean,\n ripple: {\n type: Boolean,\n default: true,\n },\n value: Boolean,\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n },\n\n render (h, { props, data, listeners }): VNode {\n const children = []\n let icon = props.offIcon\n if (props.indeterminate) icon = props.indeterminateIcon\n else if (props.value) icon = props.onIcon\n\n children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n props: {\n disabled: props.disabled,\n dark: props.dark,\n light: props.light,\n },\n }), icon))\n\n if (props.ripple && !props.disabled) {\n const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n staticClass: 'v-input--selection-controls__ripple',\n directives: [{\n def: Ripple,\n name: 'ripple',\n value: { center: true },\n }] as VNodeDirective[],\n }))\n\n children.push(ripple)\n }\n\n return h('div',\n mergeData(data, {\n class: {\n 'v-simple-checkbox': true,\n 'v-simple-checkbox--disabled': props.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (data.on && data.on.input && !props.disabled) {\n wrapInArray(data.on.input).forEach(f => f(!props.value))\n }\n },\n },\n }), [\n h('div', { staticClass: 'v-input--selection-controls__input' }, children),\n ])\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'\nimport { getSlot } from '../../util/helpers'\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 getSlot(this)\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","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n getSlot(this),\n ])\n },\n})\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { getSlot, keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : getSlot(this, 'progress') || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props, data } = ctx\n const newData = mergeData({\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }, data)\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, newData), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n attrs: {\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","// Components\nimport VWindow from './VWindow'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n GroupableFactory('windowGroup', 'v-window-item', 'v-window')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n windowGroup: InstanceType\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-window-item',\n\n directives: {\n Touch,\n },\n\n props: {\n disabled: Boolean,\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n value: {\n required: false,\n },\n },\n\n data () {\n return {\n isActive: false,\n inTransition: false,\n }\n },\n\n computed: {\n classes (): object {\n return this.groupClasses\n },\n computedTransition (): string | boolean {\n if (!this.windowGroup.internalReverse) {\n return typeof this.transition !== 'undefined'\n ? this.transition || ''\n : this.windowGroup.computedTransition\n }\n\n return typeof this.reverseTransition !== 'undefined'\n ? this.reverseTransition || ''\n : this.windowGroup.computedTransition\n },\n },\n\n methods: {\n genDefaultSlot () {\n return getSlot(this)\n },\n genWindowItem () {\n return this.$createElement('div', {\n staticClass: 'v-window-item',\n class: this.classes,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: this.$listeners,\n }, this.genDefaultSlot())\n },\n onAfterTransition () {\n if (!this.inTransition) {\n return\n }\n\n // Finalize transition state.\n this.inTransition = false\n if (this.windowGroup.transitionCount > 0) {\n this.windowGroup.transitionCount--\n\n // Remove container height if we are out of transition.\n if (this.windowGroup.transitionCount === 0) {\n this.windowGroup.transitionHeight = undefined\n }\n }\n },\n onBeforeTransition () {\n if (this.inTransition) {\n return\n }\n\n // Initialize transition state here.\n this.inTransition = true\n if (this.windowGroup.transitionCount === 0) {\n // Set initial height for height transition.\n this.windowGroup.transitionHeight = convertToUnit(this.windowGroup.$el.clientHeight)\n }\n this.windowGroup.transitionCount++\n },\n onTransitionCancelled () {\n this.onAfterTransition() // This should have the same path as normal transition end.\n },\n onEnter (el: HTMLElement) {\n if (!this.inTransition) {\n return\n }\n\n this.$nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!this.computedTransition || !this.inTransition) {\n return\n }\n\n // Set transition target height.\n this.windowGroup.transitionHeight = convertToUnit(el.clientHeight)\n })\n },\n },\n\n render (h): VNode {\n return h('transition', {\n props: {\n name: this.computedTransition,\n },\n on: {\n // Handlers for enter windows.\n beforeEnter: this.onBeforeTransition,\n afterEnter: this.onAfterTransition,\n enterCancelled: this.onTransitionCancelled,\n\n // Handlers for leave windows.\n beforeLeave: this.onBeforeTransition,\n afterLeave: this.onAfterTransition,\n leaveCancelled: this.onTransitionCancelled,\n\n // Enter handler for height transition.\n enter: this.onEnter,\n },\n }, this.showLazyContent(() => [this.genWindowItem()]))\n },\n})\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n/* @vue/component */\nexport default VWindowItem.extend({\n name: 'v-tab-item',\n\n props: {\n id: String,\n },\n\n methods: {\n genWindowItem () {\n const item = VWindowItem.options.methods.genWindowItem.call(this)\n\n item.data!.domProps = item.data!.domProps || {}\n item.data!.domProps.id = this.id || this.value\n\n return item\n },\n },\n})\n","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'mobile',\n\n props: {\n mobileBreakpoint: {\n type: [Number, String] as PropType,\n default (): number | BreakpointName | undefined {\n // Avoid destroying unit\n // tests for users\n return this.$vuetify\n ? this.$vuetify.breakpoint.mobileBreakpoint\n : undefined\n },\n validator: v => (\n !isNaN(Number(v)) ||\n ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n ),\n },\n },\n\n computed: {\n isMobile (): boolean {\n const {\n mobile,\n width,\n name,\n mobileBreakpoint,\n } = this.$vuetify.breakpoint\n\n // Check if local mobileBreakpoint matches\n // the application's mobileBreakpoint\n if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n const isNumber = !isNaN(mobileWidth)\n\n return isNumber\n ? width < mobileWidth\n : name === this.mobileBreakpoint\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n deprecate('mobile-break-point', 'mobile-breakpoint', this)\n }\n },\n})\n","// 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 './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, getSlot } 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 if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n }\n\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 = getSlot(this) || []\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"],"sourceRoot":""}