{"version":3,"file":"VWindowItem.mjs","names":["makeComponentProps","makeGroupItemProps","useGroupItem","makeLazyProps","useLazy","useSsrBoot","MaybeTransition","Touch","computed","inject","nextTick","shallowRef","convertToUnit","genericComponent","propsFactory","useRender","VWindowGroupSymbol","VWindowSymbol","makeVWindowItemProps","reverseTransition","type","Boolean","String","default","undefined","transition","VWindowItem","name","directives","props","emits","val","setup","_ref","slots","window","groupItem","isBooted","Error","isTransitioning","hasTransition","value","isReversed","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","rootRef","clientHeight","onTransitionCancelled","onEnterTransition","el","onBeforeEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onAfterLeave","onLeaveCancelled","onEnter","hasContent","isSelected","_createVNode","_withDirectives","selectedClass","class","style","_vShow"],"sources":["../../../src/components/VWindow/VWindowItem.tsx"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport Touch from '@/directives/touch'\n\n// Utilities\nimport { computed, inject, nextTick, shallowRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VWindowGroupSymbol, VWindowSymbol } from './VWindow'\n\nexport const makeVWindowItemProps = propsFactory({\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n\n ...makeComponentProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n}, 'VWindowItem')\n\nexport const VWindowItem = genericComponent()({\n name: 'VWindowItem',\n\n directives: {\n Touch,\n },\n\n props: makeVWindowItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const window = inject(VWindowSymbol)\n const groupItem = useGroupItem(props, VWindowGroupSymbol)\n const { isBooted } = useSsrBoot()\n\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow')\n\n const isTransitioning = shallowRef(false)\n const hasTransition = computed(() => isBooted.value && (\n window.isReversed.value\n ? props.reverseTransition !== false\n : props.transition !== false\n ))\n\n function onAfterTransition () {\n if (!isTransitioning.value || !window) {\n return\n }\n\n // Finalize transition state.\n isTransitioning.value = false\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined\n }\n }\n }\n\n function onBeforeTransition () {\n if (isTransitioning.value || !window) {\n return\n }\n\n // Initialize transition state here.\n isTransitioning.value = true\n\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight)\n }\n\n window.transitionCount.value += 1\n }\n\n function onTransitionCancelled () {\n onAfterTransition() // This should have the same path as normal transition end.\n }\n\n function onEnterTransition (el: Element) {\n if (!isTransitioning.value) {\n return\n }\n\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight)\n })\n }\n\n const transition = computed(() => {\n const name = window.isReversed.value\n ? props.reverseTransition\n : props.transition\n\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition,\n }\n })\n\n const { hasContent } = useLazy(props, groupItem.isSelected)\n\n useRender(() => (\n \n \n { hasContent.value && slots.default?.() }\n \n \n ))\n\n return { groupItem }\n },\n})\n\nexport type VWindowItem = InstanceType\n"],"mappings":"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"}