{"version":3,"sources":["webpack:///./src/components/AppSkeleton.vue?cd13","webpack:///src/components/AppSkeleton.vue","webpack:///./src/components/AppSkeleton.vue?1edd","webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///./src/components/AppSkeleton.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","height","type","staticRenderFns","name","props","required","String","width","mixins","boilerplate","loading","tile","transition","types","default","computed","role","$attrs","classes","elevationClasses","isLoading","rootTypes","actions","article","avatar","button","card","chip","heading","image","paragraph","sentences","table","text","methods","genBone","genBones","bone","generator","Array","length","genStructure","children","mapBones","genSkeleton","on","afterEnter","beforeEnter","beforeLeave","leaveCancelled","resetStyles","bones","onBeforeEnter","el","display","onBeforeLeave","h","class","style","undefined","component","VSkeletonLoader"],"mappings":"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","file":"js/chunk-3a6140ee.1707e41c.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-skeleton-loader',{staticClass:\"mx-auto\",attrs:{\"height\":_vm.height,\"type\":_vm.type,\"loading\":\"\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSkeleton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSkeleton.vue?vue&type=script&lang=js&\"","// 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, PropType } from 'vue'\nimport { getSlot } from '../../util/helpers'\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 as PropType>,\n default: () => ({}),\n },\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","import { render, staticRenderFns } from \"./AppSkeleton.vue?vue&type=template&id=1a278e48&\"\nimport script from \"./AppSkeleton.vue?vue&type=script&lang=js&\"\nexport * from \"./AppSkeleton.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n"],"sourceRoot":""}