{"version":3,"sources":["../../../src/components/VStepper/VStepperContent.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport {\n VTabTransition,\n VTabReverseTransition,\n} from '../transitions'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, FunctionalComponentOptions, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n RegistrableInject('stepper', 'v-stepper-content', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n $refs: {\n wrapper: HTMLElement\n }\n isVerticalProvided: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-content',\n\n inject: {\n isVerticalProvided: {\n from: 'isVertical',\n },\n },\n\n props: {\n step: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n height: 0 as number | string,\n // Must be null to allow\n // previous comparison\n isActive: null as boolean | null,\n isReverse: false,\n isVertical: this.isVerticalProvided,\n }\n },\n\n computed: {\n computedTransition (): FunctionalComponentOptions {\n return this.isReverse\n ? VTabReverseTransition\n : VTabTransition\n },\n styles (): object {\n if (!this.isVertical) return {}\n\n return {\n height: convertToUnit(this.height),\n }\n },\n },\n\n watch: {\n isActive (current, previous) {\n // If active and the previous state\n // was null, is just booting up\n if (current && previous == null) {\n this.height = 'auto'\n return\n }\n\n if (!this.isVertical) return\n\n if (this.isActive) this.enter()\n else this.leave()\n },\n },\n\n mounted () {\n this.$refs.wrapper.addEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.$refs.wrapper.removeEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n onTransition (e: TransitionEvent) {\n if (!this.isActive ||\n e.propertyName !== 'height'\n ) return\n\n this.height = 'auto'\n },\n enter () {\n let scrollHeight = 0\n\n // Render bug with height\n requestAnimationFrame(() => {\n scrollHeight = this.$refs.wrapper.scrollHeight\n })\n\n this.height = 0\n\n // Give the collapsing element time to collapse\n setTimeout(() => this.isActive && (this.height = (scrollHeight || 'auto')), 450)\n },\n leave () {\n this.height = this.$refs.wrapper.clientHeight\n setTimeout(() => (this.height = 0), 10)\n },\n toggle (step: string | number, reverse: boolean) {\n this.isActive = step.toString() === this.step.toString()\n this.isReverse = reverse\n },\n },\n\n render (h): VNode {\n const contentData = {\n staticClass: 'v-stepper__content',\n } as VNodeData\n const wrapperData = {\n staticClass: 'v-stepper__wrapper',\n style: this.styles,\n ref: 'wrapper',\n }\n\n if (!this.isVertical) {\n contentData.directives = [{\n name: 'show',\n value: this.isActive,\n }]\n }\n\n const wrapper = h('div', wrapperData, [this.$slots.default])\n const content = h('div', contentData, [wrapper])\n\n return h(this.computedTransition, {\n on: this.$listeners,\n }, [content])\n },\n})\n"],"sourceRoot":"","file":"VStepperContent.js"}