{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/modules/es.object.is.js","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./src/views/Nurse.vue?058e","webpack:///src/views/Nurse.vue","webpack:///./src/views/Nurse.vue?75e5","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///../../../src/components/VData/VData.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.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/positionable/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/mixins/roundable/index.ts","webpack:///../../src/util/dom.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/directives/resize/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/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///../../../src/components/VList/VListItemGroup.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/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/mixins/validatable/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/mixins/intersectable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VTextField/VTextField.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/mixins/mobile/index.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/Nurse.vue?49e6","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/views/Nurse.vue?c928","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js"],"names":["$","flattenIntoArray","toObject","lengthOfArrayLike","toIntegerOrInfinity","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","module","exports","Object","is","x","y","stat","global","DESCRIPTORS","MISSED_STICKY","classof","defineProperty","f","getInternalState","get","RegExpPrototype","RegExp","prototype","TypeError","configurable","sticky","addToUnscopables","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","index","result","brackets","handleNCG","named","names","ncg","groupid","groupname","RegExpWrapper","pattern","flags","rawFlags","dotAll","handled","state","thisIsRegExp","patternIsRegExp","flagsAreUndefined","groups","rawPattern","constructor","source","raw","error","proxy","key","set","it","keys","collection","collectionStrong","init","_vm","_h","$createElement","_c","_self","staticClass","_v","attrs","model","value","callback","$$v","search","expression","headers","data","scopedSlots","_u","fn","ref","item","staticStyle","_s","id_number","msg","split","url","staticRenderFns","mounted","console","fetch","method","body","then","catch","text","align","_arrayWithoutHoles","arr","Array","isArray","arrayLikeToArray","_iterableToArray","iter","Symbol","iterator","from","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","Vue","extend","name","inheritAttrs","props","items","type","default","options","sortBy","String","sortDesc","Boolean","customSort","Function","sortItems","mustSort","multiSort","page","Number","itemsPerPage","groupBy","groupDesc","customGroup","groupItems","locale","disableSort","disablePagination","disableFiltering","customFilter","searchItems","serverItemsLength","internalOptions","wrapInArray","assign","sortDiff","groupDiff","push","fillArray","computed","itemsLength","filteredItems","pageCount","Math","ceil","pageStart","pageStop","min","isGrouped","pagination","computedItems","paginateItems","groupedItems","scopedProps","sort","sortArray","group","updateOptions","originalItemsLength","computedOptions","watch","handler","old","deepEqual","deep","immediate","$emit","methods","toggle","oldBy","oldDesc","by","desc","byIndex","findIndex","k","splice","map","s","i","max","render","$scopedSlots","_createForOfIteratorHelper","o","allowArrayLike","F","n","done","e","_e","err","normalCompletion","didErr","call","step","next","_e2","styleList","styleProp","parseStyle","style","styleMap","val","trim","camelize","mergeData","prop","mergeTarget","mergeClasses","mergeStyles","mergeListeners","concat","dest","arg","event","mergeTransitions","transitions","createSimpleTransition","origin","mode","functional","hideOnLeave","leaveAbsolute","h","context","tag","on","beforeEnter","el","transformOrigin","webkitTransformOrigin","leave","offsetTop","offsetLeft","offsetWidth","offsetHeight","_transitionInitialStyles","position","top","left","width","height","afterLeave","setProperty","children","createJavascriptTransition","functions","expandedParentClass","sizeProperty","offsetProperty","upperFirst","_parent","parentNode","_initialStyle","transition","overflow","enter","initialStyle","offset","classList","add","requestAnimationFrame","afterEnter","resetStyles","enterCancelled","leaveCancelled","remove","size","VFadeTransition","VSlideXTransition","VExpandTransition","ExpandTransitionGenerator","VExpandXTransition","makeWatcher","property","oldVal","attr","hasOwnProperty","$delete","$data","$set","SIZE_MAP","attrs$","listeners$","created","$watch","color","setBackgroundColor","consoleError","class","isCssColor","setTextColor","colorName","colorModifier","large","small","xLarge","xSmall","medium","sizeableClasses","isFontAwesome5","iconType","some","includes","isSvgPath","icon","test","VIcon","mixins","BindsAttrs","Colorable","Sizeable","Themeable","dense","disabled","right","required","hasClickListener","click","getIcon","iconName","$slots","remapInternalIcon","getSize","sizes","explicitSize","find","convertToUnit","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","themeClasses","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","nativeOn","$_wrapperFor","domProps","textContent","innerHTML","generateWarning","child","parent","consoleWarn","inject","namespace","defaultImpl","register","unregister","factory","RegistrableInject","activeClass","isActive","groupClasses","beforeDestroy","Toggleable","DELAY_RIPPLE","transform","webkitTransform","isTouchEvent","isKeyboardEvent","calculate","localX","localY","getBoundingClientRect","touches","clientX","clientY","radius","scale","_ripple","circle","clientWidth","center","sqrt","clientHeight","centerX","centerY","ripples","show","enabled","container","document","createElement","animation","appendChild","className","window","getComputedStyle","dataset","previousPosition","activated","performance","now","setTimeout","hide","getElementsByClassName","isHiding","diff","delay","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","rippleStop","isTouch","centered","showTimerCommit","showTimer","rippleHide","clearTimeout","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCode","keyCodes","space","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","addEventListener","passive","removeListeners","removeEventListener","directive","node","unbind","update","oldValue","Ripple","bind","directives","append","exact","exactPath","exactActiveClass","link","href","to","nuxt","ripple","proxyClass","classes","computedRipple","isClickable","isLink","$listeners","$attrs","tabindex","styles","$route","onRouteChange","generateRouteLink","path","$refs","$nextTick","getObjectValueByPath","Routable","GroupableFactory","ToggleableFactory","active","chipGroup","close","closeIcon","closeLabel","draggable","filter","filterIcon","label","outlined","pill","textColor","hasClose","breakingProps","forEach","original","replacement","breaking","genFilter","genClose","$vuetify","lang","t","stopPropagation","preventDefault","genContent","VChip","root","isDark","rootIsDark","isComment","openDelay","closeDelay","openTimeout","closeTimeout","clearDelay","runDelay","cb","parseInt","open","baseMixins","Delayable","activator","validator","internalActivator","openOnClick","openOnHover","openOnFocus","activatorElement","activatorNode","events","listeners","slotType","getSlotType","addActivatorEvents","removeActivatorEvents","getActivator","genActivatorListeners","genActivator","getSlot","getValueProxy","genActivatorAttributes","mouseenter","mouseleave","focus","$el","querySelector","vm","componentInstance","$options","m","elm","nodeType","Node","ELEMENT_NODE","getContentSlot","self","resetActivator","searchChildren","results","isDependent","$children","closeDependents","openDependents","getOpenDependents","getOpenDependentElements","getClickableDependentElements","content","overlay","stackElement","stackExclude","stackMinZIndex","activeZIndex","getMaxZIndex","getZIndex","exclude","base","zis","activeElements","availableProps","absolute","bottom","fixed","selected","filterObjectOnKeys","eager","isBooted","hasContent","removed","showLazyContent","validateAttachTarget","removeActivator","Bootable","attach","contentClass","hasDetached","initDetach","beforeMount","firstChild","nextSibling","insertBefore","deactivated","destroyed","isConnected","observer","MutationObserver","list","record","removedNodes","disconnect","observe","subtree","childList","getScopeIdAttrs","scopeId","$vnode","_isDestroyed","Stackable","positionableFactory","Activatable","Detachable","allowOverflow","light","dark","maxWidth","minWidth","nudgeBottom","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","offsetOverflow","positionX","positionY","zIndex","absoluteX","absoluteY","activatedBy","activatorFixed","dimensions","scrollHeight","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","calcXOverflow","calcTop","calcYOverflow","xOverflow","getOffsetLeft","documentHeight","getInnerHeight","toTop","contentHeight","totalHeight","isOverflowing","deactivate","checkForPageYOffset","getOffsetTop","checkActivatorFixed","offsetParent","onClick","innerHeight","documentElement","pageXOffset","scrollLeft","scrollTop","getRoundedBoundedClientRect","rect","round","measure","marginLeft","marginTop","sneakPeek","display","startTransition","Promise","resolve","offsetRect","returnValue","originalValue","save","rounded","tile","roundedClasses","composite","values","join","attachedRoot","getRootNode","composed","defaultConditional","checkEvent","checkIsActive","ShadowRoot","host","elements","include","contains","closeConditional","vnode","_clickOutside","lastMousedownWasOutside","handleShadow","ClickOutside","inserted","onMousedown","app","_uid","_el$_clickOutside","_onResize","modifiers","quiet","_el$_onResize","Resize","Dependent","Returnable","Roundable","Menuable","provide","isInMenu","theme","auto","closeOnClick","closeOnContentClick","disableKeys","maxHeight","calculatedTopAuto","defaultOffset","listIndex","resizeTimeout","selectedIndex","tiles","activeTile","calculatedLeft","parseFloat","calculatedMinWidth","calcLeftAuto","calculatedMaxHeight","calculatedMaxWidth","calculatedTop","hasClickableTiles","tabIndex","prev","goTo","appOffset","duration","calcTopAuto","calcScrollPosition","maxScrollTop","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","getTiles","tab","down","nextTile","up","prevTile","end","lastTile","home","firstTile","attributes","id","keydown","onKeyDown","genTransition","genDirectives","rootThemeClasses","menuable__content__active","getAttribute","scroll","mouseEnterHandler","mouseLeaveHandler","querySelectorAll","_this$$refs$content","relatedTarget","esc","onResize","VThemeProvider","VMenu","indeterminate","indeterminateIcon","onIcon","offIcon","input","inset","vertical","orientation","VDivider","VSubheader","isInGroup","isInList","isInNav","listItemGroup","inactive","selectable","threeLine","twoLine","detail","blur","genAttrs","inputValue","filteredChild","VNode","elevation","computedElevation","elevationClasses","minHeight","measurableStyles","Elevatable","Measurable","shaped","VSheet","expand","nav","subheader","g","listClick","uid","appendIcon","noAction","prependIcon","subGroup","matchRoute","genIcon","genAppendIcon","VListItemIcon","genHeader","VListItem","genPrependIcon","genItems","match","valueComparator","internalLazyValue","internalValue","Proxyable","BaseItemGroup","Comparable","mandatory","multiple","selectedItem","selectedItems","toggleMethod","getValue","selectedValues","v","intern","genData","updateInternalValue","$on","updateMandatory","updateItem","valueIndex","updateItemsState","updateMultiple","updateSingle","last","reverse","defaultValue","isSame","itemGroup","VAvatar","VListItemContent","horizontal","createSimpleFunctional","VListItemTitle","action","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","parsedItems","tileActiveClass","staticNoDataTile","mousedown","genTileContent","genAction","VListItemAction","VSimpleCheckbox","genDivider","genFilteredText","escapeHTML","getMaskedCharacters","start","middle","genHighlight","header","toLocaleLowerCase","genTile","hasItem","getDisabled","scopedSlot","needsTile","getText","slot","componentOptions","Ctor","getPropertyFromItem","divider","unshift","VList","focused","for","ctx","functionalThemeClasses","VLabel","genChildren","genMessage","message","VMessages","errorCount","errorMessages","messages","readonly","rules","success","successMessages","validateOnBlur","errorBucket","hasColor","hasFocused","hasInput","isFocused","isResetting","lazyValue","valid","computedColor","isDisabled","appIsDark","hasError","internalErrorMessages","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","shouldValidate","genInternalMessages","internalMessages","form","isInteractive","isReadonly","validations","validationState","newVal","validate","reset","resetValidation","force","rule","Validatable","backgroundColor","hideDetails","hideSpinButtons","hint","loading","persistentHint","hasMouseDown","showDetails","isLabelActive","isDirty","computedId","hasDetails","messagesToDisplay","hasHint","hasLabel","$_modelEvent","validation","validationResult","beforeCreate","genPrependSlot","genControl","genAppendSlot","title","genInputSlot","genMessages","genDefaultSlot","genLabel","extraData","eventName","kebabCase","hasListener","mouseup","onMouseDown","onMouseUp","genSlot","location","prepend","VInput","isGreater","VCounter","IntersectionObserver","entries","_observe","_el$_observe","isIntersecting","entry","once","_el$_observe2","unobserve","Intersect","intersectable","onObserve","onVisible","PositionableFactory","intersect","backgroundOpacity","bufferValue","query","stream","striped","isVisible","__cachedBackground","backgroundStyle","__cachedBar","computedTransition","__cachedBarType","__cachedIndeterminate","__cachedDeterminate","__cachedBuffer","normalizedValue","genProgressBar","__cachedStream","normalizedBuffer","opacity","isReversed","reactive","normalize","change","genListeners","VProgressLinear","loaderHeight","genProgress","progress","Intersectable","Loadable","dirtyTypes","resize","appendOuterIcon","autofocus","clearable","clearIcon","counter","counterValue","filled","fullWidth","placeholder","prefix","prependInnerIcon","persistentPlaceholder","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isClearing","isSingle","isSolo","isEnclosed","computedCounterValue","hasCounter","labelPosition","labelValue","showLabel","setLabelWidth","setPrefixWidth","tryAutofocus","onFocus","clearableCallback","genPrependInnerSlot","genIconSlot","genClearIcon","genCounter","maxlength","_this$$scopedSlots$co2","genFieldset","genTextFieldSlot","genLegend","span","genInput","inputAttrs","onBlur","onInput","messagesNode","counterNode","genAffix","activeElement","validity","scrollWidth","setPrependWidth","updateValue","defaultMenuProps","VTextField","Filterable","cacheItems","chips","deletableChips","disableLookup","itemColor","menuProps","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","hasChips","computedOwns","dynamicHeight","hasSlot","selection","listData","_scopeId","virtualizedItems","select","selectItem","staticList","VSelectList","$_menuProps","menuCanShow","normalisedProps","reduce","acc","p","setSelectedItems","menu","onMenuActiveChange","setMenuIndex","activateMenu","setValue","getContent","uniqueValues","Map","has","findExistingIndex","genChipSelection","onChipInput","JSON","stringify","genCommaSelection","selections","genSelections","genHiddenInput","genMenu","autocomplete","keypress","onKeyPress","genList","genListWithSlot","slots","slotName","onScroll","genSelection","genSlotSelection","getMenuIndex","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","toLowerCase","startsWith","onUpDown","onTabDown","onSpaceDown","which","showMoreItems","appendInner","button","rotate","calculatedSize","circumference","PI","strokeDashArray","strokeDashOffset","strokeWidth","viewBoxSize","svgStyles","genCircle","fill","cx","cy","r","genSvg","genInfo","VProgressCircular","Positionable","btnToggle","block","depressed","fab","plain","retainFocusOnClick","isElevated","hasBg","isRound","defaultRipple","genLoader","loader","setColor","VBtn","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","genPaginationInfo","genIcons","before","after","mobileBreakpoint","breakpoint","isMobile","mobile","mobileWidth","isNumber","deprecate","Mobile","VData","itemKey","singleSelect","expanded","singleExpand","noResultsText","loadingText","hideDefaultFooter","footerProps","selectableKey","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","every","isSelected","someItems","sanitizedFooterProps","camelizeObjectKeys","isSelectable","removedProps","onKeyUp","shift","toggleSelectAll","emit","lastEntryKey","lastEntryKeySelected","multipleSelect","currentItem","isExpanded","createItemProps","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","sortHeaders","th","tr","genGroupByToggle","getAria","$t","ariaSort","ariaLabel","scope","groupable","dedupeModelListeners","rebuildFunctionalSlots","rebuildSlots","VDataTableHeaderMobile","VDataTableHeaderDesktop","needsTd","_slot$","computedSlots","columns","regularSlot","textAlign","cellClass","headerClass","summaryClass","fixedHeader","genWrapper","wrapper","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","genDefaultGroupedRow","isOpen","toggleFn","removeFn","column","RowGroup","genScopedRows","genDefaultRows","rows","genDefaultExpandedRow","genDefaultSimpleRow","headerRow","expandedRow","MobileRow","Row","contextmenu","dblclick","genBody","genFoot","foot","_this$$scopedSlots$fo","genFooters","simpleProps","VSimpleTable","proxySlot","VDataTable","create","redefineAll","anInstance","iterate","defineIterator","fastKey","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","getConstructor","CONSTRUCTOR_NAME","IS_MAP","ADDER","Constructor","that","iterable","Prototype","first","AS_ENTRIES","define","previous","getEntry","clear","callbackfn","boundFunction","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","InternalMetadataModule","isCallable","isObject","checkCorrectnessOfIteration","setToStringTag","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","REPLACE","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","forced","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","searcher","rx","S","res","previousLastIndex","lastIndex","createHTML","forcedStringHTMLMethod","depth","mapper","thisArg","elementLen","targetIndex","sourceIndex","mapFn","toAbsoluteIndex","createProperty","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","len","actualStart","argumentsLength","$findIndex","FIND_INDEX","SKIPS_HOLES","getBuiltIn","apply","$stringify","charCodeAt","numberToString","tester","low","hi","fix","FORCED","replacer","l","args"],"mappings":"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","file":"js/chunk-0ca0dee4.61b02e29.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","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","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"mt-5\"},[_c('h1',{staticClass:\"lh-base fw-bold\"},[_vm._v(\"中國醫藥大學新竹附設醫院 視訊會診清單\")]),_c('v-text-field',{staticClass:\"mt-3\",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('div',[_c('v-data-table',{staticClass:\"table table-striped mt-3\",attrs:{\"headers\":_vm.headers,\"items\":_vm.data,\"search\":_vm.search},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('tr',{staticClass:\"lh-base fw-bold\"},[_c('td',{staticStyle:{\"font-size\":\"20px\"}},[_vm._v(_vm._s(item.id_number))]),_c('td',{staticStyle:{\"font-size\":\"20px\"}},[_vm._v(_vm._s(item.msg.split(\"醫師:\")[1])+\" 醫師\")]),_c('td',{staticStyle:{\"font-size\":\"20px\"}},[_c('a',{attrs:{\"href\":item.url}},[_vm._v(\"點我連結至視訊\")])])])]}}])})],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 {{ item.id_number }}\r\n {{ item.msg.split(\"醫師:\")[1] }} 醫師\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!./Nurse.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!./Nurse.vue?vue&type=script&lang=js&\"","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\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","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n el.style.setProperty('display', 'none', 'important')\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { rippleStop?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e.rippleStop) return\n\n // Don't allow the event to trigger ripples on any other elements\n e.rippleStop = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n mounted () {\n this.onRouteChange()\n },\n\n methods: {\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n ...('click' in this ? { click: (this as any).click } : undefined), // #14447\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass || ''} ${this.proxyClass || ''}`.trim()\n const exactActiveClass = `${this.exactActiveClass || ''} ${this.proxyClass || ''}`.trim() || activeClass\n\n const path = '_vnode.data.class.' + (this.exact ? exactActiveClass : activeClass)\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (!getObjectValueByPath(this.$refs.link, path) === this.isActive) {\n this.toggle()\n }\n })\n },\n toggle () {\n this.isActive = !this.isActive\n },\n },\n})\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n this.$slots.default,\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n","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","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\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 Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\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","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n value?: () => void\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n const callback = binding.value!\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.context!._uid] = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n if (!el._onResize?.[vnode.context!._uid]) return\n\n const { callback, options } = el._onResize[vnode.context!._uid]!\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.context!._uid]\n}\n\nexport const Resize = {\n inserted,\n unbind,\n}\n\nexport default Resize\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","import 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","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\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","import Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { deepEqual } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'comparable',\n props: {\n valueComparator: {\n type: Function,\n default: deepEqual,\n } as PropValidator,\n },\n})\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => val === value)\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = value === this.internalValue\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\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","// 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 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","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props } = ctx\n const data = {\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: Boolean,\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n readonly: Boolean,\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n validateOnBlur: Boolean,\n value: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled || (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly || (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeDestroy () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[vnode.context!._uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el, binding, vnode)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![vnode.context!._uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n const observe = el._observe?.[vnode.context!._uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![vnode.context!._uid]\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return Vue.extend({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n Intersect.inserted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n destroyed () {\n Intersect.unbind(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isIntersecting = isIntersecting\n\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-text-field',\n\n directives: {\n resize,\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.options.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('input', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('box')) {\n breaking('box', 'filled', this)\n }\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner'] as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.options.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n this.$createElement('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$scopedSlots.counter?.({ props }) ?? this.$createElement(VCounter, { props })\n },\n genControl () {\n return VInput.options.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n props: {\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n },\n }\n\n return this.$createElement(VLabel, data, this.$slots.label || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = this.$createElement('span', {\n domProps: { innerHTML: '' },\n staticClass: 'notranslate',\n })\n\n return this.$createElement('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n },\n attrs: {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: this.onInput,\n focus: this.onFocus,\n keydown: this.onKeyDown,\n }),\n ref: 'input',\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n })\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return this.$createElement('div', {\n staticClass: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return this.$createElement('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('change', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs.label\n ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'filterable',\n\n props: {\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n },\n})\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n VTextField,\n Comparable,\n Dependent,\n Filterable\n)\n\ninterface options extends InstanceType {\n $refs: {\n menu: InstanceType\n content: HTMLElement\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n 'append-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-select',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown',\n },\n attach: {\n type: null as unknown as PropType,\n default: false,\n },\n cacheItems: Boolean,\n chips: Boolean,\n clearable: Boolean,\n deletableChips: Boolean,\n disableLookup: Boolean,\n eager: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemColor: {\n type: String,\n default: 'primary',\n },\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n menuProps: {\n type: [String, Array, Object],\n default: () => defaultMenuProps,\n },\n multiple: Boolean,\n openOnClear: Boolean,\n returnObject: Boolean,\n smallChips: Boolean,\n },\n\n data () {\n return {\n cachedItems: this.cacheItems ? this.items : [],\n menuIsBooted: false,\n isMenuActive: false,\n lastItem: 20,\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n lazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [] as any[],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0,\n }\n },\n\n computed: {\n /* All items that the select has */\n allItems (): object[] {\n return this.filterDuplicates(this.cachedItems.concat(this.items))\n },\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-select': true,\n 'v-select--chips': this.hasChips,\n 'v-select--chips--small': this.smallChips,\n 'v-select--is-menu-active': this.isMenuActive,\n 'v-select--is-multi': this.multiple,\n }\n },\n /* Used by other components to overwrite */\n computedItems (): object[] {\n return this.allItems\n },\n computedOwns (): string {\n return `list-${this._uid}`\n },\n computedCounterValue (): number {\n const value = this.multiple\n ? this.selectedItems\n : (this.getText(this.selectedItems[0]) || '').toString()\n\n if (typeof this.counterValue === 'function') {\n return this.counterValue(value)\n }\n\n return value.length\n },\n directives (): VNodeDirective[] | undefined {\n return this.isFocused ? [{\n name: 'click-outside',\n value: {\n handler: this.blur,\n closeConditional: this.closeConditional,\n include: () => this.getOpenDependentElements(),\n },\n }] : undefined\n },\n dynamicHeight () {\n return 'auto'\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n hasSlot (): boolean {\n return Boolean(this.hasChips || this.$scopedSlots.selection)\n },\n isDirty (): boolean {\n return this.selectedItems.length > 0\n },\n listData (): object {\n const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n const attrs = scopeId ? {\n [scopeId]: true,\n } : {}\n\n return {\n attrs: {\n ...attrs,\n id: this.computedOwns,\n },\n props: {\n action: this.multiple,\n color: this.itemColor,\n dense: this.dense,\n hideSelected: this.hideSelected,\n items: this.virtualizedItems,\n itemDisabled: this.itemDisabled,\n itemText: this.itemText,\n itemValue: this.itemValue,\n noDataText: this.$vuetify.lang.t(this.noDataText),\n selectedItems: this.selectedItems,\n },\n on: {\n select: this.selectItem,\n },\n scopedSlots: {\n item: this.$scopedSlots.item,\n },\n }\n },\n staticList (): VNode {\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n consoleError('assert: staticList should not be called if slots are used')\n }\n\n return this.$createElement(VSelectList, this.listData)\n },\n virtualizedItems (): object[] {\n return (this.$_menuProps as any).auto\n ? this.computedItems\n : this.computedItems.slice(0, this.lastItem)\n },\n menuCanShow: () => true,\n $_menuProps (): object {\n let normalisedProps = typeof this.menuProps === 'string'\n ? this.menuProps.split(',')\n : this.menuProps\n\n if (Array.isArray(normalisedProps)) {\n normalisedProps = normalisedProps.reduce((acc, p) => {\n acc[p.trim()] = true\n return acc\n }, {})\n }\n\n return {\n ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n ...normalisedProps,\n }\n },\n },\n\n watch: {\n internalValue (val) {\n this.initialValue = val\n this.setSelectedItems()\n\n if (this.multiple) {\n this.$nextTick(() => {\n this.$refs.menu?.updateDimensions()\n })\n }\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n },\n items: {\n immediate: true,\n handler (val) {\n if (this.cacheItems) {\n // Breaks vue-test-utils if\n // this isn't calculated\n // on the next tick\n this.$nextTick(() => {\n this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n })\n }\n\n this.setSelectedItems()\n },\n },\n },\n\n methods: {\n /** @public */\n blur (e?: Event) {\n VTextField.options.methods.blur.call(this, e)\n this.isMenuActive = false\n this.isFocused = false\n this.selectedIndex = -1\n this.setMenuIndex(-1)\n },\n /** @public */\n activateMenu () {\n if (\n !this.isInteractive ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : null)\n this.setMenuIndex(-1)\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n if (this.openOnClear) this.isMenuActive = true\n },\n closeConditional (e: Event) {\n if (!this.isMenuActive) return true\n\n return (\n !this._isDestroyed &&\n\n // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n (!this.getContent() ||\n !this.getContent().contains(e.target as Node)) &&\n\n // Click originates from outside the element\n this.$el &&\n !this.$el.contains(e.target as Node) &&\n e.target !== this.$el\n )\n },\n filterDuplicates (arr: any[]) {\n const uniqueValues = new Map()\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]\n\n // Do not return null values if existant (#14421)\n if (item == null) {\n continue\n }\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n const isInteractive = !isDisabled && this.isInteractive\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && isInteractive,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (!isInteractive) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n placeholder: (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) ? this.placeholder : undefined,\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n // Attach to root el so that\n // menu covers prepend/append icons\n if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) || '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end, keyCodes.enter].includes(keyCode)) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n this.$refs.menu.getTiles()\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n\n if (!menu.hasClickableTiles) return this.activateMenu()\n\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n this.selectItem(this.allItems[this.getMenuIndex()])\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) {\n this.setMenuIndex(-1)\n } else {\n const index = this.allItems.indexOf(item)\n if (~index) {\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n }\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n if (!this.valueComparator(value, this.internalValue)) {\n this.internalValue = value\n this.$emit('change', value)\n }\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\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","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'mobile',\n\n props: {\n mobileBreakpoint: {\n type: [Number, String] as PropType,\n default (): number | BreakpointName | undefined {\n // Avoid destroying unit\n // tests for users\n return this.$vuetify\n ? this.$vuetify.breakpoint.mobileBreakpoint\n : undefined\n },\n validator: v => (\n !isNaN(Number(v)) ||\n ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n ),\n },\n },\n\n computed: {\n isMobile (): boolean {\n const {\n mobile,\n width,\n name,\n mobileBreakpoint,\n } = this.$vuetify.breakpoint\n\n // Check if local mobileBreakpoint matches\n // the application's mobileBreakpoint\n if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n const isNumber = !isNaN(mobileWidth)\n\n return isNumber\n ? width < mobileWidth\n : name === this.mobileBreakpoint\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n deprecate('mobile-break-point', 'mobile-breakpoint', this)\n }\n },\n})\n","// 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 \"./Nurse.vue?vue&type=template&id=410124a4&\"\nimport script from \"./Nurse.vue?vue&type=script&lang=js&\"\nexport * from \"./Nurse.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Nurse.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 { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VDataTable,VTextField})\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","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!./Nurse.vue?vue&type=style&index=0&lang=css&\"","'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","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\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","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar Array = global.Array;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nvar FORCED = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n // https://github.com/tc39/proposal-well-formed-stringify\n $({ target: 'JSON', stat: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n for (var i = 0, l = arguments.length, args = Array(l); i < l; i++) args[i] = arguments[i];\n var result = apply($stringify, null, args);\n return typeof result == 'string' ? replace(result, tester, fix) : result;\n }\n });\n}\n"],"sourceRoot":""}