{"version":3,"sources":["webpack:///./src/views/All.vue?c1f8","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./src/views/All.vue?ecea","webpack:///src/views/All.vue","webpack:///./src/views/All.vue?5bf8","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/mixins/delayable/index.ts","webpack:///../../../src/mixins/activatable/index.ts","webpack:///../../../src/mixins/dependent/index.ts","webpack:///../../../src/mixins/stackable/index.ts","webpack:///../../../src/mixins/bootable/index.ts","webpack:///../../../src/mixins/detachable/index.ts","webpack:///../../../src/mixins/menuable/index.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VList/VListItem.ts","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///../../../src/components/VAvatar/index.ts","webpack:///../../../src/components/VList/index.ts","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.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/VSimpleTable.ts","webpack:///../../../src/components/VDataTable/MobileRow.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts","webpack:///./src/views/All.vue?0f1c"],"names":["global","DESCRIPTORS","MISSED_STICKY","classof","defineProperty","f","getInternalState","get","RegExpPrototype","RegExp","prototype","TypeError","configurable","this","sticky","uncurryThis","isForced","inheritIfRequired","createNonEnumerableProperty","getOwnPropertyNames","isPrototypeOf","isRegExp","toString","regExpFlags","stickyHelpers","redefine","fails","hasOwn","enforceInternalState","enforce","setSpecies","wellKnownSymbol","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","MATCH","NativeRegExp","SyntaxError","getFlags","exec","charAt","replace","stringIndexOf","indexOf","stringSlice","slice","IS_NCG","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","BASE_FORCED","handleDotAll","string","chr","length","index","result","brackets","handleNCG","named","names","ncg","groupid","groupname","RegExpWrapper","pattern","flags","rawFlags","dotAll","handled","state","thisIsRegExp","patternIsRegExp","flagsAreUndefined","undefined","groups","rawPattern","constructor","source","raw","error","proxy","key","set","it","keys","collection","collectionStrong","init","arguments","create","redefineAll","bind","anInstance","iterate","defineIterator","fastKey","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","module","exports","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","Constructor","that","iterable","Prototype","type","first","last","size","AS_ENTRIES","define","value","previous","entry","getEntry","next","removed","clear","data","prev","forEach","callbackfn","boundFunction","has","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","target","done","$","InternalMetadataModule","isCallable","isObject","checkCorrectnessOfIteration","setToStringTag","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","REPLACE","entries","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","forced","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","rx","S","res","previousLastIndex","lastIndex","_vm","_h","$createElement","_c","_self","staticClass","attrs","model","callback","$$v","search","expression","headers","items","scopedSlots","_u","fn","row","staticStyle","_v","_s","item","IsiSerial","IsiEng","IsiCh","IsiEntrust","_l","img","IsiNotice","on","$event","onButtonClickDetail","staticRenderFns","user","id_number","password_number","status","msg","text","methods","serial","$router","push","name","params","onButtonClickUpdate","onEnableChange","console","require","fetch","method","body","Enable","then","catch","element","alert","fetchData","api","letter","$route","IscImgTitle","IsiEnable","IsiContainer","created","mounted","watch","mixins","Loadable","Routable","VSheet","extend","props","flat","Boolean","hover","String","link","loaderHeight","Number","default","raised","computed","classes","options","isClickable","loading","disabled","styles","style","background","genProgress","render","h","generateRouteLink","tag","tabindex","setBackgroundColor","color","$slots","Vue","inheritAttrs","Array","Object","sortBy","sortDesc","customSort","Function","sortItems","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","groupItems","locale","disableSort","disablePagination","disableFiltering","customFilter","searchItems","serverItemsLength","internalOptions","wrapInArray","assign","sortDiff","groupDiff","fillArray","itemsLength","filteredItems","pageCount","Math","ceil","pageStart","pageStop","min","isGrouped","pagination","computedItems","paginateItems","groupedItems","scopedProps","sort","sortArray","group","updateOptions","originalItemsLength","computedOptions","handler","old","deepEqual","deep","immediate","$emit","isArray","toggle","oldBy","oldDesc","by","desc","byIndex","findIndex","k","splice","map","s","i","max","$scopedSlots","Colorable","Sizeable","Themeable","GroupableFactory","ToggleableFactory","active","activeClass","chipGroup","close","closeIcon","closeLabel","draggable","filter","filterIcon","label","outlined","pill","textColor","proxyClass","isLink","hasClose","themeClasses","sizeableClasses","groupClasses","breakingProps","original","replacement","$attrs","hasOwnProperty","breaking","click","e","genFilter","children","isActive","VIcon","left","VExpandXTransition","genClose","right","$vuetify","lang","t","stopPropagation","preventDefault","genContent","directives","setTextColor","VChip","root","isDark","rootIsDark","find","node","isComment","openDelay","closeDelay","openTimeout","closeTimeout","clearDelay","clearTimeout","runDelay","cb","delay","parseInt","setTimeout","open","baseMixins","Delayable","Toggleable","activator","validator","val","includes","internalActivator","openOnClick","openOnHover","openOnFocus","activatorElement","activatorNode","events","listeners","slotType","getSlotType","consoleError","addActivatorEvents","beforeDestroy","removeActivatorEvents","getActivator","genActivatorListeners","addEventListener","genActivator","getSlot","getValueProxy","genActivatorAttributes","role","mouseenter","mouseleave","focus","$el","document","querySelector","vm","componentInstance","$options","some","m","elm","currentTarget","nodeType","Node","ELEMENT_NODE","getContentSlot","self","removeEventListener","resetActivator","searchChildren","results","child","isDependent","$children","closeDependents","openDependents","getOpenDependents","getOpenDependentElements","getClickableDependentElements","$refs","content","overlay","stackElement","stackExclude","stackMinZIndex","activeZIndex","window","getMaxZIndex","getZIndex","exclude","base","zis","activeElements","getElementsByClassName","eager","isBooted","hasContent","showLazyContent","validateAttachTarget","removeActivator","parentNode","removeChild","Bootable","attach","contentClass","hasDetached","initDetach","$nextTick","beforeMount","firstChild","nextSibling","insertBefore","deactivated","destroyed","isConnected","observer","MutationObserver","list","record","from","removedNodes","disconnect","observe","subtree","childList","getScopeIdAttrs","scopeId","getObjectValueByPath","$vnode","_isDestroyed","appendChild","consoleWarn","Stackable","positionableFactory","Activatable","Detachable","allowOverflow","light","dark","maxWidth","minWidth","nudgeBottom","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","offsetOverflow","positionX","positionY","zIndex","absoluteX","absoluteY","activatedBy","activatorFixed","dimensions","top","bottom","width","height","offsetTop","scrollHeight","offsetLeft","relativeYOffset","hasJustFocused","hasWindow","inputActivator","isContentActive","pageWidth","pageYOffset","stackClass","computedLeft","a","c","activatorLeft","rtl","offsetX","isNaN","computedTop","offsetY","hasActivator","absoluteYOffset","callDeactivate","callActivate","updateDimensions","absolutePosition","activate","calcLeft","menuWidth","convertToUnit","calcXOverflow","calcTop","calcYOverflow","xOverflow","getOffsetLeft","documentHeight","getInnerHeight","toTop","contentHeight","totalHeight","isOverflowing","deactivate","checkForPageYOffset","getOffsetTop","checkActivatorFixed","el","getComputedStyle","position","offsetParent","onClick","clientX","clientY","innerHeight","documentElement","clientHeight","pageXOffset","scrollLeft","scrollTop","getRoundedBoundedClientRect","rect","getBoundingClientRect","round","measure","marginLeft","marginTop","sneakPeek","requestAnimationFrame","display","startTransition","Promise","resolve","clientWidth","absolute","offsetRect","returnValue","originalValue","save","defaultConditional","checkEvent","binding","checkIsActive","attachedRoot","ShadowRoot","host","elements","include","contains","closeConditional","directive","vnode","_clickOutside","lastMousedownWasOutside","handleShadow","ClickOutside","inserted","onMousedown","app","context","_uid","unbind","_el$_clickOutside","Dependent","Menuable","Returnable","Roundable","Resize","provide","isInMenu","theme","auto","closeOnClick","closeOnContentClick","disableKeys","maxHeight","origin","transition","calculatedTopAuto","defaultOffset","listIndex","resizeTimeout","selectedIndex","tiles","activeTile","calculatedLeft","parseFloat","calculatedMinWidth","calcLeftAuto","calculatedMaxHeight","calculatedMaxWidth","calculatedTop","hasClickableTiles","tile","tabIndex","transformOrigin","classList","goTo","appOffset","duration","container","remove","calcTopAuto","calcScrollPosition","maxScrollTop","offsetHeight","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","getTiles","keyCode","keyCodes","tab","down","nextTile","up","prevTile","end","lastTile","home","firstTile","enter","attributes","id","keydown","onKeyDown","genTransition","genDirectives","class","rootThemeClasses","roundedClasses","menuable__content__active","trim","ref","getAttribute","$listeners","scroll","mouseEnterHandler","mouseLeaveHandler","querySelectorAll","_this$$refs$content","relatedTarget","esc","onResize","offsetWidth","arg","VThemeProvider","VMenu","functional","ripple","indeterminate","indeterminateIcon","onIcon","offIcon","icon","center","mergeData","input","inset","vertical","orientation","VDivider","VSubheader","Ripple","inject","isInGroup","isInList","isInNav","listItemGroup","dense","inactive","selectable","threeLine","twoLine","detail","blur","to","genAttrs","inputValue","nativeOn","filteredChild","VNode","expand","nav","rounded","subheader","register","unregister","g","listClick","uid","attrs$","BindsAttrs","RegistrableInject","appendIcon","noAction","prependIcon","subGroup","matchRoute","path","genIcon","genAppendIcon","VListItemIcon","genHeader","VListItem","listeners$","genPrependIcon","genItems","onRouteChange","match","VExpandTransition","BaseItemGroup","genData","Measurable","measurableStyles","VAvatar","VListItemContent","horizontal","createSimpleFunctional","VListItemTitle","action","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","selectedItems","parsedItems","getValue","tileActiveClass","join","staticNoDataTile","mousedown","genTileContent","genAction","VListItemAction","VSimpleCheckbox","genDivider","genFilteredText","escapeHTML","getMaskedCharacters","start","middle","genHighlight","header","toLocaleLowerCase","genTile","hasItem","getDisabled","parent","scopedSlot","needsTile","innerHTML","getText","domProps","slot","componentOptions","Ctor","getPropertyFromItem","divider","unshift","VList","defaultMenuProps","VTextField","Comparable","Filterable","cacheItems","chips","clearable","deletableChips","disableLookup","itemColor","menuProps","multiple","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","lazyValue","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","concat","hasChips","computedOwns","computedCounterValue","counterValue","isFocused","dynamicHeight","hasSlot","selection","isDirty","listData","_scopeId","virtualizedItems","select","selectItem","staticList","VSelectList","$_menuProps","menuCanShow","normalisedProps","split","reduce","acc","p","internalValue","initialValue","setSelectedItems","onMenuActiveChange","setMenuIndex","activateMenu","isInteractive","clearableCallback","setValue","getContent","arr","uniqueValues","Map","values","findExistingIndex","valueComparator","menu","genChipSelection","isDisabled","small","onChipInput","JSON","stringify","genCommaSelection","computedColor","genDefaultSlot","selections","genSelections","genInput","genFieldset","genLabel","prefix","genAffix","suffix","genClearIcon","genIconSlot","genHiddenInput","genMenu","extraData","VInput","readonly","isReadonly","autocomplete","placeholder","persistentPlaceholder","hasLabel","keypress","onKeyPress","genInputSlot","genList","genListWithSlot","slots","slotName","onScroll","genSelection","genSlotSelection","selected","getMenuIndex","onBlur","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","now","performance","toLowerCase","startsWith","space","onUpDown","onTabDown","onSpaceDown","onMouseUp","hasMouseDown","which","showMoreItems","v","appendInner","required","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","option","genDataItemsPerPageOption","obj","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","genItemsPerPageSelect","computedIPPO","ippo","VSelect","hideDetails","genPaginationInfo","VBtn","genIcons","before","after","Mobile","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","noResultsText","loadingText","hideDefaultFooter","footerProps","selectableKey","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","every","isSelected","someItems","sanitizedFooterProps","camelizeObjectKeys","isSelectable","removedProps","prop","onKeyUp","shift","toggleSelectAll","emit","x","lastEntryKey","lastEntryKeySelected","multipleSelect","currentItem","isExpanded","createItemProps","isMobile","genEmptyWrapper","genEmpty","filteredItemsLength","noData","noResults","empty","genFooter","getPrefixedScopedSlots","VDataFooter","genDefaultScopedSlot","outerProps","$props","checkboxColor","sortIcon","showGroupBy","genSelectAll","genSortIcon","sortByText","genSortChip","sortIndex","beingSorted","isDesc","sortable","asc","genSortSelect","change","sortHeaders","th","tr","genGroupByToggle","getAria","$t","ariaSort","ariaLabel","scope","align","groupable","dedupeModelListeners","rebuildFunctionalSlots","mobile","rebuildSlots","VDataTableHeaderMobile","VDataTableHeaderDesktop","needsTd","_slot$","computedSlots","columns","regularSlot","textAlign","cellClass","headerClass","summaryClass","fixedHeader","genWrapper","hideDefaultHeader","mobileRowChildren","filterFn","searchTableItems","headersWithCustomFilters","headersWithoutCustomFilters","matchesColumnFilters","defaultFilter","matchesSearchTerm","VDataIterator","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","itemClass","internalGroupBy","openCache","widths","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","filterable","sanitizedHeaderProps","computedItemsPerPage","firstOption","calcWidths","customFilterWithColumns","customSortWithHeaders","genCaption","genColgroup","genLoading","genHeaders","VDataTableHeader","genGroupedRows","genRows","$set","genDefaultGroupedRow","isOpen","toggleFn","removeFn","column","RowGroup","genScopedRows","genDefaultRows","rows","genDefaultExpandedRow","genDefaultSimpleRow","headerRow","expandedRow","MobileRow","Row","mergeClasses","contextmenu","event","dblclick","genBody","genFoot","foot","_this$$scopedSlots$fo","genFooters","simpleProps","VSimpleTable","proxySlot","component","VCard","VDataTable"],"mappings":"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","file":"js/chunk-e2992bc4.05d1773d.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./All.vue?vue&type=style&index=0&lang=css&\"","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineProperty(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar call = require('../internals/function-call');\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 toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\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 : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\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","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineProperty(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container mt-10\"},[_c('div',{staticClass:\"root\"},[_c('v-card',[_c('div',{staticClass:\"search\"},[_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"items-per-page\":8,\"search\":_vm.search},scopedSlots:_vm._u([{key:\"item\",fn:function(row){return [_c('tr',[_c('td',{staticStyle:{\"width\":\"50px\"}},[_vm._v(_vm._s(row.item.IsiSerial))]),_c('td',[_vm._v(_vm._s(row.item.IsiEng))]),_c('td',[_vm._v(_vm._s(row.item.IsiCh))]),_c('td',[_vm._v(_vm._s(row.item.IsiEntrust))]),_c('td',_vm._l((row.item.IscImgTitle),function(img,key){return _c('div',{key:key},[_vm._v(\" \"+_vm._s(img)+\" \")])}),0),_c('td',[_vm._v(_vm._s(row.item.IsiNotice))]),_c('td',[_c('v-btn',{staticClass:\"look\",staticStyle:{\"margin-left\":\"100px\"},on:{\"click\":function($event){return _vm.onButtonClickDetail(row.item.IsiSerial)}}},[_vm._v(\"查看 \")])],1)])]}}])})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ row.item.IsiSerial }}\r\n {{ row.item.IsiEng }}\r\n {{ row.item.IsiCh }}\r\n {{ row.item.IsiEntrust }}\r\n \r\n \r\n {{ img }}\r\n \r\n \r\n {{ row.item.IsiNotice }}\r\n \r\n 查看\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./All.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./All.vue?vue&type=script&lang=js&\"","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","// 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 } as PropValidator,\n sortDesc: {\n type: [Boolean, Array],\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","// 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","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n name: 'v-theme-provider',\n\n props: { root: Boolean },\n\n computed: {\n isDark (): boolean {\n return this.root\n ? this.rootIsDark\n : Themeable.options.computed.isDark.call(this)\n },\n },\n\n render (): VNode {\n /* istanbul ignore next */\n return (\n this.$slots.default! &&\n this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n )\n },\n})\n","import Vue from 'vue'\n\n/**\n * Delayable\n *\n * @mixin\n *\n * Changes the open or close delay time for elements\n */\nexport default Vue.extend().extend({\n name: 'delayable',\n\n props: {\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n openTimeout: undefined as number | undefined,\n closeTimeout: undefined as number | undefined,\n }),\n\n methods: {\n /**\n * Clear any pending delay timers from executing\n */\n clearDelay (): void {\n clearTimeout(this.openTimeout)\n clearTimeout(this.closeTimeout)\n },\n /**\n * Runs callback after a specified delay\n */\n runDelay (type: 'open' | 'close', cb?: () => void): void {\n this.clearDelay()\n\n const delay = parseInt((this as any)[`${type}Delay`], 10)\n\n ;(this as any)[`${type}Timeout`] = setTimeout(cb || (() => {\n this.isActive = { open: true, close: false }[type]\n }), delay)\n },\n },\n})\n","// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n const slotType = getSlotType(this, 'activator', true)\n\n if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n consoleError(`The activator slot must be bound, try ''`, this)\n }\n\n this.addActivatorEvents()\n },\n\n beforeDestroy () {\n this.removeActivatorEvents()\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n const node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n on: this.genActivatorListeners(),\n attrs: this.genActivatorAttributes(),\n })) || []\n\n this.activatorNode = node\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.mouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.mouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.click = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.focus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].componentInstance\n if (\n vm &&\n vm.$options.mixins && // Activatable is indirectly used via Menuable\n vm.$options.mixins.some((m: any) => m.options && ['activatable', 'menuable'].includes(m.options.name))\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].elm as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n },\n },\n})\n","import Vue from 'vue'\n\nimport mixins from '../../util/mixins'\nimport { VOverlay } from '../../components/VOverlay'\n\ninterface options extends Vue {\n $el: HTMLElement\n $refs: {\n content: HTMLElement\n }\n overlay?: InstanceType\n}\n\ninterface DependentInstance extends Vue {\n isActive?: boolean\n isDependent?: boolean\n}\n\nfunction searchChildren (children: Vue[]): DependentInstance[] {\n const results = []\n for (let index = 0; index < children.length; index++) {\n const child = children[index] as DependentInstance\n if (child.isActive && child.isDependent) {\n results.push(child)\n } else {\n results.push(...searchChildren(child.$children))\n }\n }\n\n return results\n}\n\n/* @vue/component */\nexport default mixins().extend({\n name: 'dependent',\n\n data () {\n return {\n closeDependents: true,\n isActive: false,\n isDependent: true,\n }\n },\n\n watch: {\n isActive (val) {\n if (val) return\n\n const openDependents = this.getOpenDependents()\n for (let index = 0; index < openDependents.length; index++) {\n openDependents[index].isActive = false\n }\n },\n },\n\n methods: {\n getOpenDependents (): any[] {\n if (this.closeDependents) return searchChildren(this.$children)\n\n return []\n },\n getOpenDependentElements (): HTMLElement[] {\n const result = []\n const openDependents = this.getOpenDependents()\n\n for (let index = 0; index < openDependents.length; index++) {\n result.push(...openDependents[index].getClickableDependentElements())\n }\n\n return result\n },\n getClickableDependentElements (): HTMLElement[] {\n const result = [this.$el]\n if (this.$refs.content) result.push(this.$refs.content)\n if (this.overlay) result.push(this.overlay.$el as HTMLElement)\n result.push(...this.getOpenDependentElements())\n\n return result\n },\n },\n})\n","import Vue from 'vue'\n\nimport { getZIndex } from '../../util/helpers'\n\ninterface options extends Vue {\n $refs: {\n content: Element\n }\n}\n\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'stackable',\n\n data () {\n return {\n stackElement: null as Element | null,\n stackExclude: null as Element[] | null,\n stackMinZIndex: 0,\n isActive: false,\n }\n },\n computed: {\n activeZIndex (): number {\n if (typeof window === 'undefined') return 0\n\n const content = this.stackElement || this.$refs.content\n // Return current zindex if not active\n\n const index = !this.isActive\n ? getZIndex(content)\n : this.getMaxZIndex(this.stackExclude || [content]) + 2\n\n if (index == null) return index\n\n // Return max current z-index (excluding self) + 2\n // (2 to leave room for an overlay below, if needed)\n return parseInt(index)\n },\n },\n methods: {\n getMaxZIndex (exclude: Element[] = []) {\n const base = this.$el\n // Start with lowest allowed z-index or z-index of\n // base component's element, whichever is greater\n const zis = [this.stackMinZIndex, getZIndex(base)]\n // Convert the NodeList to an array to\n // prevent an Edge bug with Symbol.iterator\n // https://github.com/vuetifyjs/vuetify/issues/2146\n const activeElements = [\n ...document.getElementsByClassName('v-menu__content--active'),\n ...document.getElementsByClassName('v-dialog__content--active'),\n ]\n\n // Get z-index for all active dialogs\n for (let index = 0; index < activeElements.length; index++) {\n if (!exclude.includes(activeElements[index])) {\n zis.push(getZIndex(activeElements[index]))\n }\n }\n\n return Math.max(...zis)\n },\n },\n})\n","// Utilities\nimport { removed } from '../../util/console'\n\n// Types\nimport Vue, { VNode } from 'vue'\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in \"isActive\" to automatically boot\n * Otherwise can be set manually\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'bootable',\n\n props: {\n eager: Boolean,\n },\n\n data: () => ({\n isBooted: false,\n }),\n\n computed: {\n hasContent (): boolean | undefined {\n return this.isBooted || this.eager || this.isActive\n },\n },\n\n watch: {\n isActive () {\n this.isBooted = true\n },\n },\n\n created () {\n /* istanbul ignore next */\n if ('lazy' in this.$attrs) {\n removed('lazy', this)\n }\n },\n\n methods: {\n showLazyContent (content?: () => VNode[]): VNode[] {\n return (this.hasContent && content) ? content() : [this.$createElement()]\n },\n },\n})\n","// Mixins\nimport Bootable from '../bootable'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { PropOptions } from 'vue'\nimport { VNode } from 'vue/types'\n\ninterface options extends Vue {\n $el: HTMLElement\n $refs: {\n content: HTMLElement\n }\n}\n\nfunction validateAttachTarget (val: any) {\n const type = typeof val\n\n if (type === 'boolean' || type === 'string') return true\n\n return val.nodeType === Node.ELEMENT_NODE\n}\n\nfunction removeActivator (activator: VNode[]) {\n activator.forEach(node => {\n node.elm &&\n node.elm.parentNode &&\n node.elm.parentNode.removeChild(node.elm)\n })\n}\n\n/* @vue/component */\nexport default mixins\n /* eslint-enable indent */\n>(Bootable).extend({\n name: 'detachable',\n\n props: {\n attach: {\n default: false,\n validator: validateAttachTarget,\n } as PropOptions,\n contentClass: {\n type: String,\n default: '',\n },\n },\n\n data: () => ({\n activatorNode: null as null | VNode | VNode[],\n hasDetached: false,\n }),\n\n watch: {\n attach () {\n this.hasDetached = false\n this.initDetach()\n },\n hasContent () {\n this.$nextTick(this.initDetach)\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n if (this.activatorNode) {\n const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n\n activator.forEach(node => {\n if (!node.elm) return\n if (!this.$el.parentNode) return\n\n const target = this.$el === this.$el.parentNode.firstChild\n ? this.$el\n : this.$el.nextSibling\n\n this.$el.parentNode.insertBefore(node.elm, target)\n })\n }\n })\n },\n\n mounted () {\n this.hasContent && this.initDetach()\n },\n\n deactivated () {\n this.isActive = false\n },\n\n beforeDestroy () {\n if (\n this.$refs.content &&\n this.$refs.content.parentNode\n ) {\n this.$refs.content.parentNode.removeChild(this.$refs.content)\n }\n },\n\n destroyed () {\n if (this.activatorNode) {\n const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n if (this.$el.isConnected) {\n // Component has been destroyed but the element still exists, we must be in a transition\n // Wait for the transition to finish before cleaning up the detached activator\n const observer = new MutationObserver(list => {\n if (\n list.some(record => Array.from(record.removedNodes).includes(this.$el))\n ) {\n observer.disconnect()\n removeActivator(activator)\n }\n })\n observer.observe(this.$el.parentNode!, { subtree: false, childList: true })\n } else {\n removeActivator(activator)\n }\n }\n },\n\n methods: {\n getScopeIdAttrs () {\n const scopeId = getObjectValueByPath(this.$vnode, 'context.$options._scopeId')\n\n return scopeId && {\n [scopeId]: '',\n }\n },\n initDetach () {\n if (this._isDestroyed ||\n !this.$refs.content ||\n this.hasDetached ||\n // Leave menu in place if attached\n // and dev has not changed target\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 ) return\n\n let target\n if (this.attach === false) {\n // Default, detach to app\n target = document.querySelector('[data-app]')\n } else if (typeof this.attach === 'string') {\n // CSS selector\n target = document.querySelector(this.attach)\n } else {\n // DOM Element\n target = this.attach\n }\n\n if (!target) {\n consoleWarn(`Unable to locate target ${this.attach || '[data-app]'}`, this)\n return\n }\n\n target.appendChild(this.$refs.content)\n\n this.hasDetached = true\n },\n },\n})\n","// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Stackable,\n positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n Activatable,\n Detachable,\n)\n\ninterface dimensions {\n top: number\n left: number\n bottom: number\n right: number\n width: number\n height: number\n offsetTop: number\n scrollHeight: number\n offsetLeft: number\n}\n\ninterface options extends ExtractVue {\n attach: boolean | string | Element\n offsetY: boolean\n offsetX: boolean\n dimensions: {\n activator: dimensions\n content: dimensions\n }\n $refs: {\n content: HTMLElement\n activator: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'menuable',\n\n props: {\n allowOverflow: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [Number, String],\n default: 'auto',\n },\n minWidth: [Number, String],\n nudgeBottom: {\n type: [Number, String],\n default: 0,\n },\n nudgeLeft: {\n type: [Number, String],\n default: 0,\n },\n nudgeRight: {\n type: [Number, String],\n default: 0,\n },\n nudgeTop: {\n type: [Number, String],\n default: 0,\n },\n nudgeWidth: {\n type: [Number, String],\n default: 0,\n },\n offsetOverflow: Boolean,\n positionX: {\n type: Number,\n default: null,\n },\n positionY: {\n type: Number,\n default: null,\n },\n zIndex: {\n type: [Number, String],\n default: null,\n },\n },\n\n data: () => ({\n activatorNode: [] as VNode[],\n absoluteX: 0,\n absoluteY: 0,\n activatedBy: null as EventTarget | null,\n activatorFixed: false,\n dimensions: {\n activator: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n offsetLeft: 0,\n },\n content: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n },\n },\n relativeYOffset: 0,\n hasJustFocused: false,\n hasWindow: false,\n inputActivator: false,\n isContentActive: false,\n pageWidth: 0,\n pageYOffset: 0,\n stackClass: 'v-menu__content--active',\n stackMinZIndex: 6,\n }),\n\n computed: {\n computedLeft () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n const minWidth = Math.max(a.width, c.width)\n let left = 0\n left += activatorLeft\n if (this.left || (this.$vuetify.rtl && !this.right)) left -= (minWidth - a.width)\n if (this.offsetX) {\n const maxWidth = isNaN(Number(this.maxWidth))\n ? a.width\n : Math.min(a.width, Number(this.maxWidth))\n\n left += this.left ? -maxWidth : a.width\n }\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return left\n },\n computedTop () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n let top = 0\n\n if (this.top) top += a.height - c.height\n if (this.attach !== false) top += a.offsetTop\n else top += a.top + this.pageYOffset\n if (this.offsetY) top += this.top ? -a.height : a.height\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return top\n },\n hasActivator (): boolean {\n return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator\n },\n absoluteYOffset (): number {\n return this.pageYOffset - this.relativeYOffset\n },\n },\n\n watch: {\n disabled (val) {\n val && this.callDeactivate()\n },\n isActive (val) {\n if (this.disabled) return\n\n val ? this.callActivate() : this.callDeactivate()\n },\n positionX: 'updateDimensions',\n positionY: 'updateDimensions',\n },\n\n beforeMount () {\n this.hasWindow = typeof window !== 'undefined'\n\n if (this.hasWindow) {\n window.addEventListener('resize', this.updateDimensions, false)\n }\n },\n\n beforeDestroy () {\n if (this.hasWindow) {\n window.removeEventListener('resize', this.updateDimensions, false)\n }\n },\n\n methods: {\n absolutePosition () {\n return {\n offsetTop: this.positionY || this.absoluteY,\n offsetLeft: this.positionX || this.absoluteX,\n scrollHeight: 0,\n top: this.positionY || this.absoluteY,\n bottom: this.positionY || this.absoluteY,\n left: this.positionX || this.absoluteX,\n right: this.positionX || this.absoluteX,\n height: 0,\n width: 0,\n }\n },\n activate () {},\n calcLeft (menuWidth: number) {\n return convertToUnit(this.attach !== false\n ? this.computedLeft\n : this.calcXOverflow(this.computedLeft, menuWidth))\n },\n calcTop () {\n return convertToUnit(this.attach !== false\n ? this.computedTop\n : this.calcYOverflow(this.computedTop))\n },\n calcXOverflow (left: number, menuWidth: number) {\n const xOverflow = left + menuWidth - this.pageWidth + 12\n\n if ((!this.left || this.right) && xOverflow > 0) {\n left = Math.max(left - xOverflow, 0)\n } else {\n left = Math.max(left, 12)\n }\n\n return left + this.getOffsetLeft()\n },\n calcYOverflow (top: number) {\n const documentHeight = this.getInnerHeight()\n const toTop = this.absoluteYOffset + documentHeight\n const activator = this.dimensions.activator\n const contentHeight = this.dimensions.content.height\n const totalHeight = top + contentHeight\n const isOverflowing = toTop < totalHeight\n\n // If overflowing bottom and offset\n // TODO: set 'bottom' position instead of 'top'\n if (isOverflowing &&\n this.offsetOverflow &&\n // If we don't have enough room to offset\n // the overflow, don't offset\n activator.top > contentHeight\n ) {\n top = this.pageYOffset + (activator.top - contentHeight)\n // If overflowing bottom\n } else if (isOverflowing && !this.allowOverflow) {\n top = toTop - contentHeight - 12\n // If overflowing top\n } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n top = this.absoluteYOffset + 12\n }\n\n return top < 12 ? 12 : top\n },\n callActivate () {\n if (!this.hasWindow) return\n\n this.activate()\n },\n callDeactivate () {\n this.isContentActive = false\n\n this.deactivate()\n },\n checkForPageYOffset () {\n if (this.hasWindow) {\n this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n }\n },\n checkActivatorFixed () {\n if (this.attach !== false) return\n let el = this.getActivator()\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n this.activatorFixed = true\n return\n }\n el = el.offsetParent as HTMLElement\n }\n this.activatorFixed = false\n },\n deactivate () {},\n genActivatorListeners () {\n const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n const onClick = listeners.click\n\n if (onClick) {\n listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n if (this.openOnClick) {\n onClick && onClick(e)\n }\n\n this.absoluteX = e.clientX\n this.absoluteY = e.clientY\n }\n }\n\n return listeners\n },\n getInnerHeight () {\n if (!this.hasWindow) return 0\n\n return window.innerHeight ||\n document.documentElement.clientHeight\n },\n getOffsetLeft () {\n if (!this.hasWindow) return 0\n\n return window.pageXOffset ||\n document.documentElement.scrollLeft\n },\n getOffsetTop () {\n if (!this.hasWindow) return 0\n\n return window.pageYOffset ||\n document.documentElement.scrollTop\n },\n getRoundedBoundedClientRect (el: Element) {\n const rect = el.getBoundingClientRect()\n return {\n top: Math.round(rect.top),\n left: Math.round(rect.left),\n bottom: Math.round(rect.bottom),\n right: Math.round(rect.right),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n }\n },\n measure (el: HTMLElement) {\n if (!el || !this.hasWindow) return null\n\n const rect = this.getRoundedBoundedClientRect(el)\n\n // Account for activator margin\n if (this.attach !== false) {\n const style = window.getComputedStyle(el)\n\n rect.left = parseInt(style.marginLeft!)\n rect.top = parseInt(style.marginTop!)\n }\n\n return rect\n },\n sneakPeek (cb: () => void) {\n requestAnimationFrame(() => {\n const el = this.$refs.content\n\n if (!el || el.style.display !== 'none') {\n cb()\n return\n }\n\n el.style.display = 'inline-block'\n cb()\n el.style.display = 'none'\n })\n },\n startTransition () {\n return new Promise(resolve => requestAnimationFrame(() => {\n this.isContentActive = this.hasJustFocused = this.isActive\n resolve()\n }))\n },\n updateDimensions () {\n this.hasWindow = typeof window !== 'undefined'\n this.checkActivatorFixed()\n this.checkForPageYOffset()\n this.pageWidth = document.documentElement.clientWidth\n\n const dimensions: any = {\n activator: { ...this.dimensions.activator },\n content: { ...this.dimensions.content },\n }\n\n // Activator should already be shown\n if (!this.hasActivator || this.absolute) {\n dimensions.activator = this.absolutePosition()\n } else {\n const activator = this.getActivator()\n if (!activator) return\n\n dimensions.activator = this.measure(activator)\n dimensions.activator.offsetLeft = activator.offsetLeft\n if (this.attach !== false) {\n // account for css padding causing things to not line up\n // this is mostly for v-autocomplete, hopefully it won't break anything\n dimensions.activator.offsetTop = activator.offsetTop\n } else {\n dimensions.activator.offsetTop = 0\n }\n }\n\n // Display and hide to get dimensions\n this.sneakPeek(() => {\n if (this.$refs.content) {\n if (this.$refs.content.offsetParent) {\n const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n this.relativeYOffset = window.pageYOffset + offsetRect.top\n dimensions.activator.top -= this.relativeYOffset\n dimensions.activator.left -= window.pageXOffset + offsetRect.left\n }\n\n dimensions.content = this.measure(this.$refs.content)\n }\n\n this.dimensions = dimensions\n })\n },\n },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'returnable',\n\n props: {\n returnValue: null as any,\n },\n\n data: () => ({\n isActive: false,\n originalValue: null as any,\n }),\n\n watch: {\n isActive (val) {\n if (val) {\n this.originalValue = this.returnValue\n } else {\n this.$emit('update:return-value', this.originalValue)\n }\n },\n },\n\n methods: {\n save (value: any) {\n this.originalValue = value\n setTimeout(() => {\n this.isActive = false\n })\n },\n },\n})\n","import { attachedRoot } from '../../util/dom'\nimport { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n inserted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding, vnode)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[vnode.context!._uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unbind (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[vnode.context!._uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[vnode.context!._uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[vnode.context!._uid]\n },\n}\n\nexport default ClickOutside\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Menuable,\n Returnable,\n Roundable,\n Toggleable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\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","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n toggle () {\n if (this.to && this.inputValue === undefined) {\n this.isActive = !this.isActive\n }\n this.$emit('change')\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-icon',\n\n functional: true,\n\n render (h, { data, children }): VNode {\n data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Bootable,\n Colorable,\n RegistrableInject('list'),\n Toggleable\n)\n\ntype VListInstance = InstanceType\n\ninterface options extends ExtractVue {\n list: VListInstance\n $refs: {\n group: HTMLElement\n }\n $route: Route\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-list-group',\n\n directives: { ripple },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n appendIcon: {\n type: String,\n default: '$expand',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n group: [String, RegExp],\n noAction: Boolean,\n prependIcon: String,\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n subGroup: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-group--active': this.isActive,\n 'v-list-group--disabled': this.disabled,\n 'v-list-group--no-action': this.noAction,\n 'v-list-group--sub-group': this.subGroup,\n }\n },\n },\n\n watch: {\n isActive (val: boolean) {\n /* istanbul ignore else */\n if (!this.subGroup && val) {\n this.list && this.list.listClick(this._uid)\n }\n },\n $route: 'onRouteChange',\n },\n\n created () {\n this.list && this.list.register(this)\n\n if (this.group &&\n this.$route &&\n this.value == null\n ) {\n this.isActive = this.matchRoute(this.$route.path)\n }\n },\n\n beforeDestroy () {\n this.list && this.list.unregister(this)\n },\n\n methods: {\n click (e: Event) {\n if (this.disabled) return\n\n this.isBooted = true\n\n this.$emit('click', e)\n this.$nextTick(() => (this.isActive = !this.isActive))\n },\n genIcon (icon: string | false): VNode {\n return this.$createElement(VIcon, icon)\n },\n genAppendIcon (): VNode | null {\n const icon = !this.subGroup ? this.appendIcon : false\n\n if (!icon && !this.$slots.appendIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__append-icon',\n }, [\n this.$slots.appendIcon || this.genIcon(icon),\n ])\n },\n genHeader (): VNode {\n return this.$createElement(VListItem, {\n staticClass: 'v-list-group__header',\n attrs: {\n 'aria-expanded': String(this.isActive),\n role: 'button',\n },\n class: {\n [this.activeClass]: this.isActive,\n },\n props: {\n inputValue: this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.listeners$,\n click: this.click,\n },\n }, [\n this.genPrependIcon(),\n this.$slots.activator,\n this.genAppendIcon(),\n ])\n },\n genItems (): VNode[] {\n return this.showLazyContent(() => [\n this.$createElement('div', {\n staticClass: 'v-list-group__items',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }, getSlot(this)),\n ])\n },\n genPrependIcon (): VNode | null {\n const icon = this.subGroup && this.prependIcon == null\n ? '$subgroup'\n : this.prependIcon\n\n if (!icon && !this.$slots.prependIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__prepend-icon',\n }, [\n this.$slots.prependIcon || this.genIcon(icon),\n ])\n },\n onRouteChange (to: Route) {\n /* istanbul ignore if */\n if (!this.group) return\n\n const isActive = this.matchRoute(to.path)\n\n /* istanbul ignore else */\n if (isActive && this.isActive !== isActive) {\n this.list && this.list.listClick(this._uid)\n }\n\n this.isActive = isActive\n },\n toggle (uid: number) {\n const isActive = this._uid === uid\n\n if (isActive) this.isBooted = true\n this.$nextTick(() => (this.isActive = isActive))\n },\n matchRoute (to: string) {\n return to.match(this.group) !== null\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-list-group',\n class: this.classes,\n }), [\n this.genHeader(),\n h(VExpandTransition, this.genItems()),\n ])\n },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","import './VAvatar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n Colorable,\n Measurable,\n Roundable,\n /* @vue/component */\n).extend({\n name: 'v-avatar',\n\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-avatar--left': this.left,\n 'v-avatar--right': this.right,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return {\n height: convertToUnit(this.size),\n minWidth: convertToUnit(this.size),\n width: convertToUnit(this.size),\n ...this.measurableStyles,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-avatar',\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n }\n\n return h('div', this.setBackgroundColor(this.color, data), this.$slots.default)\n },\n})\n","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemAvatar,\n VListItemIcon,\n VListItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemActionText,\n VListItemAvatar,\n VListItemContent,\n VListItemGroup,\n VListItemIcon,\n VListItemSubtitle,\n VListItemTitle,\n },\n}\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n name: 'v-list-item-avatar',\n\n props: {\n horizontal: Boolean,\n size: {\n type: [Number, String],\n default: 40,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-item__avatar--horizontal': this.horizontal,\n ...VAvatar.options.computed.classes.call(this),\n 'v-avatar--tile': this.tile || this.horizontal,\n }\n },\n },\n\n render (h): VNode {\n const render = VAvatar.options.render.call(this, h)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-list-item__avatar'\n\n return render\n },\n})\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 return null values if existant (#14421)\n if (item == null) {\n continue\n }\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n const isInteractive = !isDisabled && this.isInteractive\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && isInteractive,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (!isInteractive) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n placeholder: (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) ? this.placeholder : undefined,\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n // Attach to root el so that\n // menu covers prepend/append icons\n if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) || '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end, keyCodes.enter].includes(keyCode)) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n this.$refs.menu.getTiles()\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n\n if (!menu.hasClickableTiles) return this.activateMenu()\n\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n this.selectItem(this.allItems[this.getMenuIndex()])\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // 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 // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) {\n this.setMenuIndex(-1)\n } else {\n const index = this.allItems.indexOf(item)\n if (~index) {\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n }\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n if (!this.valueComparator(value, this.internalValue)) {\n this.internalValue = value\n this.$emit('change', value)\n }\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n","import './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) {\n const lastEntryKey = getObjectValueByPath(this.selectableItems[this.lastEntry], this.itemKey)\n const lastEntryKeySelected = Object.keys(this.selection).includes(String(lastEntryKey))\n this.multipleSelect(lastEntryKeySelected, emit, selection, index)\n }\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 = children.length\n ? h('th', [h('div', { staticClass: 'v-data-table-header-mobile__wrapper' }, children)])\n : undefined\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.hasOwnProperty(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, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\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 = 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.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n })))\n } else if (regularSlot) {\n children.push(...wrapInArray(regularSlot))\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\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 './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 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.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && 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","import { render, staticRenderFns } from \"./All.vue?vue&type=template&id=4dc1d300&\"\nimport script from \"./All.vue?vue&type=script&lang=js&\"\nexport * from \"./All.vue?vue&type=script&lang=js&\"\nimport style0 from \"./All.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VDataTable,VTextField})\n"],"sourceRoot":""}