1 line
5.1 KiB
Plaintext
1 line
5.1 KiB
Plaintext
{"version":3,"file":"index.mjs","sources":["../../../src/view/index.ts"],"sourcesContent":["import { noop } from \"motion-utils\"\nimport type { GroupAnimation } from \"../animation/GroupAnimation\"\nimport { AnimationOptions, DOMKeyframesDefinition } from \"../animation/types\"\nimport { addToQueue } from \"./queue\"\nimport {\n ViewTransitionOptions,\n ViewTransitionTarget,\n ViewTransitionTargetDefinition,\n} from \"./types\"\nimport \"./types.global\"\n\nexport class ViewTransitionBuilder {\n private currentSubject: ViewTransitionTargetDefinition = \"root\"\n\n targets = new Map<ViewTransitionTargetDefinition, ViewTransitionTarget>()\n\n update: () => void | Promise<void>\n\n options: ViewTransitionOptions\n\n notifyReady: (value: GroupAnimation) => void = noop\n\n private readyPromise = new Promise<GroupAnimation>((resolve) => {\n this.notifyReady = resolve\n })\n\n constructor(\n update: () => void | Promise<void>,\n options: ViewTransitionOptions = {}\n ) {\n this.update = update\n this.options = {\n interrupt: \"wait\",\n ...options,\n }\n addToQueue(this)\n }\n\n get(subject: ViewTransitionTargetDefinition) {\n this.currentSubject = subject\n\n return this\n }\n\n layout(keyframes: DOMKeyframesDefinition, options?: AnimationOptions) {\n this.updateTarget(\"layout\", keyframes, options)\n\n return this\n }\n\n new(keyframes: DOMKeyframesDefinition, options?: AnimationOptions) {\n this.updateTarget(\"new\", keyframes, options)\n\n return this\n }\n\n old(keyframes: DOMKeyframesDefinition, options?: AnimationOptions) {\n this.updateTarget(\"old\", keyframes, options)\n\n return this\n }\n\n enter(keyframes: DOMKeyframesDefinition, options?: AnimationOptions) {\n this.updateTarget(\"enter\", keyframes, options)\n\n return this\n }\n\n exit(keyframes: DOMKeyframesDefinition, options?: AnimationOptions) {\n this.updateTarget(\"exit\", keyframes, options)\n\n return this\n }\n\n crossfade(options?: AnimationOptions) {\n this.updateTarget(\"enter\", { opacity: 1 }, options)\n this.updateTarget(\"exit\", { opacity: 0 }, options)\n\n return this\n }\n\n updateTarget(\n target: \"enter\" | \"exit\" | \"layout\" | \"new\" | \"old\",\n keyframes: DOMKeyframesDefinition,\n options: AnimationOptions = {}\n ) {\n const { currentSubject, targets } = this\n\n if (!targets.has(currentSubject)) {\n targets.set(currentSubject, {})\n }\n\n const targetData = targets.get(currentSubject)!\n\n targetData[target] = { keyframes, options }\n }\n\n then(resolve: () => void, reject?: () => void) {\n return this.readyPromise.then(resolve, reject)\n }\n}\n\nexport function animateView(\n update: () => void | Promise<void>,\n defaultOptions: ViewTransitionOptions = {}\n) {\n return new ViewTransitionBuilder(update, defaultOptions)\n}\n"],"names":[],"mappings":"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"} |