{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VSlider/VSlider.ts","webpack:///./src/modules/application/components/TheApplicationConfigDialog.vue","webpack:///src/modules/application/components/TheApplicationConfigDialog.vue","webpack:///./src/modules/application/components/TheApplicationConfigDialog.vue?7f57","webpack:///./src/modules/application/components/TheApplicationConfigDialog.vue?7c16","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VTabs/VTabItem.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack:///../../../src/components/VWindow/VWindow.ts"],"names":["BaseItemGroup","extend","name","provide","expansionPanels","this","props","accordion","Boolean","disabled","flat","hover","focusable","inset","popout","readonly","tile","computed","classes","options","call","created","$attrs","hasOwnProperty","breaking","Array","isArray","value","length","methods","updateItem","item","index","getValue","nextValue","isActive","toggleMethod","nextIsActive","breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","val","upperFirst","alignValidator","str","includes","alignProps","type","String","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","breakpoint","replace","toLowerCase","cache","Map","Vue","functional","tag","dense","noGutters","render","h","data","children","cacheKey","classList","get","forEach","push","set","mergeData","staticClass","class","baseMixins","mixins","Bootable","GroupableFactory","directives","Touch","reverseTransition","undefined","transition","required","inTransition","groupClasses","computedTransition","windowGroup","internalReverse","genDefaultSlot","$slots","genWindowItem","$createElement","on","$listeners","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","convertToUnit","$el","clientHeight","onTransitionCancelled","onEnter","el","$nextTick","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","enter","showLazyContent","Colorable","RegistrableInject","parentIsActive","expansionPanel","watch","immediate","handler","oldVal","isBooted","registerContent","beforeDestroy","unregisterContent","VExpandTransition","setBackgroundColor","color","getSlot","breakpointProps","Number","offsetProps","orderProps","col","offset","order","cols","alignSelf","parent","hasColClasses","some","startsWith","VInput","Loadable","ClickOutside","inverseLabel","max","min","step","thumbColor","thumbLabel","v","thumbSize","tickLabels","ticks","tickSize","trackColor","trackFillColor","vertical","app","oldValue","thumbPressed","mouseTimeout","isFocused","noClick","startOffset","internalValue","lazyValue","isNaN","minValue","roundValue","Math","maxValue","$emit","trackTransition","showTicks","stepNumeric","parseFloat","inputWidth","trackFillStyles","startDir","endDir","valueDir","start","$vuetify","rtl","end","isDisabled","trackStyles","numTicks","ceil","showThumbLabel","$scopedSlots","computedTrackColor","isDark","validationState","computedTrackFillColor","computedColor","computedThumbColor","parsed","mounted","document","querySelector","consoleWarn","genLabel","slider","genSlider","unshift","genProgress","isReadonly","themeClasses","onBlur","click","onSliderClick","mousedown","onSliderMouseDown","touchstart","genChildren","genInput","genTrackContainer","genSteps","genThumbContainer","onFocus","attrs","id","computedId","tabindex","style","ref","range","createRange","direction","offsetDirection","reverse","map","width","filled","key","height","valueWidth","genThumb","thumbLabelContent","genThumbLabelContent","genThumbLabel","setTextColor","getThumbContainerStyles","role","label","focus","blur","keydown","onKeyDown","content","size","transform","VScaleTransition","origin","e","preventDefault","target","_a","matches","domRect","getBoundingClientRect","touch","touches","clientY","top","clientX","left","window","clearTimeout","setTimeout","mouseUpOptions","passiveSupported","passive","capture","mouseMoveOptions","isTouchEvent","onMouseMove","addEventListener","addOnceEventListener","onSliderMouseUp","stopPropagation","removeEventListener","deepEqual","parseMouseMove","isInteractive","parseKeyDown","thumb","$refs","track","trackStart","trackLength","clickOffset","clickPos","pageup","keyCodes","pagedown","home","right","down","up","keyCode","steps","increase","multiplier","shiftKey","ctrlKey","trimmedStep","toString","trim","decimals","indexOf","newValue","round","toFixed","_c","model","callback","_vm","tab","expression","inactivityLimit","$$v","isShared","persistentHomeArea","ipcOptions","ipcMode","ipcHostname","expandedAddon","_l","idx","scopedSlots","$event","enableAddon","proxy","addon","disableAddon","_v","icon_url","description","dialog","canSave","staticRenderFns","aid","isTrial","components","CopyToClipboard","DashboardLoader","savingSettings","sharedEditable","addons","loaders","configLoading","limitHint","saveConfig","put","NCU","shared","inactivity_limit","home_mount_type","shared_editable","ipc_mode","then","snackBarText","snackBarIcon","catch","console","finally","fetchConfig","sendAddonUpdate","patch","component","VGrid","filter","join","domProps","Grid","fluid","concat","Measurable","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","genContent","measurableStyles","VResponsive","hasIntersect","Themeable","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","position","sizes","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","mode","loadImage","init","entries","observer","isIntersecting","lazyImg","Image","pollForSize","onLoad","getSrc","endsWith","naturalHeight","onError","onload","decode","err","message","onerror","img","timeout","poll","complete","_b","__genPlaceholder","slot","placeholder","appear","node","modifiers","once","handleGesture","wrapper","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","offsetX","offsetY","abs","event","changedTouches","assign","touchend","touchmove","touchmoveX","touchmoveY","move","createHandlers","inserted","binding","vnode","parentElement","handlers","_touchHandlers","context","_uid","eventName","unbind","VWindowItem","ripple","disableIconRotate","expandIcon","hideActions","hasMousedown","registerHeader","unregisterHeader","onClick","genIcon","icon","VIcon","VFadeTransition","mouseup","open","RegistrableProvide","header","vm","$on","detail","toggle","activeClass","continuous","mandatory","nextIcon","prevIcon","showArrows","showArrowsOnHover","touchless","changedByDelimiters","internalHeight","isReverse","axis","hasActiveItems","items","find","hasNext","internalIndex","hasPrev","findIndex","i","updateReverse","requestAnimationFrame","genContainer","genControlIcons","lang","t","VBtn","large","icons","prev","next","getNextIndex","nextIndex","getPrevIndex","prevIndex","lastIndex","itemsLength"],"mappings":"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","file":"static/js/chunk-3cecfe4a.4e756246.js","sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\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 } 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 this.$slots.default\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","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this)),\n ]),\n ]))\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n ticks: {\n type: [Boolean, String] as PropType,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\n },\n trackFillStyles (): Partial {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n immediate: true,\n },\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n mousedown: this.onSliderMouseDown,\n touchstart: this.onSliderMouseDown,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.$attrs['aria-label'] || this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent | TouchEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"width\":\"600\",\"persistent\":\"\",\"scrollable\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticClass:\"w-100\"},'div',attrs,false),on),[_vm._t(\"default\")],2)]}}],null,true),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"pa-0\"},[_c('v-card-title',{staticClass:\"pa-0\"},[_c('v-tabs',{attrs:{\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\"Application settings\")]),_c('v-tab',[_vm._v(\"Add-ons\")])],1)],1),_c('v-card-text',[_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[(_vm.configLoading)?_c('dashboard-loader',{staticClass:\"mt-7\"},[_vm._v(\"Loading settings\")]):_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',[_c('v-slider',{staticClass:\"mt-10\",attrs:{\"label\":\"Inactivity limit\",\"thumb-label\":\"always\",\"hint\":_vm.limitHint,\"max\":\"24\",\"min\":\"1\",\"persistent-hint\":\"\",\"disabled\":_vm.isTrial},model:{value:(_vm.inactivityLimit),callback:function ($$v) {_vm.inactivityLimit=$$v},expression:\"inactivityLimit\"}}),_c('v-checkbox',{attrs:{\"hint\":\"In shared mode multiple users can connect to the same application, allowing collaborative editing in certain applications (e.g. JupyterLab >= 4.0). Currently doesn't support querying tables.\",\"label\":\"Run in shared mode\",\"disabled\":!_vm.sharedEditable,\"persistent-hint\":\"\"},model:{value:(_vm.isShared),callback:function ($$v) {_vm.isShared=$$v},expression:\"isShared\"}}),_c('v-checkbox',{attrs:{\"hint\":\"Persisting session data enables you to retain data in the application's home folder (notably application-specific settings) between restarts. However, not persisting this data will usually come with extra performance benefit.\",\"label\":\"Persist sessions data in home area between restarts\",\"persistent-hint\":\"\"},model:{value:(_vm.persistentHomeArea),callback:function ($$v) {_vm.persistentHomeArea=$$v},expression:\"persistentHomeArea\"}}),_c('v-select',{staticClass:\"mt-10\",attrs:{\"items\":_vm.ipcOptions,\"label\":\"Other applications may connect to this app from\",\"hint\":\"IPC mode signal the Inter-Pod Communication mode for the app: “instance“ means any app in the same instance may connect to this app, “space“ means any app in the same space, and so on. The value “none“ means that no other application can connect to this app.\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.ipcMode),callback:function ($$v) {_vm.ipcMode=$$v},expression:\"ipcMode\"}}),(_vm.ipcMode !== 'none')?_c('v-alert',{staticClass:\"mt-3 mb-0\",attrs:{\"text\":\"\",\"color\":\"info\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-icon',{attrs:{\"color\":\"info\",\"right\":\"\"}},[_vm._v(\"mdi-connection\")])],1),_c('v-col',{staticClass:\"grow\"},[_c('p',{staticClass:\"mb-4\"},[_vm._v(\"Hostname of this application will be:\")]),_c('div',[_c('code',{staticClass:\"pl-5 py-3\"},[_vm._v(\" \"+_vm._s(_vm.ipcHostname)+\" \"),_c('copy-to-clipboard',{attrs:{\"textToCopy\":_vm.ipcHostname,\"buttonName\":\"copy to clipboard\",\"iconButton\":true}})],1)])])],1)],1):_vm._e()],1)],1)],1),_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',{staticClass:\"px-1\"},[_c('v-expansion-panels',{model:{value:(_vm.expandedAddon),callback:function ($$v) {_vm.expandedAddon=$$v},expression:\"expandedAddon\"}},_vm._l((_vm.addons),function(addon,idx){return _c('v-expansion-panel',{key:idx},[_c('v-expansion-panel-header',{attrs:{\"disable-icon-rotate\":\"\"},scopedSlots:_vm._u([(!addon.enabled)?{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"text\":\"\",\"dense\":\"\",\"color\":\"primary\",\"disabled\":!addon.editable,\"loading\":_vm.loaders.includes(addon.name)},on:{\"click\":function($event){$event.stopPropagation();return _vm.enableAddon(addon)}}},[_vm._v(\" Add \")])]},proxy:true}:(addon.enabled && !addon.editable)?{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"text\":\"\",\"dense\":\"\",\"color\":\"error\",\"disabled\":\"\"}},[_vm._v(\"Required\")])]},proxy:true}:{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"text\":\"\",\"dense\":\"\",\"loading\":_vm.loaders.includes(addon.name)},on:{\"click\":function($event){$event.stopPropagation();return _vm.disableAddon(addon)}}},[_vm._v(\"Remove\")])]},proxy:true}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(addon.name)+\" \"),(_vm.expandedAddon === idx)?_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-chevron-up\")]):_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-chevron-down\")])],1),_c('v-spacer')],1),_c('v-expansion-panel-content',[_c('v-container',[(addon.icon_url)?_c('div',{staticClass:\"float-left mr-3\"},[_c('v-img',{attrs:{\"max-width\":\"4em\",\"src\":addon.icon_url}})],1):_vm._e(),_c('div',{staticClass:\"caption\",domProps:{\"innerHTML\":_vm._s(addon.description)}}),(addon.doc_link)?_c('div',{staticClass:\"text-right mt-2\"},[_c('a',{attrs:{\"href\":addon.doc_link,\"target\":\"_blank\"}},[_vm._v(\"Go to documentation\")])]):_vm._e()])],1)],1)}),1)],1)],1)],1)],1)],1),(_vm.tab === 1)?_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"secondary\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"Close\")])],1):_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"loading\":_vm.savingSettings,\"disabled\":!_vm.canSave},on:{\"click\":_vm.saveConfig}},[_vm._v(\"Save\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheApplicationConfigDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheApplicationConfigDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheApplicationConfigDialog.vue?vue&type=template&id=774630ac&\"\nimport script from \"./TheApplicationConfigDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./TheApplicationConfigDialog.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","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, getSlot(this))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","// 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","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions') ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from 'vuetify/types'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-window',\n\n directives: { Touch },\n\n provide (): object {\n return {\n windowGroup: this,\n }\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active',\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true,\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object as PropType,\n touchless: Boolean,\n value: {\n required: false,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n changedByDelimiters: false,\n internalHeight: undefined as undefined | string, // This can be fixed by child class.\n transitionHeight: undefined as undefined | string, // Intermediate height during transition.\n transitionCount: 0, // Number of windows in transition state.\n isBooted: false,\n isReverse: false,\n }\n },\n\n computed: {\n isActive (): boolean {\n return this.transitionCount > 0\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover,\n }\n },\n computedTransition (): string {\n if (!this.isBooted) return ''\n\n const axis = this.vertical ? 'y' : 'x'\n const reverse = this.internalReverse ? !this.isReverse : this.isReverse\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n },\n hasActiveItems (): boolean {\n return Boolean(\n this.items.find(item => !item.disabled)\n )\n },\n hasNext (): boolean {\n return this.continuous || this.internalIndex < this.items.length - 1\n },\n hasPrev (): boolean {\n return this.continuous || this.internalIndex > 0\n },\n internalIndex (): number {\n return this.items.findIndex((item, i) => {\n return this.internalValue === this.getValue(item, i)\n })\n },\n internalReverse (): boolean {\n return this.$vuetify.rtl ? !this.reverse : this.reverse\n },\n },\n\n watch: {\n internalIndex (val, oldVal) {\n this.isReverse = this.updateReverse(val, oldVal)\n },\n },\n\n mounted () {\n window.requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n genDefaultSlot () {\n return this.$slots.default\n },\n genContainer (): VNode {\n const children = [this.genDefaultSlot()]\n\n if (this.showArrows) {\n children.push(this.genControlIcons())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive,\n },\n style: {\n height: this.internalHeight || this.transitionHeight,\n },\n }, children)\n },\n genIcon (\n direction: 'prev' | 'next',\n icon: string,\n click: () => void\n ) {\n const on = {\n click: (e: Event) => {\n e.stopPropagation()\n this.changedByDelimiters = true\n click()\n },\n }\n const attrs = {\n 'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`),\n }\n const children = this.$scopedSlots[direction]?.({\n on,\n attrs,\n }) ?? [this.$createElement(VBtn, {\n props: { icon: true },\n attrs,\n on,\n }, [\n this.$createElement(VIcon, {\n props: { large: true },\n }, icon),\n ])]\n\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`,\n }, children)\n },\n genControlIcons () {\n const icons = []\n\n const prevIcon = this.$vuetify.rtl\n ? this.nextIcon\n : this.prevIcon\n\n /* istanbul ignore else */\n if (\n this.hasPrev &&\n prevIcon &&\n typeof prevIcon === 'string'\n ) {\n const icon = this.genIcon('prev', prevIcon, this.prev)\n icon && icons.push(icon)\n }\n\n const nextIcon = this.$vuetify.rtl\n ? this.prevIcon\n : this.nextIcon\n\n /* istanbul ignore else */\n if (\n this.hasNext &&\n nextIcon &&\n typeof nextIcon === 'string'\n ) {\n const icon = this.genIcon('next', nextIcon, this.next)\n icon && icons.push(icon)\n }\n\n return icons\n },\n getNextIndex (index: number): number {\n const nextIndex = (index + 1) % this.items.length\n const item = this.items[nextIndex]\n\n if (item.disabled) return this.getNextIndex(nextIndex)\n\n return nextIndex\n },\n getPrevIndex (index: number): number {\n const prevIndex = (index + this.items.length - 1) % this.items.length\n const item = this.items[prevIndex]\n\n if (item.disabled) return this.getPrevIndex(prevIndex)\n\n return prevIndex\n },\n next () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasNext) return\n\n const nextIndex = this.getNextIndex(this.internalIndex)\n const item = this.items[nextIndex]\n\n this.internalValue = this.getValue(item, nextIndex)\n },\n prev () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasPrev) return\n\n const lastIndex = this.getPrevIndex(this.internalIndex)\n const item = this.items[lastIndex]\n\n this.internalValue = this.getValue(item, lastIndex)\n },\n updateReverse (val: number, oldVal: number) {\n const itemsLength = this.items.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) return val < oldVal\n\n if (val === lastIndex && oldVal === 0) {\n return true\n } else if (val === 0 && oldVal === lastIndex) {\n return false\n } else {\n return val < oldVal\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: [] as VNodeDirective[],\n }\n\n if (!this.touchless) {\n const value = this.touch || {\n left: () => {\n this.$vuetify.rtl ? this.prev() : this.next()\n },\n right: () => {\n this.$vuetify.rtl ? this.next() : this.prev()\n },\n end: (e: TouchEvent) => {\n e.stopPropagation()\n },\n start: (e: TouchEvent) => {\n e.stopPropagation()\n },\n }\n\n data.directives.push({\n name: 'touch',\n value,\n })\n }\n\n return h('div', data, [this.genContainer()])\n },\n})\n"],"sourceRoot":""}