{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts"],"names":["name","provide","expansionPanels","this","props","accordion","disabled","flat","hover","focusable","inset","popout","readonly","tile","Boolean","computed","classes","created","$attrs","hasOwnProperty","Array","value","length","methods","updateItem","getValue","item","nextValue","index","toggleMethod","baseMixins","isActive","expansionPanel","beforeDestroy","render","h","showLazyContent","staticClass","directives","class","autoGrow","noResize","rowHeight","type","Number","default","validator","v","isNaN","parseFloat","rows","parseInt","noResizeHandle","watch","lazyValue","$nextTick","mounted","setTimeout","calculateInputHeight","input","$refs","height","minHeight","Math","genInput","onInput","onKeyDown","isFocused","e","ripple","disableIconRotate","expandIcon","hideActions","data","hasMousedown","isDisabled","isReadonly","onClick","genIcon","icon","$createElement","setBackgroundColor","attrs","tabindex","on","click","mousedown","mouseup","open","content","header","nextIsActive","groupClasses","registerContent","unregisterContent","registerHeader","vm","unregisterHeader","toggle","isBooted","String"],"mappings":"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","file":"js/chunk-2c95cd00.db8bfffa.js","sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n computed: {\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this)),\n ]),\n ]))\n },\n})\n","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions') ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n /* istanbul ignore else */\n if (this.content) this.content.isBooted = true\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n"],"sourceRoot":""}