{"version":3,"sources":["webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///../../../src/mixins/bootable/index.ts","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///../../../src/components/VList/VListItem.ts"],"names":["isFontAwesome5","some","val","iconType","isSvgPath","test","icon","SIZE_MAP","VIcon","name","props","dense","disabled","left","right","size","Number","tag","type","required","default","computed","medium","hasClickListener","Boolean","this","listeners$","click","methods","getIcon","iconName","$slots","text","getSize","sizes","xSmall","small","large","xLarge","explicitSize","key","getDefaultData","staticClass","class","attrs","attrs$","on","getSvgWrapperData","fontSize","wrapperData","style","height","width","undefined","applyColors","data","themeClasses","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","h","renderSvgIcon","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","render","$_wrapperFor","functional","children","provide","isInList","list","inject","isInMenu","isInNav","expand","flat","nav","rounded","subheader","threeLine","twoLine","groups","classes","register","unregister","index","findIndex","g","content","splice","listClick","group","setBackgroundColor","eager","isBooted","hasContent","watch","isActive","created","showLazyContent","$","global","toAbsoluteIndex","toIntegerOrInfinity","lengthOfArrayLike","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","TypeError","max","Math","min","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","target","proto","forced","start","deleteCount","insertCount","actualDeleteCount","A","k","from","to","O","len","actualStart","argumentsLength","arguments","length","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","Array","callbackfn","baseMixins","directives","Ripple","isInGroup","inheritAttrs","activeClass","listItemGroup","inactive","link","selectable","value","proxyClass","isClickable","$attrs","hasOwnProperty","e","$el","blur","genAttrs","tabindex","String","toggle","inputValue","keydown","$scopedSlots","active","setTextColor"],"mappings":"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","file":"statics/js/chunk-74c33187.6a52f32f.js","sourcesContent":["import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n },\n})\n","// Utilities\nimport { removed } from '../../util/console'\n\n// Types\nimport Vue, { VNode } from 'vue'\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in \"isActive\" to automatically boot\n * Otherwise can be set manually\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'bootable',\n\n props: {\n eager: Boolean,\n },\n\n data: () => ({\n isBooted: false,\n }),\n\n computed: {\n hasContent (): boolean | undefined {\n return this.isBooted || this.eager || this.isActive\n },\n },\n\n watch: {\n isActive () {\n this.isBooted = true\n },\n },\n\n created () {\n /* istanbul ignore next */\n if ('lazy' in this.$attrs) {\n removed('lazy', this)\n }\n },\n\n methods: {\n showLazyContent (content?: () => VNode[]): VNode[] {\n return (this.hasContent && content) ? content() : [this.$createElement()]\n },\n },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n toggle () {\n if (this.to && this.inputValue === undefined) {\n this.isActive = !this.isActive\n }\n this.$emit('change')\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n },\n})\n"],"sourceRoot":""}