{"version":3,"file":"createTransition.mjs","names":["h","Transition","TransitionGroup","genericComponent","propsFactory","makeTransitionProps","disabled","Boolean","group","hideOnLeave","leaveAbsolute","mode","String","origin","createCssTransition","name","props","setup","_ref","slots","functions","onBeforeEnter","el","style","transformOrigin","onLeave","offsetTop","offsetLeft","offsetWidth","offsetHeight","_transitionInitialStyles","position","top","left","width","height","setProperty","onAfterLeave","tag","css","undefined","default","createJavascriptTransition","arguments","length","type","_ref2"],"sources":["../../../src/components/transitions/createTransition.ts"],"sourcesContent":["// Utilities\nimport { h, Transition, TransitionGroup } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { FunctionalComponent, PropType } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String,\n}, 'transition')\n\nexport function createCssTransition (\n name: string,\n origin?: string,\n mode?: string\n) {\n return genericComponent()({\n name,\n\n props: makeTransitionProps({\n mode,\n origin,\n }),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: HTMLElement) {\n if (props.origin) {\n el.style.transformOrigin = props.origin\n }\n },\n onLeave (el: HTMLElement) {\n if (props.leaveAbsolute) {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = `${offsetTop}px`\n el.style.left = `${offsetLeft}px`\n el.style.width = `${offsetWidth}px`\n el.style.height = `${offsetHeight}px`\n }\n\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important')\n }\n },\n onAfterLeave (el: HTMLElement) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n },\n }\n\n return () => {\n const tag = props.group ? TransitionGroup : Transition\n\n return h(tag as FunctionalComponent, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : { mode: props.mode }),\n ...(props.disabled ? {} : functions),\n }, slots.default)\n }\n },\n })\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n) {\n return genericComponent()({\n name,\n\n props: {\n mode: {\n type: String as PropType<'in-out' | 'out-in' | 'default'>,\n default: mode,\n },\n disabled: Boolean,\n group: Boolean,\n },\n\n setup (props, { slots }) {\n const tag = props.group ? TransitionGroup : Transition\n\n return () => {\n return h(tag as FunctionalComponent, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions),\n }, slots.default)\n }\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}