UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

52 lines 4.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TransitionBezier = void 0; const bezier_js_1 = __importDefault(require("bezier-js")); /** * A simple bezier curve wrapper that can be used for transitions (x axis represents time) */ class TransitionBezier { /** * Creates a new transition bezier curve with the given easing * @param data The transition data */ constructor({ bezier, start = 0, duration, inEase = 0.5, outEase = 0.5, }) { this.bezier = bezier || new bezier_js_1.default({ x: 0, y: 0 }, { x: inEase, y: 0 }, { x: 1 - outEase, y: 1 }, { x: 1, y: 1 }); this.duration = duration; this.start = start; } /** * Retrieves the value for the given time * @param time The time * @returns The value */ get(time) { if (time < this.start) return 0; if (time > this.start + this.duration) return 1; return this.bezier.get((time - this.start) / this.duration).y; } /** * Creates a new bezier that branches from this bezier with the same velocity * @param time The time to branch at * @param data The new bezier data * @returns The created bezier */ branch(time, data) { time -= this.start; const bezier = this.bezier.split(time / this.duration).right; const [p1, p2] = bezier.points; return new TransitionBezier({ bezier: new bezier_js_1.default({ x: 0, y: 0 }, { x: p2.x - p1.x, y: p2.y - p1.y }, { x: 1 - ((data === null || data === void 0 ? void 0 : data.outEase) || 0.5), y: 1 }, { x: 1, y: 1 }), ...data, }); } } exports.TransitionBezier = TransitionBezier; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNpdGlvbkJlemllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9UcmFuc2l0aW9uQmV6aWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUErQjtBQUUvQjs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBS3pCOzs7T0FHRztJQUNILFlBQW1CLEVBQ2YsTUFBTSxFQUNOLEtBQUssR0FBRyxDQUFDLEVBQ1QsUUFBUSxFQUNSLE1BQU0sR0FBRyxHQUFHLEVBQ1osT0FBTyxHQUFHLEdBQUcsR0FZaEI7UUFDRyxJQUFJLENBQUMsTUFBTTtZQUNQLE1BQU07Z0JBQ04sSUFBSSxtQkFBTSxDQUNOLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQ1osRUFBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUMsRUFDakIsRUFBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQ3RCLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQ2YsQ0FBQztRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksR0FBRyxDQUFDLElBQVk7UUFDbkIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQ1QsSUFBWSxFQUNaLElBT0M7UUFFRCxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3RCxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDL0IsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1lBQ3hCLE1BQU0sRUFBRSxJQUFJLG1CQUFNLENBQ2QsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUMsRUFDWixFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxFQUNoQyxFQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxPQUFPLEtBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxFQUNyQyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUNmO1lBQ0QsR0FBRyxJQUFJO1NBQ1YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBaEZELDRDQWdGQyJ9