{"version":3,"sources":["webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts"],"names":["name","props","boilerplate","loading","tile","transition","type","types","default","computed","attrs","this","role","$attrs","classes","elevationClasses","isLoading","rootTypes","actions","article","avatar","button","card","chip","heading","image","paragraph","sentences","table","text","methods","genBone","$createElement","staticClass","genBones","bone","generator","Array","length","genStructure","children","mapBones","genSkeleton","on","afterEnter","beforeEnter","beforeLeave","leaveCancelled","resetStyles","bones","onBeforeEnter","el","display","onBeforeLeave","render","h","class","style","undefined"],"mappings":"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","file":"js/detail~favorites~selector.f95d1c1d.js","sourcesContent":["import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","// Styles\nimport './VSkeletonLoader.sass'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\nimport { PropValidator } from 'vue/types/options'\n\nexport interface HTMLSkeletonLoaderElement extends HTMLElement {\n _initialStyle?: {\n display: string | null\n transition: string\n }\n}\n\n/* @vue/component */\nexport default mixins(\n Elevatable,\n Measurable,\n Themeable,\n).extend({\n name: 'VSkeletonLoader',\n\n props: {\n boilerplate: Boolean,\n loading: Boolean,\n tile: Boolean,\n transition: String,\n type: String,\n types: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n },\n\n computed: {\n attrs (): object {\n if (!this.isLoading) return this.$attrs\n\n return !this.boilerplate ? {\n 'aria-busy': true,\n 'aria-live': 'polite',\n role: 'alert',\n ...this.$attrs,\n } : {}\n },\n classes (): object {\n return {\n 'v-skeleton-loader--boilerplate': this.boilerplate,\n 'v-skeleton-loader--is-loading': this.isLoading,\n 'v-skeleton-loader--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n isLoading (): boolean {\n return !('default' in this.$scopedSlots) || this.loading\n },\n rootTypes (): Record {\n return {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, card-heading',\n 'card-avatar': 'image, list-item-avatar',\n 'card-heading': 'heading',\n chip: 'chip',\n 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'heading, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'table-cell@6',\n 'table-cell': 'text',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n ...this.types,\n }\n },\n },\n\n methods: {\n genBone (text: string, children: VNode[]) {\n return this.$createElement('div', {\n staticClass: `v-skeleton-loader__${text} v-skeleton-loader__bone`,\n }, children)\n },\n genBones (bone: string): VNode[] {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [string, number]\n const generator = () => this.genStructure(type)\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(generator)\n },\n // Fix type when this is merged\n // https://github.com/microsoft/TypeScript/pull/33050\n genStructure (type?: string): any {\n let children = []\n type = type || this.type || ''\n const bone = this.rootTypes[type] || ''\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.indexOf(',') > -1) return this.mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.indexOf('@') > -1) return this.genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.indexOf(',') > -1) children = this.mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.indexOf('@') > -1) children = this.genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(this.genStructure(bone))\n\n return [this.genBone(type, children)]\n },\n genSkeleton () {\n const children = []\n\n if (!this.isLoading) children.push(getSlot(this))\n else children.push(this.genStructure())\n\n /* istanbul ignore else */\n if (!this.transition) return children\n\n /* istanbul ignore next */\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n // Only show transition when\n // content has been loaded\n on: {\n afterEnter: this.resetStyles,\n beforeEnter: this.onBeforeEnter,\n beforeLeave: this.onBeforeLeave,\n leaveCancelled: this.resetStyles,\n },\n }, children)\n },\n mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(this.genStructure)\n },\n onBeforeEnter (el: HTMLSkeletonLoaderElement) {\n this.resetStyles(el)\n\n if (!this.isLoading) return\n\n el._initialStyle = {\n display: el.style.display,\n transition: el.style.transition,\n }\n\n el.style.setProperty('transition', 'none', 'important')\n },\n onBeforeLeave (el: HTMLSkeletonLoaderElement) {\n el.style.setProperty('display', 'none', 'important')\n },\n resetStyles (el: HTMLSkeletonLoaderElement) {\n if (!el._initialStyle) return\n\n el.style.display = el._initialStyle.display || ''\n el.style.transition = el._initialStyle.transition\n\n delete el._initialStyle\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-skeleton-loader',\n attrs: this.attrs,\n on: this.$listeners,\n class: this.classes,\n style: this.isLoading ? this.measurableStyles : undefined,\n }, [this.genSkeleton()])\n },\n})\n"],"sourceRoot":""}