Mission Control Dashboard - Initial implementation
This commit is contained in:
65
node_modules/motion-dom/dist/es/view/index.mjs
generated
vendored
Normal file
65
node_modules/motion-dom/dist/es/view/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
import { noop } from 'motion-utils';
|
||||
import { addToQueue } from './queue.mjs';
|
||||
|
||||
class ViewTransitionBuilder {
|
||||
constructor(update, options = {}) {
|
||||
this.currentSubject = "root";
|
||||
this.targets = new Map();
|
||||
this.notifyReady = noop;
|
||||
this.readyPromise = new Promise((resolve) => {
|
||||
this.notifyReady = resolve;
|
||||
});
|
||||
this.update = update;
|
||||
this.options = {
|
||||
interrupt: "wait",
|
||||
...options,
|
||||
};
|
||||
addToQueue(this);
|
||||
}
|
||||
get(subject) {
|
||||
this.currentSubject = subject;
|
||||
return this;
|
||||
}
|
||||
layout(keyframes, options) {
|
||||
this.updateTarget("layout", keyframes, options);
|
||||
return this;
|
||||
}
|
||||
new(keyframes, options) {
|
||||
this.updateTarget("new", keyframes, options);
|
||||
return this;
|
||||
}
|
||||
old(keyframes, options) {
|
||||
this.updateTarget("old", keyframes, options);
|
||||
return this;
|
||||
}
|
||||
enter(keyframes, options) {
|
||||
this.updateTarget("enter", keyframes, options);
|
||||
return this;
|
||||
}
|
||||
exit(keyframes, options) {
|
||||
this.updateTarget("exit", keyframes, options);
|
||||
return this;
|
||||
}
|
||||
crossfade(options) {
|
||||
this.updateTarget("enter", { opacity: 1 }, options);
|
||||
this.updateTarget("exit", { opacity: 0 }, options);
|
||||
return this;
|
||||
}
|
||||
updateTarget(target, keyframes, options = {}) {
|
||||
const { currentSubject, targets } = this;
|
||||
if (!targets.has(currentSubject)) {
|
||||
targets.set(currentSubject, {});
|
||||
}
|
||||
const targetData = targets.get(currentSubject);
|
||||
targetData[target] = { keyframes, options };
|
||||
}
|
||||
then(resolve, reject) {
|
||||
return this.readyPromise.then(resolve, reject);
|
||||
}
|
||||
}
|
||||
function animateView(update, defaultOptions = {}) {
|
||||
return new ViewTransitionBuilder(update, defaultOptions);
|
||||
}
|
||||
|
||||
export { ViewTransitionBuilder, animateView };
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
Reference in New Issue
Block a user