{ slots }
) => h(BaseTransition, resolveTransitionProps(props), slots)
+export const TransitionPropsValidators = {
+ ...(BaseTransition as any).props,
+ name: String,
+ type: String,
+ // Cannot use Boolean otherwise it will be force casted to false when
+ // omitted
+ css: null,
+ duration: Object,
+ enterFromClass: String,
+ enterActiveClass: String,
+ enterToClass: String,
+ appearFromClass: String,
+ appearActiveClass: String,
+ appearToClass: String,
+ leaveFromClass: String,
+ leaveActiveClass: String,
+ leaveToClass: String
+}
+
if (__DEV__) {
- Transition.props = {
- ...(BaseTransition as any).props,
- name: String,
- type: String,
- // Cannot use Boolean otherwise it will be force casted to false when
- // omitted
- css: null,
- duration: Object,
- enterFromClass: String,
- enterActiveClass: String,
- enterToClass: String,
- appearFromClass: String,
- appearActiveClass: String,
- appearToClass: String,
- leaveFromClass: String,
- leaveActiveClass: String,
- leaveToClass: String
- }
+ Transition.props = TransitionPropsValidators
}
export function resolveTransitionProps({
removeTransitionClass,
ElementWithTransition,
getTransitionInfo,
- resolveTransitionProps
+ resolveTransitionProps,
+ TransitionPropsValidators
} from './Transition'
import {
Fragment,
VNode,
- Slots,
warn,
resolveTransitionHooks,
toRaw,
getCurrentInstance,
setTransitionHooks,
createVNode,
- onUpdated
+ onUpdated,
+ SetupContext
} from '@vue/runtime-core'
interface Position {
moveClass?: string
}
-export const TransitionGroup = {
- setup(props: TransitionGroupProps, { slots }: { slots: Slots }) {
+const TransitionGroupImpl = {
+ setup(props: TransitionGroupProps, { slots }: SetupContext) {
const instance = getCurrentInstance()!
const state = useTransitionState()
let prevChildren: VNode[]
}
}
+export const TransitionGroup = (TransitionGroupImpl as unknown) as {
+ new (): {
+ $props: TransitionGroupProps
+ }
+}
+
+if (__DEV__) {
+ const props = ((TransitionGroup as any).props = {
+ ...TransitionPropsValidators,
+ tag: String,
+ moveClass: String
+ })
+ delete props.mode
+}
+
function callPendingCbs(c: VNode) {
if (c.el._moveCb) {
c.el._moveCb()