{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/components/VToolbar/index.ts","webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VForm/VForm.ts","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///./src/modules/home_stay/HotelCustomerInformation/edit.vue","webpack:///src/modules/home_stay/HotelCustomerInformation/edit.vue","webpack:///./src/modules/home_stay/HotelCustomerInformation/edit.vue?a51f","webpack:///./src/modules/home_stay/HotelCustomerInformation/edit.vue?90ec","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/define-built-ins.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/modules/es.map.constructor.js","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///../../../src/mixins/menuable/index.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","props","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","extend","name","functional","tag","dense","Boolean","noGutters","render","h","data","children","cacheKey","classList","get","forEach","value","push","set","mergeData","staticClass","class","VSheet","mixins","Themeable","fixedHeader","height","Number","computed","classes","this","$slots","top","bottom","themeClasses","methods","genWrapper","wrapper","$createElement","style","convertToUnit","VProgressCircular","VToolbarTitle","createSimpleFunctional","VToolbarItems","VToolbar","Colorable","Toggleable","PositionableFactory","app","centered","contentClass","multiLine","text","timeout","transition","v","vertical","activeTimeout","absolute","isActive","hasBackground","left","right","outlined","isDark","light","options","call","styles","$vuetify","application","bar","footer","insetFooter","paddingBottom","paddingLeft","paddingRight","paddingTop","watch","mounted","setTimeout","created","$attrs","hasOwnProperty","removed","deprecate","genActions","getSlot","attrs","genContent","role","setColor","setBackgroundColor","setTextColor","color","directives","on","pointerenter","window","clearTimeout","pointerleave","genTransition","VMenu","VChip","root","rootIsDark","find","node","isComment","intersect","button","indeterminate","rotate","size","width","radius","isVisible","calculatedSize","circumference","Math","PI","normalizedValue","parseFloat","strokeDashArray","round","strokeDashOffset","strokeWidth","viewBoxSize","svgStyles","transform","genCircle","offset","fill","cx","cy","r","genSvg","xmlns","viewBox","genInfo","onObserve","entries","observer","isIntersecting","undefined","$listeners","BindsAttrs","RegistrableProvide","provide","form","inheritAttrs","disabled","lazyValidation","readonly","inputs","watchers","errorBag","handler","errors","values","$emit","deep","immediate","watchInput","input","watcher","$watch","$set","_uid","valid","shouldValidate","validate","filter","length","reset","resetErrorBag","resetValidation","register","unregister","found","i","unwatch","$delete","novalidate","attrs$","submit","e","ripple","genRipple","center","_c","key","_v","_vm","_s","getApiData","scopedSlots","details","dueAmount","expression","model","paidAmount","callback","snackbar","staticRenderFns","dialog","console","e6","step","menu2","save_button","next_button","success","error","number_of_second_form","homestayCustomerID","price","paymentType","formDatas","BillForm","rooms","RoomObject","countries","state","formClose","formData","axios","response","update","checkOutDate","Amount","CustomerOut","post","then","catch","component","breakpointProps","offsetProps","orderProps","col","order","cols","alignSelf","parent","hasColClasses","some","startsWith","defineProperty","f","create","defineBuiltIns","bind","anInstance","isNullOrUndefined","iterate","defineIterator","createIterResultObject","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","module","exports","getConstructor","CONSTRUCTOR_NAME","IS_MAP","ADDER","Constructor","that","iterable","Prototype","index","first","last","AS_ENTRIES","prototype","getInternalState","define","previous","entry","getEntry","next","clear","prev","callbackfn","boundFunction","arguments","has","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","target","defineBuiltIn","src","$","global","uncurryThis","isForced","InternalMetadataModule","isCallable","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","REPLACE","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","collection","collectionStrong","init","collapse","extended","extensionHeight","flat","floating","prominent","short","isExtended","computedHeight","computedContentHeight","parseInt","isCollapsed","isNaN","isProminent","smAndDown","measurableStyles","breakingProps","original","replacement","breaking","genBackground","image","$scopedSlots","img","VImg","genExtension","extension","unshift","baseMixins","Routable","Positionable","Sizeable","GroupableFactory","ToggleableFactory","activeClass","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","rounded","tile","proxyClass","isElevated","fixed","hasBg","isRound","to","groupClasses","elevationClasses","sizeableClasses","computedElevation","Elevatable","computedRipple","defaultRipple","circle","_a","elevation","click","detail","$el","blur","toggle","genLoader","loader","generateRouteLink","JSON","stringify","getOwnPropertyDescriptor","toLength","toString","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","nativeEndsWith","endsWith","slice","min","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","writable","proto","searchString","endPosition","len","end","search","Ripple","indeterminateIcon","onIcon","offIcon","listeners","VIcon","dark","stopPropagation","wrapInArray","defaultConditional","checkEvent","el","binding","checkIsActive","attachedRoot","ShadowRoot","host","elements","include","contains","closeConditional","directive","_clickOutside","lastMousedownWasOutside","handleShadow","document","ClickOutside","inserted","vnode","onClick","onMousedown","addEventListener","context","unbind","removeEventListener","Measurable","aspectRatio","computedAspectRatio","aspectStyle","__cachedSizer","VResponsive","hasIntersect","alt","contain","eager","gradient","lazySrc","rootMargin","threshold","position","sizes","srcset","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","join","backgroundPosition","mode","loadImage","lazyImg","Image","pollForSize","onLoad","getSrc","naturalHeight","onError","onload","decode","err","consoleWarn","message","onerror","poll","complete","content","_b","__genPlaceholder","slot","placeholder","appear","modifiers","once","Loadable","hover","link","loaderHeight","raised","isClickable","background","genProgress","tabindex","Selectable","Touch","inset","VInput","isDisabled","validationState","hasSuccess","hasColor","computedColor","switchData","genDefaultSlot","genSwitch","genLabel","switchAttrs","title","genInput","onSwipeLeft","onSwipeRight","VFabTransition","progress","onChange","onKeydown","keyCode","keyCodes","VDivider","VSubheader","action","hideSelected","items","Array","itemDisabled","Function","itemText","itemValue","noDataText","noFilter","searchInput","selectedItems","parsedItems","map","item","getValue","tileActiveClass","staticNoDataTile","mousedown","preventDefault","VListItem","genTileContent","genAction","inputValue","VListItemAction","VSimpleCheckbox","genDivider","genFilteredText","getMaskedCharacters","start","middle","genHighlight","genHeader","header","toLocaleLowerCase","genTile","hasItem","getDisabled","id","scopedSlot","needsTile","VListItemContent","VListItemTitle","getText","componentOptions","Ctor","getPropertyFromItem","itemsLength","divider","VList","defaultMenuProps","closeOnClick","closeOnContentClick","disableKeys","openOnClick","maxHeight","VTextField","Comparable","Dependent","Filterable","appendIcon","attach","cacheItems","chips","clearable","deletableChips","disableLookup","itemColor","menuProps","multiple","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","lazyValue","selectedIndex","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","concat","hasChips","computedItems","computedOwns","computedCounterValue","counterValue","isFocused","getOpenDependentElements","dynamicHeight","hasSlot","selection","isDirty","listData","scopeId","$vnode","$options","_scopeId","virtualizedItems","lang","t","select","selectItem","staticList","consoleError","VSelectList","$_menuProps","auto","menuCanShow","normalisedProps","split","isArray","acc","p","trim","nudgeBottom","offsetY","internalValue","initialValue","setSelectedItems","$nextTick","$refs","menu","updateDimensions","onMenuActiveChange","setMenuIndex","activateMenu","isInteractive","clearableCallback","setValue","focus","_isDestroyed","getContent","arr","uniqueValues","from","findExistingIndex","findIndex","valueComparator","genChipSelection","close","small","onChipInput","genCommaSelection","selections","genSelections","genFieldset","genAffix","suffix","genClearIcon","genIconSlot","genHiddenInput","genMenu","genIcon","cb","extraData","domProps","isReadonly","getObjectValueByPath","autocomplete","persistentPlaceholder","hasLabel","keypress","onKeyPress","genInputSlot","genList","genListWithSlot","slots","slotName","activator","scroll","onScroll","ref","genSelection","genSlotSelection","selected","getMenuIndex","listIndex","onBlur","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","now","performance","max","getTiles","onKeyDown","tab","up","down","home","enter","changeListIndex","space","onUpDown","esc","onTabDown","onSpaceDown","tiles","getAttribute","onMouseUp","hasMouseDown","which","showMoreItems","scrollHeight","scrollTop","clientHeight","requestAnimationFrame","activeTile","isBooted","hasClickableTiles","prevTile","nextTile","firstTile","lastTile","splice","appendInner","handleGesture","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","offsetX","abs","touchstart","event","touch","changedTouches","clientX","clientY","assign","touchend","touchmove","touchmoveX","touchmoveY","move","createHandlers","parentElement","passive","handlers","_touchHandlers","eventName","VSelectMenuProps","offsetOverflow","VSelect","allowOverflow","autoSelectFirst","queryText","hideNoData","lazySearch","filteredItems","selectedValues","hasDisplayedItems","currentRange","selectedItem","isSearching","internalSearch","isAnyValueAllowed","searchIsDirty","onCopy","updateSelf","oldVal","setSearch","destroyed","onFilteredItemsChanged","preSelectedItem","onInternalSearchChanged","updateMenuDimensions","changeSelectedIndex","backspace","delete","deleteCurrentItem","curIndex","curItem","lastIndex","nextIndex","nextItem","onFocus","onInput","badInput","validity","ctrlKey","currentItem","currentItemText","clipboardData","setData","active","chipGroup","closeIcon","closeLabel","draggable","filterIcon","label","pill","textColor","isLink","hasClose","genFilter","VExpandXTransition","genClose","orientation","Delayable","Returnable","Roundable","Menuable","Resize","isInMenu","theme","openOnHover","origin","calculatedTopAuto","defaultOffset","hasJustFocused","resizeTimeout","calculatedLeft","menuWidth","dimensions","calculatedMinWidth","calcXOverflow","calcLeftAuto","calcLeft","calculatedMaxHeight","calculatedMaxWidth","maxWidth","minWidth","nudgeWidth","pageWidth","calculatedTop","calcYOverflow","calcTop","tabIndex","transformOrigin","zIndex","activeZIndex","isContentActive","contentHeight","offsetTop","goTo","appOffset","duration","container","remove","callActivate","activate","startTransition","calcTopAuto","calcScrollPosition","querySelector","maxScrollTop","offsetHeight","computedTop","tileDistanceFromMenuTop","firstTileOffsetTop","genActivatorAttributes","attributes","Activatable","genActivatorListeners","keydown","genDirectives","getScopeIdAttrs","rootThemeClasses","roundedClasses","activatorFixed","menuable__content__active","mouseenter","mouseEnterHandler","mouseleave","mouseLeaveHandler","getContentSlot","querySelectorAll","runDelay","relatedTarget","callDeactivate","getActivator","onResize","offsetWidth","arg","genActivator","showLazyContent","VThemeProvider","returnValue","originalValue","save","Stackable","positionableFactory","Detachable","nudgeLeft","nudgeRight","nudgeTop","positionX","positionY","activatorNode","absoluteX","absoluteY","activatedBy","offsetLeft","relativeYOffset","hasWindow","inputActivator","pageYOffset","stackClass","stackMinZIndex","computedLeft","a","c","activatorLeft","rtl","hasActivator","absoluteYOffset","beforeMount","beforeDestroy","absolutePosition","xOverflow","getOffsetLeft","documentHeight","getInnerHeight","toTop","totalHeight","isOverflowing","deactivate","checkForPageYOffset","getOffsetTop","checkActivatorFixed","getComputedStyle","offsetParent","innerHeight","documentElement","pageXOffset","scrollLeft","getRoundedBoundedClientRect","rect","getBoundingClientRect","measure","marginLeft","marginTop","sneakPeek","display","Promise","resolve","clientWidth","offsetRect","prevent","Rippleable","falseValue","trueValue","appIsDark","isMultiple","rippleState","computedId","checked","change"],"mappings":"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","file":"js/chunk-32616670.c047dcd5.js","sourcesContent":["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","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import './VSimpleTable.sass'\n\nimport { convertToUnit } from '../../util/helpers'\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nexport default mixins(Themeable).extend({\n name: 'v-simple-table',\n\n props: {\n dense: Boolean,\n fixedHeader: Boolean,\n height: [Number, String],\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-data-table--dense': this.dense,\n 'v-data-table--fixed-height': !!this.height && !this.fixedHeader,\n 'v-data-table--fixed-header': this.fixedHeader,\n 'v-data-table--has-top': !!this.$slots.top,\n 'v-data-table--has-bottom': !!this.$slots.bottom,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genWrapper () {\n return this.$slots.wrapper || this.$createElement('div', {\n staticClass: 'v-data-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.$createElement('table', this.$slots.default),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-data-table',\n class: this.classes,\n }, [\n this.$slots.top,\n this.genWrapper(),\n this.$slots.bottom,\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { deprecate, removed } from '../../util/console'\n\n// Types\nimport { PropType, VNode } from 'vue'\n\nexport default mixins(\n VSheet,\n Colorable,\n Toggleable,\n PositionableFactory([\n 'absolute',\n 'bottom',\n 'left',\n 'right',\n 'top',\n ])\n/* @vue/component */\n).extend({\n name: 'v-snackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n text: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n transition: {\n type: [Boolean, String] as PropType,\n default: 'v-snack-transition',\n validator: v => typeof v === 'string' || v === false,\n },\n vertical: Boolean,\n },\n\n data: () => ({\n activeTimeout: -1,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-snack--absolute': this.absolute,\n 'v-snack--active': this.isActive,\n 'v-snack--bottom': this.bottom || !this.top,\n 'v-snack--centered': this.centered,\n 'v-snack--has-background': this.hasBackground,\n 'v-snack--left': this.left,\n 'v-snack--multi-line': this.multiLine && !this.vertical,\n 'v-snack--right': this.right,\n 'v-snack--text': this.text,\n 'v-snack--top': this.top,\n 'v-snack--vertical': this.vertical,\n }\n },\n // Text and outlined styles both\n // use transparent backgrounds\n hasBackground (): boolean {\n return (\n !this.text &&\n !this.outlined\n )\n },\n // Snackbar is dark by default\n // override themeable logic.\n isDark (): boolean {\n return this.hasBackground\n ? !this.light\n : Themeable.options.computed.isDark.call(this)\n },\n styles (): object {\n if (this.absolute || !this.app) return {}\n\n const {\n bar,\n bottom,\n footer,\n insetFooter,\n left,\n right,\n top,\n } = this.$vuetify.application\n\n return {\n paddingBottom: convertToUnit(bottom + footer + insetFooter),\n paddingLeft: convertToUnit(left),\n paddingRight: convertToUnit(right),\n paddingTop: convertToUnit(bar + top),\n }\n },\n },\n\n watch: {\n isActive: 'setTimeout',\n timeout: 'setTimeout',\n },\n\n mounted () {\n if (this.isActive) this.setTimeout()\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('auto-height')) {\n removed('auto-height', this)\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line eqeqeq\n if (this.timeout == 0) {\n deprecate('timeout=\"0\"', '-1', this)\n }\n },\n\n methods: {\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-snack__action ',\n }, [\n getSlot(this, 'action', {\n attrs: { class: 'v-snack__btn' },\n }),\n ])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-snack__content',\n class: {\n [this.contentClass]: true,\n },\n attrs: {\n role: 'status',\n 'aria-live': 'polite',\n },\n }, [getSlot(this)])\n },\n genWrapper () {\n const setColor = this.hasBackground\n ? this.setBackgroundColor\n : this.setTextColor\n\n const data = setColor(this.color, {\n staticClass: 'v-snack__wrapper',\n class: VSheet.options.computed.classes.call(this),\n style: VSheet.options.computed.styles.call(this),\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: {\n pointerenter: () => window.clearTimeout(this.activeTimeout),\n pointerleave: this.setTimeout,\n },\n })\n\n return this.$createElement('div', data, [\n this.genContent(),\n this.genActions(),\n ])\n },\n genTransition () {\n return this.$createElement('transition', {\n props: { name: this.transition },\n }, [this.genWrapper()])\n },\n setTimeout () {\n window.clearTimeout(this.activeTimeout)\n\n const timeout = Number(this.timeout)\n\n if (\n !this.isActive ||\n // TODO: remove 0 in v3\n [0, -1].includes(timeout)\n ) {\n return\n }\n\n this.activeTimeout = window.setTimeout(() => {\n this.isActive = false\n }, timeout)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-snack',\n class: this.classes,\n style: this.styles,\n }, [\n this.transition !== false\n ? this.genTransition()\n : this.genWrapper(),\n ])\n },\n})\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n name: 'v-theme-provider',\n\n props: { root: Boolean },\n\n computed: {\n isDark (): boolean {\n return this.root\n ? this.rootIsDark\n : Themeable.options.computed.isDark.call(this)\n },\n },\n\n render (): VNode {\n /* istanbul ignore next */\n return (\n this.$slots.default! &&\n this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n )\n },\n})\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\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: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\n },\n})\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-toolbar-title',[_vm._v(\"Customer Billl\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":_vm.formClose}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-simple-table',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead'),_c('tbody',[_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Customer ID\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.homestayCustomerID))])]),_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Countery / State\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.country)+\" / \"+_vm._s(_vm.getApiData.details.state))])]),_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Check In Date\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.checkInDate))])]),_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Check Out Date\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.checkOutDate))])]),_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Number Of Person\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.numberOfPerson))])])])]},proxy:true}])})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-simple-table',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead'),_c('tbody',[_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Room\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.room))])]),_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Contact Number\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.contactNumber))])]),_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Amount To Pay\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.amountToPay))])]),_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Due Amount\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.dueAmount))])]),_c('tr',[_c('td',{staticClass:\"font-weight-bold\"},[_vm._v(\"Paid Amount\")]),_c('td',[_vm._v(_vm._s(_vm.getApiData.details.paidAmount))])])])]},proxy:true}])})],1)],1),_c('hr'),_c('v-form',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"readonly\":\"\",\"label\":\"Due Amount\"},model:{value:(_vm.getApiData.details.dueAmount),callback:function ($$v) {_vm.$set(_vm.getApiData.details, \"dueAmount\", $$v)},expression:\"getApiData.details.dueAmount\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":\"Paid Amount\"},model:{value:(_vm.getApiData.details.paidAmount),callback:function ($$v) {_vm.$set(_vm.getApiData.details, \"paidAmount\", $$v)},expression:\"getApiData.details.paidAmount\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.paymentType,\"label\":\"Payment Type\",\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"single-line\":\"\",\"item-text\":\"value\",\"item-value\":\"id\"},model:{value:(_vm.getApiData.details.paymentType),callback:function ($$v) {_vm.$set(_vm.getApiData.details, \"paymentType\", $$v)},expression:\"getApiData.details.paymentType\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-switch',{staticClass:\"col-6\",attrs:{\"label\":\"Checkout\",\"clearable\":\"\"},model:{value:(_vm.getApiData.details.isCustomerCheckOut),callback:function ($$v) {_vm.$set(_vm.getApiData.details, \"isCustomerCheckOut\", $$v)},expression:\"getApiData.details.isCustomerCheckOut\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}})],1)],1),_c('div',{staticClass:\"col-4\"},[_c('v-btn',{staticClass:\"mr-4 green darken-1\",attrs:{\"dark\":\"\",\"depressed\":\"\"},on:{\"click\":_vm.update}},[_vm._v(\"update \")])],1),_c('v-snackbar',{attrs:{\"timeout\":_vm.snackbar.timeout,\"top\":\"\",\"color\":\"error\"},model:{value:(_vm.snackbar.snackbar),callback:function ($$v) {_vm.$set(_vm.snackbar, \"snackbar\", $$v)},expression:\"snackbar.snackbar\"}},[_vm._v(\" \"+_vm._s(_vm.snackbar.text)+\" \"),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.snackbar.snackbar = false}}},[_vm._v(\"Close\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.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!./edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./edit.vue?vue&type=template&id=04f29c68&scoped=true&\"\nimport script from \"./edit.vue?vue&type=script&lang=js&\"\nexport * from \"./edit.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 \"04f29c68\",\n null\n \n)\n\nexport default component.exports","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","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n },\n\n data: () => ({\n isExtended: false,\n }),\n\n computed: {\n computedHeight (): number {\n const height = this.computedContentHeight\n\n if (!this.isExtended) return height\n\n const extensionHeight = parseInt(this.extensionHeight)\n\n return this.isCollapsed\n ? height\n : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n },\n computedContentHeight (): number {\n if (this.height) return parseInt(this.height)\n if (this.isProminent && this.dense) return 96\n if (this.isProminent && this.short) return 112\n if (this.isProminent) return 128\n if (this.dense) return 48\n if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n return 64\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-toolbar': true,\n 'v-toolbar--absolute': this.absolute,\n 'v-toolbar--bottom': this.bottom,\n 'v-toolbar--collapse': this.collapse,\n 'v-toolbar--collapsed': this.isCollapsed,\n 'v-toolbar--dense': this.dense,\n 'v-toolbar--extended': this.isExtended,\n 'v-toolbar--flat': this.flat,\n 'v-toolbar--floating': this.floating,\n 'v-toolbar--prominent': this.isProminent,\n }\n },\n isCollapsed (): boolean {\n return this.collapse\n },\n isProminent (): boolean {\n return this.prominent\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['app', ''],\n ['manual-scroll', ''],\n ['clipped-left', ''],\n ['clipped-right', ''],\n ['inverted-scroll', ''],\n ['scroll-off-screen', ''],\n ['scroll-target', ''],\n ['scroll-threshold', ''],\n ['card', ''],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genBackground () {\n const props = {\n height: convertToUnit(this.computedHeight),\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img({ props })\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-toolbar__image',\n }, [image])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__content',\n style: {\n height: convertToUnit(this.computedContentHeight),\n },\n }, getSlot(this))\n },\n genExtension () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__extension',\n style: {\n height: convertToUnit(this.extensionHeight),\n },\n }, getSlot(this, 'extension'))\n },\n },\n\n render (h): VNode {\n this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n const children = [this.genContent()]\n const data = this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n })\n\n if (this.isExtended) children.push(this.genExtension())\n if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n return h(this.tag, data, children)\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar nativeEndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return nativeEndsWith\n ? nativeEndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\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","import { attachedRoot } from '../../util/dom'\nimport { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n inserted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[vnode.context!._uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unbind (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[vnode.context!._uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[vnode.context!._uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[vnode.context!._uid]\n },\n}\n\nexport default ClickOutside\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","// 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'\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 this.$slots.default,\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 { 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 : this.$slots.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","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { getPropertyFromItem } from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n attrs: {\n role: undefined,\n },\n on: {\n mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n },\n }\n\n return this.$createElement(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return this.$createElement(VListItemAction, [\n this.$createElement(VSimpleCheckbox, {\n props: {\n color: this.color,\n value: inputValue,\n ripple: false,\n },\n on: {\n input: () => this.$emit('select', item),\n },\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return this.$createElement(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return text\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return [start, this.genHighlight(middle), end]\n },\n genHeader (props: { [key: string]: any }): VNode {\n return this.$createElement(VSubheader, { props }, props.header)\n },\n genHighlight (text: string) {\n return this.$createElement('span', { staticClass: 'v-list-item__mask' }, text)\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n attrs: {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this._uid}-${index}`,\n role: 'option',\n },\n on: {\n mousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n click: () => disabled || this.$emit('select', item),\n },\n props: {\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n },\n }\n\n if (!this.$scopedSlots.item) {\n return this.$createElement(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$scopedSlots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? this.$createElement(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n return this.$createElement(VListItemContent, [\n this.$createElement(VListItemTitle, [\n this.genFilteredText(this.getText(item)),\n ]),\n ])\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n return this.$createElement(VList, {\n staticClass: 'v-select-list',\n class: this.themeClasses,\n attrs: {\n role: 'listbox',\n tabindex: -1,\n },\n props: { dense: this.dense },\n }, children)\n },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'filterable',\n\n props: {\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n },\n})\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n VTextField,\n Comparable,\n Dependent,\n Filterable\n)\n\ninterface options extends InstanceType {\n $refs: {\n menu: InstanceType\n content: HTMLElement\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n 'append-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-select',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown',\n },\n attach: {\n type: null as unknown as PropType,\n default: false,\n },\n cacheItems: Boolean,\n chips: Boolean,\n clearable: Boolean,\n deletableChips: Boolean,\n disableLookup: Boolean,\n eager: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemColor: {\n type: String,\n default: 'primary',\n },\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n menuProps: {\n type: [String, Array, Object],\n default: () => defaultMenuProps,\n },\n multiple: Boolean,\n openOnClear: Boolean,\n returnObject: Boolean,\n smallChips: Boolean,\n },\n\n data () {\n return {\n cachedItems: this.cacheItems ? this.items : [],\n menuIsBooted: false,\n isMenuActive: false,\n lastItem: 20,\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n lazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [] as any[],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0,\n }\n },\n\n computed: {\n /* All items that the select has */\n allItems (): object[] {\n return this.filterDuplicates(this.cachedItems.concat(this.items))\n },\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-select': true,\n 'v-select--chips': this.hasChips,\n 'v-select--chips--small': this.smallChips,\n 'v-select--is-menu-active': this.isMenuActive,\n 'v-select--is-multi': this.multiple,\n }\n },\n /* Used by other components to overwrite */\n computedItems (): object[] {\n return this.allItems\n },\n computedOwns (): string {\n return `list-${this._uid}`\n },\n computedCounterValue (): number {\n const value = this.multiple\n ? this.selectedItems\n : (this.getText(this.selectedItems[0]) ?? '').toString()\n\n if (typeof this.counterValue === 'function') {\n return this.counterValue(value)\n }\n\n return value.length\n },\n directives (): VNodeDirective[] | undefined {\n return this.isFocused ? [{\n name: 'click-outside',\n value: {\n handler: this.blur,\n closeConditional: this.closeConditional,\n include: () => this.getOpenDependentElements(),\n },\n }] : undefined\n },\n dynamicHeight () {\n return 'auto'\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n hasSlot (): boolean {\n return Boolean(this.hasChips || this.$scopedSlots.selection)\n },\n isDirty (): boolean {\n return this.selectedItems.length > 0\n },\n listData (): object {\n const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n const attrs = scopeId ? {\n [scopeId]: true,\n } : {}\n\n return {\n attrs: {\n ...attrs,\n id: this.computedOwns,\n },\n props: {\n action: this.multiple,\n color: this.itemColor,\n dense: this.dense,\n hideSelected: this.hideSelected,\n items: this.virtualizedItems,\n itemDisabled: this.itemDisabled,\n itemText: this.itemText,\n itemValue: this.itemValue,\n noDataText: this.$vuetify.lang.t(this.noDataText),\n selectedItems: this.selectedItems,\n },\n on: {\n select: this.selectItem,\n },\n scopedSlots: {\n item: this.$scopedSlots.item,\n },\n }\n },\n staticList (): VNode {\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n consoleError('assert: staticList should not be called if slots are used')\n }\n\n return this.$createElement(VSelectList, this.listData)\n },\n virtualizedItems (): object[] {\n return (this.$_menuProps as any).auto\n ? this.computedItems\n : this.computedItems.slice(0, this.lastItem)\n },\n menuCanShow: () => true,\n $_menuProps (): object {\n let normalisedProps = typeof this.menuProps === 'string'\n ? this.menuProps.split(',')\n : this.menuProps\n\n if (Array.isArray(normalisedProps)) {\n normalisedProps = normalisedProps.reduce((acc, p) => {\n acc[p.trim()] = true\n return acc\n }, {})\n }\n\n return {\n ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n ...normalisedProps,\n }\n },\n },\n\n watch: {\n internalValue (val) {\n this.initialValue = val\n this.setSelectedItems()\n\n if (this.multiple) {\n this.$nextTick(() => {\n this.$refs.menu?.updateDimensions()\n })\n }\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n },\n items: {\n immediate: true,\n handler (val) {\n if (this.cacheItems) {\n // Breaks vue-test-utils if\n // this isn't calculated\n // on the next tick\n this.$nextTick(() => {\n this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n })\n }\n\n this.setSelectedItems()\n },\n },\n },\n\n methods: {\n /** @public */\n blur (e?: Event) {\n VTextField.options.methods.blur.call(this, e)\n this.isMenuActive = false\n this.isFocused = false\n this.selectedIndex = -1\n this.setMenuIndex(-1)\n },\n /** @public */\n activateMenu () {\n if (\n !this.isInteractive ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : null)\n this.setMenuIndex(-1)\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n if (this.openOnClear) this.isMenuActive = true\n },\n closeConditional (e: Event) {\n if (!this.isMenuActive) return true\n\n return (\n !this._isDestroyed &&\n\n // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n (!this.getContent() ||\n !this.getContent().contains(e.target as Node)) &&\n\n // Click originates from outside the element\n this.$el &&\n !this.$el.contains(e.target as Node) &&\n e.target !== this.$el\n )\n },\n filterDuplicates (arr: any[]) {\n const uniqueValues = new Map()\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]\n\n // Do not return null values if existant (#14421)\n if (item == null) {\n continue\n }\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n const isInteractive = !isDisabled && this.isInteractive\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && isInteractive,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (!isInteractive) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n placeholder: (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) ? this.placeholder : undefined,\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n // Attach to root el so that\n // menu covers prepend/append icons\n if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) ?? '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end, keyCodes.enter].includes(keyCode)) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n this.$refs.menu.getTiles()\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n\n if (!menu.hasClickableTiles) return this.activateMenu()\n\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n this.selectItem(this.allItems[this.getMenuIndex()])\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) {\n this.setMenuIndex(-1)\n } else {\n const index = this.allItems.indexOf(item)\n if (~index) {\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n }\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n if (!this.valueComparator(value, this.internalValue)) {\n this.internalValue = value\n this.$emit('change', value)\n }\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n this.$slots.default,\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'returnable',\n\n props: {\n returnValue: null as any,\n },\n\n data: () => ({\n isActive: false,\n originalValue: null as any,\n }),\n\n watch: {\n isActive (val) {\n if (val) {\n this.originalValue = this.returnValue\n } else {\n this.$emit('update:return-value', this.originalValue)\n }\n },\n },\n\n methods: {\n save (value: any) {\n this.originalValue = value\n setTimeout(() => {\n this.isActive = false\n })\n },\n },\n})\n","// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Stackable,\n positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n Activatable,\n Detachable,\n)\n\ninterface dimensions {\n top: number\n left: number\n bottom: number\n right: number\n width: number\n height: number\n offsetTop: number\n scrollHeight: number\n offsetLeft: number\n}\n\ninterface options extends ExtractVue {\n attach: boolean | string | Element\n offsetY: boolean\n offsetX: boolean\n dimensions: {\n activator: dimensions\n content: dimensions\n }\n $refs: {\n content: HTMLElement\n activator: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'menuable',\n\n props: {\n allowOverflow: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [Number, String],\n default: 'auto',\n },\n minWidth: [Number, String],\n nudgeBottom: {\n type: [Number, String],\n default: 0,\n },\n nudgeLeft: {\n type: [Number, String],\n default: 0,\n },\n nudgeRight: {\n type: [Number, String],\n default: 0,\n },\n nudgeTop: {\n type: [Number, String],\n default: 0,\n },\n nudgeWidth: {\n type: [Number, String],\n default: 0,\n },\n offsetOverflow: Boolean,\n positionX: {\n type: Number,\n default: null,\n },\n positionY: {\n type: Number,\n default: null,\n },\n zIndex: {\n type: [Number, String],\n default: null,\n },\n },\n\n data: () => ({\n activatorNode: [] as VNode[],\n absoluteX: 0,\n absoluteY: 0,\n activatedBy: null as EventTarget | null,\n activatorFixed: false,\n dimensions: {\n activator: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n offsetLeft: 0,\n },\n content: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n },\n },\n relativeYOffset: 0,\n hasJustFocused: false,\n hasWindow: false,\n inputActivator: false,\n isContentActive: false,\n pageWidth: 0,\n pageYOffset: 0,\n stackClass: 'v-menu__content--active',\n stackMinZIndex: 6,\n }),\n\n computed: {\n computedLeft () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n const minWidth = Math.max(a.width, c.width)\n let left = 0\n left += activatorLeft\n if (this.left || (this.$vuetify.rtl && !this.right)) left -= (minWidth - a.width)\n if (this.offsetX) {\n const maxWidth = isNaN(Number(this.maxWidth))\n ? a.width\n : Math.min(a.width, Number(this.maxWidth))\n\n left += this.left ? -maxWidth : a.width\n }\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return left\n },\n computedTop () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n let top = 0\n\n if (this.top) top += a.height - c.height\n if (this.attach !== false) top += a.offsetTop\n else top += a.top + this.pageYOffset\n if (this.offsetY) top += this.top ? -a.height : a.height\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return top\n },\n hasActivator (): boolean {\n return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator\n },\n absoluteYOffset (): number {\n return this.pageYOffset - this.relativeYOffset\n },\n },\n\n watch: {\n disabled (val) {\n val && this.callDeactivate()\n },\n isActive (val) {\n if (this.disabled) return\n\n val ? this.callActivate() : this.callDeactivate()\n },\n positionX: 'updateDimensions',\n positionY: 'updateDimensions',\n },\n\n beforeMount () {\n this.hasWindow = typeof window !== 'undefined'\n\n if (this.hasWindow) {\n window.addEventListener('resize', this.updateDimensions, false)\n }\n },\n\n beforeDestroy () {\n if (this.hasWindow) {\n window.removeEventListener('resize', this.updateDimensions, false)\n }\n },\n\n methods: {\n absolutePosition () {\n return {\n offsetTop: this.positionY || this.absoluteY,\n offsetLeft: this.positionX || this.absoluteX,\n scrollHeight: 0,\n top: this.positionY || this.absoluteY,\n bottom: this.positionY || this.absoluteY,\n left: this.positionX || this.absoluteX,\n right: this.positionX || this.absoluteX,\n height: 0,\n width: 0,\n }\n },\n activate () {},\n calcLeft (menuWidth: number) {\n return convertToUnit(this.attach !== false\n ? this.computedLeft\n : this.calcXOverflow(this.computedLeft, menuWidth))\n },\n calcTop () {\n return convertToUnit(this.attach !== false\n ? this.computedTop\n : this.calcYOverflow(this.computedTop))\n },\n calcXOverflow (left: number, menuWidth: number) {\n const xOverflow = left + menuWidth - this.pageWidth + 12\n\n if ((!this.left || this.right) && xOverflow > 0) {\n left = Math.max(left - xOverflow, 0)\n } else {\n left = Math.max(left, 12)\n }\n\n return left + this.getOffsetLeft()\n },\n calcYOverflow (top: number) {\n const documentHeight = this.getInnerHeight()\n const toTop = this.absoluteYOffset + documentHeight\n const activator = this.dimensions.activator\n const contentHeight = this.dimensions.content.height\n const totalHeight = top + contentHeight\n const isOverflowing = toTop < totalHeight\n\n // If overflowing bottom and offset\n // TODO: set 'bottom' position instead of 'top'\n if (isOverflowing &&\n this.offsetOverflow &&\n // If we don't have enough room to offset\n // the overflow, don't offset\n activator.top > contentHeight\n ) {\n top = this.pageYOffset + (activator.top - contentHeight)\n // If overflowing bottom\n } else if (isOverflowing && !this.allowOverflow) {\n top = toTop - contentHeight - 12\n // If overflowing top\n } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n top = this.absoluteYOffset + 12\n }\n\n return top < 12 ? 12 : top\n },\n callActivate () {\n if (!this.hasWindow) return\n\n this.activate()\n },\n callDeactivate () {\n this.isContentActive = false\n\n this.deactivate()\n },\n checkForPageYOffset () {\n if (this.hasWindow) {\n this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n }\n },\n checkActivatorFixed () {\n if (this.attach !== false) {\n this.activatorFixed = false\n return\n }\n let el = this.getActivator()\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n this.activatorFixed = true\n return\n }\n el = el.offsetParent as HTMLElement\n }\n this.activatorFixed = false\n },\n deactivate () {},\n genActivatorListeners () {\n const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n const onClick = listeners.click\n\n if (onClick) {\n listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n if (this.openOnClick) {\n onClick && onClick(e)\n }\n\n this.absoluteX = e.clientX\n this.absoluteY = e.clientY\n }\n }\n\n return listeners\n },\n getInnerHeight () {\n if (!this.hasWindow) return 0\n\n return window.innerHeight ||\n document.documentElement.clientHeight\n },\n getOffsetLeft () {\n if (!this.hasWindow) return 0\n\n return window.pageXOffset ||\n document.documentElement.scrollLeft\n },\n getOffsetTop () {\n if (!this.hasWindow) return 0\n\n return window.pageYOffset ||\n document.documentElement.scrollTop\n },\n getRoundedBoundedClientRect (el: Element) {\n const rect = el.getBoundingClientRect()\n return {\n top: Math.round(rect.top),\n left: Math.round(rect.left),\n bottom: Math.round(rect.bottom),\n right: Math.round(rect.right),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n }\n },\n measure (el: HTMLElement) {\n if (!el || !this.hasWindow) return null\n\n const rect = this.getRoundedBoundedClientRect(el)\n\n // Account for activator margin\n if (this.attach !== false) {\n const style = window.getComputedStyle(el)\n\n rect.left = parseInt(style.marginLeft!)\n rect.top = parseInt(style.marginTop!)\n }\n\n return rect\n },\n sneakPeek (cb: () => void) {\n requestAnimationFrame(() => {\n const el = this.$refs.content\n\n if (!el || el.style.display !== 'none') {\n cb()\n return\n }\n\n el.style.display = 'inline-block'\n cb()\n el.style.display = 'none'\n })\n },\n startTransition () {\n return new Promise(resolve => requestAnimationFrame(() => {\n this.isContentActive = this.hasJustFocused = this.isActive\n resolve()\n }))\n },\n updateDimensions () {\n this.hasWindow = typeof window !== 'undefined'\n this.checkActivatorFixed()\n this.checkForPageYOffset()\n this.pageWidth = document.documentElement.clientWidth\n\n const dimensions: any = {\n activator: { ...this.dimensions.activator },\n content: { ...this.dimensions.content },\n }\n\n // Activator should already be shown\n if (!this.hasActivator || this.absolute) {\n dimensions.activator = this.absolutePosition()\n } else {\n const activator = this.getActivator()\n if (!activator) return\n\n dimensions.activator = this.measure(activator)\n dimensions.activator.offsetLeft = activator.offsetLeft\n if (this.attach !== false) {\n // account for css padding causing things to not line up\n // this is mostly for v-autocomplete, hopefully it won't break anything\n dimensions.activator.offsetTop = activator.offsetTop\n } else {\n dimensions.activator.offsetTop = 0\n }\n }\n\n // Display and hide to get dimensions\n this.sneakPeek(() => {\n if (this.$refs.content) {\n if (this.$refs.content.offsetParent) {\n const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n this.relativeYOffset = window.pageYOffset + offsetRect.top\n dimensions.activator.top -= this.relativeYOffset\n dimensions.activator.left -= window.pageXOffset + offsetRect.left\n }\n\n dimensions.content = this.measure(this.$refs.content)\n }\n\n this.dimensions = dimensions\n })\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""}