{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///../../../src/mixins/delayable/index.ts","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///../../../src/mixins/stackable/index.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VToolbar/index.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/components/VTooltip/VTooltip.ts","webpack:///../../../src/components/VRadioGroup/VRadioGroup.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/mixins/activatable/index.ts","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VList/index.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VRadioGroup/VRadio.ts","webpack:///../../../src/components/VAvatar/index.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/mixins/detachable/index.ts","webpack:///./src/view/pages/vuetify/Dialog.vue","webpack:///src/view/pages/vuetify/Dialog.vue","webpack:///./src/view/pages/vuetify/Dialog.vue?194b","webpack:///./src/view/pages/vuetify/Dialog.vue?3747","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/mixins/bootable/index.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/mixins/dependent/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///./src/view/content/CodePreview.vue","webpack:///./src/view/content/Card.vue","webpack:///src/view/content/Card.vue","webpack:///./src/view/content/Card.vue?8715","webpack:///./src/view/content/Card.vue?eb51","webpack:///src/view/content/CodePreview.vue","webpack:///./src/view/content/CodePreview.vue?e189","webpack:///./src/view/content/CodePreview.vue?e254","webpack:///../../../src/components/VList/VListItem.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///../../../src/mixins/menuable/index.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","props","val","upperFirst","alignValidator","str","concat","includes","alignProps","type","String","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","breakpoint","replace","toLowerCase","cache","Map","Vue","extend","name","functional","_objectSpread","tag","dense","Boolean","noGutters","render","h","_ref","data","children","cacheKey","classList","get","forEach","value","push","_defineProperty","set","mergeData","staticClass","class","VSheet","mixins","Colorable","Themeable","Toggleable","absolute","color","dark","opacity","Number","zIndex","computed","__scrim","this","setBackgroundColor","style","computedOpacity","$createElement","classes","isActive","themeClasses","styles","methods","genContent","getSlot","on","$listeners","VOverlay","hideOverlay","overlayColor","overlayOpacity","animationFrame","overlay","watch","removeOverlay","genOverlay","beforeDestroy","createOverlay","propsData","$mount","parent","$el","parentNode","document","querySelector","insertBefore","firstChild","_this","hideScroll","requestAnimationFrame","undefined","activeZIndex","getZIndex","_this2","showScroll","arguments","length","addOnceEventListener","removeChild","$destroy","cancelAnimationFrame","scrollListener","e","target","tagName","isContentEditable","up","keyCodes","pageup","down","pagedown","keyCode","deltaY","body","checkPath","preventDefault","hasScrollbar","el","nodeType","Node","ELEMENT_NODE","window","getComputedStyle","overflowY","scrollHeight","clientHeight","overflowX","scrollWidth","clientWidth","shouldScroll","hasAttribute","alreadyAtStart","alreadyAtEnd","dir","shiftKey","deltaX","delta","scrollTop","scrollLeft","scrollingUp","scrollingDown","isInside","path","composedPath","dialog","$refs","selected","getSelection","anchorNode","index","documentElement","content","$vuetify","smAndDown","add","addPassiveEventListener","passive","addEventListener","remove","removeEventListener","baseMixins","Dependent","Detachable","Overlayable","Returnable","Stackable","Activatable","directives","ClickOutside","disabled","fullscreen","light","maxWidth","noClickAnimation","origin","persistent","retainFocus","scrollable","transition","width","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","contentClass","trim","contentClasses","hasActivator","$slots","activator","$scopedSlots","show","unbind","_a","focus","created","$attrs","hasOwnProperty","removed","beforeMount","$nextTick","isBooted","animateClick","clearTimeout","setTimeout","closeConditional","_isDestroyed","contains","getMaxZIndex","options","call","_this3","activeElement","_b","bind","onFocusin","onClickOutside","$emit","onKeydown","esc","getOpenDependents","getActivator","getOpenDependentElements","some","focusable","querySelectorAll","_toConsumableArray","find","matches","_this4","showLazyContent","VThemeProvider","root","attrs","role","getScopeIdAttrs","keydown","ref","genTransition","genInnerContent","appear","tabindex","handler","include","transformOrigin","convertToUnit","getContentSlot","attach","genActivator","openDelay","closeDelay","openTimeout","closeTimeout","clearDelay","runDelay","cb","delay","parseInt","open","close","_ref$children","filteredChild","filter","VNode","isComment","text","BaseItemGroup","provide","isInGroup","listItemGroup","genData","setTextColor","stackElement","stackExclude","exclude","base","zis","activeElements","getElementsByClassName","Math","max","apply","VProgressCircular","height","maxHeight","minHeight","minWidth","measurableStyles","VSubheader","VToolbarTitle","createSimpleFunctional","VToolbarItems","VToolbar","VMenu","VChip","Delayable","Menuable","openOnHover","openOnFocus","calculatedMinWidth","closeDependents","calculatedLeft","_this$dimensions","dimensions","unknown","bottom","left","top","right","activatorLeft","offsetLeft","nudgeLeft","nudgeRight","calcXOverflow","calculatedTop","_this$dimensions2","activatorTop","offsetTop","nudgeTop","nudgeBottom","pageYOffset","calcYOverflow","computedTransition","offsetY","offsetX","callActivate","mounted","getSlotType","consoleError","activate","updateDimensions","startTransition","deactivate","genActivatorListeners","listeners","blur","genActivatorAttributes","activatorFixed","isContentActive","VInput","radioGroup","column","row","genDefaultSlot","id","computedId","genInputSlot","click","genLabel","label","for","onClick","vnode","attrs$","isDark","rootIsDark","node","intersect","button","indeterminate","rotate","size","radius","isVisible","calculatedSize","circumference","PI","normalizedValue","parseFloat","strokeDashArray","round","strokeDashOffset","strokeWidth","viewBoxSize","svgStyles","transform","genCircle","offset","fill","cx","cy","r","genSvg","xmlns","viewBox","genInfo","onObserve","entries","observer","isIntersecting","_typeof","internalActivator","openOnClick","activatorElement","activatorNode","events","slotType","addActivatorEvents","removeActivatorEvents","_i","_keys","key","assign","getValueProxy","mouseenter","mouseleave","stopPropagation","vm","componentInstance","$options","m","elm","currentTarget","self","_i2","_keys2","resetActivator","ripple","genRipple","center","BindsAttrs","Bootable","RegistrableInject","activeClass","appendIcon","group","RegExp","noAction","prependIcon","subGroup","list","listClick","_uid","$route","register","matchRoute","unregister","genIcon","icon","VIcon","genAppendIcon","slot","VListItemIcon","genHeader","VListItem","inputValue","listeners$","genPrependIcon","genItems","onRouteChange","to","toggle","uid","match","VExpandTransition","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListItemAction","VListItemAvatar","VListItemGroup","Comparable","Proxyable","mandatory","multiple","internalLazyValue","items","selectedIndex","selectedItem","indexOf","selectedItems","item","toggleMethod","getValue","selectedValues","internalValue","Array","isArray","v","valueComparator","intern","consoleWarn","i","updateInternalValue","$on","updateMandatory","updateItem","splice","valueIndex","updateItemsState","updateMultiple","updateSingle","last","slice","reverse","_this5","defaultValue","findIndex","isSame","itemGroup","breakpointProps","offsetProps","orderProps","col","order","cols","alignSelf","hasColClasses","startsWith","Rippleable","GroupableFactory","inheritAttrs","offIcon","onIcon","readonly","isFocused","isDisabled","groupClasses","computedColor","Selectable","computedIcon","hasLabel","hasState","isReadonly","computedName","rippleState","validationState","genInput","args","VLabel","prevent","focused","genRadio","_this$attrs$","radioAttrs","title","_objectWithoutProperties","_excluded","onFocus","onBlur","onChange","mergeListeners","VAvatar","collapse","extended","extensionHeight","flat","floating","prominent","short","src","isExtended","computedHeight","computedContentHeight","isCollapsed","isNaN","isProminent","breakingProps","_ref2","_slicedToArray","original","replacement","breaking","genBackground","image","img","VImg","genExtension","extension","unshift","validateAttachTarget","removeActivator","hasDetached","initDetach","hasContent","nextSibling","deactivated","destroyed","isConnected","MutationObserver","record","from","removedNodes","disconnect","observe","subtree","childList","scopeId","getObjectValueByPath","$vnode","appendChild","scopedSlots","fn","_c","_vm","callback","expression","_v","_s","code1","model","code3","code5Dialog","proxy","code7","$event","_u","_ref4","widgets","staticStyle","dialog3","dialog2","_ref5","code4","js","code6","$set","staticRenderFns","html","code2","dialogm1","code5","notifications","sound","select","components","KTCodePreview","$store","dispatch","SET_BREADCRUMB","route","component","Measurable","Roundable","roundedClasses","horizontal","tile","Routable","Positionable","Sizeable","ToggleableFactory","btnToggle","block","depressed","fab","loading","outlined","plain","retainFocusOnClick","rounded","proxyClass","isElevated","fixed","hasBg","isRound","elevationClasses","sizeableClasses","computedElevation","Elevatable","computedRipple","defaultRipple","circle","elevation","detail","genLoader","_this$generateRouteLi","generateRouteLink","setColor","JSON","stringify","Function","deepEqual","isInList","inject","isInMenu","isInNav","expand","nav","subheader","threeLine","twoLine","groups","g","_step","_iterator","_createForOfIteratorHelper","s","n","done","err","f","$","uncurryThis","getOwnPropertyDescriptor","toLength","toString","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","min","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","prototype","writable","proto","forced","endsWith","searchString","that","endPosition","len","end","search","shaped","VCardActions","VCardSubtitle","VCardText","VCardTitle","VCard","eager","Ripple","indeterminateIcon","input","wrapInArray","composite","values","split","join","defaultConditional","checkEvent","binding","checkIsActive","attachedRoot","ShadowRoot","host","elements","directive","_clickOutside","lastMousedownWasOutside","handleShadow","inserted","onMousedown","app","context","_el$_clickOutside$vno","Grid","fluid","domProps","inputIndeterminate","hasError","shouldValidate","hasSuccess","hasColor","genCheckbox","checkboxAttrs","aspectRatio","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","VResponsive","hasIntersect","alt","contain","gradient","lazySrc","rootMargin","threshold","position","sizes","srcset","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","mode","loadImage","init","lazyImg","Image","pollForSize","onLoad","getSrc","naturalHeight","onError","onload","decode","catch","message","then","onerror","timeout","poll","complete","__genPlaceholder","placeholder","modifiers","once","Loadable","hover","link","loaderHeight","raised","isClickable","background","genProgress","VDivider","searchChildren","results","child","isDependent","$children","openDependents","result","getClickableDependentElements","action","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","parsedItems","map","tileActiveClass","staticNoDataTile","mousedown","genTileContent","genAction","VSimpleCheckbox","genDivider","genFilteredText","_this$getMaskedCharac","getMaskedCharacters","start","middle","genHighlight","header","toLocaleLowerCase","genTile","_ref$disabled","_ref$value","hasItem","getDisabled","scopedSlot","needsTile","getText","componentOptions","Ctor","getPropertyFromItem","itemsLength","divider","defaultMenuProps","closeOnClick","closeOnContentClick","disableKeys","VTextField","Filterable","cacheItems","chips","clearable","deletableChips","disableLookup","itemColor","menuProps","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","lazyValue","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","hasChips","computedItems","computedOwns","computedCounterValue","counterValue","dynamicHeight","hasSlot","selection","isDirty","listData","_scopeId","virtualizedItems","lang","t","selectItem","staticList","VSelectList","$_menuProps","auto","menuCanShow","normalisedProps","acc","p","initialValue","setSelectedItems","menu","onScroll","onMenuActiveChange","immediate","setMenuIndex","activateMenu","isInteractive","clearableCallback","setValue","getContent","arr","uniqueValues","has","findExistingIndex","_this6","genChipSelection","_this7","small","onChipInput","genCommaSelection","selections","genSelections","genFieldset","genAffix","suffix","genClearIcon","genIconSlot","genHiddenInput","genMenu","extraData","autocomplete","persistentPlaceholder","keypress","onKeyPress","genList","genListWithSlot","_this8","slots","slotName","_this9","scroll","genSelection","genSlotSelection","_this10","getMenuIndex","listIndex","isAppendInner","onEscDown","_this11","ctrlKey","metaKey","altKey","KEYBOARD_LOOKUP_THRESHOLD","now","performance","getTiles","onKeyDown","_this12","tab","home","enter","changeListIndex","space","onUpDown","onTabDown","onSpaceDown","tiles","getAttribute","onMouseUp","_this13","hasMouseDown","which","_this14","showMoreItems","activeTile","_this15","hasClickableTiles","prevTile","nextTile","firstTile","lastTile","_this16","_this17","_loop","appendInner","VSelectMenuProps","offsetOverflow","VSelect","autoSelectFirst","queryText","hideNoData","lazySearch","filteredItems","hasDisplayedItems","currentRange","isSearching","internalSearch","isAnyValueAllowed","searchIsDirty","onCopy","updateSelf","oldVal","setSearch","onFilteredItemsChanged","preSelectedItem","onInternalSearchChanged","updateMenuDimensions","changeSelectedIndex","backspace","delete","deleteCurrentItem","curIndex","curItem","lastIndex","nextIndex","nextItem","onInput","badInput","validity","event","currentItem","currentItemText","clipboardData","setData","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","callbackfn","active","chipGroup","closeIcon","closeLabel","draggable","filterIcon","pill","textColor","isLink","hasClose","genFilter","VExpandXTransition","genClose","inset","vertical","orientation","_self","hasTitleSlot","_t","hasGeneralCode","hasSingleCodeType","_e","hasHtmlCode","setActiveTab","hasJsCode","hasScssCode","tabIndex","$$v","headClass","bodyClass","bodyFit","bodyFluid","hasFootSlot","headSize","fluidHeight","fluidHalfHeight","headOverlay","cardClass","example","cls","headSizeClass","isOpen","KTCard","KTLayoutExamples","hljs","hl","closest","links","exist","inactive","selectable","genAttrs","nativeOn","Resize","theme","contentProps","calculatedTopAuto","defaultOffset","hasJustFocused","resizeTimeout","menuWidth","calcLeftAuto","calcLeft","calculatedMaxHeight","calculatedMaxWidth","nudgeWidth","pageWidth","calcTop","next","prev","contentHeight","goTo","appOffset","duration","container","calcTopAuto","calcScrollPosition","maxScrollTop","offsetHeight","computedTop","tileDistanceFromMenuTop","firstTileOffsetTop","attributes","genDirectives","rootThemeClasses","menuable__content__active","mouseEnterHandler","mouseLeaveHandler","relatedTarget","callDeactivate","onResize","offsetWidth","arg","returnValue","originalValue","save","positionableFactory","allowOverflow","positionX","positionY","absoluteX","absoluteY","relativeYOffset","hasWindow","inputActivator","stackClass","computedLeft","a","c","rtl","absoluteYOffset","absolutePosition","xOverflow","getOffsetLeft","documentHeight","getInnerHeight","toTop","totalHeight","isOverflowing","checkForPageYOffset","getOffsetTop","checkActivatorFixed","offsetParent","clientX","clientY","innerHeight","pageXOffset","getRoundedBoundedClientRect","rect","getBoundingClientRect","measure","marginLeft","marginTop","sneakPeek","display","Promise","resolve","offsetRect","falseValue","trueValue","appIsDark","isMultiple","checked","change","validate"],"mappings":"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","file":"js/chunk-372d8ca5.62a6c2d9.js","sourcesContent":["import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n  return breakpoints.reduce((props, val) => {\n    props[prefix + upperFirst(val)] = def()\n    return props\n  }, {} as Dictionary<PropOptions>)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n  type: String,\n  default: null,\n  validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n  type: String,\n  default: null,\n  validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n  type: String,\n  default: null,\n  validator: alignContentValidator,\n}))\n\nconst propMap = {\n  align: Object.keys(alignProps),\n  justify: Object.keys(justifyProps),\n  alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n  align: 'align',\n  justify: 'justify',\n  alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n  let className = classMap[type]\n  if (val == null) {\n    return undefined\n  }\n  if (prop) {\n    // alignSm -> Sm\n    const breakpoint = prop.replace(type, '')\n    className += `-${breakpoint}`\n  }\n  // .align-items-sm-center\n  className += `-${val}`\n  return className.toLowerCase()\n}\n\nconst cache = new Map<string, any[]>()\n\nexport default Vue.extend({\n  name: 'v-row',\n  functional: true,\n  props: {\n    tag: {\n      type: String,\n      default: 'div',\n    },\n    dense: Boolean,\n    noGutters: Boolean,\n    align: {\n      type: String,\n      default: null,\n      validator: alignValidator,\n    },\n    ...alignProps,\n    justify: {\n      type: String,\n      default: null,\n      validator: justifyValidator,\n    },\n    ...justifyProps,\n    alignContent: {\n      type: String,\n      default: null,\n      validator: alignContentValidator,\n    },\n    ...alignContentProps,\n  },\n  render (h, { props, data, children }) {\n    // Super-fast memoization based on props, 5x faster than JSON.stringify\n    let cacheKey = ''\n    for (const prop in props) {\n      cacheKey += String((props as any)[prop])\n    }\n    let classList = cache.get(cacheKey)\n\n    if (!classList) {\n      classList = []\n      // Loop through `align`, `justify`, `alignContent` breakpoint props\n      let type: keyof typeof propMap\n      for (type in propMap) {\n        propMap[type].forEach(prop => {\n          const value: string = (props as any)[prop]\n          const className = breakpointClass(type, prop, value)\n          if (className) classList!.push(className)\n        })\n      }\n\n      classList.push({\n        'no-gutters': props.noGutters,\n        'row--dense': props.dense,\n        [`align-${props.align}`]: props.align,\n        [`justify-${props.justify}`]: props.justify,\n        [`align-content-${props.alignContent}`]: props.alignContent,\n      })\n\n      cache.set(cacheKey, classList)\n    }\n\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'row',\n        class: classList,\n      }),\n      children\n    )\n  },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n  Colorable,\n  Themeable,\n  Toggleable\n).extend({\n  name: 'v-overlay',\n\n  props: {\n    absolute: Boolean,\n    color: {\n      type: String,\n      default: '#212121',\n    },\n    dark: {\n      type: Boolean,\n      default: true,\n    },\n    opacity: {\n      type: [Number, String],\n      default: 0.46,\n    },\n    value: {\n      default: true,\n    },\n    zIndex: {\n      type: [Number, String],\n      default: 5,\n    },\n  },\n\n  computed: {\n    __scrim (): VNode {\n      const data = this.setBackgroundColor(this.color, {\n        staticClass: 'v-overlay__scrim',\n        style: {\n          opacity: this.computedOpacity,\n        },\n      })\n\n      return this.$createElement('div', data)\n    },\n    classes (): object {\n      return {\n        'v-overlay--absolute': this.absolute,\n        'v-overlay--active': this.isActive,\n        ...this.themeClasses,\n      }\n    },\n    computedOpacity (): number {\n      return Number(this.isActive ? this.opacity : 0)\n    },\n    styles (): object {\n      return {\n        zIndex: this.zIndex,\n      }\n    },\n  },\n\n  methods: {\n    genContent () {\n      return this.$createElement('div', {\n        staticClass: 'v-overlay__content',\n      }, getSlot(this))\n    },\n  },\n\n  render (h): VNode {\n    const children = [this.__scrim]\n\n    if (this.isActive) children.push(this.genContent())\n\n    return h('div', {\n      staticClass: 'v-overlay',\n      on: this.$listeners,\n      class: this.classes,\n      style: this.styles,\n    }, children)\n  },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n  keyCodes,\n  addOnceEventListener,\n  addPassiveEventListener,\n  getZIndex,\n  composedPath,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n  isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n  activeZIndex: number\n}\n\ninterface options {\n  absolute?: boolean\n  $refs: {\n    dialog?: HTMLElement\n    content?: HTMLElement\n  }\n}\n\n/* @vue/component */\nexport default Vue.extend<Vue & Toggleable & Stackable & options>().extend({\n  name: 'overlayable',\n\n  props: {\n    hideOverlay: Boolean,\n    overlayColor: String,\n    overlayOpacity: [Number, String],\n  },\n\n  data () {\n    return {\n      animationFrame: 0,\n      overlay: null as InstanceType<typeof VOverlay> | null,\n    }\n  },\n\n  watch: {\n    hideOverlay (value) {\n      if (!this.isActive) return\n\n      if (value) this.removeOverlay()\n      else this.genOverlay()\n    },\n  },\n\n  beforeDestroy () {\n    this.removeOverlay()\n  },\n\n  methods: {\n    createOverlay () {\n      const overlay = new VOverlay({\n        propsData: {\n          absolute: this.absolute,\n          value: false,\n          color: this.overlayColor,\n          opacity: this.overlayOpacity,\n        },\n      })\n\n      overlay.$mount()\n\n      const parent = this.absolute\n        ? this.$el.parentNode\n        : document.querySelector('[data-app]')\n\n      parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n      this.overlay = overlay\n    },\n    genOverlay () {\n      this.hideScroll()\n\n      if (this.hideOverlay) return\n\n      if (!this.overlay) this.createOverlay()\n\n      this.animationFrame = requestAnimationFrame(() => {\n        if (!this.overlay) return\n\n        if (this.activeZIndex !== undefined) {\n          this.overlay.zIndex = String(this.activeZIndex - 1)\n        } else if (this.$el) {\n          this.overlay.zIndex = getZIndex(this.$el)\n        }\n\n        this.overlay.value = true\n      })\n\n      return true\n    },\n    /** removeOverlay(false) will not restore the scollbar afterwards */\n    removeOverlay (showScroll = true) {\n      if (this.overlay) {\n        addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n          if (\n            !this.overlay ||\n            !this.overlay.$el ||\n            !this.overlay.$el.parentNode ||\n            this.overlay.value ||\n            this.isActive\n          ) return\n\n          this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n          this.overlay.$destroy()\n          this.overlay = null\n        })\n\n        // Cancel animation frame in case\n        // overlay is removed before it\n        // has finished its animation\n        cancelAnimationFrame(this.animationFrame)\n\n        this.overlay.value = false\n      }\n\n      showScroll && this.showScroll()\n    },\n    scrollListener (e: WheelEvent | KeyboardEvent) {\n      if ('key' in e) {\n        if (\n          ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n          // https://github.com/vuetifyjs/vuetify/issues/4715\n          (e.target as HTMLElement).isContentEditable\n        ) return\n\n        const up = [keyCodes.up, keyCodes.pageup]\n        const down = [keyCodes.down, keyCodes.pagedown]\n\n        if (up.includes(e.keyCode)) {\n          (e as any).deltaY = -1\n        } else if (down.includes(e.keyCode)) {\n          (e as any).deltaY = 1\n        } else {\n          return\n        }\n      }\n\n      if (e.target === this.overlay ||\n        (e.type !== 'keydown' && e.target === document.body) ||\n        this.checkPath(e as WheelEvent)) e.preventDefault()\n    },\n    hasScrollbar (el?: Element) {\n      if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n      const style = window.getComputedStyle(el)\n      return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n      ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n    },\n    shouldScroll (el: Element, e: WheelEvent): boolean {\n      if (el.hasAttribute('data-app')) return false\n\n      const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n      const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n      let alreadyAtStart: boolean\n      let alreadyAtEnd: boolean\n      if (dir === 'y') {\n        alreadyAtStart = el.scrollTop === 0\n        alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n      } else {\n        alreadyAtStart = el.scrollLeft === 0\n        alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n      }\n\n      const scrollingUp = delta < 0\n      const scrollingDown = delta > 0\n\n      if (!alreadyAtStart && scrollingUp) return true\n      if (!alreadyAtEnd && scrollingDown) return true\n      if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {\n        return this.shouldScroll(el.parentNode as Element, e)\n      }\n\n      return false\n    },\n    isInside (el: Element, parent: Element): boolean {\n      if (el === parent) {\n        return true\n      } else if (el === null || el === document.body) {\n        return false\n      } else {\n        return this.isInside(el.parentNode as Element, parent)\n      }\n    },\n    checkPath (e: WheelEvent) {\n      const path = composedPath(e)\n\n      if (e.type === 'keydown' && path[0] === document.body) {\n        const dialog = this.$refs.dialog\n        // getSelection returns null in firefox in some edge cases, can be ignored\n        const selected = window.getSelection()!.anchorNode as Element\n        if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n          return !this.shouldScroll(dialog, e)\n        }\n        return true\n      }\n\n      for (let index = 0; index < path.length; index++) {\n        const el = path[index]\n\n        if (el === document) return true\n        if (el === document.documentElement) return true\n        if (el === this.$refs.content) return true\n\n        if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n      }\n\n      return true\n    },\n    hideScroll () {\n      if (this.$vuetify.breakpoint.smAndDown) {\n        document.documentElement!.classList.add('overflow-y-hidden')\n      } else {\n        addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false })\n        window.addEventListener('keydown', this.scrollListener)\n      }\n    },\n    showScroll () {\n      document.documentElement!.classList.remove('overflow-y-hidden')\n      window.removeEventListener('wheel', this.scrollListener)\n      window.removeEventListener('keydown', this.scrollListener)\n    },\n  },\n})\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n  convertToUnit,\n  keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n  Dependent,\n  Detachable,\n  Overlayable,\n  Returnable,\n  Stackable,\n  Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-dialog',\n\n  directives: { ClickOutside },\n\n  props: {\n    dark: Boolean,\n    disabled: Boolean,\n    fullscreen: Boolean,\n    light: Boolean,\n    maxWidth: [String, Number],\n    noClickAnimation: Boolean,\n    origin: {\n      type: String,\n      default: 'center center',\n    },\n    persistent: Boolean,\n    retainFocus: {\n      type: Boolean,\n      default: true,\n    },\n    scrollable: Boolean,\n    transition: {\n      type: [String, Boolean],\n      default: 'dialog-transition',\n    },\n    width: [String, Number],\n  },\n\n  data () {\n    return {\n      activatedBy: null as EventTarget | null,\n      animate: false,\n      animateTimeout: -1,\n      stackMinZIndex: 200,\n      previousActiveElement: null as HTMLElement | null,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        [(`v-dialog ${this.contentClass}`).trim()]: true,\n        'v-dialog--active': this.isActive,\n        'v-dialog--persistent': this.persistent,\n        'v-dialog--fullscreen': this.fullscreen,\n        'v-dialog--scrollable': this.scrollable,\n        'v-dialog--animated': this.animate,\n      }\n    },\n    contentClasses (): object {\n      return {\n        'v-dialog__content': true,\n        'v-dialog__content--active': this.isActive,\n      }\n    },\n    hasActivator (): boolean {\n      return Boolean(\n        !!this.$slots.activator ||\n        !!this.$scopedSlots.activator\n      )\n    },\n  },\n\n  watch: {\n    isActive (val) {\n      if (val) {\n        this.show()\n        this.hideScroll()\n      } else {\n        this.removeOverlay()\n        this.unbind()\n        this.previousActiveElement?.focus()\n      }\n    },\n    fullscreen (val) {\n      if (!this.isActive) return\n\n      if (val) {\n        this.hideScroll()\n        this.removeOverlay(false)\n      } else {\n        this.showScroll()\n        this.genOverlay()\n      }\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  beforeMount () {\n    this.$nextTick(() => {\n      this.isBooted = this.isActive\n      this.isActive && this.show()\n    })\n  },\n\n  beforeDestroy () {\n    if (typeof window !== 'undefined') this.unbind()\n  },\n\n  methods: {\n    animateClick () {\n      this.animate = false\n      // Needed for when clicking very fast\n      // outside of the dialog\n      this.$nextTick(() => {\n        this.animate = true\n        window.clearTimeout(this.animateTimeout)\n        this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n      })\n    },\n    closeConditional (e: Event) {\n      const target = e.target as HTMLElement\n      // Ignore the click if the dialog is closed or destroyed,\n      // if it was on an element inside the content,\n      // if it was dragged onto the overlay (#6969),\n      // or if this isn't the topmost dialog (#9907)\n      return !(\n        this._isDestroyed ||\n        !this.isActive ||\n        this.$refs.content.contains(target) ||\n        (this.overlay && target && !this.overlay.$el.contains(target))\n      ) && this.activeZIndex >= this.getMaxZIndex()\n    },\n    hideScroll () {\n      if (this.fullscreen) {\n        document.documentElement.classList.add('overflow-y-hidden')\n      } else {\n        Overlayable.options.methods.hideScroll.call(this)\n      }\n    },\n    show () {\n      !this.fullscreen && !this.hideOverlay && this.genOverlay()\n      // Double nextTick to wait for lazy content to be generated\n      this.$nextTick(() => {\n        this.$nextTick(() => {\n          if (!this.$refs.dialog?.contains(document.activeElement)) {\n            this.previousActiveElement = document.activeElement as HTMLElement\n            this.$refs.dialog?.focus()\n          }\n          this.bind()\n        })\n      })\n    },\n    bind () {\n      window.addEventListener('focusin', this.onFocusin)\n    },\n    unbind () {\n      window.removeEventListener('focusin', this.onFocusin)\n    },\n    onClickOutside (e: Event) {\n      this.$emit('click:outside', e)\n\n      if (this.persistent) {\n        this.noClickAnimation || this.animateClick()\n      } else {\n        this.isActive = false\n      }\n    },\n    onKeydown (e: KeyboardEvent) {\n      if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n        if (!this.persistent) {\n          this.isActive = false\n          const activator = this.getActivator()\n          this.$nextTick(() => activator && (activator as HTMLElement).focus())\n        } else if (!this.noClickAnimation) {\n          this.animateClick()\n        }\n      }\n      this.$emit('keydown', e)\n    },\n    // On focus change, wrap focus to stay inside the dialog\n    // https://github.com/vuetifyjs/vuetify/issues/6892\n    onFocusin (e: Event) {\n      if (!e || !this.retainFocus) return\n\n      const target = e.target as HTMLElement\n\n      if (\n        !!target &&\n        this.$refs.dialog &&\n        // It isn't the document or the dialog body\n        ![document, this.$refs.dialog].includes(target) &&\n        // It isn't inside the dialog body\n        !this.$refs.dialog.contains(target) &&\n        // We're the topmost dialog\n        this.activeZIndex >= this.getMaxZIndex() &&\n        // It isn't inside a dependent element (like a menu)\n        !this.getOpenDependentElements().some(el => el.contains(target))\n        // So we must have focused something outside the dialog and its children\n      ) {\n        // Find and focus the first available element inside the dialog\n        const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n        const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n        el && el.focus()\n      }\n    },\n    genContent () {\n      return this.showLazyContent(() => [\n        this.$createElement(VThemeProvider, {\n          props: {\n            root: true,\n            light: this.light,\n            dark: this.dark,\n          },\n        }, [\n          this.$createElement('div', {\n            class: this.contentClasses,\n            attrs: {\n              role: 'dialog',\n              'aria-modal': this.hideOverlay ? undefined : 'true',\n              ...this.getScopeIdAttrs(),\n            },\n            on: { keydown: this.onKeydown },\n            style: { zIndex: this.activeZIndex },\n            ref: 'content',\n          }, [this.genTransition()]),\n        ]),\n      ])\n    },\n    genTransition () {\n      const content = this.genInnerContent()\n\n      if (!this.transition) return content\n\n      return this.$createElement('transition', {\n        props: {\n          name: this.transition,\n          origin: this.origin,\n          appear: true,\n        },\n      }, [content])\n    },\n    genInnerContent () {\n      const data: VNodeData = {\n        class: this.classes,\n        attrs: {\n          tabindex: this.isActive ? 0 : undefined,\n        },\n        ref: 'dialog',\n        directives: [\n          {\n            name: 'click-outside',\n            value: {\n              handler: this.onClickOutside,\n              closeConditional: this.closeConditional,\n              include: this.getOpenDependentElements,\n            },\n          },\n          { name: 'show', value: this.isActive },\n        ],\n        style: {\n          transformOrigin: this.origin,\n        },\n      }\n\n      if (!this.fullscreen) {\n        data.style = {\n          ...data.style as object,\n          maxWidth: convertToUnit(this.maxWidth),\n          width: convertToUnit(this.width),\n        }\n      }\n\n      return this.$createElement('div', data, this.getContentSlot())\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-dialog__container',\n      class: {\n        'v-dialog__container--attached':\n          this.attach === '' ||\n          this.attach === true ||\n          this.attach === 'attach',\n      },\n    }, [\n      this.genActivator(),\n      this.genContent(),\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<Vue & { isActive?: boolean }>().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","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'v-list-item-action',\n\n  functional: true,\n\n  render (h, { data, children = [] }): VNode {\n    data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n    const filteredChild = children.filter(VNode => {\n      return VNode.isComment === false && VNode.text !== ' '\n    })\n    if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n    return h('div', data, children)\n  },\n})\n","// Styles\nimport './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 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<options>().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 VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType<string | number | undefined>\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<string, string> = {}\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","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n  VToolbar,\n  VToolbarItems,\n  VToolbarTitle,\n}\n\nexport default {\n  $_vuetify_subcomponents: {\n    VToolbar,\n    VToolbarItems,\n    VToolbarTitle,\n  },\n}\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","import './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Menuable).extend({\n  name: 'v-tooltip',\n\n  props: {\n    closeDelay: {\n      type: [Number, String],\n      default: 0,\n    },\n    disabled: Boolean,\n    openDelay: {\n      type: [Number, String],\n      default: 0,\n    },\n    openOnHover: {\n      type: Boolean,\n      default: true,\n    },\n    openOnFocus: {\n      type: Boolean,\n      default: true,\n    },\n    tag: {\n      type: String,\n      default: 'span',\n    },\n    transition: String,\n  },\n\n  data: () => ({\n    calculatedMinWidth: 0,\n    closeDependents: false,\n  }),\n\n  computed: {\n    calculatedLeft (): string {\n      const { activator, content } = this.dimensions\n      const unknown = !this.bottom && !this.left && !this.top && !this.right\n      const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n      let left = 0\n\n      if (this.top || this.bottom || unknown) {\n        left = (\n          activatorLeft +\n          (activator.width / 2) -\n          (content.width / 2)\n        )\n      } else if (this.left || this.right) {\n        left = (\n          activatorLeft +\n          (this.right ? activator.width : -content.width) +\n          (this.right ? 10 : -10)\n        )\n      }\n\n      if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n      if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n      return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n    },\n    calculatedTop (): string {\n      const { activator, content } = this.dimensions\n      const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n      let top = 0\n\n      if (this.top || this.bottom) {\n        top = (\n          activatorTop +\n          (this.bottom ? activator.height : -content.height) +\n          (this.bottom ? 10 : -10)\n        )\n      } else if (this.left || this.right) {\n        top = (\n          activatorTop +\n          (activator.height / 2) -\n          (content.height / 2)\n        )\n      }\n\n      if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n      if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n      if (this.attach === false) top += this.pageYOffset\n\n      return `${this.calcYOverflow(top)}px`\n    },\n    classes (): object {\n      return {\n        'v-tooltip--top': this.top,\n        'v-tooltip--right': this.right,\n        'v-tooltip--bottom': this.bottom,\n        'v-tooltip--left': this.left,\n        'v-tooltip--attached':\n          this.attach === '' ||\n          this.attach === true ||\n          this.attach === 'attach',\n      }\n    },\n    computedTransition (): string {\n      if (this.transition) return this.transition\n\n      return this.isActive ? 'scale-transition' : 'fade-transition'\n    },\n    offsetY (): boolean {\n      return this.top || this.bottom\n    },\n    offsetX (): boolean {\n      return this.left || this.right\n    },\n    styles (): object {\n      return {\n        left: this.calculatedLeft,\n        maxWidth: convertToUnit(this.maxWidth),\n        minWidth: convertToUnit(this.minWidth),\n        top: this.calculatedTop,\n        zIndex: this.zIndex || this.activeZIndex,\n      }\n    },\n  },\n\n  beforeMount () {\n    this.$nextTick(() => {\n      this.value && this.callActivate()\n    })\n  },\n\n  mounted () {\n    if (getSlotType(this, 'activator', true) === 'v-slot') {\n      consoleError(`v-tooltip's activator slot must be bound, try '<template #activator=\"data\"><v-btn v-on=\"data.on>'`, this)\n    }\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(this.startTransition)\n    },\n    deactivate () {\n      this.runDelay('close')\n    },\n    genActivatorListeners () {\n      const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n      if (this.openOnFocus) {\n        listeners.focus = (e: Event) => {\n          this.getActivator(e)\n          this.runDelay('open')\n        }\n        listeners.blur = (e: Event) => {\n          this.getActivator(e)\n          this.runDelay('close')\n        }\n      }\n\n      listeners.keydown = (e: KeyboardEvent) => {\n        if (e.keyCode === keyCodes.esc) {\n          this.getActivator(e)\n          this.runDelay('close')\n        }\n      }\n\n      return listeners\n    },\n    genActivatorAttributes () {\n      return {\n        'aria-haspopup': true,\n        'aria-expanded': String(this.isActive),\n      }\n    },\n    genTransition () {\n      const content = this.genContent()\n\n      if (!this.computedTransition) return content\n\n      return this.$createElement('transition', {\n        props: {\n          name: this.computedTransition,\n        },\n      }, [content])\n    },\n    genContent () {\n      return this.$createElement(\n        'div',\n        this.setBackgroundColor(this.color, {\n          staticClass: 'v-tooltip__content',\n          class: {\n            [this.contentClass]: true,\n            menuable__content__active: this.isActive,\n            'v-tooltip__content--fixed': this.activatorFixed,\n          },\n          style: this.styles,\n          attrs: this.getScopeIdAttrs(),\n          directives: [{\n            name: 'show',\n            value: this.isContentActive,\n          }],\n          ref: 'content',\n        }),\n        this.getContentSlot()\n      )\n    },\n  },\n\n  render (h): VNode {\n    return h(this.tag, {\n      staticClass: 'v-tooltip',\n      class: this.classes,\n    }, [\n      this.showLazyContent(() => [this.genTransition()]),\n      this.genActivator(),\n    ])\n  },\n})\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VRadioGroup.sass'\n\n// Extensions\nimport VInput from '../VInput'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { PropType } from 'vue'\n\nconst baseMixins = mixins(\n  BaseItemGroup,\n  VInput\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-radio-group',\n\n  provide () {\n    return {\n      radioGroup: this,\n    }\n  },\n\n  props: {\n    column: {\n      type: Boolean,\n      default: true,\n    },\n    height: {\n      type: [Number, String],\n      default: 'auto',\n    },\n    name: String,\n    row: Boolean,\n    // If no value set on VRadio\n    // will match valueComparator\n    // force default to null\n    value: null as unknown as PropType<any>,\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        ...VInput.options.computed.classes.call(this),\n        'v-input--selection-controls v-input--radio-group': true,\n        'v-input--radio-group--column': this.column && !this.row,\n        'v-input--radio-group--row': this.row,\n      }\n    },\n  },\n\n  methods: {\n    genDefaultSlot () {\n      return this.$createElement('div', {\n        staticClass: 'v-input--radio-group__input',\n        attrs: {\n          id: this.id,\n          role: 'radiogroup',\n          'aria-labelledby': this.computedId,\n        },\n      }, VInput.options.methods.genDefaultSlot.call(this))\n    },\n    genInputSlot () {\n      const render = VInput.options.methods.genInputSlot.call(this)\n\n      delete render.data!.on!.click\n\n      return render\n    },\n    genLabel () {\n      const label = VInput.options.methods.genLabel.call(this)\n\n      if (!label) return null\n\n      label.data!.attrs!.id = this.computedId\n      // WAI considers this an orphaned label\n      delete label.data!.attrs!.for\n      label.tag = 'legend'\n\n      return label\n    },\n    onClick: BaseItemGroup.options.methods.onClick,\n  },\n\n  render (h) {\n    const vnode = VInput.options.render.call(this, h)\n\n    this._b(vnode.data!, 'div', this.attrs$)\n\n    return vnode\n  },\n})\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n  name: 'v-theme-provider',\n\n  props: { root: Boolean },\n\n  computed: {\n    isDark (): boolean {\n      return this.root\n        ? this.rootIsDark\n        : Themeable.options.computed.isDark.call(this)\n    },\n  },\n\n  render (): VNode {\n    /* istanbul ignore next */\n    return (\n      this.$slots.default! &&\n      this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n    )\n  },\n})\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit, getSlot } 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      }, getSlot(this))\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","// 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<string | HTMLElement | VNode | Element | null>,\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 '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, 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","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n  name: 'rippleable',\n\n  directives: { ripple },\n\n  props: {\n    ripple: {\n      type: [Boolean, Object],\n      default: true,\n    },\n  },\n\n  methods: {\n    genRipple (data: VNodeData = {}): VNode | null {\n      if (!this.ripple) return null\n\n      data.staticClass = 'v-input--selection-controls__ripple'\n\n      data.directives = data.directives || []\n      data.directives.push({\n        name: 'ripple',\n        value: { center: true },\n      } as VNodeDirective)\n\n      return this.$createElement('div', data)\n    },\n  },\n})\n","// 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<typeof VList>\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  list: VListInstance\n  $refs: {\n    group: HTMLElement\n  }\n  $route: Route\n}\n\nexport default baseMixins.extend<options>().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      const slot = getSlot(this, 'appendIcon')\n\n      if (!icon && !slot) return null\n\n      return this.$createElement(VListItemIcon, {\n        staticClass: 'v-list-group__header__append-icon',\n      }, [\n        slot || 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        getSlot(this, '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      const slot = getSlot(this, 'prependIcon')\n\n      if (!icon && !slot) return null\n\n      return this.$createElement(VListItemIcon, {\n        staticClass: 'v-list-group__header__prepend-icon',\n      }, [\n        slot || 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 { 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","// 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'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType<typeof Groupable> & {\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<string, boolean> {\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 => this.valueComparator(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 = this.valueComparator(this.internalValue, value)\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(), getSlot(this))\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 './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n  return breakpoints.reduce((props, val) => {\n    props[val] = {\n      type: [Boolean, String, Number],\n      default: false,\n    }\n    return props\n  }, {} as Dictionary<PropOptions>)\n})()\n\nconst offsetProps = (() => {\n  return breakpoints.reduce((props, val) => {\n    props['offset' + upperFirst(val)] = {\n      type: [String, Number],\n      default: null,\n    }\n    return props\n  }, {} as Dictionary<PropOptions>)\n})()\n\nconst orderProps = (() => {\n  return breakpoints.reduce((props, val) => {\n    props['order' + upperFirst(val)] = {\n      type: [String, Number],\n      default: null,\n    }\n    return props\n  }, {} as Dictionary<PropOptions>)\n})()\n\nconst propMap = {\n  col: Object.keys(breakpointProps),\n  offset: Object.keys(offsetProps),\n  order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n  let className = type\n  if (val == null || val === false) {\n    return undefined\n  }\n  if (prop) {\n    const breakpoint = prop.replace(type, '')\n    className += `-${breakpoint}`\n  }\n  // Handling the boolean style prop when accepting [Boolean, String, Number]\n  // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n  // Since the default is false, an empty string indicates the prop's presence.\n  if (type === 'col' && (val === '' || val === true)) {\n    // .col-md\n    return className.toLowerCase()\n  }\n  // .order-md-6\n  className += `-${val}`\n  return className.toLowerCase()\n}\n\nconst cache = new Map<string, any[]>()\n\nexport default Vue.extend({\n  name: 'v-col',\n  functional: true,\n  props: {\n    cols: {\n      type: [Boolean, String, Number],\n      default: false,\n    },\n    ...breakpointProps,\n    offset: {\n      type: [String, Number],\n      default: null,\n    },\n    ...offsetProps,\n    order: {\n      type: [String, Number],\n      default: null,\n    },\n    ...orderProps,\n    alignSelf: {\n      type: String,\n      default: null,\n      validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n    },\n    tag: {\n      type: String,\n      default: 'div',\n    },\n  },\n  render (h, { props, data, children, parent }): VNode {\n    // Super-fast memoization based on props, 5x faster than JSON.stringify\n    let cacheKey = ''\n    for (const prop in props) {\n      cacheKey += String((props as any)[prop])\n    }\n    let classList = cache.get(cacheKey)\n\n    if (!classList) {\n      classList = []\n      // Loop through `col`, `offset`, `order` breakpoint props\n      let type: keyof typeof propMap\n      for (type in propMap) {\n        propMap[type].forEach(prop => {\n          const value: string | number | boolean = (props as any)[prop]\n          const className = breakpointClass(type, prop, value)\n          if (className) classList!.push(className)\n        })\n      }\n\n      const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n      classList.push({\n        // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n        col: !hasColClasses || !props.cols,\n        [`col-${props.cols}`]: props.cols,\n        [`offset-${props.offset}`]: props.offset,\n        [`order-${props.order}`]: props.order,\n        [`align-self-${props.alignSelf}`]: props.alignSelf,\n      })\n\n      cache.set(cacheKey, classList)\n    }\n\n    return h(props.tag, mergeData(data, { class: classList }), children)\n  },\n})\n","// Styles\nimport './VRadio.sass'\n\n// Components\nimport VRadioGroup from './VRadioGroup'\nimport VLabel from '../VLabel'\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\nimport Selectable, { prevent } from '../../mixins/selectable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { mergeListeners } from '../../util/mergeData'\n\nconst baseMixins = mixins(\n  BindsAttrs,\n  Colorable,\n  Rippleable,\n  GroupableFactory('radioGroup'),\n  Themeable\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n  radioGroup: InstanceType<typeof VRadioGroup>\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-radio',\n\n  inheritAttrs: false,\n\n  props: {\n    disabled: {\n      type: Boolean,\n      default: null,\n    },\n    id: String,\n    label: String,\n    name: String,\n    offIcon: {\n      type: String,\n      default: '$radioOff',\n    },\n    onIcon: {\n      type: String,\n      default: '$radioOn',\n    },\n    readonly: {\n      type: Boolean,\n      default: null,\n    },\n    value: {\n      default: null,\n    },\n  },\n\n  data: () => ({\n    isFocused: false,\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        'v-radio--is-disabled': this.isDisabled,\n        'v-radio--is-focused': this.isFocused,\n        ...this.themeClasses,\n        ...this.groupClasses,\n      }\n    },\n    computedColor (): string | undefined {\n      if (this.isDisabled) return undefined\n      return Selectable.options.computed.computedColor.call(this)\n    },\n    computedIcon (): string {\n      return this.isActive\n        ? this.onIcon\n        : this.offIcon\n    },\n    computedId (): string {\n      return VInput.options.computed.computedId.call(this)\n    },\n    hasLabel: VInput.options.computed.hasLabel,\n    hasState (): boolean {\n      return (this.radioGroup || {}).hasState\n    },\n    isDisabled (): boolean {\n      return this.disabled ?? (\n        !!this.radioGroup &&\n        this.radioGroup.isDisabled\n      )\n    },\n    isReadonly (): boolean {\n      return this.readonly ?? (\n        !!this.radioGroup &&\n        this.radioGroup.isReadonly\n      )\n    },\n    computedName (): string {\n      if (this.name || !this.radioGroup) {\n        return this.name\n      }\n\n      return this.radioGroup.name || `radio-${this.radioGroup._uid}`\n    },\n    rippleState (): string | undefined {\n      return Selectable.options.computed.rippleState.call(this)\n    },\n    validationState (): string | undefined {\n      return (this.radioGroup || {}).validationState || this.computedColor\n    },\n  },\n\n  methods: {\n    genInput (args: any) {\n      // We can't actually use the mixin directly because\n      // it's made for standalone components, but its\n      // genInput method is exactly what we need\n      return Selectable.options.methods.genInput.call(this, 'radio', args)\n    },\n    genLabel () {\n      if (!this.hasLabel) return null\n\n      return this.$createElement(VLabel, {\n        on: {\n          // Label shouldn't cause the input to focus\n          click: prevent,\n        },\n        attrs: {\n          for: this.computedId,\n        },\n        props: {\n          color: this.validationState,\n          focused: this.hasState,\n        },\n      }, getSlot(this, 'label') || this.label)\n    },\n    genRadio () {\n      const { title, ...radioAttrs } = this.attrs$\n\n      return this.$createElement('div', {\n        staticClass: 'v-input--selection-controls__input',\n      }, [\n        this.$createElement(VIcon, this.setTextColor(this.validationState, {\n          props: {\n            dense: this.radioGroup && this.radioGroup.dense,\n          },\n        }), this.computedIcon),\n        this.genInput({\n          name: this.computedName,\n          value: this.value,\n          ...radioAttrs,\n        }),\n        this.genRipple(this.setTextColor(this.rippleState)),\n      ])\n    },\n    onFocus (e: Event) {\n      this.isFocused = true\n      this.$emit('focus', e)\n    },\n    onBlur (e: Event) {\n      this.isFocused = false\n      this.$emit('blur', e)\n    },\n    onChange () {\n      if (this.isDisabled || this.isReadonly || this.isActive) return\n\n      this.toggle()\n    },\n    onKeydown: () => {}, // Override default with noop\n  },\n\n  render (h): VNode {\n    const data: VNodeData = {\n      staticClass: 'v-radio',\n      class: this.classes,\n      on: mergeListeners({\n        click: this.onChange,\n      }, this.listeners$),\n      attrs: { title: this.attrs$.title },\n    }\n\n    return h('div', data, [\n      this.genRadio(),\n      this.genLabel(),\n    ])\n  },\n})\n","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n  name: 'v-toolbar',\n\n  props: {\n    absolute: Boolean,\n    bottom: Boolean,\n    collapse: Boolean,\n    dense: Boolean,\n    extended: Boolean,\n    extensionHeight: {\n      default: 48,\n      type: [Number, String],\n    },\n    flat: Boolean,\n    floating: Boolean,\n    prominent: Boolean,\n    short: Boolean,\n    src: {\n      type: [String, Object] as PropType<string | srcObject>,\n      default: '',\n    },\n    tag: {\n      type: String,\n      default: 'header',\n    },\n  },\n\n  data: () => ({\n    isExtended: false,\n  }),\n\n  computed: {\n    computedHeight (): number {\n      const height = this.computedContentHeight\n\n      if (!this.isExtended) return height\n\n      const extensionHeight = parseInt(this.extensionHeight)\n\n      return this.isCollapsed\n        ? height\n        : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n    },\n    computedContentHeight (): number {\n      if (this.height) return parseInt(this.height)\n      if (this.isProminent && this.dense) return 96\n      if (this.isProminent && this.short) return 112\n      if (this.isProminent) return 128\n      if (this.dense) return 48\n      if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n      return 64\n    },\n    classes (): object {\n      return {\n        ...VSheet.options.computed.classes.call(this),\n        'v-toolbar': true,\n        'v-toolbar--absolute': this.absolute,\n        'v-toolbar--bottom': this.bottom,\n        'v-toolbar--collapse': this.collapse,\n        'v-toolbar--collapsed': this.isCollapsed,\n        'v-toolbar--dense': this.dense,\n        'v-toolbar--extended': this.isExtended,\n        'v-toolbar--flat': this.flat,\n        'v-toolbar--floating': this.floating,\n        'v-toolbar--prominent': this.isProminent,\n      }\n    },\n    isCollapsed (): boolean {\n      return this.collapse\n    },\n    isProminent (): boolean {\n      return this.prominent\n    },\n    styles (): object {\n      return {\n        ...this.measurableStyles,\n        height: convertToUnit(this.computedHeight),\n      }\n    },\n  },\n\n  created () {\n    const breakingProps = [\n      ['app', '<v-app-bar app>'],\n      ['manual-scroll', '<v-app-bar :value=\"false\">'],\n      ['clipped-left', '<v-app-bar clipped-left>'],\n      ['clipped-right', '<v-app-bar clipped-right>'],\n      ['inverted-scroll', '<v-app-bar inverted-scroll>'],\n      ['scroll-off-screen', '<v-app-bar scroll-off-screen>'],\n      ['scroll-target', '<v-app-bar scroll-target>'],\n      ['scroll-threshold', '<v-app-bar scroll-threshold>'],\n      ['card', '<v-app-bar flat>'],\n    ]\n\n    /* istanbul ignore next */\n    breakingProps.forEach(([original, replacement]) => {\n      if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n    })\n  },\n\n  methods: {\n    genBackground () {\n      const props = {\n        height: convertToUnit(this.computedHeight),\n        src: this.src,\n      }\n\n      const image = this.$scopedSlots.img\n        ? this.$scopedSlots.img({ props })\n        : this.$createElement(VImg, { props })\n\n      return this.$createElement('div', {\n        staticClass: 'v-toolbar__image',\n      }, [image])\n    },\n    genContent () {\n      return this.$createElement('div', {\n        staticClass: 'v-toolbar__content',\n        style: {\n          height: convertToUnit(this.computedContentHeight),\n        },\n      }, getSlot(this))\n    },\n    genExtension () {\n      return this.$createElement('div', {\n        staticClass: 'v-toolbar__extension',\n        style: {\n          height: convertToUnit(this.extensionHeight),\n        },\n      }, getSlot(this, 'extension'))\n    },\n  },\n\n  render (h): VNode {\n    this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n    const children = [this.genContent()]\n    const data = this.setBackgroundColor(this.color, {\n      class: this.classes,\n      style: this.styles,\n      on: this.$listeners,\n    })\n\n    if (this.isExtended) children.push(this.genExtension())\n    if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n    return h(this.tag, data, children)\n  },\n})\n","// 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 { PropOptions } from 'vue'\nimport { VNode } from 'vue/types'\n\ninterface options {\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<options &\n  /* eslint-disable indent */\n  ExtractVue<typeof Bootable>\n  /* eslint-enable indent */\n>(Bootable).extend({\n  name: 'detachable',\n\n  props: {\n    attach: {\n      default: false,\n      validator: validateAttachTarget,\n    } as PropOptions<boolean | string | Element>,\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 (<v-menu attach>)\n        this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('b-alert',{staticClass:\"alert alert-custom alert-white alert-shadow fade show gutter-b\",attrs:{\"show\":\"\",\"variant\":\"light\"}},[_c('div',{staticClass:\"alert-icon\"},[_c('span',{staticClass:\"svg-icon svg-icon-lg\"},[_c('inline-svg',{attrs:{\"src\":\"media/svg/icons/Tools/Compass.svg\"}})],1)]),_c('div',{staticClass:\"alert-text\"},[_c('b',[_vm._v(\"Dialog\")]),_vm._v(\" The \"),_c('code',[_vm._v(\"v-dialog\")]),_vm._v(\" component inform users about a specific task and may contain critical information, require decisions, or involve multiple tasks. Use dialogs sparingly because they are interruptive. \"),_c('a',{staticClass:\"font-weight-bold\",attrs:{\"href\":\"https://vuetifyjs.com/en/components/alerts\",\"target\":\"_blank\"}},[_vm._v(\" See documentation. \")])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6\"},[_c('KTCodePreview',{attrs:{\"title\":'Without activator'},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.code1.dialog = true}}},[_vm._v(\" Open Dialog \")]),_c('v-dialog',{attrs:{\"max-width\":\"290\"},model:{value:(_vm.code1.dialog),callback:function ($$v) {_vm.$set(_vm.code1, \"dialog\", $$v)},expression:\"code1.dialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Use Google's location service?\")]),_c('v-card-text',[_vm._v(\" Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running. \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.code1.dialog = false}}},[_vm._v(\" Disagree \")]),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.code1.dialog = false}}},[_vm._v(\" Agree \")])],1)],1)],1)],1)]},proxy:true},{key:\"html\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code1.html)+\" \")]},proxy:true},{key:\"js\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code1.js)+\" \")]},proxy:true}])}),_c('KTCodePreview',{attrs:{\"title\":'Scrollable'},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-dialog',{attrs:{\"width\":\"600px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"primary\",\"dark\":\"\"}},on),[_vm._v(\"Open Dialog\")])]}}]),model:{value:(_vm.code3.dialog),callback:function ($$v) {_vm.$set(_vm.code3, \"dialog\", $$v)},expression:\"code3.dialog\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Use Google's location service?\")])]),_c('v-card-text',[_vm._v(\"Lorem ipsum dolor sit amet, semper quis, sapien id natoque elit. Nostra urna at, magna at neque sed sed ante imperdiet, dolor mauris cursus velit, velit non, sem nec. Volutpat sem ridiculus placerat leo, augue in, duis erat proin condimentum in a eget, sed fermentum sed vestibulum varius ac, vestibulum volutpat orci ut elit eget tortor. Ultrices nascetur nulla gravida ante arcu. Pharetra rhoncus morbi ipsum, nunc tempor debitis, ipsum pellentesque, vitae id quam ut mauris dui tempor, aptent non. Quisque turpis. Phasellus quis lectus luctus orci eget rhoncus. Amet donec vestibulum mattis commodo, nulla aliquet, nibh praesent, elementum nulla. Sit lacus pharetra tempus magna neque pellentesque, nulla vel erat. Justo ex quisque nulla accusamus venenatis, sed quis. Nibh phasellus gravida metus in, fusce aenean ut erat commodo eros. Ut turpis, dui integer, nonummy pede placeat nec in sit leo. Faucibus porttitor illo taciti odio, amet viverra scelerisque quis quis et tortor, curabitur morbi a. Enim tempor at, rutrum elit condimentum, amet rutrum vitae tempor torquent nunc. Praesent vestibulum integer maxime felis. Neque aenean quia vitae nostra, tempus elit enim id dui, at egestas pulvinar. Integer libero vestibulum, quis blandit scelerisque mattis fermentum nulla, tortor donec vestibulum dolor amet eget, elit nullam. Aliquam leo phasellus aliquam curabitur metus a, nulla justo mattis duis interdum vel, mollis vitae et id, vestibulum erat ridiculus sit pulvinar justo sed. Vehicula convallis, et nulla wisi, amet vestibulum risus, quam ac egestas. Et vitae, nulla gravida erat scelerisque nullam nunc pellentesque, a dictumst cras augue, purus imperdiet non. Varius montes cursus varius vel tortor, nec leo a qui, magni cras, velit vel consectetuer lobortis vel. Nibh erat et wisi felis leo porttitor, sapien nibh sapien pede mi, sed eget porttitor, repellendus arcu ac quis. Luctus vulputate aut est sem magna, placerat accumsan nunc vestibulum ipsum ac auctor, maecenas lorem in ut nec mauris tortor, doloribus varius sem tortor vestibulum mollis, eleifend tortor felis tempus lacus eu eu. Eleifend vel eu, nullam maecenas mauris nec nunc euismod, tortor porta ridiculus potenti, massa tristique nam magna, et wisi placerat et erat ante. Eget pede erat in facilisis, fermentum venenatis sodales. Ac tortor sociis et non animi tristique, rhoncus malesuada, ut arcu volutpat scelerisque sollicitudin, elit curabitur dui pede purus dolor, integer aenean risus taciti nulla eleifend accumsan. At pulvinar diam parturient, interdum mi velit aliquet et a. Arcu at ac placerat eget justo semper, purus sociis curabitur mi ipsum consequat ut, mollis vestibulum, est ante ornare lacus sem. Neque magna mauris, commodo quisque, praesent semper suscipit lobortis nam. Justo malesuada cursus ac nunc litora nunc. Tellus ac, in lobortis nunc, montes lectus purus fermentum. Ac sit wisi. Sodales aliquam, sed vestibulum nullam arcu sit risus arcu, id luctus vitae lorem nibh, integer nec nullam class cursus mi, purus arcu lectus. Vel ante suscipit volutpat potenti mattis sed, wisi eu placerat aliquam erat, lectus morbi lobortis at assumenda. Consequat neque purus ipsum voluptas odio, netus vestibulum ut nec, suspendisse pellentesque nec enim in. Wisi dictum sed semper a, ipsum erat tellus habitasse est, erat sem ornare, vitae quisque ultricies. Dui sed blandit. Tempor et faucibus justo sed luctus, nec vitae vitae. Nunc nibh pede, ipsum vestibulum aenean leo ante ultricies, nam cras quis sed penatibus amet. In mauris a. Integer metus mauris tortor, et rutrum vestibulum ultricies, ut phasellus in ullamcorper ut mollit, eu justo. Cursus pretium venenatis. Cras pellentesque vel sodales accumsan aenean. Feugiat metus sit nec in aliquet amet, porttitor pretium vulputate massa. Consequat ipsum luctus quisque adipiscing libero. Wisi sollicitudin. Eget vitae ac lobortis, lorem natoque vestibulum et, aliquet faucibus at morbi nibh, vel condimentum. Massa unde orci sed id sed, odio donec congue nec praesent amet. Hymenaeos velit lacus, quis vivamus libero tempus duis, eu nisi eu, ipsum at accumsan pede justo morbi donec, massa et libero sit risus neque tortor. Ut sed sed etiam hendrerit dapibus, quis metus suspendisse nibh. Fringilla tempor felis augue magna. Cum arcu a, id vitae. Pellentesque pharetra in cras sociis adipiscing est. Nibh nec mattis at maecenas, nisl orci aliquam nulla justo egestas venenatis, elementum duis vel porta eros, massa vitae, eligendi imperdiet amet. Nec neque luctus suscipit, justo sem praesent, ut nisl quisque, volutpat torquent wisi tellus aliquam reprehenderit, curabitur cras at quis massa porttitor mauris. Eros sed ultrices. Amet dignissim justo urna feugiat mauris litora, etiam accumsan, lobortis a orci suspendisse. Semper ac mauris, varius bibendum pretium, orci urna nunc ullamcorper auctor, saepe sem integer quam, at feugiat egestas duis. Urna ligula ante. Leo elementum nonummy. Sagittis mauris est in ipsum, nulla amet non justo, proin id potenti platea posuere sit ut, nunc sit erat bibendum. Nibh id auctor, ab nulla vivamus ultrices, posuere morbi nunc tellus gravida vivamus. Mauris nec, facilisi quam fermentum, ut mauris integer, orci tellus tempus diam ut in pellentesque. Wisi faucibus tempor et odio leo diam, eleifend quis integer curabitur sit scelerisque ac, mauris consequat luctus quam penatibus fringilla dis, vitae lacus in, est eu ac tempus. Consectetuer amet ipsum amet dui, sed blandit id sed. Tellus integer, dignissim id pede sodales quis, felis dolorem id mauris orci, orci tempus ut. Nullam hymenaeos. Curabitur in a, tortor ut praesent placerat tincidunt interdum, ac dignissim metus nonummy hendrerit wisi, etiam ut. Semper praesent integer fusce, tortor suspendisse, augue ligula orci ante asperiores ullamcorper. In sit per mi sed sed, mi vestibulum mus nam, morbi mauris neque vitae aliquam proin senectus. Ac amet arcu mollis ante congue elementum, inceptos eget optio quam pellentesque quis lobortis, sollicitudin sed vestibulum sollicitudin, lectus parturient nullam, leo orci ligula ultrices. At tincidunt enim, suspendisse est sit sem ac. Amet tellus molestie est purus magna augue, non etiam et in wisi id. Non commodo, metus lorem facilisi lobortis ac velit, montes neque sed risus consectetuer fringilla dolor. Quam justo et integer aliquam, cursus nulla enim orci, nam cursus adipiscing, integer torquent non, fringilla per maecenas. Libero ipsum sed tellus purus et. Duis molestie placerat erat donec ut. Dolor enim erat massa faucibus ultrices in, ante ultricies orci lacus, libero consectetuer mauris magna feugiat neque dapibus, donec pretium et. Aptent dui, aliquam et et amet nostra ligula. Augue curabitur duis dui volutpat, tempus sed ut pede donec. Interdum luctus, lectus nulla aenean elit, id sit magna, vulputate ultrices pellentesque vel id fermentum morbi. Tortor et. Adipiscing augue lorem cum non lacus, rutrum sodales laoreet duis tortor, modi placerat facilisis et malesuada eros ipsum, vehicula tempus. Ac vivamus amet non aliquam venenatis lectus, sociosqu adipiscing consequat nec arcu odio. Blandit orci nec nec, posuere in pretium, enim ut, consectetuer nullam urna, risus vel. Nullam odio vehicula massa sed, etiam sociis mauris, lacus ullamcorper, libero imperdiet non sodales placerat justo vehicula. Nec morbi imperdiet. Fermentum sem libero iaculis bibendum et eros, eget maecenas non nunc, ad pellentesque. Ut nec diam elementum interdum. Elementum vitae tellus lacus vitae, ipsum phasellus, corporis vehicula in ac sed massa vivamus, rutrum elit, ultricies metus volutpat. Semper wisi et, sollicitudin nunc vestibulum, cursus accumsan nunc pede tempus mi ipsum, ligula sed. Non condimentum ac dolor sit. Mollis eu aliquam, vel mattis mollis massa ut dolor ante, tempus lacinia arcu. Urna vestibulum lorem, nulla fermentum, iaculis ut congue ac vivamus. Nam libero orci, pulvinar nulla, enim pellentesque consectetuer leo, feugiat rhoncus rhoncus vel. Magna sociosqu donec, dictum cursus ullamcorper viverra. Ultricies quis orci lorem, suspendisse ut vestibulum integer, purus sed lorem pulvinar habitasse turpis. +\")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.code3.dialog = false}}},[_vm._v(\"Disagree\")]),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.code3.dialog = false}}},[_vm._v(\"Agree\")])],1)],1)],1)],1)]},proxy:true},{key:\"html\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code3.html)+\" \")]},proxy:true},{key:\"js\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code3.js)+\" \")]},proxy:true}])}),_c('KTCodePreview',{attrs:{\"title\":'Loader'},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('p',[_vm._v(\" The \"),_c('code',[_vm._v(\"v-dialog\")]),_vm._v(\" component makes it easy to create a customized loading experience for your application. \")]),_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"disabled\":_vm.code5Dialog,\"loading\":_vm.code5Dialog,\"color\":\"purple darken-2\"},on:{\"click\":function($event){_vm.code5Dialog = true}}},[_vm._v(\" Start loading \")]),_c('v-dialog',{attrs:{\"hide-overlay\":\"\",\"persistent\":\"\",\"width\":\"300\"},model:{value:(_vm.code5Dialog),callback:function ($$v) {_vm.code5Dialog=$$v},expression:\"code5Dialog\"}},[_c('v-card',{attrs:{\"color\":\"primary\",\"dark\":\"\"}},[_c('v-card-text',[_vm._v(\" Please stand by \"),_c('v-progress-linear',{staticClass:\"mb-0\",attrs:{\"indeterminate\":\"\",\"color\":\"white\"}})],1)],1)],1)],1)]},proxy:true},{key:\"html\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code5.html)+\" \")]},proxy:true},{key:\"js\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code5.js)+\" \")]},proxy:true}])}),_c('KTCodePreview',{attrs:{\"title\":'Nested dialogs'},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('p',[_vm._v(\"Dialogs can be nested: you can open one dialog from another.\")]),_c('div',[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){_vm.code7.dialog = true}}},[_vm._v(\" Open Dialog 1 \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){_vm.code7.dialog2 = true}}},[_vm._v(\" Open Dialog 2 \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){_vm.code7.dialog3 = true}}},[_vm._v(\" Open Dialog 3 \")]),_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ma-2\"},on),[_vm._v(\"A Menu\")])]}}])},[_c('v-list',_vm._l((_vm.code7.items),function(item,i){return _c('v-list-item',{key:i,on:{\"click\":() => {}}},[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)}),1)],1),_c('v-dialog',{attrs:{\"fullscreen\":\"\",\"hide-overlay\":\"\",\"transition\":\"dialog-bottom-transition\",\"scrollable\":\"\"},model:{value:(_vm.code7.dialog),callback:function ($$v) {_vm.$set(_vm.code7, \"dialog\", $$v)},expression:\"code7.dialog\"}},[_c('v-card',{attrs:{\"tile\":\"\"}},[_c('v-toolbar',{attrs:{\"flat\":\"\",\"dark\":\"\",\"color\":\"primary\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":function($event){_vm.code7.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1),_c('v-toolbar-title',[_vm._v(\"Settings\")]),_c('v-spacer'),_c('v-toolbar-items',[_c('v-btn',{attrs:{\"dark\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.code7.dialog = false}}},[_vm._v(\" Save \")])],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"right\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"dark\":\"\",\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}])},[_c('v-list',_vm._l((_vm.code7.items),function(item,i){return _c('v-list-item',{key:i,on:{\"click\":() => {}}},[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)}),1)],1)],1),_c('v-card-text',[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){_vm.code7.dialog2 = !_vm.code7.dialog2}}},[_vm._v(\" Open Dialog 2 \")]),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ma-2\"},on),[_vm._v(\"Tool Tip Activator\")])]}}])},[_vm._v(\" Tool Tip \")]),_c('v-list',{attrs:{\"three-line\":\"\",\"subheader\":\"\"}},[_c('v-subheader',[_vm._v(\"User Controls\")]),_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Content filtering\")]),_c('v-list-item-subtitle',[_vm._v(\"Set the content filtering level to restrict apps that can be downloaded\")])],1)],1),_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Password\")]),_c('v-list-item-subtitle',[_vm._v(\"Require password for purchase or use password to restrict purchase\")])],1)],1)],1),_c('v-divider'),_c('v-list',{attrs:{\"three-line\":\"\",\"subheader\":\"\"}},[_c('v-subheader',[_vm._v(\"General\")]),_c('v-list-item',[_c('v-list-item-action',[_c('v-checkbox',{model:{value:(_vm.code7.notifications),callback:function ($$v) {_vm.$set(_vm.code7, \"notifications\", $$v)},expression:\"code7.notifications\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Notifications\")]),_c('v-list-item-subtitle',[_vm._v(\"Notify me about updates to apps or games that I downloaded\")])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-checkbox',{model:{value:(_vm.code7.sound),callback:function ($$v) {_vm.$set(_vm.code7, \"sound\", $$v)},expression:\"code7.sound\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Sound\")]),_c('v-list-item-subtitle',[_vm._v(\"Auto-update apps at any time. Data charges may apply\")])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-checkbox',{model:{value:(_vm.code7.widgets),callback:function ($$v) {_vm.$set(_vm.code7, \"widgets\", $$v)},expression:\"code7.widgets\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Auto-add widgets\")]),_c('v-list-item-subtitle',[_vm._v(\"Automatically add home screen widgets\")])],1)],1)],1)],1),_c('div',{staticStyle:{\"flex\":\"1 1 auto\"}})],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},model:{value:(_vm.code7.dialog2),callback:function ($$v) {_vm.$set(_vm.code7, \"dialog2\", $$v)},expression:\"code7.dialog2\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\" Dialog 2 \")]),_c('v-card-text',[_c('v-btn',{attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){_vm.code7.dialog3 = !_vm.code7.dialog3}}},[_vm._v(\" Open Dialog 3 \")]),_c('v-select',{attrs:{\"items\":_vm.code7.select,\"label\":\"A Select List\",\"item-value\":\"text\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.code7.dialog2 = false}}},[_vm._v(\" Close \")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},model:{value:(_vm.code7.dialog3),callback:function ($$v) {_vm.$set(_vm.code7, \"dialog3\", $$v)},expression:\"code7.dialog3\"}},[_c('v-card',[_c('v-card-title',[_c('span',[_vm._v(\"Dialog 3\")]),_c('v-spacer'),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}])},[_c('v-list',_vm._l((_vm.code7.items),function(item,i){return _c('v-list-item',{key:i,on:{\"click\":() => {}}},[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)}),1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.code7.dialog3 = false}}},[_vm._v(\" Close \")])],1)],1)],1)],1)],1)]},proxy:true},{key:\"html\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code7.html)+\" \")]},proxy:true},{key:\"js\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code7.js)+\" \")]},proxy:true}])})],1),_c('div',{staticClass:\"col-md-6\"},[_c('KTCodePreview',{attrs:{\"title\":'Scrollable'},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('p',[_vm._v(\"Example of a dialog with scrollable content.\")]),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-dialog',{attrs:{\"scrollable\":\"\",\"max-width\":\"300px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"primary\",\"dark\":\"\"}},on),[_vm._v(\"Open Dialog\")])]}}]),model:{value:(_vm.code2.dialog),callback:function ($$v) {_vm.$set(_vm.code2, \"dialog\", $$v)},expression:\"code2.dialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Select Country\")]),_c('v-divider'),_c('v-card-text',{staticStyle:{\"height\":\"300px\"}},[_c('v-radio-group',{attrs:{\"column\":\"\"},model:{value:(_vm.code2.dialogm1),callback:function ($$v) {_vm.$set(_vm.code2, \"dialogm1\", $$v)},expression:\"code2.dialogm1\"}},[_c('v-radio',{attrs:{\"label\":\"Bahamas, The\",\"value\":\"bahamas\"}}),_c('v-radio',{attrs:{\"label\":\"Bahrain\",\"value\":\"bahrain\"}}),_c('v-radio',{attrs:{\"label\":\"Bangladesh\",\"value\":\"bangladesh\"}}),_c('v-radio',{attrs:{\"label\":\"Barbados\",\"value\":\"barbados\"}}),_c('v-radio',{attrs:{\"label\":\"Belarus\",\"value\":\"belarus\"}}),_c('v-radio',{attrs:{\"label\":\"Belgium\",\"value\":\"belgium\"}}),_c('v-radio',{attrs:{\"label\":\"Belize\",\"value\":\"belize\"}}),_c('v-radio',{attrs:{\"label\":\"Benin\",\"value\":\"benin\"}}),_c('v-radio',{attrs:{\"label\":\"Bhutan\",\"value\":\"bhutan\"}}),_c('v-radio',{attrs:{\"label\":\"Bolivia\",\"value\":\"bolivia\"}}),_c('v-radio',{attrs:{\"label\":\"Bosnia and Herzegovina\",\"value\":\"bosnia\"}}),_c('v-radio',{attrs:{\"label\":\"Botswana\",\"value\":\"botswana\"}}),_c('v-radio',{attrs:{\"label\":\"Brazil\",\"value\":\"brazil\"}}),_c('v-radio',{attrs:{\"label\":\"Brunei\",\"value\":\"brunei\"}}),_c('v-radio',{attrs:{\"label\":\"Bulgaria\",\"value\":\"bulgaria\"}}),_c('v-radio',{attrs:{\"label\":\"Burkina Faso\",\"value\":\"burkina\"}}),_c('v-radio',{attrs:{\"label\":\"Burma\",\"value\":\"burma\"}}),_c('v-radio',{attrs:{\"label\":\"Burundi\",\"value\":\"burundi\"}})],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.code2.dialog = false}}},[_vm._v(\"Close\")]),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.code2.dialog = false}}},[_vm._v(\"Save\")])],1)],1)],1)],1)]},proxy:true},{key:\"html\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code2.html)+\" \")]},proxy:true},{key:\"js\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code2.js)+\" \")]},proxy:true}])}),_c('KTCodePreview',{attrs:{\"title\":'Form'},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('p',[_vm._v(\"Just a simple example of a form in a dialog.\")]),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"600px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"primary\",\"dark\":\"\"}},on),[_vm._v(\"Open Dialog\")])]}}]),model:{value:(_vm.code4.dialog),callback:function ($$v) {_vm.$set(_vm.code4, \"dialog\", $$v)},expression:\"code4.dialog\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"User Profile\")])]),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Legal first name*\",\"required\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Legal middle name\",\"hint\":\"example of helper text only on focus\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Legal last name*\",\"hint\":\"example of persistent helper text\",\"persistent-hint\":\"\",\"required\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":\"Email*\",\"required\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":\"Password*\",\"type\":\"password\",\"required\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":['0-17', '18-29', '30-54', '54+'],\"label\":\"Age*\",\"required\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-autocomplete',{attrs:{\"items\":[\n                            'Skiing',\n                            'Ice hockey',\n                            'Soccer',\n                            'Basketball',\n                            'Hockey',\n                            'Reading',\n                            'Writing',\n                            'Coding',\n                            'Basejump'\n                          ],\"label\":\"Interests\",\"multiple\":\"\"}})],1)],1)],1),_c('small',[_vm._v(\"*indicates required field\")])],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.code4.dialog = false}}},[_vm._v(\"Close\")]),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.code4.dialog = false}}},[_vm._v(\"Save\")])],1)],1)],1)],1)]},proxy:true},{key:\"html\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code4.html)+\" \")]},proxy:true},{key:\"js\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code4.js)+\" \")]},proxy:true}])}),_c('KTCodePreview',{attrs:{\"title\":'Fullscreen'},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('p',[_vm._v(\" Due to limited space, full-screen dialogs may be more appropriate for mobile devices than dialogs used on devices with larger screens. \")]),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-dialog',{attrs:{\"fullscreen\":\"\",\"hide-overlay\":\"\",\"transition\":\"dialog-bottom-transition\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"primary\",\"dark\":\"\"}},on),[_vm._v(\"Open Dialog\")])]}}]),model:{value:(_vm.code6.dialog),callback:function ($$v) {_vm.$set(_vm.code6, \"dialog\", $$v)},expression:\"code6.dialog\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":function($event){_vm.code6.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1),_c('v-toolbar-title',[_vm._v(\"Settings\")]),_c('v-spacer'),_c('v-toolbar-items',[_c('v-btn',{attrs:{\"dark\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.code6.dialog = false}}},[_vm._v(\"Save\")])],1)],1),_c('v-list',{attrs:{\"three-line\":\"\",\"subheader\":\"\"}},[_c('v-subheader',[_vm._v(\"User Controls\")]),_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Content filtering\")]),_c('v-list-item-subtitle',[_vm._v(\"Set the content filtering level to restrict apps that can be downloaded\")])],1)],1),_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Password\")]),_c('v-list-item-subtitle',[_vm._v(\"Require password for purchase or use password to restrict purchase\")])],1)],1)],1),_c('v-divider'),_c('v-list',{attrs:{\"three-line\":\"\",\"subheader\":\"\"}},[_c('v-subheader',[_vm._v(\"General\")]),_c('v-list-item',[_c('v-list-item-action',[_c('v-checkbox',{model:{value:(_vm.code6.notifications),callback:function ($$v) {_vm.$set(_vm.code6, \"notifications\", $$v)},expression:\"code6.notifications\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Notifications\")]),_c('v-list-item-subtitle',[_vm._v(\"Notify me about updates to apps or games that I downloaded\")])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-checkbox',{model:{value:(_vm.code6.sound),callback:function ($$v) {_vm.$set(_vm.code6, \"sound\", $$v)},expression:\"code6.sound\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Sound\")]),_c('v-list-item-subtitle',[_vm._v(\"Auto-update apps at any time. Data charges may apply\")])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-checkbox',{model:{value:(_vm.code6.widgets),callback:function ($$v) {_vm.$set(_vm.code6, \"widgets\", $$v)},expression:\"code6.widgets\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Auto-add widgets\")]),_c('v-list-item-subtitle',[_vm._v(\"Automatically add home screen widgets\")])],1)],1)],1)],1)],1)],1)]},proxy:true},{key:\"html\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code6.html)+\" \")]},proxy:true},{key:\"js\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.code6.js)+\" \")]},proxy:true}])})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <b-alert\r\n      show\r\n      variant=\"light\"\r\n      class=\"alert alert-custom alert-white alert-shadow fade show gutter-b\"\r\n    >\r\n      <div class=\"alert-icon\">\r\n        <span class=\"svg-icon svg-icon-lg\">\r\n          <inline-svg src=\"media/svg/icons/Tools/Compass.svg\" />\r\n        </span>\r\n      </div>\r\n      <div class=\"alert-text\">\r\n        <b>Dialog</b> The <code>v-dialog</code> component inform users about a\r\n        specific task and may contain critical information, require decisions,\r\n        or involve multiple tasks. Use dialogs sparingly because they are\r\n        interruptive.\r\n        <a\r\n          class=\"font-weight-bold\"\r\n          href=\"https://vuetifyjs.com/en/components/alerts\"\r\n          target=\"_blank\"\r\n        >\r\n          See documentation.\r\n        </a>\r\n      </div>\r\n    </b-alert>\r\n\r\n    <div class=\"row\">\r\n      <div class=\"col-md-6\">\r\n        <KTCodePreview v-bind:title=\"'Without activator'\">\r\n          <template v-slot:preview>\r\n            <v-row justify=\"center\">\r\n              <v-btn color=\"primary\" dark @click.stop=\"code1.dialog = true\">\r\n                Open Dialog\r\n              </v-btn>\r\n\r\n              <v-dialog v-model=\"code1.dialog\" max-width=\"290\">\r\n                <v-card>\r\n                  <v-card-title class=\"headline\"\r\n                    >Use Google's location service?</v-card-title\r\n                  >\r\n\r\n                  <v-card-text>\r\n                    Let Google help apps determine location. This means sending\r\n                    anonymous location data to Google, even when no apps are\r\n                    running.\r\n                  </v-card-text>\r\n\r\n                  <v-card-actions>\r\n                    <v-spacer></v-spacer>\r\n\r\n                    <v-btn\r\n                      color=\"green darken-1\"\r\n                      text\r\n                      @click=\"code1.dialog = false\"\r\n                    >\r\n                      Disagree\r\n                    </v-btn>\r\n\r\n                    <v-btn\r\n                      color=\"green darken-1\"\r\n                      text\r\n                      @click=\"code1.dialog = false\"\r\n                    >\r\n                      Agree\r\n                    </v-btn>\r\n                  </v-card-actions>\r\n                </v-card>\r\n              </v-dialog>\r\n            </v-row>\r\n          </template>\r\n          <template v-slot:html>\r\n            {{ code1.html }}\r\n          </template>\r\n          <template v-slot:js>\r\n            {{ code1.js }}\r\n          </template>\r\n        </KTCodePreview>\r\n\r\n        <KTCodePreview v-bind:title=\"'Scrollable'\">\r\n          <template v-slot:preview>\r\n            <v-row justify=\"center\">\r\n              <v-dialog v-model=\"code3.dialog\" width=\"600px\">\r\n                <template v-slot:activator=\"{ on }\">\r\n                  <v-btn color=\"primary\" dark v-on=\"on\">Open Dialog</v-btn>\r\n                </template>\r\n                <v-card>\r\n                  <v-card-title>\r\n                    <span class=\"headline\">Use Google's location service?</span>\r\n                  </v-card-title>\r\n                  <v-card-text\r\n                    >Lorem ipsum dolor sit amet, semper quis, sapien id natoque\r\n                    elit. Nostra urna at, magna at neque sed sed ante imperdiet,\r\n                    dolor mauris cursus velit, velit non, sem nec. Volutpat sem\r\n                    ridiculus placerat leo, augue in, duis erat proin\r\n                    condimentum in a eget, sed fermentum sed vestibulum varius\r\n                    ac, vestibulum volutpat orci ut elit eget tortor. Ultrices\r\n                    nascetur nulla gravida ante arcu. Pharetra rhoncus morbi\r\n                    ipsum, nunc tempor debitis, ipsum pellentesque, vitae id\r\n                    quam ut mauris dui tempor, aptent non. Quisque turpis.\r\n                    Phasellus quis lectus luctus orci eget rhoncus. Amet donec\r\n                    vestibulum mattis commodo, nulla aliquet, nibh praesent,\r\n                    elementum nulla. Sit lacus pharetra tempus magna neque\r\n                    pellentesque, nulla vel erat. Justo ex quisque nulla\r\n                    accusamus venenatis, sed quis. Nibh phasellus gravida metus\r\n                    in, fusce aenean ut erat commodo eros. Ut turpis, dui\r\n                    integer, nonummy pede placeat nec in sit leo. Faucibus\r\n                    porttitor illo taciti odio, amet viverra scelerisque quis\r\n                    quis et tortor, curabitur morbi a. Enim tempor at, rutrum\r\n                    elit condimentum, amet rutrum vitae tempor torquent nunc.\r\n                    Praesent vestibulum integer maxime felis. Neque aenean quia\r\n                    vitae nostra, tempus elit enim id dui, at egestas pulvinar.\r\n                    Integer libero vestibulum, quis blandit scelerisque mattis\r\n                    fermentum nulla, tortor donec vestibulum dolor amet eget,\r\n                    elit nullam. Aliquam leo phasellus aliquam curabitur metus\r\n                    a, nulla justo mattis duis interdum vel, mollis vitae et id,\r\n                    vestibulum erat ridiculus sit pulvinar justo sed. Vehicula\r\n                    convallis, et nulla wisi, amet vestibulum risus, quam ac\r\n                    egestas. Et vitae, nulla gravida erat scelerisque nullam\r\n                    nunc pellentesque, a dictumst cras augue, purus imperdiet\r\n                    non. Varius montes cursus varius vel tortor, nec leo a qui,\r\n                    magni cras, velit vel consectetuer lobortis vel. Nibh erat\r\n                    et wisi felis leo porttitor, sapien nibh sapien pede mi, sed\r\n                    eget porttitor, repellendus arcu ac quis. Luctus vulputate\r\n                    aut est sem magna, placerat accumsan nunc vestibulum ipsum\r\n                    ac auctor, maecenas lorem in ut nec mauris tortor, doloribus\r\n                    varius sem tortor vestibulum mollis, eleifend tortor felis\r\n                    tempus lacus eu eu. Eleifend vel eu, nullam maecenas mauris\r\n                    nec nunc euismod, tortor porta ridiculus potenti, massa\r\n                    tristique nam magna, et wisi placerat et erat ante. Eget\r\n                    pede erat in facilisis, fermentum venenatis sodales. Ac\r\n                    tortor sociis et non animi tristique, rhoncus malesuada, ut\r\n                    arcu volutpat scelerisque sollicitudin, elit curabitur dui\r\n                    pede purus dolor, integer aenean risus taciti nulla eleifend\r\n                    accumsan. At pulvinar diam parturient, interdum mi velit\r\n                    aliquet et a. Arcu at ac placerat eget justo semper, purus\r\n                    sociis curabitur mi ipsum consequat ut, mollis vestibulum,\r\n                    est ante ornare lacus sem. Neque magna mauris, commodo\r\n                    quisque, praesent semper suscipit lobortis nam. Justo\r\n                    malesuada cursus ac nunc litora nunc. Tellus ac, in lobortis\r\n                    nunc, montes lectus purus fermentum. Ac sit wisi. Sodales\r\n                    aliquam, sed vestibulum nullam arcu sit risus arcu, id\r\n                    luctus vitae lorem nibh, integer nec nullam class cursus mi,\r\n                    purus arcu lectus. Vel ante suscipit volutpat potenti mattis\r\n                    sed, wisi eu placerat aliquam erat, lectus morbi lobortis at\r\n                    assumenda. Consequat neque purus ipsum voluptas odio, netus\r\n                    vestibulum ut nec, suspendisse pellentesque nec enim in.\r\n                    Wisi dictum sed semper a, ipsum erat tellus habitasse est,\r\n                    erat sem ornare, vitae quisque ultricies. Dui sed blandit.\r\n                    Tempor et faucibus justo sed luctus, nec vitae vitae. Nunc\r\n                    nibh pede, ipsum vestibulum aenean leo ante ultricies, nam\r\n                    cras quis sed penatibus amet. In mauris a. Integer metus\r\n                    mauris tortor, et rutrum vestibulum ultricies, ut phasellus\r\n                    in ullamcorper ut mollit, eu justo. Cursus pretium\r\n                    venenatis. Cras pellentesque vel sodales accumsan aenean.\r\n                    Feugiat metus sit nec in aliquet amet, porttitor pretium\r\n                    vulputate massa. Consequat ipsum luctus quisque adipiscing\r\n                    libero. Wisi sollicitudin. Eget vitae ac lobortis, lorem\r\n                    natoque vestibulum et, aliquet faucibus at morbi nibh, vel\r\n                    condimentum. Massa unde orci sed id sed, odio donec congue\r\n                    nec praesent amet. Hymenaeos velit lacus, quis vivamus\r\n                    libero tempus duis, eu nisi eu, ipsum at accumsan pede justo\r\n                    morbi donec, massa et libero sit risus neque tortor. Ut sed\r\n                    sed etiam hendrerit dapibus, quis metus suspendisse nibh.\r\n                    Fringilla tempor felis augue magna. Cum arcu a, id vitae.\r\n                    Pellentesque pharetra in cras sociis adipiscing est. Nibh\r\n                    nec mattis at maecenas, nisl orci aliquam nulla justo\r\n                    egestas venenatis, elementum duis vel porta eros, massa\r\n                    vitae, eligendi imperdiet amet. Nec neque luctus suscipit,\r\n                    justo sem praesent, ut nisl quisque, volutpat torquent wisi\r\n                    tellus aliquam reprehenderit, curabitur cras at quis massa\r\n                    porttitor mauris. Eros sed ultrices. Amet dignissim justo\r\n                    urna feugiat mauris litora, etiam accumsan, lobortis a orci\r\n                    suspendisse. Semper ac mauris, varius bibendum pretium, orci\r\n                    urna nunc ullamcorper auctor, saepe sem integer quam, at\r\n                    feugiat egestas duis. Urna ligula ante. Leo elementum\r\n                    nonummy. Sagittis mauris est in ipsum, nulla amet non justo,\r\n                    proin id potenti platea posuere sit ut, nunc sit erat\r\n                    bibendum. Nibh id auctor, ab nulla vivamus ultrices, posuere\r\n                    morbi nunc tellus gravida vivamus. Mauris nec, facilisi quam\r\n                    fermentum, ut mauris integer, orci tellus tempus diam ut in\r\n                    pellentesque. Wisi faucibus tempor et odio leo diam,\r\n                    eleifend quis integer curabitur sit scelerisque ac, mauris\r\n                    consequat luctus quam penatibus fringilla dis, vitae lacus\r\n                    in, est eu ac tempus. Consectetuer amet ipsum amet dui, sed\r\n                    blandit id sed. Tellus integer, dignissim id pede sodales\r\n                    quis, felis dolorem id mauris orci, orci tempus ut. Nullam\r\n                    hymenaeos. Curabitur in a, tortor ut praesent placerat\r\n                    tincidunt interdum, ac dignissim metus nonummy hendrerit\r\n                    wisi, etiam ut. Semper praesent integer fusce, tortor\r\n                    suspendisse, augue ligula orci ante asperiores ullamcorper.\r\n                    In sit per mi sed sed, mi vestibulum mus nam, morbi mauris\r\n                    neque vitae aliquam proin senectus. Ac amet arcu mollis ante\r\n                    congue elementum, inceptos eget optio quam pellentesque quis\r\n                    lobortis, sollicitudin sed vestibulum sollicitudin, lectus\r\n                    parturient nullam, leo orci ligula ultrices. At tincidunt\r\n                    enim, suspendisse est sit sem ac. Amet tellus molestie est\r\n                    purus magna augue, non etiam et in wisi id. Non commodo,\r\n                    metus lorem facilisi lobortis ac velit, montes neque sed\r\n                    risus consectetuer fringilla dolor. Quam justo et integer\r\n                    aliquam, cursus nulla enim orci, nam cursus adipiscing,\r\n                    integer torquent non, fringilla per maecenas. Libero ipsum\r\n                    sed tellus purus et. Duis molestie placerat erat donec ut.\r\n                    Dolor enim erat massa faucibus ultrices in, ante ultricies\r\n                    orci lacus, libero consectetuer mauris magna feugiat neque\r\n                    dapibus, donec pretium et. Aptent dui, aliquam et et amet\r\n                    nostra ligula. Augue curabitur duis dui volutpat, tempus sed\r\n                    ut pede donec. Interdum luctus, lectus nulla aenean elit, id\r\n                    sit magna, vulputate ultrices pellentesque vel id fermentum\r\n                    morbi. Tortor et. Adipiscing augue lorem cum non lacus,\r\n                    rutrum sodales laoreet duis tortor, modi placerat facilisis\r\n                    et malesuada eros ipsum, vehicula tempus. Ac vivamus amet\r\n                    non aliquam venenatis lectus, sociosqu adipiscing consequat\r\n                    nec arcu odio. Blandit orci nec nec, posuere in pretium,\r\n                    enim ut, consectetuer nullam urna, risus vel. Nullam odio\r\n                    vehicula massa sed, etiam sociis mauris, lacus ullamcorper,\r\n                    libero imperdiet non sodales placerat justo vehicula. Nec\r\n                    morbi imperdiet. Fermentum sem libero iaculis bibendum et\r\n                    eros, eget maecenas non nunc, ad pellentesque. Ut nec diam\r\n                    elementum interdum. Elementum vitae tellus lacus vitae,\r\n                    ipsum phasellus, corporis vehicula in ac sed massa vivamus,\r\n                    rutrum elit, ultricies metus volutpat. Semper wisi et,\r\n                    sollicitudin nunc vestibulum, cursus accumsan nunc pede\r\n                    tempus mi ipsum, ligula sed. Non condimentum ac dolor sit.\r\n                    Mollis eu aliquam, vel mattis mollis massa ut dolor ante,\r\n                    tempus lacinia arcu. Urna vestibulum lorem, nulla fermentum,\r\n                    iaculis ut congue ac vivamus. Nam libero orci, pulvinar\r\n                    nulla, enim pellentesque consectetuer leo, feugiat rhoncus\r\n                    rhoncus vel. Magna sociosqu donec, dictum cursus ullamcorper\r\n                    viverra. Ultricies quis orci lorem, suspendisse ut\r\n                    vestibulum integer, purus sed lorem pulvinar habitasse\r\n                    turpis. +</v-card-text\r\n                  >\r\n                  <v-card-actions>\r\n                    <v-spacer></v-spacer>\r\n                    <v-btn\r\n                      color=\"green darken-1\"\r\n                      text\r\n                      @click=\"code3.dialog = false\"\r\n                      >Disagree</v-btn\r\n                    >\r\n                    <v-btn\r\n                      color=\"green darken-1\"\r\n                      text\r\n                      @click=\"code3.dialog = false\"\r\n                      >Agree</v-btn\r\n                    >\r\n                  </v-card-actions>\r\n                </v-card>\r\n              </v-dialog>\r\n            </v-row>\r\n          </template>\r\n          <template v-slot:html>\r\n            {{ code3.html }}\r\n          </template>\r\n          <template v-slot:js>\r\n            {{ code3.js }}\r\n          </template>\r\n        </KTCodePreview>\r\n\r\n        <KTCodePreview v-bind:title=\"'Loader'\">\r\n          <template v-slot:preview>\r\n            <p>\r\n              The <code>v-dialog</code> component makes it easy to create a\r\n              customized loading experience for your application.\r\n            </p>\r\n            <div class=\"text-center\">\r\n              <v-btn\r\n                :disabled=\"code5Dialog\"\r\n                :loading=\"code5Dialog\"\r\n                class=\"white--text\"\r\n                color=\"purple darken-2\"\r\n                @click=\"code5Dialog = true\"\r\n              >\r\n                Start loading\r\n              </v-btn>\r\n              <v-dialog\r\n                v-model=\"code5Dialog\"\r\n                hide-overlay\r\n                persistent\r\n                width=\"300\"\r\n              >\r\n                <v-card color=\"primary\" dark>\r\n                  <v-card-text>\r\n                    Please stand by\r\n                    <v-progress-linear\r\n                      indeterminate\r\n                      color=\"white\"\r\n                      class=\"mb-0\"\r\n                    ></v-progress-linear>\r\n                  </v-card-text>\r\n                </v-card>\r\n              </v-dialog>\r\n            </div>\r\n          </template>\r\n          <template v-slot:html>\r\n            {{ code5.html }}\r\n          </template>\r\n          <template v-slot:js>\r\n            {{ code5.js }}\r\n          </template>\r\n        </KTCodePreview>\r\n\r\n        <KTCodePreview v-bind:title=\"'Nested dialogs'\">\r\n          <template v-slot:preview>\r\n            <p>Dialogs can be nested: you can open one dialog from another.</p>\r\n            <div>\r\n              <v-row justify=\"center\">\r\n                <v-btn\r\n                  color=\"primary\"\r\n                  class=\"ma-2\"\r\n                  dark\r\n                  @click=\"code7.dialog = true\"\r\n                >\r\n                  Open Dialog 1\r\n                </v-btn>\r\n                <v-btn\r\n                  color=\"primary\"\r\n                  class=\"ma-2\"\r\n                  dark\r\n                  @click=\"code7.dialog2 = true\"\r\n                >\r\n                  Open Dialog 2\r\n                </v-btn>\r\n                <v-btn\r\n                  color=\"primary\"\r\n                  class=\"ma-2\"\r\n                  dark\r\n                  @click=\"code7.dialog3 = true\"\r\n                >\r\n                  Open Dialog 3\r\n                </v-btn>\r\n                <v-menu bottom offset-y>\r\n                  <template v-slot:activator=\"{ on }\">\r\n                    <v-btn class=\"ma-2\" v-on=\"on\">A Menu</v-btn>\r\n                  </template>\r\n                  <v-list>\r\n                    <v-list-item\r\n                      v-for=\"(item, i) in code7.items\"\r\n                      :key=\"i\"\r\n                      @click=\"() => {}\"\r\n                    >\r\n                      <v-list-item-title>{{ item.title }}</v-list-item-title>\r\n                    </v-list-item>\r\n                  </v-list>\r\n                </v-menu>\r\n                <v-dialog\r\n                  v-model=\"code7.dialog\"\r\n                  fullscreen\r\n                  hide-overlay\r\n                  transition=\"dialog-bottom-transition\"\r\n                  scrollable\r\n                >\r\n                  <v-card tile>\r\n                    <v-toolbar flat dark color=\"primary\">\r\n                      <v-btn icon dark @click=\"code7.dialog = false\">\r\n                        <v-icon>mdi-close</v-icon>\r\n                      </v-btn>\r\n                      <v-toolbar-title>Settings</v-toolbar-title>\r\n                      <v-spacer></v-spacer>\r\n                      <v-toolbar-items>\r\n                        <v-btn dark text @click=\"code7.dialog = false\">\r\n                          Save\r\n                        </v-btn>\r\n                      </v-toolbar-items>\r\n                      <v-menu bottom right offset-y>\r\n                        <template v-slot:activator=\"{ on }\">\r\n                          <v-btn dark icon v-on=\"on\">\r\n                            <v-icon>mdi-dots-vertical</v-icon>\r\n                          </v-btn>\r\n                        </template>\r\n                        <v-list>\r\n                          <v-list-item\r\n                            v-for=\"(item, i) in code7.items\"\r\n                            :key=\"i\"\r\n                            @click=\"() => {}\"\r\n                          >\r\n                            <v-list-item-title>{{\r\n                              item.title\r\n                            }}</v-list-item-title>\r\n                          </v-list-item>\r\n                        </v-list>\r\n                      </v-menu>\r\n                    </v-toolbar>\r\n                    <v-card-text>\r\n                      <v-btn\r\n                        color=\"primary\"\r\n                        dark\r\n                        class=\"ma-2\"\r\n                        @click=\"code7.dialog2 = !code7.dialog2\"\r\n                      >\r\n                        Open Dialog 2\r\n                      </v-btn>\r\n                      <v-tooltip right>\r\n                        <template v-slot:activator=\"{ on }\">\r\n                          <v-btn class=\"ma-2\" v-on=\"on\"\r\n                            >Tool Tip Activator</v-btn\r\n                          >\r\n                        </template>\r\n                        Tool Tip\r\n                      </v-tooltip>\r\n                      <v-list three-line subheader>\r\n                        <v-subheader>User Controls</v-subheader>\r\n                        <v-list-item>\r\n                          <v-list-item-content>\r\n                            <v-list-item-title\r\n                              >Content filtering</v-list-item-title\r\n                            >\r\n                            <v-list-item-subtitle\r\n                              >Set the content filtering level to restrict apps\r\n                              that can be downloaded</v-list-item-subtitle\r\n                            >\r\n                          </v-list-item-content>\r\n                        </v-list-item>\r\n                        <v-list-item>\r\n                          <v-list-item-content>\r\n                            <v-list-item-title>Password</v-list-item-title>\r\n                            <v-list-item-subtitle\r\n                              >Require password for purchase or use password to\r\n                              restrict purchase</v-list-item-subtitle\r\n                            >\r\n                          </v-list-item-content>\r\n                        </v-list-item>\r\n                      </v-list>\r\n                      <v-divider></v-divider>\r\n                      <v-list three-line subheader>\r\n                        <v-subheader>General</v-subheader>\r\n                        <v-list-item>\r\n                          <v-list-item-action>\r\n                            <v-checkbox\r\n                              v-model=\"code7.notifications\"\r\n                            ></v-checkbox>\r\n                          </v-list-item-action>\r\n                          <v-list-item-content>\r\n                            <v-list-item-title>Notifications</v-list-item-title>\r\n                            <v-list-item-subtitle\r\n                              >Notify me about updates to apps or games that I\r\n                              downloaded</v-list-item-subtitle\r\n                            >\r\n                          </v-list-item-content>\r\n                        </v-list-item>\r\n                        <v-list-item>\r\n                          <v-list-item-action>\r\n                            <v-checkbox v-model=\"code7.sound\"></v-checkbox>\r\n                          </v-list-item-action>\r\n                          <v-list-item-content>\r\n                            <v-list-item-title>Sound</v-list-item-title>\r\n                            <v-list-item-subtitle\r\n                              >Auto-update apps at any time. Data charges may\r\n                              apply</v-list-item-subtitle\r\n                            >\r\n                          </v-list-item-content>\r\n                        </v-list-item>\r\n                        <v-list-item>\r\n                          <v-list-item-action>\r\n                            <v-checkbox v-model=\"code7.widgets\"></v-checkbox>\r\n                          </v-list-item-action>\r\n                          <v-list-item-content>\r\n                            <v-list-item-title\r\n                              >Auto-add widgets</v-list-item-title\r\n                            >\r\n                            <v-list-item-subtitle\r\n                              >Automatically add home screen\r\n                              widgets</v-list-item-subtitle\r\n                            >\r\n                          </v-list-item-content>\r\n                        </v-list-item>\r\n                      </v-list>\r\n                    </v-card-text>\r\n\r\n                    <div style=\"flex: 1 1 auto;\"></div>\r\n                  </v-card>\r\n                </v-dialog>\r\n\r\n                <v-dialog v-model=\"code7.dialog2\" max-width=\"500px\">\r\n                  <v-card>\r\n                    <v-card-title>\r\n                      Dialog 2\r\n                    </v-card-title>\r\n                    <v-card-text>\r\n                      <v-btn\r\n                        color=\"primary\"\r\n                        dark\r\n                        @click=\"code7.dialog3 = !code7.dialog3\"\r\n                      >\r\n                        Open Dialog 3\r\n                      </v-btn>\r\n                      <v-select\r\n                        :items=\"code7.select\"\r\n                        label=\"A Select List\"\r\n                        item-value=\"text\"\r\n                      ></v-select>\r\n                    </v-card-text>\r\n                    <v-card-actions>\r\n                      <v-btn\r\n                        color=\"primary\"\r\n                        text\r\n                        @click=\"code7.dialog2 = false\"\r\n                      >\r\n                        Close\r\n                      </v-btn>\r\n                    </v-card-actions>\r\n                  </v-card>\r\n                </v-dialog>\r\n                <v-dialog v-model=\"code7.dialog3\" max-width=\"500px\">\r\n                  <v-card>\r\n                    <v-card-title>\r\n                      <span>Dialog 3</span>\r\n                      <v-spacer></v-spacer>\r\n                      <v-menu bottom left>\r\n                        <template v-slot:activator=\"{ on }\">\r\n                          <v-btn icon v-on=\"on\">\r\n                            <v-icon>mdi-dots-vertical</v-icon>\r\n                          </v-btn>\r\n                        </template>\r\n                        <v-list>\r\n                          <v-list-item\r\n                            v-for=\"(item, i) in code7.items\"\r\n                            :key=\"i\"\r\n                            @click=\"() => {}\"\r\n                          >\r\n                            <v-list-item-title>{{\r\n                              item.title\r\n                            }}</v-list-item-title>\r\n                          </v-list-item>\r\n                        </v-list>\r\n                      </v-menu>\r\n                    </v-card-title>\r\n                    <v-card-actions>\r\n                      <v-btn\r\n                        color=\"primary\"\r\n                        text\r\n                        @click=\"code7.dialog3 = false\"\r\n                      >\r\n                        Close\r\n                      </v-btn>\r\n                    </v-card-actions>\r\n                  </v-card>\r\n                </v-dialog>\r\n              </v-row>\r\n            </div>\r\n          </template>\r\n          <template v-slot:html>\r\n            {{ code7.html }}\r\n          </template>\r\n          <template v-slot:js>\r\n            {{ code7.js }}\r\n          </template>\r\n        </KTCodePreview>\r\n      </div>\r\n\r\n      <div class=\"col-md-6\">\r\n        <KTCodePreview v-bind:title=\"'Scrollable'\">\r\n          <template v-slot:preview>\r\n            <p>Example of a dialog with scrollable content.</p>\r\n            <v-row justify=\"center\">\r\n              <v-dialog v-model=\"code2.dialog\" scrollable max-width=\"300px\">\r\n                <template v-slot:activator=\"{ on }\">\r\n                  <v-btn color=\"primary\" dark v-on=\"on\">Open Dialog</v-btn>\r\n                </template>\r\n                <v-card>\r\n                  <v-card-title>Select Country</v-card-title>\r\n                  <v-divider></v-divider>\r\n                  <v-card-text style=\"height: 300px;\">\r\n                    <v-radio-group v-model=\"code2.dialogm1\" column>\r\n                      <v-radio label=\"Bahamas, The\" value=\"bahamas\"></v-radio>\r\n                      <v-radio label=\"Bahrain\" value=\"bahrain\"></v-radio>\r\n                      <v-radio label=\"Bangladesh\" value=\"bangladesh\"></v-radio>\r\n                      <v-radio label=\"Barbados\" value=\"barbados\"></v-radio>\r\n                      <v-radio label=\"Belarus\" value=\"belarus\"></v-radio>\r\n                      <v-radio label=\"Belgium\" value=\"belgium\"></v-radio>\r\n                      <v-radio label=\"Belize\" value=\"belize\"></v-radio>\r\n                      <v-radio label=\"Benin\" value=\"benin\"></v-radio>\r\n                      <v-radio label=\"Bhutan\" value=\"bhutan\"></v-radio>\r\n                      <v-radio label=\"Bolivia\" value=\"bolivia\"></v-radio>\r\n                      <v-radio\r\n                        label=\"Bosnia and Herzegovina\"\r\n                        value=\"bosnia\"\r\n                      ></v-radio>\r\n                      <v-radio label=\"Botswana\" value=\"botswana\"></v-radio>\r\n                      <v-radio label=\"Brazil\" value=\"brazil\"></v-radio>\r\n                      <v-radio label=\"Brunei\" value=\"brunei\"></v-radio>\r\n                      <v-radio label=\"Bulgaria\" value=\"bulgaria\"></v-radio>\r\n                      <v-radio label=\"Burkina Faso\" value=\"burkina\"></v-radio>\r\n                      <v-radio label=\"Burma\" value=\"burma\"></v-radio>\r\n                      <v-radio label=\"Burundi\" value=\"burundi\"></v-radio>\r\n                    </v-radio-group>\r\n                  </v-card-text>\r\n                  <v-divider></v-divider>\r\n                  <v-card-actions>\r\n                    <v-btn\r\n                      color=\"blue darken-1\"\r\n                      text\r\n                      @click=\"code2.dialog = false\"\r\n                      >Close</v-btn\r\n                    >\r\n                    <v-btn\r\n                      color=\"blue darken-1\"\r\n                      text\r\n                      @click=\"code2.dialog = false\"\r\n                      >Save</v-btn\r\n                    >\r\n                  </v-card-actions>\r\n                </v-card>\r\n              </v-dialog>\r\n            </v-row>\r\n          </template>\r\n          <template v-slot:html>\r\n            {{ code2.html }}\r\n          </template>\r\n          <template v-slot:js>\r\n            {{ code2.js }}\r\n          </template>\r\n        </KTCodePreview>\r\n\r\n        <KTCodePreview v-bind:title=\"'Form'\">\r\n          <template v-slot:preview>\r\n            <p>Just a simple example of a form in a dialog.</p>\r\n            <v-row justify=\"center\">\r\n              <v-dialog v-model=\"code4.dialog\" persistent max-width=\"600px\">\r\n                <template v-slot:activator=\"{ on }\">\r\n                  <v-btn color=\"primary\" dark v-on=\"on\">Open Dialog</v-btn>\r\n                </template>\r\n                <v-card>\r\n                  <v-card-title>\r\n                    <span class=\"headline\">User Profile</span>\r\n                  </v-card-title>\r\n                  <v-card-text>\r\n                    <v-container>\r\n                      <v-row>\r\n                        <v-col cols=\"12\" sm=\"6\" md=\"4\">\r\n                          <v-text-field\r\n                            label=\"Legal first name*\"\r\n                            required\r\n                          ></v-text-field>\r\n                        </v-col>\r\n                        <v-col cols=\"12\" sm=\"6\" md=\"4\">\r\n                          <v-text-field\r\n                            label=\"Legal middle name\"\r\n                            hint=\"example of helper text only on focus\"\r\n                          ></v-text-field>\r\n                        </v-col>\r\n                        <v-col cols=\"12\" sm=\"6\" md=\"4\">\r\n                          <v-text-field\r\n                            label=\"Legal last name*\"\r\n                            hint=\"example of persistent helper text\"\r\n                            persistent-hint\r\n                            required\r\n                          ></v-text-field>\r\n                        </v-col>\r\n                        <v-col cols=\"12\">\r\n                          <v-text-field label=\"Email*\" required></v-text-field>\r\n                        </v-col>\r\n                        <v-col cols=\"12\">\r\n                          <v-text-field\r\n                            label=\"Password*\"\r\n                            type=\"password\"\r\n                            required\r\n                          ></v-text-field>\r\n                        </v-col>\r\n                        <v-col cols=\"12\" sm=\"6\">\r\n                          <v-select\r\n                            :items=\"['0-17', '18-29', '30-54', '54+']\"\r\n                            label=\"Age*\"\r\n                            required\r\n                          ></v-select>\r\n                        </v-col>\r\n                        <v-col cols=\"12\" sm=\"6\">\r\n                          <v-autocomplete\r\n                            :items=\"[\r\n                              'Skiing',\r\n                              'Ice hockey',\r\n                              'Soccer',\r\n                              'Basketball',\r\n                              'Hockey',\r\n                              'Reading',\r\n                              'Writing',\r\n                              'Coding',\r\n                              'Basejump'\r\n                            ]\"\r\n                            label=\"Interests\"\r\n                            multiple\r\n                          ></v-autocomplete>\r\n                        </v-col>\r\n                      </v-row>\r\n                    </v-container>\r\n                    <small>*indicates required field</small>\r\n                  </v-card-text>\r\n                  <v-card-actions>\r\n                    <v-spacer></v-spacer>\r\n                    <v-btn\r\n                      color=\"blue darken-1\"\r\n                      text\r\n                      @click=\"code4.dialog = false\"\r\n                      >Close</v-btn\r\n                    >\r\n                    <v-btn\r\n                      color=\"blue darken-1\"\r\n                      text\r\n                      @click=\"code4.dialog = false\"\r\n                      >Save</v-btn\r\n                    >\r\n                  </v-card-actions>\r\n                </v-card>\r\n              </v-dialog>\r\n            </v-row>\r\n          </template>\r\n          <template v-slot:html>\r\n            {{ code4.html }}\r\n          </template>\r\n          <template v-slot:js>\r\n            {{ code4.js }}\r\n          </template>\r\n        </KTCodePreview>\r\n\r\n        <KTCodePreview v-bind:title=\"'Fullscreen'\">\r\n          <template v-slot:preview>\r\n            <p>\r\n              Due to limited space, full-screen dialogs may be more appropriate\r\n              for mobile devices than dialogs used on devices with larger\r\n              screens.\r\n            </p>\r\n            <v-row justify=\"center\">\r\n              <v-dialog\r\n                v-model=\"code6.dialog\"\r\n                fullscreen\r\n                hide-overlay\r\n                transition=\"dialog-bottom-transition\"\r\n              >\r\n                <template v-slot:activator=\"{ on }\">\r\n                  <v-btn color=\"primary\" dark v-on=\"on\">Open Dialog</v-btn>\r\n                </template>\r\n                <v-card>\r\n                  <v-toolbar dark color=\"primary\">\r\n                    <v-btn icon dark @click=\"code6.dialog = false\">\r\n                      <v-icon>mdi-close</v-icon>\r\n                    </v-btn>\r\n                    <v-toolbar-title>Settings</v-toolbar-title>\r\n                    <v-spacer></v-spacer>\r\n                    <v-toolbar-items>\r\n                      <v-btn dark text @click=\"code6.dialog = false\"\r\n                        >Save</v-btn\r\n                      >\r\n                    </v-toolbar-items>\r\n                  </v-toolbar>\r\n                  <v-list three-line subheader>\r\n                    <v-subheader>User Controls</v-subheader>\r\n                    <v-list-item>\r\n                      <v-list-item-content>\r\n                        <v-list-item-title>Content filtering</v-list-item-title>\r\n                        <v-list-item-subtitle\r\n                          >Set the content filtering level to restrict apps that\r\n                          can be downloaded</v-list-item-subtitle\r\n                        >\r\n                      </v-list-item-content>\r\n                    </v-list-item>\r\n                    <v-list-item>\r\n                      <v-list-item-content>\r\n                        <v-list-item-title>Password</v-list-item-title>\r\n                        <v-list-item-subtitle\r\n                          >Require password for purchase or use password to\r\n                          restrict purchase</v-list-item-subtitle\r\n                        >\r\n                      </v-list-item-content>\r\n                    </v-list-item>\r\n                  </v-list>\r\n                  <v-divider></v-divider>\r\n                  <v-list three-line subheader>\r\n                    <v-subheader>General</v-subheader>\r\n                    <v-list-item>\r\n                      <v-list-item-action>\r\n                        <v-checkbox v-model=\"code6.notifications\"></v-checkbox>\r\n                      </v-list-item-action>\r\n                      <v-list-item-content>\r\n                        <v-list-item-title>Notifications</v-list-item-title>\r\n                        <v-list-item-subtitle\r\n                          >Notify me about updates to apps or games that I\r\n                          downloaded</v-list-item-subtitle\r\n                        >\r\n                      </v-list-item-content>\r\n                    </v-list-item>\r\n                    <v-list-item>\r\n                      <v-list-item-action>\r\n                        <v-checkbox v-model=\"code6.sound\"></v-checkbox>\r\n                      </v-list-item-action>\r\n                      <v-list-item-content>\r\n                        <v-list-item-title>Sound</v-list-item-title>\r\n                        <v-list-item-subtitle\r\n                          >Auto-update apps at any time. Data charges may\r\n                          apply</v-list-item-subtitle\r\n                        >\r\n                      </v-list-item-content>\r\n                    </v-list-item>\r\n                    <v-list-item>\r\n                      <v-list-item-action>\r\n                        <v-checkbox v-model=\"code6.widgets\"></v-checkbox>\r\n                      </v-list-item-action>\r\n                      <v-list-item-content>\r\n                        <v-list-item-title>Auto-add widgets</v-list-item-title>\r\n                        <v-list-item-subtitle\r\n                          >Automatically add home screen\r\n                          widgets</v-list-item-subtitle\r\n                        >\r\n                      </v-list-item-content>\r\n                    </v-list-item>\r\n                  </v-list>\r\n                </v-card>\r\n              </v-dialog>\r\n            </v-row>\r\n          </template>\r\n          <template v-slot:html>\r\n            {{ code6.html }}\r\n          </template>\r\n          <template v-slot:js>\r\n            {{ code6.js }}\r\n          </template>\r\n        </KTCodePreview>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport KTCodePreview from \"@/view/content/CodePreview.vue\";\r\nimport { SET_BREADCRUMB } from \"@/core/services/store/breadcrumbs.module\";\r\n\r\nexport default {\r\n  data() {\r\n    return {\r\n      code1: {\r\n        html: ` <v-row justify=\"center\">\r\n  <v-btn\r\n    color=\"primary\"\r\n    dark\r\n    @click.stop=\"dialog = true\"\r\n  >\r\n    Open Dialog\r\n  </v-btn>\r\n\r\n  <v-dialog\r\n    v-model=\"dialog\"\r\n    max-width=\"290\"\r\n  >\r\n    <v-card>\r\n      <v-card-title class=\"headline\">Use Google's location service?</v-card-title>\r\n\r\n      <v-card-text>\r\n        Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.\r\n      </v-card-text>\r\n\r\n      <v-card-actions>\r\n        <v-spacer></v-spacer>\r\n\r\n        <v-btn\r\n          color=\"green darken-1\"\r\n          text\r\n          @click=\"dialog = false\"\r\n        >\r\n          Disagree\r\n        </v-btn>\r\n\r\n        <v-btn\r\n          color=\"green darken-1\"\r\n          text\r\n          @click=\"dialog = false\"\r\n        >\r\n          Agree\r\n        </v-btn>\r\n      </v-card-actions>\r\n    </v-card>\r\n  </v-dialog>\r\n</v-row>`,\r\n        js: `export default {\r\n  data () {\r\n    return {\r\n      dialog: false,\r\n    }\r\n  },\r\n}`,\r\n        dialog: false\r\n      },\r\n\r\n      code2: {\r\n        html: `<v-row justify=\"center\">\r\n  <v-dialog v-model=\"dialog\" scrollable max-width=\"300px\">\r\n    <template v-slot:activator=\"{ on }\">\r\n      <v-btn color=\"primary\" dark v-on=\"on\">Open Dialog</v-btn>\r\n    </template>\r\n    <v-card>\r\n      <v-card-title>Select Country</v-card-title>\r\n      <v-divider></v-divider>\r\n      <v-card-text style=\"height: 300px;\">\r\n        <v-radio-group v-model=\"dialogm1\" column>\r\n          <v-radio label=\"Bahamas, The\" value=\"bahamas\"></v-radio>\r\n          <v-radio label=\"Bahrain\" value=\"bahrain\"></v-radio>\r\n          <v-radio label=\"Bangladesh\" value=\"bangladesh\"></v-radio>\r\n          <v-radio label=\"Barbados\" value=\"barbados\"></v-radio>\r\n          <v-radio label=\"Belarus\" value=\"belarus\"></v-radio>\r\n          <v-radio label=\"Belgium\" value=\"belgium\"></v-radio>\r\n          <v-radio label=\"Belize\" value=\"belize\"></v-radio>\r\n          <v-radio label=\"Benin\" value=\"benin\"></v-radio>\r\n          <v-radio label=\"Bhutan\" value=\"bhutan\"></v-radio>\r\n          <v-radio label=\"Bolivia\" value=\"bolivia\"></v-radio>\r\n          <v-radio label=\"Bosnia and Herzegovina\" value=\"bosnia\"></v-radio>\r\n          <v-radio label=\"Botswana\" value=\"botswana\"></v-radio>\r\n          <v-radio label=\"Brazil\" value=\"brazil\"></v-radio>\r\n          <v-radio label=\"Brunei\" value=\"brunei\"></v-radio>\r\n          <v-radio label=\"Bulgaria\" value=\"bulgaria\"></v-radio>\r\n          <v-radio label=\"Burkina Faso\" value=\"burkina\"></v-radio>\r\n          <v-radio label=\"Burma\" value=\"burma\"></v-radio>\r\n          <v-radio label=\"Burundi\" value=\"burundi\"></v-radio>\r\n        </v-radio-group>\r\n      </v-card-text>\r\n      <v-divider></v-divider>\r\n      <v-card-actions>\r\n        <v-btn color=\"blue darken-1\" text @click=\"dialog = false\">Close</v-btn>\r\n        <v-btn color=\"blue darken-1\" text @click=\"dialog = false\">Save</v-btn>\r\n      </v-card-actions>\r\n    </v-card>\r\n  </v-dialog>\r\n</v-row>`,\r\n        js: `export default {\r\n  data () {\r\n    return {\r\n      dialogm1: '',\r\n      dialog: false,\r\n    }\r\n  },\r\n}`,\r\n        dialogm1: \"\",\r\n        dialog: false\r\n      },\r\n\r\n      code3: {\r\n        html: `<v-row justify=\"center\">\r\n  <v-dialog v-model=\"dialog\" width=\"600px\">\r\n    <template v-slot:activator=\"{ on }\">\r\n      <v-btn color=\"primary\" dark v-on=\"on\">Open Dialog</v-btn>\r\n    </template>\r\n    <v-card>\r\n      <v-card-title>\r\n        <span class=\"headline\">Use Google's location service?</span>\r\n      </v-card-title>\r\n        <v-card-text\r\n          >Lorem ipsum dolor sit amet, semper quis, sapien id natoque\r\n          elit. Nostra urna at, magna at neque sed sed ante imperdiet,\r\n          dolor mauris cursus velit, velit non, sem nec. Volutpat sem\r\n          ridiculus placerat leo, augue in, duis erat proin\r\n          condimentum in a eget, sed fermentum sed vestibulum varius\r\n          ac, vestibulum volutpat orci ut elit eget tortor. Ultrices\r\n          nascetur nulla gravida ante arcu. Pharetra rhoncus morbi\r\n          ipsum, nunc tempor debitis, ipsum pellentesque, vitae id\r\n          quam ut mauris dui tempor, aptent non. Quisque turpis.\r\n          Phasellus quis lectus luctus orci eget rhoncus. Amet donec\r\n          vestibulum mattis commodo, nulla aliquet, nibh praesent,\r\n          elementum nulla. Sit lacus pharetra tempus magna neque\r\n          pellentesque, nulla vel erat. Justo ex quisque nulla\r\n          accusamus venenatis, sed quis. Nibh phasellus gravida metus\r\n          in, fusce aenean ut erat commodo eros. Ut turpis, dui\r\n          integer, nonummy pede placeat nec in sit leo. Faucibus\r\n          porttitor illo taciti odio, amet viverra scelerisque quis\r\n          quis et tortor, curabitur morbi a. Enim tempor at, rutrum\r\n          elit condimentum, amet rutrum vitae tempor torquent nunc.\r\n          Praesent vestibulum integer maxime felis. Neque aenean quia\r\n          vitae nostra, tempus elit enim id dui, at egestas pulvinar.\r\n          Integer libero vestibulum, quis blandit scelerisque mattis\r\n          fermentum nulla, tortor donec vestibulum dolor amet eget,\r\n          elit nullam. Aliquam leo phasellus aliquam curabitur metus\r\n          a, nulla justo mattis duis interdum vel, mollis vitae et id,\r\n          vestibulum erat ridiculus sit pulvinar justo sed. Vehicula\r\n          convallis, et nulla wisi, amet vestibulum risus, quam ac\r\n          egestas. Et vitae, nulla gravida erat scelerisque nullam\r\n          nunc pellentesque, a dictumst cras augue, purus imperdiet\r\n          non. Varius montes cursus varius vel tortor, nec leo a qui,\r\n          magni cras, velit vel consectetuer lobortis vel. Nibh erat\r\n          et wisi felis leo porttitor, sapien nibh sapien pede mi, sed\r\n          eget porttitor, repellendus arcu ac quis. Luctus vulputate\r\n          aut est sem magna, placerat accumsan nunc vestibulum ipsum\r\n          ac auctor, maecenas lorem in ut nec mauris tortor, doloribus\r\n          varius sem tortor vestibulum mollis, eleifend tortor felis\r\n          tempus lacus eu eu. Eleifend vel eu, nullam maecenas mauris\r\n          nec nunc euismod, tortor porta ridiculus potenti, massa\r\n          tristique nam magna, et wisi placerat et erat ante. Eget\r\n          pede erat in facilisis, fermentum venenatis sodales. Ac\r\n          tortor sociis et non animi tristique, rhoncus malesuada, ut\r\n          arcu volutpat scelerisque sollicitudin, elit curabitur dui\r\n          pede purus dolor, integer aenean risus taciti nulla eleifend\r\n          accumsan. At pulvinar diam parturient, interdum mi velit\r\n          aliquet et a. Arcu at ac placerat eget justo semper, purus\r\n          sociis curabitur mi ipsum consequat ut, mollis vestibulum,\r\n          est ante ornare lacus sem. Neque magna mauris, commodo\r\n          quisque, praesent semper suscipit lobortis nam. Justo\r\n          malesuada cursus ac nunc litora nunc. Tellus ac, in lobortis\r\n          nunc, montes lectus purus fermentum. Ac sit wisi. Sodales\r\n          aliquam, sed vestibulum nullam arcu sit risus arcu, id\r\n          luctus vitae lorem nibh, integer nec nullam class cursus mi,\r\n          purus arcu lectus. Vel ante suscipit volutpat potenti mattis\r\n          sed, wisi eu placerat aliquam erat, lectus morbi lobortis at\r\n          assumenda. Consequat neque purus ipsum voluptas odio, netus\r\n          vestibulum ut nec, suspendisse pellentesque nec enim in.\r\n          Wisi dictum sed semper a, ipsum erat tellus habitasse est,\r\n          erat sem ornare, vitae quisque ultricies. Dui sed blandit.\r\n          Tempor et faucibus justo sed luctus, nec vitae vitae. Nunc\r\n          nibh pede, ipsum vestibulum aenean leo ante ultricies, nam\r\n          cras quis sed penatibus amet. In mauris a. Integer metus\r\n          mauris tortor, et rutrum vestibulum ultricies, ut phasellus\r\n          in ullamcorper ut mollit, eu justo. Cursus pretium\r\n          venenatis. Cras pellentesque vel sodales accumsan aenean.\r\n          Feugiat metus sit nec in aliquet amet, porttitor pretium\r\n          vulputate massa. Consequat ipsum luctus quisque adipiscing\r\n          libero. Wisi sollicitudin. Eget vitae ac lobortis, lorem\r\n          natoque vestibulum et, aliquet faucibus at morbi nibh, vel\r\n          condimentum. Massa unde orci sed id sed, odio donec congue\r\n          nec praesent amet. Hymenaeos velit lacus, quis vivamus\r\n          libero tempus duis, eu nisi eu, ipsum at accumsan pede justo\r\n          morbi donec, massa et libero sit risus neque tortor. Ut sed\r\n          sed etiam hendrerit dapibus, quis metus suspendisse nibh.\r\n          Fringilla tempor felis augue magna. Cum arcu a, id vitae.\r\n          Pellentesque pharetra in cras sociis adipiscing est. Nibh\r\n          nec mattis at maecenas, nisl orci aliquam nulla justo\r\n          egestas venenatis, elementum duis vel porta eros, massa\r\n          vitae, eligendi imperdiet amet. Nec neque luctus suscipit,\r\n          justo sem praesent, ut nisl quisque, volutpat torquent wisi\r\n          tellus aliquam reprehenderit, curabitur cras at quis massa\r\n          porttitor mauris. Eros sed ultrices. Amet dignissim justo\r\n          urna feugiat mauris litora, etiam accumsan, lobortis a orci\r\n          suspendisse. Semper ac mauris, varius bibendum pretium, orci\r\n          urna nunc ullamcorper auctor, saepe sem integer quam, at\r\n          feugiat egestas duis. Urna ligula ante. Leo elementum\r\n          nonummy. Sagittis mauris est in ipsum, nulla amet non justo,\r\n          proin id potenti platea posuere sit ut, nunc sit erat\r\n          bibendum. Nibh id auctor, ab nulla vivamus ultrices, posuere\r\n          morbi nunc tellus gravida vivamus. Mauris nec, facilisi quam\r\n          fermentum, ut mauris integer, orci tellus tempus diam ut in\r\n          pellentesque. Wisi faucibus tempor et odio leo diam,\r\n          eleifend quis integer curabitur sit scelerisque ac, mauris\r\n          consequat luctus quam penatibus fringilla dis, vitae lacus\r\n          in, est eu ac tempus. Consectetuer amet ipsum amet dui, sed\r\n          blandit id sed. Tellus integer, dignissim id pede sodales\r\n          quis, felis dolorem id mauris orci, orci tempus ut. Nullam\r\n          hymenaeos. Curabitur in a, tortor ut praesent placerat\r\n          tincidunt interdum, ac dignissim metus nonummy hendrerit\r\n          wisi, etiam ut. Semper praesent integer fusce, tortor\r\n          suspendisse, augue ligula orci ante asperiores ullamcorper.\r\n          In sit per mi sed sed, mi vestibulum mus nam, morbi mauris\r\n          neque vitae aliquam proin senectus. Ac amet arcu mollis ante\r\n          congue elementum, inceptos eget optio quam pellentesque quis\r\n          lobortis, sollicitudin sed vestibulum sollicitudin, lectus\r\n          parturient nullam, leo orci ligula ultrices. At tincidunt\r\n          enim, suspendisse est sit sem ac. Amet tellus molestie est\r\n          purus magna augue, non etiam et in wisi id. Non commodo,\r\n          metus lorem facilisi lobortis ac velit, montes neque sed\r\n          risus consectetuer fringilla dolor. Quam justo et integer\r\n          aliquam, cursus nulla enim orci, nam cursus adipiscing,\r\n          integer torquent non, fringilla per maecenas. Libero ipsum\r\n          sed tellus purus et. Duis molestie placerat erat donec ut.\r\n          Dolor enim erat massa faucibus ultrices in, ante ultricies\r\n          orci lacus, libero consectetuer mauris magna feugiat neque\r\n          dapibus, donec pretium et. Aptent dui, aliquam et et amet\r\n          nostra ligula. Augue curabitur duis dui volutpat, tempus sed\r\n          ut pede donec. Interdum luctus, lectus nulla aenean elit, id\r\n          sit magna, vulputate ultrices pellentesque vel id fermentum\r\n          morbi. Tortor et. Adipiscing augue lorem cum non lacus,\r\n          rutrum sodales laoreet duis tortor, modi placerat facilisis\r\n          et malesuada eros ipsum, vehicula tempus. Ac vivamus amet\r\n          non aliquam venenatis lectus, sociosqu adipiscing consequat\r\n          nec arcu odio. Blandit orci nec nec, posuere in pretium,\r\n          enim ut, consectetuer nullam urna, risus vel. Nullam odio\r\n          vehicula massa sed, etiam sociis mauris, lacus ullamcorper,\r\n          libero imperdiet non sodales placerat justo vehicula. Nec\r\n          morbi imperdiet. Fermentum sem libero iaculis bibendum et\r\n          eros, eget maecenas non nunc, ad pellentesque. Ut nec diam\r\n          elementum interdum. Elementum vitae tellus lacus vitae,\r\n          ipsum phasellus, corporis vehicula in ac sed massa vivamus,\r\n          rutrum elit, ultricies metus volutpat. Semper wisi et,\r\n          sollicitudin nunc vestibulum, cursus accumsan nunc pede\r\n          tempus mi ipsum, ligula sed. Non condimentum ac dolor sit.\r\n          Mollis eu aliquam, vel mattis mollis massa ut dolor ante,\r\n          tempus lacinia arcu. Urna vestibulum lorem, nulla fermentum,\r\n          iaculis ut congue ac vivamus. Nam libero orci, pulvinar\r\n          nulla, enim pellentesque consectetuer leo, feugiat rhoncus\r\n          rhoncus vel. Magna sociosqu donec, dictum cursus ullamcorper\r\n          viverra. Ultricies quis orci lorem, suspendisse ut\r\n          vestibulum integer, purus sed lorem pulvinar habitasse\r\n          turpis. +</v-card-text\r\n        >\r\n      <v-card-actions>\r\n        <v-spacer></v-spacer>\r\n        <v-btn color=\"green darken-1\" text @click=\"dialog = false\">Disagree</v-btn>\r\n        <v-btn color=\"green darken-1\" text @click=\"dialog = false\">Agree</v-btn>\r\n      </v-card-actions>\r\n    </v-card>\r\n  </v-dialog>\r\n</v-row>`,\r\n        js: `export default {\r\n  data () {\r\n    return {\r\n      dialog: false,\r\n    }\r\n  },\r\n}`,\r\n        dialog: false\r\n      },\r\n\r\n      code4: {\r\n        html: `<v-row justify=\"center\">\r\n  <v-dialog v-model=\"dialog\" persistent max-width=\"600px\">\r\n    <template v-slot:activator=\"{ on }\">\r\n      <v-btn color=\"primary\" dark v-on=\"on\">Open Dialog</v-btn>\r\n    </template>\r\n    <v-card>\r\n      <v-card-title>\r\n        <span class=\"headline\">User Profile</span>\r\n      </v-card-title>\r\n      <v-card-text>\r\n        <v-container>\r\n          <v-row>\r\n            <v-col cols=\"12\" sm=\"6\" md=\"4\">\r\n              <v-text-field label=\"Legal first name*\" required></v-text-field>\r\n            </v-col>\r\n            <v-col cols=\"12\" sm=\"6\" md=\"4\">\r\n              <v-text-field label=\"Legal middle name\" hint=\"example of helper text only on focus\"></v-text-field>\r\n            </v-col>\r\n            <v-col cols=\"12\" sm=\"6\" md=\"4\">\r\n              <v-text-field\r\n                label=\"Legal last name*\"\r\n                hint=\"example of persistent helper text\"\r\n                persistent-hint\r\n                required\r\n              ></v-text-field>\r\n            </v-col>\r\n            <v-col cols=\"12\">\r\n              <v-text-field label=\"Email*\" required></v-text-field>\r\n            </v-col>\r\n            <v-col cols=\"12\">\r\n              <v-text-field label=\"Password*\" type=\"password\" required></v-text-field>\r\n            </v-col>\r\n            <v-col cols=\"12\" sm=\"6\">\r\n              <v-select\r\n                :items=\"['0-17', '18-29', '30-54', '54+']\"\r\n                label=\"Age*\"\r\n                required\r\n              ></v-select>\r\n            </v-col>\r\n            <v-col cols=\"12\" sm=\"6\">\r\n              <v-autocomplete\r\n                :items=\"['Skiing', 'Ice hockey', 'Soccer', 'Basketball', 'Hockey', 'Reading', 'Writing', 'Coding', 'Basejump']\"\r\n                label=\"Interests\"\r\n                multiple\r\n              ></v-autocomplete>\r\n            </v-col>\r\n          </v-row>\r\n        </v-container>\r\n        <small>*indicates required field</small>\r\n      </v-card-text>\r\n      <v-card-actions>\r\n        <v-spacer></v-spacer>\r\n        <v-btn color=\"blue darken-1\" text @click=\"dialog = false\">Close</v-btn>\r\n        <v-btn color=\"blue darken-1\" text @click=\"dialog = false\">Save</v-btn>\r\n      </v-card-actions>\r\n    </v-card>\r\n  </v-dialog>\r\n</v-row>`,\r\n        js: `export default {\r\n  data: () => ({\r\n    dialog: false,\r\n  }),\r\n}`,\r\n        dialog: false\r\n      },\r\n\r\n      code5: {\r\n        html: `<div class=\"text-center\">\r\n  <v-btn\r\n    :disabled=\"dialog\"\r\n    :loading=\"dialog\"\r\n    class=\"white--text\"\r\n    color=\"purple darken-2\"\r\n    @click=\"dialog = true\"\r\n  >\r\n    Start loading\r\n  </v-btn>\r\n  <v-dialog\r\n    v-model=\"dialog\"\r\n    hide-overlay\r\n    persistent\r\n    width=\"300\"\r\n  >\r\n    <v-card\r\n      color=\"primary\"\r\n      dark\r\n    >\r\n      <v-card-text>\r\n        Please stand by\r\n        <v-progress-linear\r\n          indeterminate\r\n          color=\"white\"\r\n          class=\"mb-0\"\r\n        ></v-progress-linear>\r\n      </v-card-text>\r\n    </v-card>\r\n  </v-dialog>\r\n</div>`,\r\n        js: `export default {\r\n  data () {\r\n    return {\r\n      dialog: false,\r\n    }\r\n  },\r\n\r\n  watch: {\r\n    dialog (val) {\r\n      if (!val) return\r\n\r\n      setTimeout(() => (this.dialog = false), 4000)\r\n    },\r\n  },\r\n}`\r\n      },\r\n      code5Dialog: false,\r\n\r\n      code6: {\r\n        html: `<v-row justify=\"center\">\r\n  <v-dialog v-model=\"dialog\" fullscreen hide-overlay transition=\"dialog-bottom-transition\">\r\n    <template v-slot:activator=\"{ on }\">\r\n      <v-btn color=\"primary\" dark v-on=\"on\">Open Dialog</v-btn>\r\n    </template>\r\n    <v-card>\r\n      <v-toolbar dark color=\"primary\">\r\n        <v-btn icon dark @click=\"dialog = false\">\r\n          <v-icon>mdi-close</v-icon>\r\n        </v-btn>\r\n        <v-toolbar-title>Settings</v-toolbar-title>\r\n        <v-spacer></v-spacer>\r\n        <v-toolbar-items>\r\n          <v-btn dark text @click=\"dialog = false\">Save</v-btn>\r\n        </v-toolbar-items>\r\n      </v-toolbar>\r\n      <v-list three-line subheader>\r\n        <v-subheader>User Controls</v-subheader>\r\n        <v-list-item>\r\n          <v-list-item-content>\r\n            <v-list-item-title>Content filtering</v-list-item-title>\r\n            <v-list-item-subtitle>Set the content filtering level to restrict apps that can be downloaded</v-list-item-subtitle>\r\n          </v-list-item-content>\r\n        </v-list-item>\r\n        <v-list-item>\r\n          <v-list-item-content>\r\n            <v-list-item-title>Password</v-list-item-title>\r\n            <v-list-item-subtitle>Require password for purchase or use password to restrict purchase</v-list-item-subtitle>\r\n          </v-list-item-content>\r\n        </v-list-item>\r\n      </v-list>\r\n      <v-divider></v-divider>\r\n      <v-list three-line subheader>\r\n        <v-subheader>General</v-subheader>\r\n        <v-list-item>\r\n          <v-list-item-action>\r\n            <v-checkbox v-model=\"notifications\"></v-checkbox>\r\n          </v-list-item-action>\r\n          <v-list-item-content>\r\n            <v-list-item-title>Notifications</v-list-item-title>\r\n            <v-list-item-subtitle>Notify me about updates to apps or games that I downloaded</v-list-item-subtitle>\r\n          </v-list-item-content>\r\n        </v-list-item>\r\n        <v-list-item>\r\n          <v-list-item-action>\r\n            <v-checkbox v-model=\"sound\"></v-checkbox>\r\n          </v-list-item-action>\r\n          <v-list-item-content>\r\n            <v-list-item-title>Sound</v-list-item-title>\r\n            <v-list-item-subtitle>Auto-update apps at any time. Data charges may apply</v-list-item-subtitle>\r\n          </v-list-item-content>\r\n        </v-list-item>\r\n        <v-list-item>\r\n          <v-list-item-action>\r\n            <v-checkbox v-model=\"widgets\"></v-checkbox>\r\n          </v-list-item-action>\r\n          <v-list-item-content>\r\n            <v-list-item-title>Auto-add widgets</v-list-item-title>\r\n            <v-list-item-subtitle>Automatically add home screen widgets</v-list-item-subtitle>\r\n          </v-list-item-content>\r\n        </v-list-item>\r\n      </v-list>\r\n    </v-card>\r\n  </v-dialog>\r\n</v-row>`,\r\n        js: `export default {\r\n  data () {\r\n    return {\r\n      dialog: false,\r\n      notifications: false,\r\n      sound: true,\r\n      widgets: false,\r\n    }\r\n  },\r\n}`,\r\n        dialog: false,\r\n        notifications: false,\r\n        sound: true,\r\n        widgets: false\r\n      },\r\n\r\n      code7: {\r\n        html: `<div>\r\n  <v-row\r\n    justify=\"center\"\r\n  >\r\n    <v-btn\r\n      color=\"primary\"\r\n      class=\"ma-2\"\r\n      dark\r\n      @click=\"dialog = true\"\r\n    >\r\n      Open Dialog 1\r\n    </v-btn>\r\n    <v-btn\r\n      color=\"primary\"\r\n      class=\"ma-2\"\r\n      dark\r\n      @click=\"dialog2 = true\"\r\n    >\r\n      Open Dialog 2\r\n    </v-btn>\r\n    <v-btn\r\n      color=\"primary\"\r\n      class=\"ma-2\"\r\n      dark\r\n      @click=\"dialog3 = true\"\r\n    >\r\n      Open Dialog 3\r\n    </v-btn>\r\n    <v-menu\r\n      bottom\r\n      offset-y\r\n    >\r\n      <template v-slot:activator=\"{ on }\">\r\n        <v-btn\r\n          class=\"ma-2\"\r\n          v-on=\"on\"\r\n        >A Menu</v-btn>\r\n      </template>\r\n      <v-list>\r\n        <v-list-item\r\n          v-for=\"(item, i) in items\"\r\n          :key=\"i\"\r\n          @click=\"() => {}\"\r\n        >\r\n          <v-list-item-title>{{ item.title }}</v-list-item-title>\r\n        </v-list-item>\r\n      </v-list>\r\n    </v-menu>\r\n    <v-dialog\r\n      v-model=\"dialog\"\r\n      fullscreen\r\n      hide-overlay\r\n      transition=\"dialog-bottom-transition\"\r\n      scrollable\r\n    >\r\n      <v-card tile>\r\n        <v-toolbar\r\n          flat\r\n          dark\r\n          color=\"primary\"\r\n        >\r\n          <v-btn\r\n            icon\r\n            dark\r\n            @click=\"dialog = false\"\r\n          >\r\n            <v-icon>mdi-close</v-icon>\r\n          </v-btn>\r\n          <v-toolbar-title>Settings</v-toolbar-title>\r\n          <v-spacer></v-spacer>\r\n          <v-toolbar-items>\r\n            <v-btn\r\n              dark\r\n              text\r\n              @click=\"dialog = false\"\r\n            >\r\n              Save\r\n            </v-btn>\r\n          </v-toolbar-items>\r\n          <v-menu\r\n            bottom\r\n            right\r\n            offset-y\r\n          >\r\n            <template v-slot:activator=\"{ on }\">\r\n              <v-btn\r\n                dark\r\n                icon\r\n                v-on=\"on\"\r\n              >\r\n                <v-icon>mdi-dots-vertical</v-icon>\r\n              </v-btn>\r\n            </template>\r\n            <v-list>\r\n              <v-list-item\r\n                v-for=\"(item, i) in items\"\r\n                :key=\"i\"\r\n                @click=\"() => {}\"\r\n              >\r\n                <v-list-item-title>{{ item.title }}</v-list-item-title>\r\n              </v-list-item>\r\n            </v-list>\r\n          </v-menu>\r\n        </v-toolbar>\r\n        <v-card-text>\r\n          <v-btn\r\n            color=\"primary\"\r\n            dark\r\n            class=\"ma-2\"\r\n            @click=\"dialog2 = !dialog2\"\r\n          >\r\n            Open Dialog 2\r\n          </v-btn>\r\n          <v-tooltip right>\r\n            <template v-slot:activator=\"{ on }\">\r\n              <v-btn\r\n                class=\"ma-2\"\r\n                v-on=\"on\"\r\n              >Tool Tip Activator</v-btn>\r\n            </template>\r\n            Tool Tip\r\n          </v-tooltip>\r\n          <v-list\r\n            three-line\r\n            subheader\r\n          >\r\n            <v-subheader>User Controls</v-subheader>\r\n            <v-list-item>\r\n              <v-list-item-content>\r\n                <v-list-item-title>Content filtering</v-list-item-title>\r\n                <v-list-item-subtitle>Set the content filtering level to restrict apps that can be downloaded</v-list-item-subtitle>\r\n              </v-list-item-content>\r\n            </v-list-item>\r\n            <v-list-item>\r\n              <v-list-item-content>\r\n                <v-list-item-title>Password</v-list-item-title>\r\n                <v-list-item-subtitle>Require password for purchase or use password to restrict purchase</v-list-item-subtitle>\r\n              </v-list-item-content>\r\n            </v-list-item>\r\n          </v-list>\r\n          <v-divider></v-divider>\r\n          <v-list\r\n            three-line\r\n            subheader\r\n          >\r\n            <v-subheader>General</v-subheader>\r\n            <v-list-item>\r\n              <v-list-item-action>\r\n                <v-checkbox v-model=\"notifications\"></v-checkbox>\r\n              </v-list-item-action>\r\n              <v-list-item-content>\r\n                <v-list-item-title>Notifications</v-list-item-title>\r\n                <v-list-item-subtitle>Notify me about updates to apps or games that I downloaded</v-list-item-subtitle>\r\n              </v-list-item-content>\r\n            </v-list-item>\r\n            <v-list-item>\r\n              <v-list-item-action>\r\n                <v-checkbox v-model=\"sound\"></v-checkbox>\r\n              </v-list-item-action>\r\n              <v-list-item-content>\r\n                <v-list-item-title>Sound</v-list-item-title>\r\n                <v-list-item-subtitle>Auto-update apps at any time. Data charges may apply</v-list-item-subtitle>\r\n              </v-list-item-content>\r\n            </v-list-item>\r\n            <v-list-item>\r\n              <v-list-item-action>\r\n                <v-checkbox v-model=\"widgets\"></v-checkbox>\r\n              </v-list-item-action>\r\n              <v-list-item-content>\r\n                <v-list-item-title>Auto-add widgets</v-list-item-title>\r\n                <v-list-item-subtitle>Automatically add home screen widgets</v-list-item-subtitle>\r\n              </v-list-item-content>\r\n            </v-list-item>\r\n          </v-list>\r\n        </v-card-text>\r\n\r\n        <div style=\"flex: 1 1 auto;\"></div>\r\n      </v-card>\r\n    </v-dialog>\r\n\r\n    <v-dialog\r\n      v-model=\"dialog2\"\r\n      max-width=\"500px\"\r\n    >\r\n      <v-card>\r\n        <v-card-title>\r\n          Dialog 2\r\n        </v-card-title>\r\n        <v-card-text>\r\n          <v-btn\r\n            color=\"primary\"\r\n            dark\r\n            @click=\"dialog3 = !dialog3\"\r\n          >\r\n            Open Dialog 3\r\n          </v-btn>\r\n          <v-select\r\n            :items=\"select\"\r\n            label=\"A Select List\"\r\n            item-value=\"text\"\r\n          ></v-select>\r\n        </v-card-text>\r\n        <v-card-actions>\r\n          <v-btn\r\n            color=\"primary\"\r\n            text\r\n            @click=\"dialog2 = false\"\r\n          >\r\n            Close\r\n          </v-btn>\r\n        </v-card-actions>\r\n      </v-card>\r\n    </v-dialog>\r\n    <v-dialog\r\n      v-model=\"dialog3\"\r\n      max-width=\"500px\"\r\n    >\r\n      <v-card>\r\n        <v-card-title>\r\n          <span>Dialog 3</span>\r\n          <v-spacer></v-spacer>\r\n          <v-menu\r\n            bottom\r\n            left\r\n          >\r\n            <template v-slot:activator=\"{ on }\">\r\n              <v-btn\r\n                icon\r\n                v-on=\"on\"\r\n              >\r\n                <v-icon>mdi-dots-vertical</v-icon>\r\n              </v-btn>\r\n            </template>\r\n            <v-list>\r\n              <v-list-item\r\n                v-for=\"(item, i) in items\"\r\n                :key=\"i\"\r\n                @click=\"() => {}\"\r\n              >\r\n                <v-list-item-title>{{ item.title }}</v-list-item-title>\r\n              </v-list-item>\r\n            </v-list>\r\n          </v-menu>\r\n        </v-card-title>\r\n        <v-card-actions>\r\n          <v-btn\r\n            color=\"primary\"\r\n            text\r\n            @click=\"dialog3 = false\"\r\n          >\r\n            Close\r\n          </v-btn>\r\n        </v-card-actions>\r\n      </v-card>\r\n    </v-dialog>\r\n  </v-row>\r\n</div>`,\r\n        js: `export default {\r\n  data () {\r\n    return {\r\n      dialog: false,\r\n      dialog2: false,\r\n      dialog3: false,\r\n      notifications: false,\r\n      sound: true,\r\n      widgets: false,\r\n      items: [\r\n        {\r\n          title: 'Click Me',\r\n        },\r\n        {\r\n          title: 'Click Me',\r\n        },\r\n        {\r\n          title: 'Click Me',\r\n        },\r\n        {\r\n          title: 'Click Me 2',\r\n        },\r\n      ],\r\n      select: [\r\n        { text: 'State 1' },\r\n        { text: 'State 2' },\r\n        { text: 'State 3' },\r\n        { text: 'State 4' },\r\n        { text: 'State 5' },\r\n        { text: 'State 6' },\r\n        { text: 'State 7' },\r\n      ],\r\n    }\r\n  },\r\n}`,\r\n        dialog: false,\r\n        dialog2: false,\r\n        dialog3: false,\r\n        notifications: false,\r\n        sound: true,\r\n        widgets: false,\r\n        items: [\r\n          {\r\n            title: \"Click Me\"\r\n          },\r\n          {\r\n            title: \"Click Me\"\r\n          },\r\n          {\r\n            title: \"Click Me\"\r\n          },\r\n          {\r\n            title: \"Click Me 2\"\r\n          }\r\n        ],\r\n        select: [\r\n          { text: \"State 1\" },\r\n          { text: \"State 2\" },\r\n          { text: \"State 3\" },\r\n          { text: \"State 4\" },\r\n          { text: \"State 5\" },\r\n          { text: \"State 6\" },\r\n          { text: \"State 7\" }\r\n        ]\r\n      }\r\n    };\r\n  },\r\n  components: {\r\n    KTCodePreview\r\n  },\r\n  mounted() {\r\n    this.$store.dispatch(SET_BREADCRUMB, [\r\n      { title: \"Vuetify\", route: \"alerts\" },\r\n      { title: \"Dialog\" }\r\n    ]);\r\n  },\r\n\r\n  watch: {\r\n    code5Dialog(val) {\r\n      if (!val) return;\r\n\r\n      setTimeout(() => (this.code5Dialog = false), 4000);\r\n    }\r\n  }\r\n};\r\n</script>\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!./Dialog.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!./Dialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=689bf1b8\"\nimport script from \"./Dialog.vue?vue&type=script&lang=js\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","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, getSlot } 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), getSlot(this))\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","// 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'\nimport { getSlot } from '../../util/helpers'\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<typeof baseMixins> {\n  $el: HTMLElement\n}\n\nexport default baseMixins.extend<options>().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<string>,\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<any>,\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      }, getSlot(this))\n    },\n    genLoader (): VNode {\n      return this.$createElement('span', {\n        class: 'v-btn__loader',\n      }, getSlot(this, '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 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<typeof deepEqual>,\n  },\n})\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType<typeof VListGroup>\n\ninterface options extends InstanceType<typeof VSheet> {\n  isInMenu: boolean\n  isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend<options>().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      on: this.listeners$,\n    }\n\n    return h(this.tag, this.setBackgroundColor(this.color, data), getSlot(this))\n  },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = toString(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = that.length;\n    var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n    var search = toString(searchString);\n    return slice(that, end - search.length, end) === search;\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","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n  VCard,\n  VCardActions,\n  VCardSubtitle,\n  VCardText,\n  VCardTitle,\n}\n\nexport default {\n  $_vuetify_subcomponents: {\n    VCard,\n    VCardActions,\n    VCardSubtitle,\n    VCardText,\n    VCardTitle,\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<Vue & Toggleable>().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","import './VSimpleCheckbox.sass'\n\nimport Ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n  name: 'v-simple-checkbox',\n\n  functional: true,\n\n  directives: {\n    Ripple,\n  },\n\n  props: {\n    ...Colorable.options.props,\n    ...Themeable.options.props,\n    disabled: Boolean,\n    ripple: {\n      type: Boolean,\n      default: true,\n    },\n    value: Boolean,\n    indeterminate: Boolean,\n    indeterminateIcon: {\n      type: String,\n      default: '$checkboxIndeterminate',\n    },\n    onIcon: {\n      type: String,\n      default: '$checkboxOn',\n    },\n    offIcon: {\n      type: String,\n      default: '$checkboxOff',\n    },\n  },\n\n  render (h, { props, data, listeners }): VNode {\n    const children = []\n    let icon = props.offIcon\n    if (props.indeterminate) icon = props.indeterminateIcon\n    else if (props.value) icon = props.onIcon\n\n    children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n      props: {\n        disabled: props.disabled,\n        dark: props.dark,\n        light: props.light,\n      },\n    }), icon))\n\n    if (props.ripple && !props.disabled) {\n      const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n        staticClass: 'v-input--selection-controls__ripple',\n        directives: [{\n          def: Ripple,\n          name: 'ripple',\n          value: { center: true },\n        }] as VNodeDirective[],\n      }))\n\n      children.push(ripple)\n    }\n\n    return h('div',\n      mergeData(data, {\n        class: {\n          'v-simple-checkbox': true,\n          'v-simple-checkbox--disabled': props.disabled,\n        },\n        on: {\n          click: (e: MouseEvent) => {\n            e.stopPropagation()\n\n            if (data.on && data.on.input && !props.disabled) {\n              wrapInArray(data.on.input).forEach(f => f(!props.value))\n            }\n          },\n        },\n      }), [\n        h('div', { staticClass: 'v-input--selection-controls__input' }, children),\n      ])\n  },\n})\n","import 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<string, boolean> {\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","import { attachedRoot } from '../../util/dom'\nimport { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n  handler: (e: Event) => void\n  closeConditional?: (e: Event) => boolean\n  include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n  value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n  return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n  // The include element callbacks below can be expensive\n  // so we should avoid calling them when we're not active.\n  // Explicitly check for false to allow fallback compatibility\n  // with non-toggleable components\n  if (!e || checkIsActive(e, binding) === false) return false\n\n  // If we're clicking inside the shadowroot, then the app root doesn't get the same\n  // level of introspection as to _what_ we're clicking. We want to check to see if\n  // our target is the shadowroot parent container, and if it is, ignore.\n  const root = attachedRoot(el)\n  if (\n    typeof ShadowRoot !== 'undefined' &&\n    root instanceof ShadowRoot &&\n    root.host === e.target\n  ) return false\n\n  // Check if additional elements were passed to be included in check\n  // (click must be outside all included elements, if any)\n  const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n  // Add the root element for the component this directive was defined on\n  elements.push(el)\n\n  // Check if it's a click outside our elements, and then if our callback returns true.\n  // Non-toggleable components should take action in their callback and return falsy.\n  // Toggleable can return true if it wants to deactivate.\n  // Note that, because we're in the capture phase, this callback will occur before\n  // the bubbling click event on any outside elements.\n  return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n  const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n  return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective) {\n  const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n  el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n    checkIsActive(e, binding) && handler && handler(e)\n  }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n  const root = attachedRoot(el)\n\n  callback(document)\n\n  if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n    callback(root)\n  }\n}\n\nexport const ClickOutside = {\n  // [data-app] may not be found\n  // if using bind, inserted makes\n  // sure that the root element is\n  // available, iOS does not support\n  // clicks on body\n  inserted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n    const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n    const onMousedown = (e: Event) => {\n      el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n    }\n\n    handleShadow(el, (app: HTMLElement) => {\n      app.addEventListener('click', onClick, true)\n      app.addEventListener('mousedown', onMousedown, true)\n    })\n\n    if (!el._clickOutside) {\n      el._clickOutside = {\n        lastMousedownWasOutside: true,\n      }\n    }\n\n    el._clickOutside[vnode.context!._uid] = {\n      onClick,\n      onMousedown,\n    }\n  },\n\n  unbind (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n    if (!el._clickOutside) return\n\n    handleShadow(el, (app: HTMLElement) => {\n      if (!app || !el._clickOutside?.[vnode.context!._uid]) return\n\n      const { onClick, onMousedown } = el._clickOutside[vnode.context!._uid]!\n\n      app.removeEventListener('click', onClick, true)\n      app.removeEventListener('mousedown', onMousedown, true)\n    })\n\n    delete el._clickOutside[vnode.context!._uid]\n  },\n}\n\nexport default ClickOutside\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n  name: 'v-container',\n  functional: true,\n  props: {\n    id: String,\n    tag: {\n      type: String,\n      default: 'div',\n    },\n    fluid: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  render (h, { props, data, children }) {\n    let classes\n    const { attrs } = data\n    if (attrs) {\n      // reset attrs to extract utility clases like pa-3\n      data.attrs = {}\n      classes = Object.keys(attrs).filter(key => {\n        // TODO: Remove once resolved\n        // https://github.com/vuejs/vue/issues/7841\n        if (key === 'slot') return false\n\n        const value = attrs[key]\n\n        // add back data attributes like data-test=\"foo\" but do not\n        // add them as classes\n        if (key.startsWith('data-')) {\n          data.attrs![key] = value\n          return false\n        }\n\n        return value || typeof value === 'string'\n      })\n    }\n\n    if (props.id) {\n      data.domProps = data.domProps || {}\n      data.domProps.id = props.id\n    }\n\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'container',\n        class: Array<any>({\n          'container--fluid': props.fluid,\n        }).concat(classes || []),\n      }),\n      children\n    )\n  },\n})\n","// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n  name: 'v-checkbox',\n\n  props: {\n    indeterminate: Boolean,\n    indeterminateIcon: {\n      type: String,\n      default: '$checkboxIndeterminate',\n    },\n    offIcon: {\n      type: String,\n      default: '$checkboxOff',\n    },\n    onIcon: {\n      type: String,\n      default: '$checkboxOn',\n    },\n  },\n\n  data () {\n    return {\n      inputIndeterminate: this.indeterminate,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        ...VInput.options.computed.classes.call(this),\n        'v-input--selection-controls': true,\n        'v-input--checkbox': true,\n        'v-input--indeterminate': this.inputIndeterminate,\n      }\n    },\n    computedIcon (): string {\n      if (this.inputIndeterminate) {\n        return this.indeterminateIcon\n      } else if (this.isActive) {\n        return this.onIcon\n      } else {\n        return this.offIcon\n      }\n    },\n    // Do not return undefined if disabled,\n    // according to spec, should still show\n    // a color when disabled and active\n    validationState (): string | undefined {\n      if (this.isDisabled && !this.inputIndeterminate) return undefined\n      if (this.hasError && this.shouldValidate) return 'error'\n      if (this.hasSuccess) return 'success'\n      if (this.hasColor !== null) return this.computedColor\n      return undefined\n    },\n  },\n\n  watch: {\n    indeterminate (val) {\n      // https://github.com/vuetifyjs/vuetify/issues/8270\n      this.$nextTick(() => (this.inputIndeterminate = val))\n    },\n    inputIndeterminate (val) {\n      this.$emit('update:indeterminate', val)\n    },\n    isActive () {\n      if (!this.indeterminate) return\n      this.inputIndeterminate = false\n    },\n  },\n\n  methods: {\n    genCheckbox () {\n      const { title, ...checkboxAttrs } = this.attrs$\n      return this.$createElement('div', {\n        staticClass: 'v-input--selection-controls__input',\n      }, [\n        this.$createElement(VIcon, this.setTextColor(this.validationState, {\n          props: {\n            dense: this.dense,\n            dark: this.dark,\n            light: this.light,\n          },\n        }), this.computedIcon),\n        this.genInput('checkbox', {\n          ...checkboxAttrs,\n          'aria-checked': this.inputIndeterminate\n            ? 'mixed'\n            : this.isActive.toString(),\n        }),\n        this.genRipple(this.setTextColor(this.rippleState)),\n      ])\n    },\n    genDefaultSlot () {\n      return [\n        this.genCheckbox(),\n        this.genLabel(),\n      ]\n    },\n  },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n  name: 'v-responsive',\n\n  props: {\n    aspectRatio: [String, Number] as NumberOrNumberString,\n    contentClass: String,\n  },\n\n  computed: {\n    computedAspectRatio (): number {\n      return Number(this.aspectRatio)\n    },\n    aspectStyle (): object | undefined {\n      return this.computedAspectRatio\n        ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n        : undefined\n    },\n    __cachedSizer (): VNode | [] {\n      if (!this.aspectStyle) return []\n\n      return this.$createElement('div', {\n        style: this.aspectStyle,\n        staticClass: 'v-responsive__sizer',\n      })\n    },\n  },\n\n  methods: {\n    genContent (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-responsive__content',\n        class: this.contentClass,\n      }, getSlot(this))\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-responsive',\n      style: this.measurableStyles,\n      on: this.$listeners,\n    }, [\n      this.__cachedSizer,\n      this.genContent(),\n    ])\n  },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n  src: string\n  srcset?: string\n  lazySrc: string\n  aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n  VResponsive,\n  Themeable,\n).extend({\n  name: 'v-img',\n\n  directives: { intersect },\n\n  props: {\n    alt: String,\n    contain: Boolean,\n    eager: Boolean,\n    gradient: String,\n    lazySrc: String,\n    options: {\n      type: Object,\n      // For more information on types, navigate to:\n      // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n      default: () => ({\n        root: undefined,\n        rootMargin: undefined,\n        threshold: undefined,\n      }),\n    } as PropValidator<IntersectionObserverInit>,\n    position: {\n      type: String,\n      default: 'center center',\n    },\n    sizes: String,\n    src: {\n      type: [String, Object],\n      default: '',\n    } as PropValidator<string | srcObject>,\n    srcset: String,\n    transition: {\n      type: [Boolean, String],\n      default: 'fade-transition',\n    },\n  },\n\n  data () {\n    return {\n      currentSrc: '', // Set from srcset\n      image: null as HTMLImageElement | null,\n      isLoading: true,\n      calculatedAspectRatio: undefined as number | undefined,\n      naturalWidth: undefined as number | undefined,\n      hasError: false,\n    }\n  },\n\n  computed: {\n    computedAspectRatio (): number {\n      return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n    },\n    normalisedSrc (): srcObject {\n      return this.src && typeof this.src === 'object'\n        ? {\n          src: this.src.src,\n          srcset: this.srcset || this.src.srcset,\n          lazySrc: this.lazySrc || this.src.lazySrc,\n          aspect: Number(this.aspectRatio || this.src.aspect),\n        } : {\n          src: this.src,\n          srcset: this.srcset,\n          lazySrc: this.lazySrc,\n          aspect: Number(this.aspectRatio || 0),\n        }\n    },\n    __cachedImage (): VNode | [] {\n      if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n      const backgroundImage: string[] = []\n      const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n      if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n      if (src) backgroundImage.push(`url(\"${src}\")`)\n\n      const image = this.$createElement('div', {\n        staticClass: 'v-image__image',\n        class: {\n          'v-image__image--preload': this.isLoading,\n          'v-image__image--contain': this.contain,\n          'v-image__image--cover': !this.contain,\n        },\n        style: {\n          backgroundImage: backgroundImage.join(', '),\n          backgroundPosition: this.position,\n        },\n        key: +this.isLoading,\n      })\n\n      /* istanbul ignore if */\n      if (!this.transition) return image\n\n      return this.$createElement('transition', {\n        attrs: {\n          name: this.transition,\n          mode: 'in-out',\n        },\n      }, [image])\n    },\n  },\n\n  watch: {\n    src () {\n      // Force re-init when src changes\n      if (!this.isLoading) this.init(undefined, undefined, true)\n      else this.loadImage()\n    },\n    '$vuetify.breakpoint.width': 'getSrc',\n  },\n\n  mounted () {\n    this.init()\n  },\n\n  methods: {\n    init (\n      entries?: IntersectionObserverEntry[],\n      observer?: IntersectionObserver,\n      isIntersecting?: boolean\n    ) {\n      // If the current browser supports the intersection\n      // observer api, the image is not observable, and\n      // the eager prop isn't being used, do not load\n      if (\n        hasIntersect &&\n        !isIntersecting &&\n        !this.eager\n      ) return\n\n      if (this.normalisedSrc.lazySrc) {\n        const lazyImg = new Image()\n        lazyImg.src = this.normalisedSrc.lazySrc\n        this.pollForSize(lazyImg, null)\n      }\n      /* istanbul ignore else */\n      if (this.normalisedSrc.src) this.loadImage()\n    },\n    onLoad () {\n      this.getSrc()\n      this.isLoading = false\n      this.$emit('load', this.src)\n\n      if (\n        this.image &&\n        (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n      ) {\n        if (this.image.naturalHeight && this.image.naturalWidth) {\n          this.naturalWidth = this.image.naturalWidth\n          this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n        } else {\n          this.calculatedAspectRatio = 1\n        }\n      }\n    },\n    onError () {\n      this.hasError = true\n      this.$emit('error', this.src)\n    },\n    getSrc () {\n      /* istanbul ignore else */\n      if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n    },\n    loadImage () {\n      const image = new Image()\n      this.image = image\n\n      image.onload = () => {\n        /* istanbul ignore if */\n        if (image.decode) {\n          image.decode().catch((err: DOMException) => {\n            consoleWarn(\n              `Failed to decode image, trying to render anyway\\n\\n` +\n              `src: ${this.normalisedSrc.src}` +\n              (err.message ? `\\nOriginal error: ${err.message}` : ''),\n              this\n            )\n          }).then(this.onLoad)\n        } else {\n          this.onLoad()\n        }\n      }\n      image.onerror = this.onError\n\n      this.hasError = false\n      this.sizes && (image.sizes = this.sizes)\n      this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n      image.src = this.normalisedSrc.src\n      this.$emit('loadstart', this.normalisedSrc.src)\n\n      this.aspectRatio || this.pollForSize(image)\n      this.getSrc()\n    },\n    pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n      const poll = () => {\n        const { naturalHeight, naturalWidth } = img\n\n        if (naturalHeight || naturalWidth) {\n          this.naturalWidth = naturalWidth\n          this.calculatedAspectRatio = naturalWidth / naturalHeight\n        } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n          setTimeout(poll, timeout)\n        }\n      }\n\n      poll()\n    },\n    genContent () {\n      const content: VNode = VResponsive.options.methods.genContent.call(this)\n      if (this.naturalWidth) {\n        this._b(content.data!, 'div', {\n          style: { width: `${this.naturalWidth}px` },\n        })\n      }\n\n      return content\n    },\n    __genPlaceholder (): VNode | void {\n      const slot = getSlot(this, 'placeholder')\n      if (slot) {\n        const placeholder = this.isLoading\n          ? [this.$createElement('div', {\n            staticClass: 'v-image__placeholder',\n          }, slot)]\n          : []\n\n        if (!this.transition) return placeholder[0]\n\n        return this.$createElement('transition', {\n          props: {\n            appear: true,\n            name: this.transition,\n          },\n        }, placeholder)\n      }\n    },\n  },\n\n  render (h): VNode {\n    const node = VResponsive.options.render.call(this, h)\n\n    const data = mergeData(node.data!, {\n      staticClass: 'v-image',\n      attrs: {\n        'aria-label': this.alt,\n        role: this.alt ? 'img' : undefined,\n      },\n      class: this.themeClasses,\n      // Only load intersect directive if it\n      // will work in the current browser.\n      directives: hasIntersect\n        ? [{\n          name: 'intersect',\n          modifiers: { once: true },\n          value: {\n            handler: this.init,\n            options: this.options,\n          },\n        }]\n        : undefined,\n    })\n\n    node.children = [\n      this.__cachedSizer,\n      this.__cachedImage,\n      this.__genPlaceholder(),\n      this.genContent(),\n    ] as VNode[]\n\n    return h(node.tag, data, node.children)\n  },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n  Loadable,\n  Routable,\n  VSheet\n).extend({\n  name: 'v-card',\n\n  props: {\n    flat: Boolean,\n    hover: Boolean,\n    img: String,\n    link: Boolean,\n    loaderHeight: {\n      type: [Number, String],\n      default: 4,\n    },\n    raised: Boolean,\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-card': true,\n        ...Routable.options.computed.classes.call(this),\n        'v-card--flat': this.flat,\n        'v-card--hover': this.hover,\n        'v-card--link': this.isClickable,\n        'v-card--loading': this.loading,\n        'v-card--disabled': this.disabled,\n        'v-card--raised': this.raised,\n        ...VSheet.options.computed.classes.call(this),\n      }\n    },\n    styles (): object {\n      const style: Dictionary<string> = {\n        ...VSheet.options.computed.styles.call(this),\n      }\n\n      if (this.img) {\n        style.background = `url(\"${this.img}\") center center / cover no-repeat`\n      }\n\n      return style\n    },\n  },\n\n  methods: {\n    genProgress () {\n      const render = Loadable.options.methods.genProgress.call(this)\n\n      if (!render) return null\n\n      return this.$createElement('div', {\n        staticClass: 'v-card__progress',\n        key: 'progress',\n      }, [render])\n    },\n  },\n\n  render (h): VNode {\n    const { tag, data } = this.generateRouteLink()\n\n    data.style = this.styles\n\n    if (this.isClickable) {\n      data.attrs = data.attrs || {}\n      data.attrs.tabindex = 0\n    }\n\n    return h(tag, this.setBackgroundColor(this.color, data), [\n      this.genProgress(),\n      getSlot(this),\n    ])\n  },\n})\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","import Vue from 'vue'\n\nimport mixins from '../../util/mixins'\nimport { VOverlay } from '../../components/VOverlay'\n\ninterface options {\n  $el: HTMLElement\n  $refs: {\n    content?: HTMLElement\n  }\n  overlay?: InstanceType<typeof VOverlay>\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<Vue & options>().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","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n  VList,\n  VListItem,\n  VListItemAction,\n  VListItemContent,\n  VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { getPropertyFromItem } from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n  name: 'v-select-list',\n\n  // https://github.com/vuejs/vue/issues/6872\n  directives: {\n    ripple,\n  },\n\n  props: {\n    action: Boolean,\n    dense: Boolean,\n    hideSelected: Boolean,\n    items: {\n      type: Array,\n      default: () => [],\n    } as PropValidator<any[]>,\n    itemDisabled: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'disabled',\n    },\n    itemText: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'text',\n    },\n    itemValue: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'value',\n    },\n    noDataText: String,\n    noFilter: Boolean,\n    searchInput: null as unknown as PropType<any>,\n    selectedItems: {\n      type: Array,\n      default: () => [],\n    } as PropValidator<any[]>,\n  },\n\n  computed: {\n    parsedItems (): any[] {\n      return this.selectedItems.map(item => this.getValue(item))\n    },\n    tileActiveClass (): string {\n      return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n    },\n    staticNoDataTile (): VNode {\n      const tile = {\n        attrs: {\n          role: undefined,\n        },\n        on: {\n          mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n        },\n      }\n\n      return this.$createElement(VListItem, tile, [\n        this.genTileContent(this.noDataText),\n      ])\n    },\n  },\n\n  methods: {\n    genAction (item: object, inputValue: any): VNode {\n      return this.$createElement(VListItemAction, [\n        this.$createElement(VSimpleCheckbox, {\n          props: {\n            color: this.color,\n            value: inputValue,\n            ripple: false,\n          },\n          on: {\n            input: () => this.$emit('select', item),\n          },\n        }),\n      ])\n    },\n    genDivider (props: { [key: string]: any }) {\n      return this.$createElement(VDivider, { props })\n    },\n    genFilteredText (text: string) {\n      text = text || ''\n\n      if (!this.searchInput || this.noFilter) return text\n\n      const { start, middle, end } = this.getMaskedCharacters(text)\n\n      return [start, this.genHighlight(middle), end]\n    },\n    genHeader (props: { [key: string]: any }): VNode {\n      return this.$createElement(VSubheader, { props }, props.header)\n    },\n    genHighlight (text: string) {\n      return this.$createElement('span', { staticClass: 'v-list-item__mask' }, text)\n    },\n    getMaskedCharacters (text: string): {\n      start: string\n      middle: string\n      end: string\n    } {\n      const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n      const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n      if (index < 0) return { start: text, middle: '', end: '' }\n\n      const start = text.slice(0, index)\n      const middle = text.slice(index, index + searchInput.length)\n      const end = text.slice(index + searchInput.length)\n      return { start, middle, end }\n    },\n    genTile ({\n      item,\n      index,\n      disabled = null,\n      value = false,\n    }: ListTile): VNode | VNode[] | undefined {\n      if (!value) value = this.hasItem(item)\n\n      if (item === Object(item)) {\n        disabled = disabled !== null\n          ? disabled\n          : this.getDisabled(item)\n      }\n\n      const tile = {\n        attrs: {\n          // Default behavior in list does not\n          // contain aria-selected by default\n          'aria-selected': String(value),\n          id: `list-item-${this._uid}-${index}`,\n          role: 'option',\n        },\n        on: {\n          mousedown: (e: Event) => {\n            // Prevent onBlur from being called\n            e.preventDefault()\n          },\n          click: () => disabled || this.$emit('select', item),\n        },\n        props: {\n          activeClass: this.tileActiveClass,\n          disabled,\n          ripple: true,\n          inputValue: value,\n        },\n      }\n\n      if (!this.$scopedSlots.item) {\n        return this.$createElement(VListItem, tile, [\n          this.action && !this.hideSelected && this.items.length > 0\n            ? this.genAction(item, value)\n            : null,\n          this.genTileContent(item, index),\n        ])\n      }\n\n      const parent = this\n      const scopedSlot = this.$scopedSlots.item({\n        parent,\n        item,\n        attrs: {\n          ...tile.attrs,\n          ...tile.props,\n        },\n        on: tile.on,\n      })\n\n      return this.needsTile(scopedSlot)\n        ? this.$createElement(VListItem, tile, scopedSlot)\n        : scopedSlot\n    },\n    genTileContent (item: any, index = 0): VNode {\n      return this.$createElement(VListItemContent, [\n        this.$createElement(VListItemTitle, [\n          this.genFilteredText(this.getText(item)),\n        ]),\n      ])\n    },\n    hasItem (item: object) {\n      return this.parsedItems.indexOf(this.getValue(item)) > -1\n    },\n    needsTile (slot: VNode[] | undefined) {\n      return slot!.length !== 1 ||\n        slot![0].componentOptions == null ||\n        slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n    },\n    getDisabled (item: object) {\n      return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n    },\n    getText (item: object) {\n      return String(getPropertyFromItem(item, this.itemText, item))\n    },\n    getValue (item: object) {\n      return getPropertyFromItem(item, this.itemValue, this.getText(item))\n    },\n  },\n\n  render (): VNode {\n    const children: VNodeChildren = []\n    const itemsLength = this.items.length\n    for (let index = 0; index < itemsLength; index++) {\n      const item = this.items[index]\n\n      if (this.hideSelected &&\n        this.hasItem(item)\n      ) continue\n\n      if (item == null) children.push(this.genTile({ item, index }))\n      else if (item.header) children.push(this.genHeader(item))\n      else if (item.divider) children.push(this.genDivider(item))\n      else children.push(this.genTile({ item, index }))\n    }\n\n    children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n    this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n    this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n    return this.$createElement(VList, {\n      staticClass: 'v-select-list',\n      class: this.themeClasses,\n      attrs: {\n        role: 'listbox',\n        tabindex: -1,\n      },\n      on: {\n        mousedown: (e: Event) => {\n          e.preventDefault()\n        },\n      },\n      props: { dense: this.dense },\n    }, children)\n  },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'filterable',\n\n  props: {\n    noDataText: {\n      type: String,\n      default: '$vuetify.noDataText',\n    },\n  },\n})\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n  closeOnClick: false,\n  closeOnContentClick: false,\n  disableKeys: true,\n  openOnClick: false,\n  maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n  VTextField,\n  Comparable,\n  Dependent,\n  Filterable\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n  $refs: {\n    menu: InstanceType<typeof VMenu>\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<options>().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<string | boolean | Element | VNode>,\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<any[]>,\n    itemColor: {\n      type: String,\n      default: 'primary',\n    },\n    itemDisabled: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'disabled',\n    },\n    itemText: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'text',\n    },\n    itemValue: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\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      if (this.hideSelected) {\n        this.$nextTick(() => {\n          this.onScroll()\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      if ('attach' in props) void 0\n      else if (\n        // TODO: make this a computed property or helper or something\n        this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n        this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n        this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n      ) {\n        // Attach to root el so that\n        // menu covers prepend/append icons\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        e.key.length > 1 ||\n        e.ctrlKey || e.metaKey || e.altKey\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(() => {\n          const content = this.getContent()\n          if (content) content.scrollTop = 0\n        })\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.computedItems.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","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n  getObjectValueByPath,\n  getPropertyFromItem,\n  keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n  ...VSelectMenuProps,\n  offsetY: true,\n  offsetOverflow: true,\n  transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n  name: 'v-autocomplete',\n\n  props: {\n    autoSelectFirst: {\n      type: Boolean,\n      default: false,\n    },\n    filter: {\n      type: Function,\n      default: (item: any, queryText: string, itemText: string) => {\n        return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n      },\n    } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n    hideNoData: Boolean,\n    menuProps: {\n      type: VSelect.options.props.menuProps.type,\n      default: () => defaultMenuProps,\n    },\n    noFilter: Boolean,\n    searchInput: {\n      type: String as PropType<string | null>,\n    },\n  },\n\n  data () {\n    return {\n      lazySearch: this.searchInput,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        ...VSelect.options.computed.classes.call(this),\n        'v-autocomplete': true,\n        'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n      }\n    },\n    computedItems (): object[] {\n      return this.filteredItems\n    },\n    selectedValues (): object[] {\n      return this.selectedItems.map(item => this.getValue(item))\n    },\n    hasDisplayedItems (): boolean {\n      return this.hideSelected\n        ? this.filteredItems.some(item => !this.hasItem(item))\n        : this.filteredItems.length > 0\n    },\n    currentRange (): number {\n      if (this.selectedItem == null) return 0\n\n      return String(this.getText(this.selectedItem)).length\n    },\n    filteredItems (): object[] {\n      if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n      return this.allItems.filter(item => {\n        const value = getPropertyFromItem(item, this.itemText)\n        const text = value != null ? String(value) : ''\n\n        return this.filter(item, String(this.internalSearch), text)\n      })\n    },\n    internalSearch: {\n      get (): string | null {\n        return this.lazySearch\n      },\n      set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n        // emit update event only when the new\n        // search value is different from previous\n        if (this.lazySearch !== val) {\n          this.lazySearch = val\n          this.$emit('update:search-input', val)\n        }\n      },\n    },\n    isAnyValueAllowed (): boolean {\n      return false\n    },\n    isDirty (): boolean {\n      return this.searchIsDirty || this.selectedItems.length > 0\n    },\n    isSearching (): boolean {\n      return (\n        this.multiple &&\n        this.searchIsDirty\n      ) || (\n        this.searchIsDirty &&\n        this.internalSearch !== this.getText(this.selectedItem)\n      )\n    },\n    menuCanShow (): boolean {\n      if (!this.isFocused) return false\n\n      return this.hasDisplayedItems || !this.hideNoData\n    },\n    $_menuProps (): object {\n      const props = VSelect.options.computed.$_menuProps.call(this);\n      (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n      return {\n        ...defaultMenuProps,\n        ...props,\n      }\n    },\n    searchIsDirty (): boolean {\n      return this.internalSearch != null &&\n        this.internalSearch !== ''\n    },\n    selectedItem (): any {\n      if (this.multiple) return null\n\n      return this.selectedItems.find(i => {\n        return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n      })\n    },\n    listData () {\n      const data = VSelect.options.computed.listData.call(this) as any\n\n      data.props = {\n        ...data.props,\n        items: this.virtualizedItems,\n        noFilter: (\n          this.noFilter ||\n          !this.isSearching ||\n          !this.filteredItems.length\n        ),\n        searchInput: this.internalSearch,\n      }\n\n      return data\n    },\n  },\n\n  watch: {\n    filteredItems: 'onFilteredItemsChanged',\n    internalValue: 'setSearch',\n    isFocused (val) {\n      if (val) {\n        document.addEventListener('copy', this.onCopy)\n        this.$refs.input && this.$refs.input.select()\n      } else {\n        document.removeEventListener('copy', this.onCopy)\n        this.blur()\n        this.updateSelf()\n      }\n    },\n    isMenuActive (val) {\n      if (val || !this.hasSlot) return\n\n      this.lazySearch = null\n    },\n    items (val, oldVal) {\n      // If we are focused, the menu\n      // is not active, hide no data is enabled,\n      // and items change\n      // User is probably async loading\n      // items, try to activate the menu\n      if (\n        !(oldVal && oldVal.length) &&\n        this.hideNoData &&\n        this.isFocused &&\n        !this.isMenuActive &&\n        val.length\n      ) this.activateMenu()\n    },\n    searchInput (val: string) {\n      this.lazySearch = val\n    },\n    internalSearch: 'onInternalSearchChanged',\n    itemText: 'updateSelf',\n  },\n\n  created () {\n    this.setSearch()\n  },\n\n  destroyed () {\n    document.removeEventListener('copy', this.onCopy)\n  },\n\n  methods: {\n    onFilteredItemsChanged (val: never[], oldVal: never[]) {\n      // TODO: How is the watcher triggered\n      // for duplicate items? no idea\n      if (val === oldVal) return\n\n      if (!this.autoSelectFirst) {\n        const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n        if (preSelectedItem) {\n          this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n        } else {\n          this.setMenuIndex(-1)\n        }\n        this.$emit('update:list-index', this.$refs.menu.listIndex)\n      }\n\n      this.$nextTick(() => {\n        if (\n          !this.internalSearch ||\n          (val.length !== 1 &&\n            !this.autoSelectFirst)\n        ) return\n\n        this.$refs.menu.getTiles()\n\n        if (this.autoSelectFirst && val.length) {\n          this.setMenuIndex(0)\n          this.$emit('update:list-index', this.$refs.menu.listIndex)\n        }\n      })\n    },\n    onInternalSearchChanged () {\n      this.updateMenuDimensions()\n    },\n    updateMenuDimensions () {\n      // Type from menuable is not making it through\n      this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n    },\n    changeSelectedIndex (keyCode: number) {\n      // Do not allow changing of selectedIndex\n      // when search is dirty\n      if (this.searchIsDirty) return\n\n      if (this.multiple && keyCode === keyCodes.left) {\n        if (this.selectedIndex === -1) {\n          this.selectedIndex = this.selectedItems.length - 1\n        } else {\n          this.selectedIndex--\n        }\n      } else if (this.multiple && keyCode === keyCodes.right) {\n        if (this.selectedIndex >= this.selectedItems.length - 1) {\n          this.selectedIndex = -1\n        } else {\n          this.selectedIndex++\n        }\n      } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n        this.deleteCurrentItem()\n      }\n    },\n    deleteCurrentItem () {\n      const curIndex = this.selectedIndex\n      const curItem = this.selectedItems[curIndex]\n\n      // Do nothing if input or item is disabled\n      if (\n        !this.isInteractive ||\n        this.getDisabled(curItem)\n      ) return\n\n      const lastIndex = this.selectedItems.length - 1\n\n      // Select the last item if\n      // there is no selection\n      if (\n        this.selectedIndex === -1 &&\n        lastIndex !== 0\n      ) {\n        this.selectedIndex = lastIndex\n\n        return\n      }\n\n      const length = this.selectedItems.length\n      const nextIndex = curIndex !== length - 1\n        ? curIndex\n        : curIndex - 1\n      const nextItem = this.selectedItems[nextIndex]\n\n      if (!nextItem) {\n        this.setValue(this.multiple ? [] : null)\n      } else {\n        this.selectItem(curItem)\n      }\n\n      this.selectedIndex = nextIndex\n    },\n    clearableCallback () {\n      this.internalSearch = null\n\n      VSelect.options.methods.clearableCallback.call(this)\n    },\n    genInput () {\n      const input = VTextField.options.methods.genInput.call(this)\n\n      input.data = mergeData(input.data!, {\n        attrs: {\n          'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n          autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n        },\n        domProps: { value: this.internalSearch },\n      })\n\n      return input\n    },\n    genInputSlot () {\n      const slot = VSelect.options.methods.genInputSlot.call(this)\n\n      slot.data!.attrs!.role = 'combobox'\n\n      return slot\n    },\n    genSelections (): VNode | never[] {\n      return this.hasSlot || this.multiple\n        ? VSelect.options.methods.genSelections.call(this)\n        : []\n    },\n    onClick (e: MouseEvent) {\n      if (!this.isInteractive) return\n\n      this.selectedIndex > -1\n        ? (this.selectedIndex = -1)\n        : this.onFocus()\n\n      if (!this.isAppendInner(e.target)) this.activateMenu()\n    },\n    onInput (e: Event) {\n      if (\n        this.selectedIndex > -1 ||\n        !e.target\n      ) return\n\n      const target = e.target as HTMLInputElement\n      const value = target.value\n\n      // If typing and menu is not currently active\n      if (target.value) this.activateMenu()\n\n      if (!this.multiple && value === '') this.deleteCurrentItem()\n\n      this.internalSearch = value\n      this.badInput = target.validity && target.validity.badInput\n    },\n    onKeyDown (e: KeyboardEvent) {\n      const keyCode = e.keyCode\n\n      if (\n        e.ctrlKey ||\n        ![keyCodes.home, keyCodes.end].includes(keyCode)\n      ) {\n        VSelect.options.methods.onKeyDown.call(this, e)\n      }\n\n      // The ordering is important here\n      // allows new value to be updated\n      // and then moves the index to the\n      // proper location\n      this.changeSelectedIndex(keyCode)\n    },\n    onSpaceDown (e: KeyboardEvent) { /* noop */ },\n    onTabDown (e: KeyboardEvent) {\n      VSelect.options.methods.onTabDown.call(this, e)\n      this.updateSelf()\n    },\n    onUpDown (e: Event) {\n      // Prevent screen from scrolling\n      e.preventDefault()\n\n      // For autocomplete / combobox, cycling\n      // interfers with native up/down behavior\n      // instead activate the menu\n      this.activateMenu()\n    },\n    selectItem (item: object) {\n      VSelect.options.methods.selectItem.call(this, item)\n      this.setSearch()\n    },\n    setSelectedItems () {\n      VSelect.options.methods.setSelectedItems.call(this)\n\n      // #4273 Don't replace if searching\n      // #4403 Don't replace if focused\n      if (!this.isFocused) this.setSearch()\n    },\n    setSearch () {\n      // Wait for nextTick so selectedItem\n      // has had time to update\n      this.$nextTick(() => {\n        if (\n          !this.multiple ||\n          !this.internalSearch ||\n          !this.isMenuActive\n        ) {\n          this.internalSearch = (\n            !this.selectedItems.length ||\n            this.multiple ||\n            this.hasSlot\n          )\n            ? null\n            : this.getText(this.selectedItem)\n        }\n      })\n    },\n    updateSelf () {\n      if (\n        !this.searchIsDirty &&\n        !this.internalValue\n      ) return\n\n      if (\n        !this.multiple &&\n        !this.valueComparator(\n          this.internalSearch,\n          this.getValue(this.internalValue)\n        )\n      ) {\n        this.setSearch()\n      }\n    },\n    hasItem (item: any): boolean {\n      return this.selectedValues.indexOf(this.getValue(item)) > -1\n    },\n    onCopy (event: ClipboardEvent) {\n      if (this.selectedIndex === -1) return\n\n      const currentItem = this.selectedItems[this.selectedIndex]\n      const currentItemText = this.getText(currentItem)\n      event.clipboardData?.setData('text/plain', currentItemText)\n      event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n      event.preventDefault()\n    },\n  },\n})\n","'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\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\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","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<string, boolean> {\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","// 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'\nimport { getSlot } from '../../util/helpers'\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<string>,\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<any>,\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        getSlot(this),\n        this.hasClose && this.genClose(),\n      ])\n    },\n  },\n\n  render (h): VNode {\n    const children = [this.genContent()]\n    let { tag, data } = this.generateRouteLink()\n\n    data.attrs = {\n      ...data.attrs,\n      draggable: this.draggable ? 'true' : undefined,\n      tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n    }\n    data.directives!.push({\n      name: 'show',\n      value: this.active,\n    })\n    data = this.setBackgroundColor(this.color, data)\n\n    const color = this.textColor || (this.outlined && this.color)\n\n    return h(tag, this.setTextColor(color, data), children)\n  },\n})\n","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n  name: 'v-divider',\n\n  props: {\n    inset: Boolean,\n    vertical: Boolean,\n  },\n\n  render (h): VNode {\n    // WAI-ARIA attributes\n    let orientation\n    if (!this.$attrs.role || this.$attrs.role === 'separator') {\n      orientation = this.vertical ? 'vertical' : 'horizontal'\n    }\n    return h('hr', {\n      class: {\n        'v-divider': true,\n        'v-divider--inset': this.inset,\n        'v-divider--vertical': this.vertical,\n        ...this.themeClasses,\n      },\n      attrs: {\n        role: 'separator',\n        'aria-orientation': orientation,\n        ...this.$attrs,\n      },\n      on: this.$listeners,\n    })\n  },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('KTCard',{ref:\"preview\",attrs:{\"title\":_vm.title,\"example\":true},scopedSlots:_vm._u([(_vm.hasTitleSlot)?{key:\"title\",fn:function(){return [_c('h3',{staticClass:\"card-title\"},[_vm._t(\"title\")],2)]},proxy:true}:null,{key:\"body\",fn:function(){return [_c('div',{staticClass:\"example-code mb-5\"},[(!_vm.hasGeneralCode && !_vm.hasSingleCodeType)?_c('ul',{staticClass:\"example-nav nav nav-tabs nav-bold nav-tabs-line nav-tabs-line-2x\",attrs:{\"role\":\"tablist\"}},[(_vm.hasHtmlCode)?_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link active\",attrs:{\"data-tab\":\"0\",\"data-toggle\":\"tab\",\"href\":\"#\",\"role\":\"tab\",\"aria-selected\":\"true\"},on:{\"click\":_vm.setActiveTab}},[_vm._v(\" HTML \")])]):_vm._e(),(_vm.hasJsCode)?_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"data-tab\":\"1\",\"data-toggle\":\"tab\",\"href\":\"#\",\"role\":\"tab\",\"aria-selected\":\"false\"},on:{\"click\":_vm.setActiveTab}},[_vm._v(\"  JS  \")])]):_vm._e(),(_vm.hasScssCode)?_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"data-tab\":\"2\",\"data-toggle\":\"tab\",\"href\":\"#\",\"role\":\"tab\",\"aria-selected\":\"false\"},on:{\"click\":_vm.setActiveTab}},[_vm._v(\" SCSS \")])]):_vm._e()]):_vm._e(),(_vm.hasGeneralCode)?_c('div',[_vm._t(\"code\")],2):_vm._e(),(!_vm.hasGeneralCode && !_vm.hasSingleCodeType)?_c('div',[_c('b-tabs',{staticClass:\"hide-tabs\",attrs:{\"content-class\":\"mt-3\"},model:{value:(_vm.tabIndex),callback:function ($$v) {_vm.tabIndex=$$v},expression:\"tabIndex\"}},[_c('b-tab',{staticClass:\"example-highlight\",attrs:{\"active\":\"\"}},[_c('highlight-code',{staticClass:\"language-html\",attrs:{\"lang\":\"html\"}},[_vm._t(\"html\")],2)],1),_c('b-tab',{staticClass:\"example-highlight\"},[_c('highlight-code',{staticClass:\"language-js\",attrs:{\"lang\":\"js\"}},[_vm._t(\"js\")],2)],1),_c('b-tab',{staticClass:\"example-highlight\"},[_c('highlight-code',{staticClass:\"language-scss\",attrs:{\"lang\":\"scss\"}},[_vm._t(\"scss\")],2)],1)],1)],1):_vm._e(),(_vm.hasSingleCodeType)?_c('div',{staticClass:\"example-highlight\"},[(_vm.hasHtmlCode)?_c('highlight-code',{staticClass:\"language-html\",attrs:{\"lang\":\"html\"}},[_vm._t(\"html\")],2):_vm._e(),(_vm.hasJsCode)?_c('highlight-code',{staticClass:\"language-js\",attrs:{\"lang\":\"js\"}},[_vm._t(\"js\")],2):_vm._e(),(_vm.hasScssCode)?_c('highlight-code',{staticClass:\"language-scss\",attrs:{\"lang\":\"scss\"}},[_vm._t(\"scss\")],2):_vm._e()],1):_vm._e()]),_vm._t(\"preview\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"card card-custom gutter-b\",class:_vm.classes},[(_vm.hasTitleSlot || _vm.title)?_c('div',{staticClass:\"card-header\",class:_vm.headClass},[_c('div',{staticClass:\"card-title\"},[(_vm.hasTitleSlot)?_vm._t(\"title\"):_vm._e(),(!_vm.hasTitleSlot)?_c('h3',{staticClass:\"card-label\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e()],2),_c('div',{staticClass:\"card-toolbar\"},[_vm._t(\"toolbar\")],2)]):_vm._e(),_c('div',{staticClass:\"card-body\",class:{\n      bodyClass: _vm.bodyClass,\n      'body-fit': _vm.bodyFit,\n      'body-fluid': _vm.bodyFluid\n    }},[_vm._t(\"body\")],2),(_vm.hasFootSlot)?_c('div',{staticClass:\"card-footer\"},[_vm._t(\"foot\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"card card-custom gutter-b\" v-bind:class=\"classes\">\r\n    <div\r\n      class=\"card-header\"\r\n      v-bind:class=\"headClass\"\r\n      v-if=\"hasTitleSlot || title\"\r\n    >\r\n      <div class=\"card-title\">\r\n        <slot name=\"title\" v-if=\"hasTitleSlot\"></slot>\r\n        <h3 class=\"card-label\" v-if=\"!hasTitleSlot\">\r\n          {{ title }}\r\n        </h3>\r\n      </div>\r\n      <div class=\"card-toolbar\">\r\n        <slot name=\"toolbar\"></slot>\r\n      </div>\r\n    </div>\r\n    <div\r\n      class=\"card-body\"\r\n      v-bind:class=\"{\r\n        bodyClass,\r\n        'body-fit': bodyFit,\r\n        'body-fluid': bodyFluid\r\n      }\"\r\n    >\r\n      <slot name=\"body\"></slot>\r\n    </div>\r\n    <div class=\"card-footer\" v-if=\"hasFootSlot\">\r\n      <slot name=\"foot\"></slot>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"KTCard\",\r\n  props: {\r\n    /**\r\n     * String title\r\n     */\r\n    title: String,\r\n    /**\r\n     * Set card head size. Eg. md, lg, sm, etc.\r\n     */\r\n    headSize: String,\r\n    /**\r\n     * Set card to fluid\r\n     */\r\n    fluidHeight: Boolean,\r\n    /**\r\n     * Set card to fluid in half\r\n     */\r\n    fluidHalfHeight: Boolean,\r\n    /**\r\n     * Set overlay head\r\n     */\r\n    headOverlay: Boolean,\r\n    /**\r\n     * Set extra class for main card\r\n     */\r\n    cardClass: String,\r\n    /**\r\n     * Set extra class for card head\r\n     */\r\n    headClass: String,\r\n    /**\r\n     * Set extra class for card body\r\n     */\r\n    bodyClass: String,\r\n    /**\r\n     * Set card body to fit\r\n     */\r\n    bodyFit: Boolean,\r\n    /**\r\n     * Set card body to fluid\r\n     */\r\n    bodyFluid: Boolean,\r\n    /**\r\n     * Code examples\r\n     */\r\n    example: Boolean\r\n  },\r\n  components: {},\r\n  methods: {},\r\n  computed: {\r\n    classes() {\r\n      const cls = {\r\n        \"example example-compact\": this.example,\r\n        \"height-fluid\": this.fluidHeight,\r\n        \"height-fluid-half\": this.fluidHalfHeight,\r\n        \"head-overlay\": this.headOverlay\r\n      };\r\n\r\n      cls[this.headSizeClass] = this.headSizeClass;\r\n\r\n      // append extra classes\r\n      if (this.cardClass) {\r\n        cls[this.cardClass] = true;\r\n      }\r\n\r\n      return cls;\r\n    },\r\n    hasTitleSlot() {\r\n      return !!this.$slots[\"title\"];\r\n    },\r\n    hasFootSlot() {\r\n      return !!this.$slots[\"foot\"];\r\n    },\r\n    headSizeClass() {\r\n      if (this.headSize) {\r\n        return `head-${this.headSize}`;\r\n      }\r\n      return false;\r\n    }\r\n  }\r\n};\r\n</script>\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!./Card.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!./Card.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Card.vue?vue&type=template&id=1c9f0e48\"\nimport script from \"./Card.vue?vue&type=script&lang=js\"\nexport * from \"./Card.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<template>\r\n  <KTCard ref=\"preview\" v-bind:title=\"title\" v-bind:example=\"true\">\r\n    <template v-slot:title v-if=\"hasTitleSlot\">\r\n      <h3 class=\"card-title\">\r\n        <slot name=\"title\"></slot>\r\n      </h3>\r\n    </template>\r\n    <!-- <template v-slot:toolbar>\r\n      <div class=\"example-tools justify-content-center\">\r\n        <span\r\n          class=\"example-toggle\"\r\n          data-toggle=\"tooltip\"\r\n          v-b-tooltip.hover.top=\"'View code'\"\r\n        />\r\n        <span\r\n          class=\"example-copy\"\r\n          data-toggle=\"tooltip\"\r\n          v-b-tooltip.hover.top=\"'Copy code'\"\r\n        />\r\n      </div>\r\n    </template> -->\r\n    <template v-slot:body>\r\n      <!--begin::Code example-->\r\n      <div class=\"example-code mb-5\">\r\n        <ul\r\n          class=\"example-nav nav nav-tabs nav-bold nav-tabs-line nav-tabs-line-2x\"\r\n          role=\"tablist\"\r\n          v-if=\"!hasGeneralCode && !hasSingleCodeType\"\r\n        >\r\n          <li class=\"nav-item\" v-if=\"hasHtmlCode\">\r\n            <a\r\n              class=\"nav-link active\"\r\n              v-on:click=\"setActiveTab\"\r\n              data-tab=\"0\"\r\n              data-toggle=\"tab\"\r\n              href=\"#\"\r\n              role=\"tab\"\r\n              aria-selected=\"true\"\r\n            >\r\n              HTML\r\n            </a>\r\n          </li>\r\n          <li class=\"nav-item\" v-if=\"hasJsCode\">\r\n            <a\r\n              class=\"nav-link\"\r\n              v-on:click=\"setActiveTab\"\r\n              data-tab=\"1\"\r\n              data-toggle=\"tab\"\r\n              href=\"#\"\r\n              role=\"tab\"\r\n              aria-selected=\"false\"\r\n            >\r\n              &nbsp;JS&nbsp;\r\n            </a>\r\n          </li>\r\n          <li class=\"nav-item\" v-if=\"hasScssCode\">\r\n            <a\r\n              class=\"nav-link\"\r\n              v-on:click=\"setActiveTab\"\r\n              data-tab=\"2\"\r\n              data-toggle=\"tab\"\r\n              href=\"#\"\r\n              role=\"tab\"\r\n              aria-selected=\"false\"\r\n            >\r\n              SCSS\r\n            </a>\r\n          </li>\r\n        </ul>\r\n        <div v-if=\"hasGeneralCode\">\r\n          <slot name=\"code\"></slot>\r\n        </div>\r\n\r\n        <div v-if=\"!hasGeneralCode && !hasSingleCodeType\">\r\n          <b-tabs class=\"hide-tabs\" content-class=\"mt-3\" v-model=\"tabIndex\">\r\n            <b-tab active class=\"example-highlight\">\r\n              <highlight-code lang=\"html\" class=\"language-html\">\r\n                <slot name=\"html\"></slot>\r\n              </highlight-code>\r\n            </b-tab>\r\n            <b-tab class=\"example-highlight\">\r\n              <highlight-code lang=\"js\" class=\"language-js\">\r\n                <slot name=\"js\"></slot>\r\n              </highlight-code>\r\n            </b-tab>\r\n            <b-tab class=\"example-highlight\">\r\n              <highlight-code lang=\"scss\" class=\"language-scss\">\r\n                <slot name=\"scss\"></slot>\r\n              </highlight-code>\r\n            </b-tab>\r\n          </b-tabs>\r\n        </div>\r\n\r\n        <div v-if=\"hasSingleCodeType\" class=\"example-highlight\">\r\n          <highlight-code lang=\"html\" class=\"language-html\" v-if=\"hasHtmlCode\">\r\n            <slot name=\"html\"></slot>\r\n          </highlight-code>\r\n          <highlight-code lang=\"js\" class=\"language-js\" v-if=\"hasJsCode\">\r\n            <slot name=\"js\"></slot>\r\n          </highlight-code>\r\n          <highlight-code lang=\"scss\" class=\"language-scss\" v-if=\"hasScssCode\">\r\n            <slot name=\"scss\"></slot>\r\n          </highlight-code>\r\n        </div>\r\n      </div>\r\n      <!--end::Code example-->\r\n\r\n      <slot name=\"preview\"></slot>\r\n    </template>\r\n  </KTCard>\r\n</template>\r\n\r\n<script>\r\nimport KTCard from \"@/view/content/Card.vue\";\r\nimport KTLayoutExamples from \"@/assets/js/layout/extended/examples.js\";\r\n\r\nexport default {\r\n  name: \"KTCodePreview\",\r\n  props: {\r\n    title: String\r\n  },\r\n  data() {\r\n    return {\r\n      tabIndex: 0,\r\n      isOpen: false\r\n    };\r\n  },\r\n  components: {\r\n    KTCard\r\n  },\r\n  mounted() {\r\n    // init example codes\r\n    this.$nextTick(() => {\r\n      KTLayoutExamples.init([this.$el]);\r\n      const hljs = this.$el.querySelectorAll(\".hljs\");\r\n      hljs.forEach(hl => {\r\n        hl.classList.add(`language-${hl.classList[1]}`);\r\n        hl.classList.remove(\"hljs\");\r\n      });\r\n    });\r\n  },\r\n  methods: {\r\n    /**\r\n     * Set current active on click\r\n     * @param event\r\n     */\r\n    setActiveTab(event) {\r\n      // get all tab links\r\n      const tab = event.target.closest('[role=\"tablist\"]');\r\n      const links = tab.querySelectorAll('[data-toggle=\"tab\"]');\r\n      // remove active tab links\r\n      for (let i = 0; i < links.length; i++) {\r\n        links[i].classList.remove(\"active\");\r\n      }\r\n\r\n      // set current active tab\r\n      event.target.classList.add(\"active\");\r\n\r\n      // set clicked tab index to bootstrap tab\r\n      this.tabIndex = parseInt(event.target.getAttribute(\"data-tab\"));\r\n    }\r\n  },\r\n  computed: {\r\n    /**\r\n     * Check if has title\r\n     * @returns {boolean}\r\n     */\r\n    hasTitleSlot() {\r\n      return !!this.$slots[\"title\"];\r\n    },\r\n\r\n    /**\r\n     * Check if code only has one, exclude the tabs\r\n     * @returns {boolean}\r\n     */\r\n    hasSingleCodeType() {\r\n      let exist = 0;\r\n      [\"html\", \"js\", \"scss\"].forEach(type => {\r\n        if (this.$slots.hasOwnProperty(type)) {\r\n          exist++;\r\n        }\r\n      });\r\n      return exist === 1;\r\n    },\r\n\r\n    /**\r\n     * Custom generate codes\r\n     * @returns {boolean}\r\n     */\r\n    hasGeneralCode() {\r\n      return !!this.$slots[\"code\"];\r\n    },\r\n\r\n    /**\r\n     * Check if has JS code slot\r\n     * @returns {boolean}\r\n     */\r\n    hasJsCode() {\r\n      return !!this.$slots[\"js\"];\r\n    },\r\n\r\n    /**\r\n     * Check if has SCSS code slot\r\n     * @returns {boolean}\r\n     */\r\n    hasScssCode() {\r\n      return !!this.$slots[\"scss\"];\r\n    },\r\n\r\n    /**\r\n     * Check if has HTML code slot\r\n     * @returns {boolean}\r\n     */\r\n    hasHtmlCode() {\r\n      return !!this.$slots[\"html\"];\r\n    }\r\n  }\r\n};\r\n</script>\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!./CodePreview.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!./CodePreview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CodePreview.vue?vue&type=template&id=773e0431\"\nimport script from \"./CodePreview.vue?vue&type=script&lang=js\"\nexport * from \"./CodePreview.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","// 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 { getSlot, 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<typeof baseMixins> {\n  $el: HTMLElement\n  isInGroup: boolean\n  isInList: boolean\n  isInMenu: boolean\n  isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().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<string>,\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<any>,\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<string, any> = {\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        if (!this.disabled) {\n          /* istanbul ignore else */\n          if (e.keyCode === keyCodes.enter) this.click(e)\n\n          this.$emit('keydown', e)\n        }\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 = getSlot(this, 'default', {\n      active: this.isActive,\n      toggle: this.toggle,\n    })\n\n    return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n  },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\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    }, getSlot(this))\n  },\n})\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n  convertToUnit,\n  keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData, PropType } 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    contentProps: {\n      type: Object as PropType<Record<string, any>>,\n      default: () => ({}),\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          ...this.contentProps,\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 (this.disableKeys) return\n\n      if (e.keyCode === keyCodes.esc) {\n        // Wait for dependent elements to close first\n        setTimeout(() => { this.isActive = false })\n        const activator = this.getActivator()\n        this.$nextTick(() => activator && activator.focus())\n      } else if (\n        !this.isActive &&\n        [keyCodes.up, keyCodes.down].includes(e.keyCode)\n      ) {\n        this.isActive = true\n      }\n\n      // Allow for isActive watcher to generate tile list\n      this.$nextTick(() => this.changeListIndex(e))\n    },\n    onResize () {\n      if (!this.isActive) return\n\n      // Account for screen resize\n      // and orientation change\n      // eslint-disable-next-line no-unused-expressions\n      this.$refs.content.offsetWidth\n      this.updateDimensions()\n\n      // When resizing to a smaller width\n      // content width is evaluated before\n      // the new activator width has been\n      // set, causing it to not size properly\n      // hacky but will revisit in the future\n      clearTimeout(this.resizeTimeout)\n      this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-menu',\n      class: {\n        'v-menu--attached':\n          this.attach === '' ||\n          this.attach === true ||\n          this.attach === 'attach',\n      },\n      directives: [{\n        arg: '500',\n        name: 'resize',\n        value: this.onResize,\n      }],\n    }\n\n    return h('div', data, [\n      !this.activator && this.genActivator(),\n      this.showLazyContent(() => [\n        this.$createElement(VThemeProvider, {\n          props: {\n            root: true,\n            light: this.light,\n            dark: this.dark,\n          },\n        }, [this.genTransition()]),\n      ]),\n    ])\n  },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'returnable',\n\n  props: {\n    returnValue: null as any,\n  },\n\n  data: () => ({\n    isActive: false,\n    originalValue: null as any,\n  }),\n\n  watch: {\n    isActive (val) {\n      if (val) {\n        this.originalValue = this.returnValue\n      } else {\n        this.$emit('update:return-value', this.originalValue)\n      }\n    },\n  },\n\n  methods: {\n    save (value: any) {\n      this.originalValue = value\n      setTimeout(() => {\n        this.isActive = false\n      })\n    },\n  },\n})\n","// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n  Stackable,\n  positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n  Activatable,\n  Detachable,\n)\n\ninterface dimensions {\n  top: number\n  left: number\n  bottom: number\n  right: number\n  width: number\n  height: number\n  offsetTop: number\n  scrollHeight: number\n  offsetLeft: number\n}\n\ninterface options extends ExtractVue<typeof baseMixins> {\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<options>().extend({\n  name: 'menuable',\n\n  props: {\n    allowOverflow: Boolean,\n    light: Boolean,\n    dark: Boolean,\n    maxWidth: {\n      type: [Number, String],\n      default: 'auto',\n    },\n    minWidth: [Number, String],\n    nudgeBottom: {\n      type: [Number, String],\n      default: 0,\n    },\n    nudgeLeft: {\n      type: [Number, String],\n      default: 0,\n    },\n    nudgeRight: {\n      type: [Number, String],\n      default: 0,\n    },\n    nudgeTop: {\n      type: [Number, String],\n      default: 0,\n    },\n    nudgeWidth: {\n      type: [Number, String],\n      default: 0,\n    },\n    offsetOverflow: Boolean,\n    positionX: {\n      type: Number,\n      default: null,\n    },\n    positionY: {\n      type: Number,\n      default: null,\n    },\n    zIndex: {\n      type: [Number, String],\n      default: null,\n    },\n  },\n\n  data: () => ({\n    activatorNode: [] as VNode[],\n    absoluteX: 0,\n    absoluteY: 0,\n    activatedBy: null as EventTarget | null,\n    activatorFixed: false,\n    dimensions: {\n      activator: {\n        top: 0,\n        left: 0,\n        bottom: 0,\n        right: 0,\n        width: 0,\n        height: 0,\n        offsetTop: 0,\n        scrollHeight: 0,\n        offsetLeft: 0,\n      },\n      content: {\n        top: 0,\n        left: 0,\n        bottom: 0,\n        right: 0,\n        width: 0,\n        height: 0,\n        offsetTop: 0,\n        scrollHeight: 0,\n      },\n    },\n    relativeYOffset: 0,\n    hasJustFocused: false,\n    hasWindow: false,\n    inputActivator: false,\n    isContentActive: false,\n    pageWidth: 0,\n    pageYOffset: 0,\n    stackClass: 'v-menu__content--active',\n    stackMinZIndex: 6,\n  }),\n\n  computed: {\n    computedLeft () {\n      const a = this.dimensions.activator\n      const c = this.dimensions.content\n      const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n      const minWidth = Math.max(a.width, c.width)\n      let left = 0\n      left += activatorLeft\n      if (this.left || (this.$vuetify.rtl && !this.right)) left -= (minWidth - a.width)\n      if (this.offsetX) {\n        const maxWidth = isNaN(Number(this.maxWidth))\n          ? a.width\n          : Math.min(a.width, Number(this.maxWidth))\n\n        left += this.left ? -maxWidth : a.width\n      }\n      if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n      if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n      return left\n    },\n    computedTop () {\n      const a = this.dimensions.activator\n      const c = this.dimensions.content\n      let top = 0\n\n      if (this.top) top += a.height - c.height\n      if (this.attach !== false) top += a.offsetTop\n      else top += a.top + this.pageYOffset\n      if (this.offsetY) top += this.top ? -a.height : a.height\n      if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n      if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n      return top\n    },\n    hasActivator (): boolean {\n      return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator\n    },\n    absoluteYOffset (): number {\n      return this.pageYOffset - this.relativeYOffset\n    },\n  },\n\n  watch: {\n    disabled (val) {\n      val && this.callDeactivate()\n    },\n    isActive (val) {\n      if (this.disabled) return\n\n      val ? this.callActivate() : this.callDeactivate()\n    },\n    positionX: 'updateDimensions',\n    positionY: 'updateDimensions',\n  },\n\n  beforeMount () {\n    this.hasWindow = typeof window !== 'undefined'\n\n    if (this.hasWindow) {\n      window.addEventListener('resize', this.updateDimensions, false)\n    }\n  },\n\n  beforeDestroy () {\n    if (this.hasWindow) {\n      window.removeEventListener('resize', this.updateDimensions, false)\n    }\n  },\n\n  methods: {\n    absolutePosition () {\n      return {\n        offsetTop: this.positionY || this.absoluteY,\n        offsetLeft: this.positionX || this.absoluteX,\n        scrollHeight: 0,\n        top: this.positionY || this.absoluteY,\n        bottom: this.positionY || this.absoluteY,\n        left: this.positionX || this.absoluteX,\n        right: this.positionX || this.absoluteX,\n        height: 0,\n        width: 0,\n      }\n    },\n    activate () {},\n    calcLeft (menuWidth: number) {\n      return convertToUnit(this.attach !== false\n        ? this.computedLeft\n        : this.calcXOverflow(this.computedLeft, menuWidth))\n    },\n    calcTop () {\n      return convertToUnit(this.attach !== false\n        ? this.computedTop\n        : this.calcYOverflow(this.computedTop))\n    },\n    calcXOverflow (left: number, menuWidth: number) {\n      const xOverflow = left + menuWidth - this.pageWidth + 12\n\n      if ((!this.left || this.right) && xOverflow > 0) {\n        left = Math.max(left - xOverflow, 0)\n      } else {\n        left = Math.max(left, 12)\n      }\n\n      return left + this.getOffsetLeft()\n    },\n    calcYOverflow (top: number) {\n      const documentHeight = this.getInnerHeight()\n      const toTop = this.absoluteYOffset + documentHeight\n      const activator = this.dimensions.activator\n      const contentHeight = this.dimensions.content.height\n      const totalHeight = top + contentHeight\n      const isOverflowing = toTop < totalHeight\n\n      // If overflowing bottom and offset\n      // TODO: set 'bottom' position instead of 'top'\n      if (isOverflowing &&\n        this.offsetOverflow &&\n        // If we don't have enough room to offset\n        // the overflow, don't offset\n        activator.top > contentHeight\n      ) {\n        top = this.pageYOffset + (activator.top - contentHeight)\n      // If overflowing bottom\n      } else if (isOverflowing && !this.allowOverflow) {\n        top = toTop - contentHeight - 12\n      // If overflowing top\n      } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n        top = this.absoluteYOffset + 12\n      }\n\n      return top < 12 ? 12 : top\n    },\n    callActivate () {\n      if (!this.hasWindow) return\n\n      this.activate()\n    },\n    callDeactivate () {\n      this.isContentActive = false\n\n      this.deactivate()\n    },\n    checkForPageYOffset () {\n      if (this.hasWindow) {\n        this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n      }\n    },\n    checkActivatorFixed () {\n      if (this.attach !== false) {\n        this.activatorFixed = false\n        return\n      }\n      let el = this.getActivator()\n      while (el) {\n        if (window.getComputedStyle(el).position === 'fixed') {\n          this.activatorFixed = true\n          return\n        }\n        el = el.offsetParent as HTMLElement\n      }\n      this.activatorFixed = false\n    },\n    deactivate () {},\n    genActivatorListeners () {\n      const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n      const onClick = listeners.click\n\n      if (onClick) {\n        listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n          if (this.openOnClick) {\n            onClick && onClick(e)\n          }\n\n          this.absoluteX = e.clientX\n          this.absoluteY = e.clientY\n        }\n      }\n\n      return listeners\n    },\n    getInnerHeight () {\n      if (!this.hasWindow) return 0\n\n      return window.innerHeight ||\n        document.documentElement.clientHeight\n    },\n    getOffsetLeft () {\n      if (!this.hasWindow) return 0\n\n      return window.pageXOffset ||\n        document.documentElement.scrollLeft\n    },\n    getOffsetTop () {\n      if (!this.hasWindow) return 0\n\n      return window.pageYOffset ||\n        document.documentElement.scrollTop\n    },\n    getRoundedBoundedClientRect (el: Element) {\n      const rect = el.getBoundingClientRect()\n      return {\n        top: Math.round(rect.top),\n        left: Math.round(rect.left),\n        bottom: Math.round(rect.bottom),\n        right: Math.round(rect.right),\n        width: Math.round(rect.width),\n        height: Math.round(rect.height),\n      }\n    },\n    measure (el: HTMLElement) {\n      if (!el || !this.hasWindow) return null\n\n      const rect = this.getRoundedBoundedClientRect(el)\n\n      // Account for activator margin\n      if (this.attach !== false) {\n        const style = window.getComputedStyle(el)\n\n        rect.left = parseInt(style.marginLeft!)\n        rect.top = parseInt(style.marginTop!)\n      }\n\n      return rect\n    },\n    sneakPeek (cb: () => void) {\n      requestAnimationFrame(() => {\n        const el = this.$refs.content\n\n        if (!el || el.style.display !== 'none') {\n          cb()\n          return\n        }\n\n        el.style.display = 'inline-block'\n        cb()\n        el.style.display = 'none'\n      })\n    },\n    startTransition () {\n      return new Promise<void>(resolve => requestAnimationFrame(() => {\n        this.isContentActive = this.hasJustFocused = this.isActive\n        resolve()\n      }))\n    },\n    updateDimensions () {\n      this.hasWindow = typeof window !== 'undefined'\n      this.checkActivatorFixed()\n      this.checkForPageYOffset()\n      this.pageWidth = document.documentElement.clientWidth\n\n      const dimensions: any = {\n        activator: { ...this.dimensions.activator },\n        content: { ...this.dimensions.content },\n      }\n\n      // Activator should already be shown\n      if (!this.hasActivator || this.absolute) {\n        dimensions.activator = this.absolutePosition()\n      } else {\n        const activator = this.getActivator()\n        if (!activator) return\n\n        dimensions.activator = this.measure(activator)\n        dimensions.activator.offsetLeft = activator.offsetLeft\n        if (this.attach !== false) {\n          // account for css padding causing things to not line up\n          // this is mostly for v-autocomplete, hopefully it won't break anything\n          dimensions.activator.offsetTop = activator.offsetTop\n        } else {\n          dimensions.activator.offsetTop = 0\n        }\n      }\n\n      // Display and hide to get dimensions\n      this.sneakPeek(() => {\n        if (this.$refs.content) {\n          if (this.$refs.content.offsetParent) {\n            const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n            this.relativeYOffset = window.pageYOffset + offsetRect.top\n            dimensions.activator.top -= this.relativeYOffset\n            dimensions.activator.left -= window.pageXOffset + offsetRect.left\n          }\n\n          dimensions.content = this.measure(this.$refs.content)\n        }\n\n        this.dimensions = dimensions\n      })\n    },\n  },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n  e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n  VInput,\n  Rippleable,\n  Comparable\n).extend({\n  name: 'selectable',\n\n  model: {\n    prop: 'inputValue',\n    event: 'change',\n  },\n\n  props: {\n    id: String,\n    inputValue: null as any,\n    falseValue: null as any,\n    trueValue: null as any,\n    multiple: {\n      type: Boolean,\n      default: null,\n    },\n    label: String,\n  },\n\n  data () {\n    return {\n      hasColor: this.inputValue,\n      lazyValue: this.inputValue,\n    }\n  },\n\n  computed: {\n    computedColor (): string | undefined {\n      if (!this.isActive) return undefined\n      if (this.color) return this.color\n      if (this.isDark && !this.appIsDark) return 'white'\n      return 'primary'\n    },\n    isMultiple (): boolean {\n      return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n    },\n    isActive (): boolean {\n      const value = this.value\n      const input = this.internalValue\n\n      if (this.isMultiple) {\n        if (!Array.isArray(input)) return false\n\n        return input.some(item => this.valueComparator(item, value))\n      }\n\n      if (this.trueValue === undefined || this.falseValue === undefined) {\n        return value\n          ? this.valueComparator(value, input)\n          : Boolean(input)\n      }\n\n      return this.valueComparator(input, this.trueValue)\n    },\n    isDirty (): boolean {\n      return this.isActive\n    },\n    rippleState (): string | undefined {\n      return !this.isDisabled && !this.validationState\n        ? undefined\n        : this.validationState\n    },\n  },\n\n  watch: {\n    inputValue (val) {\n      this.lazyValue = val\n      this.hasColor = val\n    },\n  },\n\n  methods: {\n    genLabel () {\n      const label = VInput.options.methods.genLabel.call(this)\n\n      if (!label) return label\n\n      label!.data!.on = {\n        // Label shouldn't cause the input to focus\n        click: prevent,\n      }\n\n      return label\n    },\n    genInput (type: string, attrs: object) {\n      return this.$createElement('input', {\n        attrs: Object.assign({\n          'aria-checked': this.isActive.toString(),\n          disabled: this.isDisabled,\n          id: this.computedId,\n          role: type,\n          type,\n        }, attrs),\n        domProps: {\n          value: this.value,\n          checked: this.isActive,\n        },\n        on: {\n          blur: this.onBlur,\n          change: this.onChange,\n          focus: this.onFocus,\n          keydown: this.onKeydown,\n          click: prevent,\n        },\n        ref: 'input',\n      })\n    },\n    onClick (e: Event) {\n      this.onChange()\n      this.$emit('click', e)\n    },\n    onChange () {\n      if (!this.isInteractive) return\n\n      const value = this.value\n      let input = this.internalValue\n\n      if (this.isMultiple) {\n        if (!Array.isArray(input)) {\n          input = []\n        }\n\n        const length = input.length\n\n        input = input.filter((item: any) => !this.valueComparator(item, value))\n\n        if (input.length === length) {\n          input.push(value)\n        }\n      } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n        input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n      } else if (value) {\n        input = this.valueComparator(input, value) ? null : value\n      } else {\n        input = !input\n      }\n\n      this.validate(true, input)\n      this.internalValue = input\n      this.hasColor = input\n    },\n    onFocus (e: FocusEvent) {\n      this.isFocused = true\n      this.$emit('focus', e)\n    },\n    onBlur (e: FocusEvent) {\n      this.isFocused = false\n      this.$emit('blur', e)\n    },\n    /** @abstract */\n    onKeydown (e: Event) {},\n  },\n})\n"],"sourceRoot":""}