{"version":3,"sources":["webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///./node_modules/core-js/modules/es.object.is.js","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/mixins/validatable/index.ts","webpack:///./src/http/back-end/index.js","webpack:///./src/http/axios/index.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/components/VTextField/VTextField.ts","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","webpack:///../../../../src/components/VDataTable/mixins/header.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack:///../../src/util/dedupeModelListeners.ts","webpack:///../../src/util/rebuildFunctionalSlots.ts","webpack:///../../../src/components/VDataTable/VDataTableHeader.ts","webpack:///../../../src/components/VDataTable/Row.ts","webpack:///../../../src/components/VDataTable/RowGroup.ts","webpack:///../../../src/components/VDataTable/MobileRow.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../../src/mixins/intersectable/index.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts"],"names":["module","exports","Object","is","x","y","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","name","props","dense","fixedHeader","height","Number","String","computed","classes","$slots","themeClasses","methods","genWrapper","wrapper","$createElement","staticClass","style","render","h","class","$","target","stat","baseMixins","disabled","errorCount","type","default","errorMessages","messages","readonly","rules","success","successMessages","validateOnBlur","required","data","errorBucket","hasColor","hasFocused","hasInput","isFocused","isResetting","lazyValue","valid","computedColor","isDark","hasError","internalErrorMessages","length","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","shouldValidate","genInternalMessages","internalMessages","internalValue","get","set","isDisabled","form","isInteractive","isReadonly","validations","slice","validationState","watch","handler","newVal","deep","$nextTick","val","setTimeout","beforeMount","created","register","beforeDestroy","unregister","Array","reset","resetValidation","validate","force","index","rule","url","process","massUploadUrl","xPost","requestClass","requestFunction","params","user","state","Vue","axios","method","postUrl","JSON","stringify","userPayload","transformRequest","ret","it","encodeURIComponent","headers","xUploadMassupload","formData","append","post","xPostMassupload","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","call","RegExp","string","res","rx","S","previousLastIndex","lastIndex","result","valueComparator","mixins","functional","max","parseInt","content","isGreater","ctx","onVisible","dirtyTypes","directives","resize","ripple","inheritAttrs","appendOuterIcon","autofocus","clearable","clearIcon","counter","Boolean","counterValue","filled","flat","fullWidth","label","outlined","placeholder","prefix","prependInnerIcon","persistentPlaceholder","reverse","rounded","shaped","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isBooted","isClearing","VInput","color","computedCounterValue","hasCounter","hasDetails","isDirty","isEnclosed","isLabelActive","isSingle","isSolo","labelPosition","offset","labelValue","$vuetify","rtl","left","right","showLabel","hasLabel","$attrs","hasOwnProperty","console","mounted","requestAnimationFrame","focus","blur","window","clearableCallback","$refs","input","genAppendSlot","slot","genIcon","genSlot","genPrependInnerSlot","genIconSlot","genInputSlot","prepend","genClearIcon","genCounter","attrs$","dark","light","$scopedSlots","genControl","genDefaultSlot","genFieldset","attrs","genLabel","absolute","focused","for","VLabel","genLegend","width","span","domProps","innerHTML","genInput","listeners","inputAttrs","id","on","keydown","onKeyDown","ref","modifiers","quiet","onResize","genMessages","messagesNode","counterNode","genTextFieldSlot","genAffix","onBlur","e","onClick","onFocus","root","$emit","onInput","onMouseDown","onMouseUp","setLabelWidth","Math","scrollWidth","$el","setPrefixWidth","setPrependWidth","tryAutofocus","document","updateValue","items","options","sortBy","sortDesc","customSort","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","locale","disableSort","disablePagination","disableFiltering","search","customFilter","serverItemsLength","internalOptions","sortDiff","groupDiff","itemsLength","filteredItems","pageCount","pageStart","pageStop","isGrouped","pagination","computedItems","sortItems","paginateItems","groupedItems","groupItems","scopedProps","sort","sortArray","group","updateOptions","originalItemsLength","computedOptions","immediate","toggle","by","oldBy","desc","oldDesc","byIndex","k","s","i","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","map","option","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","genDataItemsPerPageOption","text","lang","t","genItemsPerPageSelect","computedIPPO","ippo","VSelect","hideDetails","auto","minWidth","genPaginationInfo","children","VBtn","icon","click","VIcon","genIcons","before","after","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","loading","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","every","someItems","some","sanitizedFooterProps","filter","item","keys","breakingProps","original","replacement","removedProps","prop","onKeyUp","toggleSelectAll","isSelectable","isSelected","select","emit","findIndex","multipleSelect","old","start","end","currentItem","isExpanded","expand","createItemProps","v","isMobile","genEmptyWrapper","genEmpty","noData","filteredItemsLength","noResults","genItems","empty","genFooter","scopedSlots","genDefaultScopedSlot","outerProps","checkboxColor","sortIcon","showGroupBy","genSelectAll","indeterminate","VSimpleCheckbox","genSortIcon","size","sortByText","genSortChip","sortIndex","beingSorted","isDesc","sortable","active","asc","VChip","genSortSelect","multiple","menuProps","closeOnContentClick","change","header","find","sortHeaders","th","tr","genGroupByToggle","getAria","$t","ariaSort","ariaLabel","genHeader","role","scope","slots","mobile","dedupeModelListeners","mergeData","VDataTableHeaderMobile","VDataTableHeaderDesktop","computedSlots","columns","slotName","scopedSlot","regularSlot","textAlign","divider","headerClass","contentClass","summaryClass","hideDefaultHeader","mobileRowChildren","filterFn","searchTableItems","matchesColumnFilters","headersWithCustomFilters","matchesSearchTerm","headersWithoutCustomFilters","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","itemClass","loaderHeight","internalGroupBy","openCache","widths","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","reduce","acc","sanitizedHeaderProps","computedItemsPerPage","firstOption","calcWidths","querySelectorAll","customFilterWithColumns","customSortWithHeaders","VDataIterator","genCaption","genColgroup","genLoading","genHeaders","genGroupedRows","genRows","genDefaultGroupedRow","isOpen","toggleFn","removeFn","remove","small","column","RowGroup","genScopedRows","genDefaultRows","rows","genDefaultExpandedRow","headerRow","genDefaultSimpleRow","expandedRow","MobileRow","contextmenu","event","dblclick","genBody","body","genFoot","genFooters","simpleProps","VSimpleTable","proxySlot","runtime","Op","prototype","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","defineProperty","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","object","pop","skipTempReset","prev","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","indeterminateIcon","onIcon","offIcon","center","f","tag","fluid","action","hideSelected","itemDisabled","itemText","itemValue","noFilter","searchInput","selectedItems","parsedItems","tileActiveClass","setTextColor","staticNoDataTile","tile","mousedown","VListItem","genTileContent","genAction","VListItemAction","genDivider","VDivider","genFilteredText","getMaskedCharacters","genHighlight","middle","VSubheader","genTile","hasItem","getDisabled","_uid","activeClass","inputValue","parent","needsTile","getText","VList","indexOf","getValue","tabindex","defaultMenuProps","closeOnClick","disableKeys","openOnClick","maxHeight","ClickOutside","appendIcon","attach","cacheItems","chips","deletableChips","disableLookup","eager","itemColor","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","selectedIndex","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","concat","computedOwns","closeConditional","include","dynamicHeight","hasChips","hasSlot","listData","scopeId","$vnode","selectItem","staticList","VSelectList","virtualizedItems","$_menuProps","menuCanShow","normalisedProps","split","p","nudgeBottom","activateMenu","getContent","contains","uniqueValues","arr","findExistingIndex","menu","genChipSelection","close","genCommaSelection","last","selections","autocomplete","keypress","onKeyPress","genHiddenInput","genList","genListWithSlot","genMenu","VMenu","scroll","onScroll","genSelections","genSelection","genSlotSelection","selected","getMenuIndex","onChipInput","setValue","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","now","performance","keyCode","onUpDown","onTabDown","onSpaceDown","onMenuActiveChange","hasMouseDown","showMoreItems","scrollHeight","scrollTop","activeTile","listIndex","setMenuIndex","setSelectedItems","appendInner","position","genChildren","genMessage","message","backgroundColor","hint","persistentHint","prependIcon","computedId","messagesToDisplay","hasHint","validation","validationResult","showDetails","beforeCreate","$options","model","genContent","title","extraData","eventName","hasListener","listeners$","cb","mouseup","setBackgroundColor","genPrependSlot","chipGroup","closeIcon","closeLabel","draggable","filterIcon","link","pill","textColor","proxyClass","groupClasses","hasClose","isClickable","genFilter","genClose","onObserve","destroyed","callback","inset","$listeners"],"mappings":"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","file":"js/chunk-02f2e394.b5ba6a10.js","sourcesContent":["// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\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 VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\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 Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: Boolean,\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n readonly: Boolean,\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n validateOnBlur: Boolean,\n value: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled || (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly || (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeDestroy () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n","// const dev = 'http://localhost:8082'\r\n// // const dev = 'https://nlsn-support-finance.nielseniq.com/op-test/api/index.php'\r\n// const downDev = 'https://api-op-download-dot-nlsn-support-finance-wt-dev.uc.r.appspot.com'\r\n// // const downDev = 'https://nlsn-support-finance.nielseniq.com/op-test/download/index.php'\r\n\r\n// // for pharos\r\n// // const prod = '/api/pharos/op/index.php'\r\n// // for prod\r\n// // const prod = '/op/api/index.php'\r\n// // const downProd = '/op/download/index.php'\r\n// // for dev\r\n// const prod = '/op-test/api/index.php'\r\n// const downProd = '/op-test/download/index.php'\r\n// // const downProd = 'https://api-op-download-dot-nlsn-support-finance-wt-dev.uc.r.appspot.com'\r\n\r\n\r\nexport const url = process.env.VUE_APP_BACKEND_INDEX\r\nexport const down = process.env.VUE_APP_BACKEND_DOWNLOAD_INDEX\r\nexport const massUploadUrl = process.env.VUE_APP_BACKEND_MASS_UPLOAD_INDEX\r\n","import Vue from 'vue'\r\nimport state from '@/store/state'\r\nimport { url as postUrl, down as downUrl, massUploadUrl as massUploadUrl} from '../back-end'\r\n\r\n// post\r\nexport const xPost = (requestClass, requestFunction, params = {}) => {\r\n const user = state.user ?? {\"user\":null}\r\n return Vue.axios({\r\n method: 'post',\r\n url: postUrl + '/' + requestClass + '/' + requestFunction,\r\n data: {\r\n params: JSON.stringify({\r\n params\r\n }),\r\n userPayload: JSON.stringify({\r\n user\r\n })\r\n },\r\n transformRequest: [data => {\r\n // Do whatever you want to transform the data\r\n let ret = ''\r\n for (const it in data) {\r\n ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'\r\n }\r\n return ret\r\n }],\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n }\r\n })\r\n}\r\n\r\n// post\r\nexport const downPost = (requestClass, requestFunction, params = {}) => {\r\n const user = state.user ?? {\"user\":null}\r\n return Vue.axios({\r\n method: 'post',\r\n url: downUrl + '/' + requestClass + '/' + requestFunction,\r\n data: {\r\n params: JSON.stringify({\r\n params\r\n }),\r\n userPayload: JSON.stringify({\r\n user\r\n })\r\n },\r\n responseType: 'arraybuffer',\r\n transformRequest: [data => {\r\n // Do whatever you want to transform the data\r\n let ret = ''\r\n for (const it in data) {\r\n ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'\r\n }\r\n return ret\r\n }],\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n }\r\n })\r\n}\r\n\r\n// massUpload Upload\r\nexport const xUploadMassupload = (requestClass, requestFunction, formData) => {\r\n const url = massUploadUrl + '/' + requestClass + '/' + requestFunction\r\n const user = state.user ?? {\"user\":null}\r\n formData.append('userPayload', JSON.stringify({\r\n user\r\n }))\r\n return Vue.axios.post(url,\r\n formData, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n }\r\n )\r\n}\r\n\r\n// Massupload post\r\nexport const xPostMassupload = (requestClass, requestFunction, params = {}) => {\r\n const user = state.user ?? {\"user\":null}\r\n return Vue.axios({\r\n method: 'post',\r\n url: massUploadUrl + '/' + requestClass + '/' + requestFunction,\r\n data: {\r\n params: JSON.stringify({\r\n params\r\n }),\r\n userPayload: JSON.stringify({\r\n user\r\n })\r\n },\r\n transformRequest: [data => {\r\n // Do whatever you want to transform the data\r\n let ret = ''\r\n for (const it in data) {\r\n ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'\r\n }\r\n return ret\r\n }],\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n }\r\n })\r\n}","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var res = maybeCallNative(nativeSearch, this, string);\n if (res.done) return res.value;\n\n var rx = anObject(this);\n var S = String(string);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","import Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { deepEqual } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'comparable',\n props: {\n valueComparator: {\n type: Function,\n default: deepEqual,\n } as PropValidator,\n },\n})\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-text-field',\n\n directives: {\n resize,\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.options.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('input', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('box')) {\n breaking('box', 'filled', this)\n }\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n\n this.autofocus && this.tryAutofocus()\n\n requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner'] as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.options.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n this.$createElement('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$scopedSlots.counter?.({ props }) ?? this.$createElement(VCounter, { props })\n },\n genControl () {\n return VInput.options.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n props: {\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n },\n }\n\n return this.$createElement(VLabel, data, this.$slots.label || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n })\n\n return this.$createElement('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n },\n attrs: {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: this.onInput,\n focus: this.onFocus,\n keydown: this.onKeyDown,\n }),\n ref: 'input',\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n })\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return this.$createElement('div', {\n staticClass: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return this.$createElement('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.enter) this.$emit('change', this.internalValue)\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs.label\n ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n","// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n sortBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n sortDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator,\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1,\n },\n itemsPerPage: {\n type: Number,\n default: 10,\n },\n groupBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator,\n locale: {\n type: String,\n default: 'en-US',\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems,\n } as PropValidator,\n serverItemsLength: {\n type: Number,\n default: -1,\n },\n },\n\n data () {\n let internalOptions: DataOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort,\n }\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options)\n }\n\n const { sortBy, sortDesc, groupBy, groupDesc } = internalOptions\n const sortDiff = sortBy.length - sortDesc.length\n const groupDiff = groupBy.length - groupDesc.length\n\n if (sortDiff > 0) {\n internalOptions.sortDesc.push(...fillArray(sortDiff, false))\n }\n\n if (groupDiff > 0) {\n internalOptions.groupDesc.push(...fillArray(groupDiff, false))\n }\n\n return {\n internalOptions,\n }\n },\n\n computed: {\n itemsLength (): number {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length\n },\n pageCount (): number {\n return this.internalOptions.itemsPerPage <= 0\n ? 1\n : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage)\n },\n pageStart (): number {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0\n\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage\n },\n pageStop (): number {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength\n if (!this.items.length) return 0\n\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage)\n },\n isGrouped (): boolean {\n return !!this.internalOptions.groupBy.length\n },\n pagination (): DataPagination {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength,\n }\n },\n filteredItems (): any[] {\n let items = this.items.slice()\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search)\n }\n\n return items\n },\n computedItems (): any[] {\n let items = this.filteredItems.slice()\n\n if ((!this.disableSort || this.internalOptions.groupBy.length) && this.serverItemsLength <= 0) {\n items = this.sortItems(items)\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items)\n }\n\n return items\n },\n groupedItems (): ItemGroup[] | null {\n return this.isGrouped ? this.groupItems(this.computedItems) : null\n },\n scopedProps (): DataScopeProps {\n return {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length,\n }\n },\n computedOptions (): DataOptions {\n return { ...this.options } as DataOptions\n },\n },\n\n watch: {\n computedOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n\n this.updateOptions(options)\n },\n deep: true,\n immediate: true,\n },\n internalOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n this.$emit('update:options', options)\n },\n deep: true,\n immediate: true,\n },\n page (page: number) {\n this.updateOptions({ page })\n },\n 'internalOptions.page' (page: number) {\n this.$emit('update:page', page)\n },\n itemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage })\n },\n 'internalOptions.itemsPerPage' (itemsPerPage: number) {\n this.$emit('update:items-per-page', itemsPerPage)\n },\n sortBy (sortBy: string | string[]) {\n this.updateOptions({ sortBy: wrapInArray(sortBy) })\n },\n 'internalOptions.sortBy' (sortBy: string[], old: string[]) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0])\n },\n sortDesc (sortDesc: boolean | boolean[]) {\n this.updateOptions({ sortDesc: wrapInArray(sortDesc) })\n },\n 'internalOptions.sortDesc' (sortDesc: boolean[], old: boolean[]) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0])\n },\n groupBy (groupBy: string | string[]) {\n this.updateOptions({ groupBy: wrapInArray(groupBy) })\n },\n 'internalOptions.groupBy' (groupBy: string[], old: string[]) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0])\n },\n groupDesc (groupDesc: boolean | boolean[]) {\n this.updateOptions({ groupDesc: wrapInArray(groupDesc) })\n },\n 'internalOptions.groupDesc' (groupDesc: boolean[], old: boolean[]) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0])\n },\n multiSort (multiSort: boolean) {\n this.updateOptions({ multiSort })\n },\n 'internalOptions.multiSort' (multiSort: boolean) {\n this.$emit('update:multi-sort', multiSort)\n },\n mustSort (mustSort: boolean) {\n this.updateOptions({ mustSort })\n },\n 'internalOptions.mustSort' (mustSort: boolean) {\n this.$emit('update:must-sort', mustSort)\n },\n pageCount: {\n handler (pageCount: number) {\n this.$emit('page-count', pageCount)\n },\n immediate: true,\n },\n computedItems: {\n handler (computedItems: any[]) {\n this.$emit('current-items', computedItems)\n },\n immediate: true,\n },\n pagination: {\n handler (pagination: DataPagination, old: DataPagination) {\n if (deepEqual(pagination, old)) return\n this.$emit('pagination', this.pagination)\n },\n immediate: true,\n },\n },\n\n methods: {\n toggle (key: string, oldBy: string[], oldDesc: boolean[], page: number, mustSort: boolean, multiSort: boolean) {\n let by = oldBy.slice()\n let desc = oldDesc.slice()\n const byIndex = by.findIndex((k: string) => k === key)\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = []\n desc = []\n }\n\n by.push(key)\n desc.push(false)\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true\n } else if (!mustSort) {\n by.splice(byIndex, 1)\n desc.splice(byIndex, 1)\n } else {\n desc[byIndex] = false\n }\n\n // Reset page to 1 if sortBy or sortDesc have changed\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1\n }\n\n return { by, desc, page }\n },\n group (key: string): void {\n const { by: groupBy, desc: groupDesc, page } = this.toggle(\n key,\n this.internalOptions.groupBy,\n this.internalOptions.groupDesc,\n this.internalOptions.page,\n true,\n false\n )\n this.updateOptions({ groupBy, groupDesc, page })\n },\n sort (key: string | string[]): void {\n if (Array.isArray(key)) return this.sortArray(key)\n\n const { by: sortBy, desc: sortDesc, page } = this.toggle(\n key,\n this.internalOptions.sortBy,\n this.internalOptions.sortDesc,\n this.internalOptions.page,\n this.internalOptions.mustSort,\n this.internalOptions.multiSort\n )\n this.updateOptions({ sortBy, sortDesc, page })\n },\n sortArray (sortBy: string[]) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex((k: string) => k === s)\n return i > -1 ? this.internalOptions.sortDesc[i] : false\n })\n\n this.updateOptions({ sortBy, sortDesc })\n },\n updateOptions (options: any) {\n this.internalOptions = {\n ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0\n ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount))\n : options.page || this.internalOptions.page,\n }\n },\n sortItems (items: any[]): any[] {\n let sortBy: string[] = []\n let sortDesc: boolean[] = []\n\n if (!this.disableSort) {\n sortBy = this.internalOptions.sortBy\n sortDesc = this.internalOptions.sortDesc\n }\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy]\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc]\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale)\n },\n groupItems (items: any[]): ItemGroup[] {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc)\n },\n paginateItems (items: any[]): any[] {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, Math.ceil(items.length / this.internalOptions.itemsPerPage)) || 1 // Prevent NaN\n }\n\n return items.slice(this.pageStart, this.pageStop)\n },\n },\n\n render (): VNode {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps) as any\n },\n})\n","import './VDataFooter.sass'\n\n// Components\nimport VSelect from '../VSelect/VSelect'\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { DataPagination, DataOptions, DataItemsPerPageOption } from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\nimport { getSlot } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-data-footer',\n\n props: {\n options: {\n type: Object as PropType,\n required: true,\n },\n pagination: {\n type: Object as PropType,\n required: true,\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => ([5, 10, 15, -1]),\n } as PropValidator,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n itemsPerPageAllText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageAll',\n },\n showFirstLastPage: Boolean,\n showCurrentPage: Boolean,\n disablePagination: Boolean,\n disableItemsPerPage: Boolean,\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n },\n\n computed: {\n disableNextPageIcon (): boolean {\n return this.options.itemsPerPage <= 0 ||\n this.options.page * this.options.itemsPerPage >= this.pagination.itemsLength ||\n this.pagination.pageStop < 0\n },\n computedDataItemsPerPageOptions (): any[] {\n return this.itemsPerPageOptions.map(option => {\n if (typeof option === 'object') return option\n else return this.genDataItemsPerPageOption(option)\n })\n },\n },\n\n methods: {\n updateOptions (obj: object) {\n this.$emit('update:options', Object.assign({}, this.options, obj))\n },\n onFirstPage () {\n this.updateOptions({ page: 1 })\n },\n onPreviousPage () {\n this.updateOptions({ page: this.options.page - 1 })\n },\n onNextPage () {\n this.updateOptions({ page: this.options.page + 1 })\n },\n onLastPage () {\n this.updateOptions({ page: this.pagination.pageCount })\n },\n onChangeItemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage, page: 1 })\n },\n genDataItemsPerPageOption (option: number) {\n return {\n text: option === -1 ? this.$vuetify.lang.t(this.itemsPerPageAllText) : String(option),\n value: option,\n }\n },\n genItemsPerPageSelect () {\n let value = this.options.itemsPerPage\n const computedIPPO = this.computedDataItemsPerPageOptions\n\n if (computedIPPO.length <= 1) return null\n\n if (!computedIPPO.find(ippo => ippo.value === value)) value = computedIPPO[0]\n\n return this.$createElement('div', {\n staticClass: 'v-data-footer__select',\n }, [\n this.$vuetify.lang.t(this.itemsPerPageText),\n this.$createElement(VSelect, {\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.itemsPerPageText),\n },\n props: {\n disabled: this.disableItemsPerPage,\n items: computedIPPO,\n value,\n hideDetails: true,\n auto: true,\n minWidth: '75px',\n },\n on: {\n input: this.onChangeItemsPerPage,\n },\n }),\n ])\n },\n genPaginationInfo () {\n let children: VNodeChildrenArrayContents = ['–']\n const itemsLength: number = this.pagination.itemsLength\n let pageStart: number = this.pagination.pageStart\n let pageStop: number = this.pagination.pageStop\n\n if (this.pagination.itemsLength && this.pagination.itemsPerPage) {\n pageStart = this.pagination.pageStart + 1\n pageStop = itemsLength < this.pagination.pageStop || this.pagination.pageStop < 0\n ? itemsLength\n : this.pagination.pageStop\n\n children = this.$scopedSlots['page-text']\n ? [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n : [this.$vuetify.lang.t(this.pageText, pageStart, pageStop, itemsLength)]\n } else if (this.$scopedSlots['page-text']) {\n children = [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n }\n\n return this.$createElement('div', {\n class: 'v-data-footer__pagination',\n }, children)\n },\n genIcon (click: Function, disabled: boolean, label: string, icon: string): VNode {\n return this.$createElement(VBtn, {\n props: {\n disabled: disabled || this.disablePagination,\n icon: true,\n text: true,\n // dark: this.dark, // TODO: add mixin\n // light: this.light // TODO: add mixin\n },\n on: {\n click,\n },\n attrs: {\n 'aria-label': label, // TODO: Localization\n },\n }, [this.$createElement(VIcon, icon)])\n },\n genIcons () {\n const before: VNodeChildrenArrayContents = []\n const after: VNodeChildrenArrayContents = []\n\n before.push(this.genIcon(\n this.onPreviousPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.prevPage'),\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon\n ))\n\n after.push(this.genIcon(\n this.onNextPage,\n this.disableNextPageIcon,\n this.$vuetify.lang.t('$vuetify.dataFooter.nextPage'),\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon\n ))\n\n if (this.showFirstLastPage) {\n before.unshift(this.genIcon(\n this.onFirstPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.firstPage'),\n this.$vuetify.rtl ? this.lastIcon : this.firstIcon\n ))\n\n after.push(this.genIcon(\n this.onLastPage,\n this.options.page >= this.pagination.pageCount || this.options.itemsPerPage === -1,\n this.$vuetify.lang.t('$vuetify.dataFooter.lastPage'),\n this.$vuetify.rtl ? this.firstIcon : this.lastIcon\n ))\n }\n\n return [\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-before',\n }, before),\n this.showCurrentPage && this.$createElement('span', [this.options.page.toString()]),\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-after',\n }, after),\n ]\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-data-footer',\n }, [\n getSlot(this, 'prepend'),\n this.genItemsPerPageSelect(),\n this.genPaginationInfo(),\n this.genIcons(),\n ])\n },\n})\n","// Components\nimport { VData } from '../VData'\nimport VDataFooter from './VDataFooter'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, camelizeObjectKeys, keyCodes } from '../../util/helpers'\nimport { breaking, removed } from '../../util/console'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { DataItemProps, DataScopeProps } from 'vuetify/types'\n\n/* @vue/component */\nexport default mixins(\n Mobile,\n Themeable\n).extend({\n name: 'v-data-iterator',\n\n props: {\n ...VData.options.props, // TODO: filter out props not used\n itemKey: {\n type: String,\n default: 'id',\n },\n value: {\n type: Array,\n default: () => [],\n } as PropValidator,\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => [],\n } as PropValidator,\n mobileBreakpoint: {\n ...Mobile.options.props.mobileBreakpoint,\n default: 600,\n },\n singleExpand: Boolean,\n loading: [Boolean, String],\n noResultsText: {\n type: String,\n default: '$vuetify.dataIterator.noResultsText',\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideDefaultFooter: Boolean,\n footerProps: Object,\n selectableKey: {\n type: String,\n default: 'isSelectable',\n },\n },\n\n data: () => ({\n selection: {} as Record,\n expansion: {} as Record,\n internalCurrentItems: [] as any[],\n shiftKeyDown: false,\n lastEntry: -1,\n }),\n\n computed: {\n everyItem (): boolean {\n return !!this.selectableItems.length && this.selectableItems.every((i: any) => this.isSelected(i))\n },\n someItems (): boolean {\n return this.selectableItems.some((i: any) => this.isSelected(i))\n },\n sanitizedFooterProps (): Record {\n return camelizeObjectKeys(this.footerProps)\n },\n selectableItems (): any[] {\n return this.internalCurrentItems.filter(item => this.isSelectable(item))\n },\n },\n\n watch: {\n value: {\n handler (value: any[]) {\n this.selection = value.reduce((selection, item) => {\n selection[getObjectValueByPath(item, this.itemKey)] = item\n return selection\n }, {})\n },\n immediate: true,\n },\n selection (value: Record, old: Record) {\n if (deepEqual(Object.keys(value), Object.keys(old))) return\n\n this.$emit('input', Object.values(value))\n },\n expanded: {\n handler (value: any[]) {\n this.expansion = value.reduce((expansion, item) => {\n expansion[getObjectValueByPath(item, this.itemKey)] = true\n return expansion\n }, {})\n },\n immediate: true,\n },\n expansion (value: Record, old: Record) {\n if (deepEqual(value, old)) return\n const keys = Object.keys(value).filter(k => value[k])\n const expanded = !keys.length ? [] : this.items.filter(i => keys.includes(String(getObjectValueByPath(i, this.itemKey))))\n this.$emit('update:expanded', expanded)\n },\n },\n\n created () {\n const breakingProps = [\n ['disable-initial-sort', 'sort-by'],\n ['filter', 'custom-filter'],\n ['pagination', 'options'],\n ['total-items', 'server-items-length'],\n ['hide-actions', 'hide-default-footer'],\n ['rows-per-page-items', 'footer-props.items-per-page-options'],\n ['rows-per-page-text', 'footer-props.items-per-page-text'],\n ['prev-icon', 'footer-props.prev-icon'],\n ['next-icon', 'footer-props.next-icon'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n const removedProps = [\n 'expand',\n 'content-class',\n 'content-props',\n 'content-tag',\n ]\n\n /* istanbul ignore next */\n removedProps.forEach(prop => {\n if (this.$attrs.hasOwnProperty(prop)) removed(prop)\n })\n },\n\n mounted () {\n window.addEventListener('keydown', this.onKeyDown)\n window.addEventListener('keyup', this.onKeyUp)\n },\n beforeDestroy () {\n window.removeEventListener('keydown', this.onKeyDown)\n window.removeEventListener('keyup', this.onKeyUp)\n },\n\n methods: {\n onKeyDown (e: KeyboardEvent): void {\n if (e.keyCode !== keyCodes.shift) return\n this.shiftKeyDown = true\n },\n onKeyUp (e: KeyboardEvent): void {\n if (e.keyCode !== keyCodes.shift) return\n this.shiftKeyDown = false\n },\n toggleSelectAll (value: boolean): void {\n const selection = Object.assign({}, this.selection)\n\n for (let i = 0; i < this.selectableItems.length; i++) {\n const item = this.selectableItems[i]\n\n if (!this.isSelectable(item)) continue\n\n const key = getObjectValueByPath(item, this.itemKey)\n if (value) selection[key] = item\n else delete selection[key]\n }\n\n this.selection = selection\n this.$emit('toggle-select-all', { items: this.internalCurrentItems, value })\n },\n isSelectable (item: any): boolean {\n return getObjectValueByPath(item, this.selectableKey) !== false\n },\n isSelected (item: any): boolean {\n return !!this.selection[getObjectValueByPath(item, this.itemKey)] || false\n },\n select (item: any, value = true, emit = true): void {\n if (!this.isSelectable(item)) return\n\n const selection = this.singleSelect ? {} : Object.assign({}, this.selection)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) selection[key] = item\n else delete selection[key]\n\n const index = this.selectableItems.findIndex(x => getObjectValueByPath(x, this.itemKey) === key)\n if (this.lastEntry === -1) this.lastEntry = index\n else if (this.shiftKeyDown && !this.singleSelect && emit) this.multipleSelect(value, emit, selection, index)\n this.lastEntry = index\n\n if (this.singleSelect && emit) {\n const keys = Object.keys(this.selection)\n const old = keys.length && getObjectValueByPath(this.selection[keys[0]], this.itemKey)\n old && old !== key && this.$emit('item-selected', { item: this.selection[old], value: false })\n }\n this.selection = selection\n emit && this.$emit('item-selected', { item, value })\n },\n multipleSelect (value = true, emit = true, selection: any, index: number): void {\n const start = index < this.lastEntry ? index : this.lastEntry\n const end = index < this.lastEntry ? this.lastEntry : index\n for (let i = start; i <= end; i++) {\n const currentItem = this.selectableItems[i]\n const key = getObjectValueByPath(currentItem, this.itemKey)\n if (value) selection[key] = currentItem\n else delete selection[key]\n emit && this.$emit('item-selected', { currentItem, value })\n }\n },\n isExpanded (item: any): boolean {\n return this.expansion[getObjectValueByPath(item, this.itemKey)] || false\n },\n expand (item: any, value = true): void {\n const expansion = this.singleExpand ? {} : Object.assign({}, this.expansion)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) expansion[key] = true\n else delete expansion[key]\n\n this.expansion = expansion\n this.$emit('item-expanded', { item, value })\n },\n createItemProps (item: any, index: number): DataItemProps {\n return {\n item,\n index,\n select: (v: boolean) => this.select(item, v),\n isSelected: this.isSelected(item),\n expand: (v: boolean) => this.expand(item, v),\n isExpanded: this.isExpanded(item),\n isMobile: this.isMobile,\n }\n },\n genEmptyWrapper (content: VNodeChildren) {\n return this.$createElement('div', content)\n },\n genEmpty (originalItemsLength: number, filteredItemsLength: number) {\n if (originalItemsLength === 0 && this.loading) {\n const loading = this.$slots.loading || this.$vuetify.lang.t(this.loadingText)\n return this.genEmptyWrapper(loading)\n } else if (originalItemsLength === 0) {\n const noData = this.$slots['no-data'] || this.$vuetify.lang.t(this.noDataText)\n return this.genEmptyWrapper(noData)\n } else if (filteredItemsLength === 0) {\n const noResults = this.$slots['no-results'] || this.$vuetify.lang.t(this.noResultsText)\n return this.genEmptyWrapper(noResults)\n }\n\n return null\n },\n genItems (props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n if (this.$scopedSlots.default) {\n return this.$scopedSlots.default({\n ...props,\n isSelected: this.isSelected,\n select: this.select,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n expand: this.expand,\n })\n }\n\n if (this.$scopedSlots.item) {\n return props.items.map((item: any, index) => this.$scopedSlots.item!(this.createItemProps(\n item,\n index\n )))\n }\n\n return []\n },\n genFooter (props: DataScopeProps) {\n if (this.hideDefaultFooter) return null\n\n const data = {\n props: {\n ...this.sanitizedFooterProps,\n options: props.options,\n pagination: props.pagination,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n }\n\n const scopedSlots = getPrefixedScopedSlots('footer.', this.$scopedSlots)\n\n return this.$createElement(VDataFooter, {\n scopedSlots,\n ...data,\n })\n },\n genDefaultScopedSlot (props: any) {\n const outerProps = {\n ...props,\n someItems: this.someItems,\n everyItem: this.everyItem,\n toggleSelectAll: this.toggleSelectAll,\n }\n\n return this.$createElement('div', {\n staticClass: 'v-data-iterator',\n }, [\n getSlot(this, 'header', outerProps, true),\n this.genItems(props),\n this.genFooter(props),\n getSlot(this, 'footer', outerProps, true),\n ])\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: this.$props,\n on: {\n 'update:options': (v: any, old: any) => !deepEqual(v, old) && this.$emit('update:options', v),\n 'update:page': (v: any) => this.$emit('update:page', v),\n 'update:items-per-page': (v: any) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: any) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: any) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: any) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: any) => this.$emit('update:group-desc', v),\n pagination: (v: any, old: any) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","import { VDataTable } from '../'\nimport VIcon from '../../VIcon'\nimport VSimpleCheckbox from '../../VCheckbox/VSimpleCheckbox'\nimport ripple from '../../../directives/ripple'\n\nimport Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../../util/mixins'\nimport { DataOptions, DataTableHeader } from 'vuetify/types'\n\ntype VDataTableInstance = InstanceType\n\ninterface options extends Vue {\n dataTable: VDataTableInstance\n}\n\nexport default mixins().extend({\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({\n page: 1,\n itemsPerPage: 10,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false,\n }),\n } as PropValidator,\n checkboxColor: String,\n sortIcon: {\n type: String,\n default: '$sort',\n },\n everyItem: Boolean,\n someItems: Boolean,\n showGroupBy: Boolean,\n singleSelect: Boolean,\n disableSort: Boolean,\n },\n\n methods: {\n genSelectAll () {\n const data = {\n props: {\n value: this.everyItem,\n indeterminate: !this.everyItem && this.someItems,\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (v: boolean) => this.$emit('toggle-select-all', v),\n },\n }\n\n if (this.$scopedSlots['data-table-select']) {\n return this.$scopedSlots['data-table-select']!(data)\n }\n\n return this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n ...data,\n })\n },\n genSortIcon () {\n return this.$createElement(VIcon, {\n staticClass: 'v-data-table-header__icon',\n props: {\n size: 18,\n },\n }, [this.sortIcon])\n },\n },\n})\n","import { VNode, VNodeChildrenArrayContents } from 'vue'\nimport mixins from '../../util/mixins'\nimport VSelect from '../VSelect/VSelect'\nimport VChip from '../VChip'\nimport header from './mixins/header'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-mobile',\n\n props: {\n sortByText: {\n type: String,\n default: '$vuetify.dataTable.sortBy',\n },\n },\n\n methods: {\n genSortChip (props: any) {\n const children: VNodeChildrenArrayContents = [props.item.text]\n\n const sortIndex = this.options.sortBy.findIndex(k => k === props.item.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n children.push(this.$createElement('div', {\n staticClass: 'v-chip__close',\n class: {\n sortable: true,\n active: beingSorted,\n asc: beingSorted && !isDesc,\n desc: beingSorted && isDesc,\n },\n }, [this.genSortIcon()]))\n\n return this.$createElement(VChip, {\n staticClass: 'sortable',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('sort', props.item.value)\n },\n },\n }, children)\n },\n genSortSelect (items: any[]) {\n return this.$createElement(VSelect, {\n props: {\n label: this.$vuetify.lang.t(this.sortByText),\n items,\n hideDetails: true,\n multiple: this.options.multiSort,\n value: this.options.multiSort ? this.options.sortBy : this.options.sortBy[0],\n menuProps: { closeOnContentClick: true },\n },\n on: {\n change: (v: string | string[]) => this.$emit('sort', v),\n },\n scopedSlots: {\n selection: props => this.genSortChip(props),\n },\n })\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = []\n\n const header = this.headers.find(h => h.value === 'data-table-select')\n if (header && !this.singleSelect) {\n children.push(this.$createElement('div', {\n class: [\n 'v-data-table-header-mobile__select',\n ...wrapInArray(header.class),\n ],\n attrs: {\n width: header.width,\n },\n }, [this.genSelectAll()]))\n }\n\n const sortHeaders = this.headers\n .filter(h => h.sortable !== false && h.value !== 'data-table-select')\n .map(h => ({\n text: h.text,\n value: h.value,\n }))\n\n if (!this.disableSort && sortHeaders.length) {\n children.push(this.genSortSelect(sortHeaders))\n }\n\n const th = h('th', [h('div', { staticClass: 'v-data-table-header-mobile__wrapper' }, children)])\n\n const tr = h('tr', [th])\n\n return h('thead', {\n staticClass: 'v-data-table-header v-data-table-header-mobile',\n }, [tr])\n },\n})\n","// Helpers\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport header from './mixins/header'\nimport { wrapInArray, convertToUnit } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n\n methods: {\n genGroupByToggle (header: DataTableHeader) {\n return this.$createElement('span', {\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('group', header.value)\n },\n },\n }, ['group'])\n },\n getAria (beingSorted: boolean, isDesc: boolean) {\n const $t = (key: string) => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`)\n\n let ariaSort = 'none'\n let ariaLabel = [\n $t('sortNone'),\n $t('activateAscending'),\n ]\n\n if (!beingSorted) {\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n }\n\n if (isDesc) {\n ariaSort = 'descending'\n ariaLabel = [\n $t('sortDescending'),\n $t(this.options.mustSort ? 'activateAscending' : 'activateNone'),\n ]\n } else {\n ariaSort = 'ascending'\n ariaLabel = [\n $t('sortAscending'),\n $t('activateDescending'),\n ]\n }\n\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n },\n genHeader (header: DataTableHeader) {\n const data: Required> = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || '',\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width),\n },\n class: [\n `text-${header.align || 'start'}`,\n ...wrapInArray(header.class),\n header.divider && 'v-data-table__divider',\n ],\n on: {},\n }\n const children = []\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()])\n }\n\n children.push(\n this.$scopedSlots[header.value]\n ? this.$scopedSlots[header.value]!({ header })\n : this.$createElement('span', [header.text])\n )\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on.click = () => this.$emit('sort', header.value)\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n data.class.push('sortable')\n\n const { ariaLabel, ariaSort } = this.getAria(beingSorted, isDesc)\n\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`\n data.attrs['aria-sort'] = ariaSort\n\n if (beingSorted) {\n data.class.push('active')\n data.class.push(isDesc ? 'desc' : 'asc')\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon())\n else children.push(this.genSortIcon())\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', { class: 'v-data-table-header__sort-badge' }, [String(sortIndex + 1)]))\n }\n }\n\n if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header))\n\n return this.$createElement('th', data, children)\n },\n },\n\n render (): VNode {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header',\n }, [\n this.$createElement('tr', this.headers.map(header => this.genHeader(header))),\n ])\n },\n})\n","import { VNodeData } from 'vue'\n\n/**\n * Removes duplicate `@input` listeners when\n * using v-model with functional components\n *\n * @see https://github.com/vuetifyjs/vuetify/issues/4460\n */\nexport default function dedupeModelListeners (data: VNodeData): void {\n if (data.model && data.on && data.on.input) {\n if (Array.isArray(data.on.input)) {\n const i = data.on.input.indexOf(data.model.callback)\n if (i > -1) data.on.input.splice(i, 1)\n } else {\n delete data.on.input\n }\n }\n}\n","import { CreateElement, VNode } from 'vue'\n\nexport default function rebuildFunctionalSlots (slots: { [key: string]: VNode[] | undefined }, h: CreateElement) {\n const children: VNode[] = []\n\n for (const slot in slots) {\n if (slots.hasOwnProperty(slot)) {\n children.push(h('template', { slot }, slots[slot]))\n }\n }\n\n return children\n}\n","// Styles\nimport './VDataTableHeader.sass'\n\n// Components\nimport VDataTableHeaderMobile from './VDataTableHeaderMobile'\nimport VDataTableHeaderDesktop from './VDataTableHeaderDesktop'\n\n// Mixins\nimport header from './mixins/header'\n\n// Utilities\nimport dedupeModelListeners from '../../util/dedupeModelListeners'\nimport mergeData from '../../util/mergeData'\nimport rebuildSlots from '../../util/rebuildFunctionalSlots'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-data-table-header',\n\n functional: true,\n\n props: {\n ...header.options.props,\n mobile: Boolean,\n },\n\n render (h, { props, data, slots }) {\n dedupeModelListeners(data)\n const children = rebuildSlots(slots(), h)\n\n data = mergeData(data, { props })\n\n if (props.mobile) {\n return h(VDataTableHeaderMobile, data, children)\n } else {\n return h(VDataTableHeaderDesktop, data, children)\n }\n },\n})\n","// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots[slotName]\n const regularSlot = computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n })\n\n return h('tr', data, columns)\n },\n})\n","import Vue, { VNode } from 'vue'\n\nexport default Vue.extend({\n name: 'row-group',\n\n functional: true,\n\n props: {\n value: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: String,\n default: 'v-row-group__header',\n },\n contentClass: String,\n summaryClass: {\n type: String,\n default: 'v-row-group__summary',\n },\n },\n\n render (h, { slots, props }): VNode {\n const computedSlots = slots()\n const children = []\n\n if (computedSlots['column.header']) {\n children.push(h('tr', {\n staticClass: props.headerClass,\n }, computedSlots['column.header']))\n } else if (computedSlots['row.header']) {\n children.push(...computedSlots['row.header'])\n }\n\n if (computedSlots['row.content'] && props.value) children.push(...computedSlots['row.content'])\n\n if (computedSlots['column.summary']) {\n children.push(h('tr', {\n staticClass: props.summaryClass,\n }, computedSlots['column.summary']))\n } else if (computedSlots['row.summary']) {\n children.push(...computedSlots['row.summary'])\n }\n\n return children as any\n },\n})\n","import Vue, { VNode, PropType } from 'vue'\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n hideDefaultHeader: Boolean,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const classes = {\n 'v-data-table__mobile-row': true,\n }\n\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots[slotName]\n const regularSlot = computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: true,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const mobileRowChildren = [\n h('div', {\n staticClass: 'v-data-table__mobile-row__cell',\n }, children),\n ]\n\n if (header.value !== 'dataTableSelect' && !props.hideDefaultHeader) {\n mobileRowChildren.unshift(\n h('div', {\n staticClass: 'v-data-table__mobile-row__header',\n }, [header.text])\n )\n }\n\n return h('td', { class: classes }, mobileRowChildren)\n })\n\n return h('tr', { ...data, staticClass: 'v-data-table__mobile-table-row' }, columns)\n },\n})\n","import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DataTableHeader,\n DataTableFilterFunction,\n DataScopeProps,\n DataOptions,\n DataPagination,\n DataTableCompareFunction,\n DataItemsPerPageOption,\n ItemGroup,\n RowClassFunction,\n DataTableItemProps,\n} from 'vuetify/types'\n\n// Components\nimport { VData } from '../VData'\nimport { VDataFooter, VDataIterator } from '../VDataIterator'\nimport VBtn from '../VBtn'\nimport VDataTableHeader from './VDataTableHeader'\n// import VVirtualTable from './VVirtualTable'\nimport VIcon from '../VIcon'\nimport Row from './Row'\nimport RowGroup from './RowGroup'\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VSimpleTable from './VSimpleTable'\nimport MobileRow from './MobileRow'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys, getPropertyFromItem } from '../../util/helpers'\nimport { breaking } from '../../util/console'\nimport { mergeClasses } from '../../util/mergeData'\n\nfunction filterFn (item: any, search: string | null, filter: DataTableFilterFunction) {\n return (header: DataTableHeader) => {\n const value = getObjectValueByPath(item, header.value)\n return header.filter ? header.filter(value, search, item) : filter(value, search, item)\n }\n}\n\nfunction searchTableItems (\n items: any[],\n search: string | null,\n headersWithCustomFilters: DataTableHeader[],\n headersWithoutCustomFilters: DataTableHeader[],\n customFilter: DataTableFilterFunction\n) {\n search = typeof search === 'string' ? search.trim() : null\n\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n // We need to match every filter to be included in the results.\n const matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, defaultFilter))\n\n // Headers without custom filters are only filtered by the `search` property if it is defined.\n // We only need a single column to match the search term to be included in the results.\n const matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter))\n\n return matchesColumnFilters && matchesSearchTerm\n })\n}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\n).extend({\n name: 'v-data-table',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => [],\n } as PropValidator,\n showSelect: Boolean,\n checkboxColor: String,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n customFilter: {\n type: Function,\n default: defaultFilter,\n } as PropValidator,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n },\n\n data () {\n return {\n internalGroupBy: [] as string[],\n openCache: {} as { [key: string]: boolean },\n widths: [] as number[],\n }\n },\n\n computed: {\n computedHeaders (): DataTableHeader[] {\n if (!this.headers) return []\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value))\n const defaultHeader = { text: '', sortable: false, width: '1px' }\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-select' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-expand' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n return headers\n },\n colspanAttrs (): object | undefined {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length,\n }\n },\n columnSorters (): Record {\n return this.computedHeaders.reduce>((acc, header) => {\n if (header.sort) acc[header.value] = header.sort\n return acc\n }, {})\n },\n headersWithCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n headersWithoutCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n sanitizedHeaderProps (): Record {\n return camelizeObjectKeys(this.headerProps)\n },\n computedItemsPerPage (): number {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage\n const itemsPerPageOptions: DataItemsPerPageOption[] | undefined = this.sanitizedFooterProps.itemsPerPageOptions\n\n if (\n itemsPerPageOptions &&\n !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)\n ) {\n const firstOption = itemsPerPageOptions[0]\n return typeof firstOption === 'object' ? firstOption.value : firstOption\n }\n\n return itemsPerPage\n },\n },\n\n created () {\n const breakingProps = [\n ['sort-icon', 'header-props.sort-icon'],\n ['hide-headers', 'hide-default-header'],\n ['select-all', 'show-select'],\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 mounted () {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths)\n this.calcWidths()\n }\n },\n\n beforeDestroy () {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths)\n }\n },\n\n methods: {\n calcWidths () {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth)\n },\n customFilterWithColumns (items: any[], search: string) {\n return searchTableItems(items, search, this.headersWithCustomFilters, this.headersWithoutCustomFilters, this.customFilter)\n },\n customSortWithHeaders (items: any[], sortBy: string[], sortDesc: boolean[], locale: string) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters)\n },\n createItemProps (item: any, index: number): DataTableItemProps {\n const props = VDataIterator.options.methods.createItemProps.call(this, item, index)\n\n return Object.assign(props, { headers: this.computedHeaders })\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [this.$createElement('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return this.$createElement('colgroup', this.computedHeaders.map(header => {\n return this.$createElement('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = this.$createElement('th', {\n staticClass: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = this.$createElement('tr', {\n staticClass: 'v-data-table__progress',\n }, [th])\n\n return this.$createElement('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n props: {\n ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n checkboxColor: this.checkboxColor,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort,\n },\n on: {\n sort: props.sort,\n group: props.group,\n 'toggle-select-all': this.toggleSelectAll,\n },\n }\n\n // TODO: rename to 'head'? (thead, tbody, tfoot)\n const children: VNodeChildrenArrayContents = [getSlot(this, 'header', {\n ...data,\n isMobile: this.isMobile,\n })]\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$scopedSlots)\n children.push(this.$createElement(VDataTableHeader, {\n ...data,\n scopedSlots,\n }))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return this.$createElement('tr', {\n staticClass: 'v-data-table__empty-wrapper',\n }, [\n this.$createElement('td', {\n attrs: this.colspanAttrs,\n }, content),\n ])\n },\n genItems (items: any[], props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n return props.groupedItems\n ? this.genGroupedRows(props.groupedItems, props)\n : this.genRows(items, props)\n },\n genGroupedRows (groupedItems: ItemGroup[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.$set(this.openCache, group.name, true)\n\n if (this.$scopedSlots.group) {\n return this.$scopedSlots.group({\n group: group.name,\n options: props.options,\n isMobile: this.isMobile,\n items: group.items,\n headers: this.computedHeaders,\n })\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props)\n }\n })\n },\n genDefaultGroupedRow (group: string, items: any[], props: DataScopeProps) {\n const isOpen = !!this.openCache[group]\n const children: VNodeChildren = [\n this.$createElement('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.$set(this.openCache, group, !this.openCache[group])\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$scopedSlots['group.header']) {\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [\n this.$scopedSlots['group.header']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn,\n }),\n ]))\n } else {\n const toggle = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: toggleFn,\n },\n }, [this.$createElement(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [this.$createElement(VIcon, ['$close'])])\n\n const column = this.$createElement('td', {\n staticClass: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${props.options.groupBy[0]}: ${group}`, remove])\n\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$scopedSlots['group.summary']) {\n children.push(this.$createElement('template', { slot: 'column.summary' }, [\n this.$scopedSlots['group.summary']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return this.$createElement(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props)\n },\n genScopedRows (items: any[], props: DataScopeProps) {\n const rows = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n rows.push(this.$scopedSlots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n if (this.isExpanded(item)) {\n rows.push(this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n index: i,\n item,\n }))\n }\n }\n\n return rows\n },\n genDefaultRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots['expanded-item']\n ? items.map((item, index) => this.genDefaultExpandedRow(item, index))\n : items.map((item, index) => this.genDefaultSimpleRow(item, index))\n },\n genDefaultExpandedRow (item: any, index: number): VNode {\n const isExpanded = this.isExpanded(item)\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded,\n }\n const headerRow = this.genDefaultSimpleRow(item, index, classes)\n const expandedRow = this.$createElement('tr', {\n staticClass: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return this.$createElement(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n this.$createElement('template', { slot: 'row.header' }, [headerRow]),\n this.$createElement('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$scopedSlots)\n\n const data = this.createItemProps(item, index)\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select']\n scopedSlots['data-table-select'] = slot ? () => slot({\n ...data,\n isMobile: this.isMobile,\n }) : () => this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n props: {\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (val: boolean) => data.select(val),\n },\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => this.$createElement(VIcon, {\n staticClass: 'v-data-table__expand-icon',\n class: {\n 'v-data-table__expand-icon--active': data.isExpanded,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n },\n },\n }, [this.expandIcon])\n }\n\n return this.$createElement(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: mergeClasses(\n { ...classes, 'v-data-table__selected': data.isSelected },\n getPropertyFromItem(item, this.itemClass)\n ),\n props: {\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n },\n scopedSlots,\n on: {\n // TODO: for click, the first argument should be the event, and the second argument should be data,\n // but this is a breaking change so it's for v3\n click: () => this.$emit('click:row', item, data),\n contextmenu: (event: MouseEvent) => this.$emit('contextmenu:row', event, data),\n dblclick: (event: MouseEvent) => this.$emit('dblclick:row', event, data),\n },\n })\n },\n genBody (props: DataScopeProps): VNode | string | VNodeChildren {\n const data = {\n ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select,\n }\n\n if (this.$scopedSlots.body) {\n return this.$scopedSlots.body!(data)\n }\n\n return this.$createElement('tbody', [\n getSlot(this, 'body.prepend', data, true),\n this.genItems(props.items, props),\n getSlot(this, 'body.append', data, true),\n ])\n },\n genFoot (props: DataScopeProps): VNode[] | undefined {\n return this.$scopedSlots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n props: {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n widths: this.widths,\n headers: this.computedHeaders,\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', data, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(this.$createElement(VDataFooter, {\n ...data,\n scopedSlots: getPrefixedScopedSlots('footer.', this.$scopedSlots),\n }))\n }\n\n return children\n },\n genDefaultScopedSlot (props: DataScopeProps): VNode {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense,\n }\n\n // if (this.virtualRows) {\n // return this.$createElement(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return this.$createElement(VSimpleTable, {\n props: simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n },\n }, [\n this.proxySlot('top', getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true)),\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n this.proxySlot('bottom', this.genFooters(props)),\n ])\n },\n proxySlot (slot: string, content: VNodeChildren) {\n return this.$createElement('template', { slot }, content)\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n },\n on: {\n 'update:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'update:page': (v: number) => this.$emit('update:page', v),\n 'update:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n pagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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 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","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\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 {\n escapeHTML,\n getPropertyFromItem,\n} 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 escapeHTML(text)\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return `${escapeHTML(start)}${this.genHighlight(middle)}${escapeHTML(end)}`\n },\n genHeader (props: { [key: string]: any }): VNode {\n return this.$createElement(VSubheader, { props }, props.header)\n },\n genHighlight (text: string): string {\n return `${escapeHTML(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 const innerHTML = this.genFilteredText(this.getText(item))\n\n return this.$createElement(VListItemContent,\n [this.$createElement(VListItemTitle, {\n domProps: { innerHTML },\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 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 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 && keyCode !== keyCodes.tab) {\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 // When selecting multiple\n // adjust menu after each\n // selection\n this.$nextTick(() => {\n this.$refs.menu &&\n (this.$refs.menu as { [key: string]: any }).updateDimensions()\n })\n\n const listIndex = this.getMenuIndex()\n\n this.setMenuIndex(-1)\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) return\n\n this.$nextTick(() => this.setMenuIndex(listIndex))\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","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props } = ctx\n const data = {\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","// 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","// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return Vue.extend({\n name: 'intersectable',\n\n mounted () {\n Intersect.inserted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n })\n },\n\n destroyed () {\n Intersect.unbind(this.$el as HTMLElement)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\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"],"sourceRoot":""}