@sliiu/present-transition-fx 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COPYRIGHT +5 -0
- package/LICENSE +661 -0
- package/README.md +8 -2
- package/THIRD-PARTY-NOTICES.md +221 -0
- package/dist/cjs/2d.js +487 -0
- package/dist/cjs/3d.js +566 -0
- package/dist/cjs/geometry.js +141 -0
- package/dist/cjs/index.js +98 -0
- package/dist/cjs/morph-audit.js +603 -0
- package/dist/cjs/morph-match.js +103 -0
- package/dist/cjs/morph-path.js +649 -0
- package/dist/cjs/morph.js +223 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/registry.js +130 -0
- package/dist/cjs/snapshot.js +420 -0
- package/dist/cjs/twin.js +88 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/util.js +50 -0
- package/dist/cjs/webgl.js +271 -0
- package/dist/esm/2d.js +454 -0
- package/dist/esm/3d.js +538 -0
- package/dist/esm/geometry.js +127 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/morph-audit.js +558 -0
- package/dist/esm/morph-match.js +97 -0
- package/dist/esm/morph-path.js +636 -0
- package/dist/esm/morph.js +219 -0
- package/dist/esm/registry.js +91 -0
- package/dist/esm/snapshot.js +414 -0
- package/dist/esm/twin.js +84 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/util.js +43 -0
- package/dist/esm/webgl.js +231 -0
- package/dist/types/2d.d.ts +40 -0
- package/dist/types/3d.d.ts +38 -0
- package/dist/types/geometry.d.ts +38 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/morph-audit.d.ts +127 -0
- package/dist/types/morph-match.d.ts +28 -0
- package/dist/types/morph-path.d.ts +37 -0
- package/dist/types/morph.d.ts +2 -0
- package/dist/types/registry.d.ts +6 -0
- package/dist/types/snapshot.d.ts +19 -0
- package/dist/types/twin.d.ts +2 -0
- package/dist/types/types.d.ts +13 -0
- package/dist/types/util.d.ts +12 -0
- package/dist/types/webgl.d.ts +5 -0
- package/package.json +36 -4
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// 切换效果里可以脱离 DOM 核对的几何:分割的开合、轮子的轮辐、条纹的角、涟漪的圆心、剥离的折角。
|
|
3
|
+
// 播放函数只负责把这些字符串套到 clip-path / mask 上。
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.splitMotion = splitMotion;
|
|
6
|
+
exports.splitToken = splitToken;
|
|
7
|
+
exports.splitParamsFromToken = splitParamsFromToken;
|
|
8
|
+
exports.wheelSpokes = wheelSpokes;
|
|
9
|
+
exports.wheelPolygon = wheelPolygon;
|
|
10
|
+
exports.stripsClips = stripsClips;
|
|
11
|
+
exports.rippleAt = rippleAt;
|
|
12
|
+
exports.cellMask = cellMask;
|
|
13
|
+
exports.glitterToken = glitterToken;
|
|
14
|
+
exports.glitterParamsFromToken = glitterParamsFromToken;
|
|
15
|
+
exports.glitterSweep = glitterSweep;
|
|
16
|
+
exports.peelFlatClip = peelFlatClip;
|
|
17
|
+
/** orient=vert 左右分开,horz 上下分开。dir=in 从两侧收到中间,其余从中间向外展开。 */
|
|
18
|
+
function splitMotion(orient, dir) {
|
|
19
|
+
const vert = orient === "vert";
|
|
20
|
+
if (dir === "in")
|
|
21
|
+
return { kind: "meet", axis: vert ? "x" : "y" };
|
|
22
|
+
return { kind: "expand", clip: vert ? "inset(0 50% 0 50%)" : "inset(50% 0 50% 0)" };
|
|
23
|
+
}
|
|
24
|
+
/** 面板上的四档(中央向左右展开 / 左右向中央收缩 / …)和 OOXML orient+dir 互转。 */
|
|
25
|
+
function splitToken(orient, dir) {
|
|
26
|
+
return `${orient === "vert" ? "vert" : "horz"}${dir === "in" ? "In" : "Out"}`;
|
|
27
|
+
}
|
|
28
|
+
function splitParamsFromToken(token) {
|
|
29
|
+
const vert = token.startsWith("vert");
|
|
30
|
+
const inward = token.endsWith("In");
|
|
31
|
+
return { orient: vert ? "vert" : "horz", dir: inward ? "in" : "out" };
|
|
32
|
+
}
|
|
33
|
+
/** OOXML CT_WheelTransition 的 spokes。缺省 4。界面提供 1/2/3/4/8,其它 1–8 的整数照播。 */
|
|
34
|
+
function wheelSpokes(pattern) {
|
|
35
|
+
const n = Number(pattern);
|
|
36
|
+
if (!Number.isFinite(n))
|
|
37
|
+
return 4;
|
|
38
|
+
const rounded = Math.round(n);
|
|
39
|
+
if (rounded < 1 || rounded > 8)
|
|
40
|
+
return 4;
|
|
41
|
+
return rounded;
|
|
42
|
+
}
|
|
43
|
+
/** 固定点数的轮辐多边形,portion 0 收成射线,1 铺满画面。reverse 往反方向张开。 */
|
|
44
|
+
function wheelPolygon(spokes, portion, reverse) {
|
|
45
|
+
const n = Math.max(1, Math.min(8, Math.round(spokes)));
|
|
46
|
+
const steps = 6;
|
|
47
|
+
const p = Math.min(1, Math.max(0, portion));
|
|
48
|
+
const spin = reverse ? -1 : 1;
|
|
49
|
+
const pts = [];
|
|
50
|
+
for (let s = 0; s < n; s++) {
|
|
51
|
+
const startAng = spin * (s / n) * Math.PI * 2 - Math.PI / 2;
|
|
52
|
+
const sweep = spin * ((p * Math.PI * 2) / n);
|
|
53
|
+
pts.push("50% 50%");
|
|
54
|
+
for (let i = 0; i <= steps; i++) {
|
|
55
|
+
const ang = startAng + sweep * (i / steps);
|
|
56
|
+
const x = 50 + Math.cos(ang) * 90;
|
|
57
|
+
const y = 50 + Math.sin(ang) * 90;
|
|
58
|
+
pts.push(`${x.toFixed(2)}% ${y.toFixed(2)}%`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return `polygon(${pts.join(",")})`;
|
|
62
|
+
}
|
|
63
|
+
const STRIP_ORIGIN = {
|
|
64
|
+
topLeft: [100, 100],
|
|
65
|
+
topRight: [0, 100],
|
|
66
|
+
bottomLeft: [100, 0],
|
|
67
|
+
bottomRight: [0, 0],
|
|
68
|
+
};
|
|
69
|
+
/** 条纹沿 dir 扫过。dir 是运动方向(topLeft = 朝左上,即从右下进来)。三点同点数,方便插值。 */
|
|
70
|
+
function stripsClips(dir) {
|
|
71
|
+
const [ox, oy] = STRIP_ORIGIN[dir] ?? STRIP_ORIGIN.bottomRight;
|
|
72
|
+
const sx = ox === 0 ? 1 : -1;
|
|
73
|
+
const sy = oy === 0 ? 1 : -1;
|
|
74
|
+
const at = (dx, dy) => {
|
|
75
|
+
const x = ox + sx * dx;
|
|
76
|
+
const y = oy + sy * dy;
|
|
77
|
+
return `polygon(${x}% ${y}%, ${x}% ${y}%, ${ox}% ${oy}%, ${ox}% ${oy}%)`;
|
|
78
|
+
};
|
|
79
|
+
const end = "polygon(-15% -15%, 115% -15%, 115% 115%, -15% 115%)";
|
|
80
|
+
return [at(0, 0), at(70, 35), end];
|
|
81
|
+
}
|
|
82
|
+
/** 涟漪收缩的圆心。角方向用面板的 topLeft / topRight / bottomLeft / bottomRight。 */
|
|
83
|
+
function rippleAt(dir) {
|
|
84
|
+
switch (dir) {
|
|
85
|
+
case "topLeft":
|
|
86
|
+
return "0% 0%";
|
|
87
|
+
case "topRight":
|
|
88
|
+
return "100% 0%";
|
|
89
|
+
case "bottomLeft":
|
|
90
|
+
return "0% 100%";
|
|
91
|
+
case "bottomRight":
|
|
92
|
+
return "100% 100%";
|
|
93
|
+
default:
|
|
94
|
+
return "50% 50%";
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const DIAMOND_TILE = `<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><polygon points="14,2 26,14 14,26 2,14" fill="black"/></svg>`;
|
|
98
|
+
const HEX_TILE = `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="28" viewBox="0 0 32 28"><polygon points="8,2 24,2 30,14 24,26 8,26 2,14" fill="black"/></svg>`;
|
|
99
|
+
const HONEY_TILE = `<svg xmlns="http://www.w3.org/2000/svg" width="40" height="36" viewBox="0 0 40 36"><polygon points="12,3 28,3 36,18 28,33 12,33 4,18" fill="black"/></svg>`;
|
|
100
|
+
/** 闪耀的菱形 / 六边形,以及蜂巢的疏六边形。mask 里黑色是露出的部分。 */
|
|
101
|
+
function cellMask(kind) {
|
|
102
|
+
const svg = kind === "honeycomb" ? HONEY_TILE : kind === "hexagon" ? HEX_TILE : DIAMOND_TILE;
|
|
103
|
+
return `url("data:image/svg+xml,${encodeURIComponent(svg)}")`;
|
|
104
|
+
}
|
|
105
|
+
/** 面板上「方向 · 图案」和 params.dir + params.pattern 互转。缺省向左、菱形。 */
|
|
106
|
+
function glitterToken(dir, pattern) {
|
|
107
|
+
const d = dir === "right" || dir === "up" || dir === "down" ? String(dir) : "left";
|
|
108
|
+
const p = pattern === "hexagon" ? "hexagon" : "diamond";
|
|
109
|
+
return `${d}:${p}`;
|
|
110
|
+
}
|
|
111
|
+
function glitterParamsFromToken(token) {
|
|
112
|
+
const [rawDir, rawPattern] = token.split(":");
|
|
113
|
+
const dir = rawDir === "right" || rawDir === "up" || rawDir === "down" ? rawDir : "left";
|
|
114
|
+
const pattern = rawPattern === "hexagon" ? "hexagon" : "diamond";
|
|
115
|
+
return { dir, pattern };
|
|
116
|
+
}
|
|
117
|
+
/** 闪耀扫过的起点和终点。向左从左缘扫到右缘,其余镜像。 */
|
|
118
|
+
function glitterSweep(dir) {
|
|
119
|
+
switch (dir) {
|
|
120
|
+
case "right":
|
|
121
|
+
return { from: "120% 50%", to: "-20% 50%" };
|
|
122
|
+
case "up":
|
|
123
|
+
return { from: "50% 120%", to: "50% -20%" };
|
|
124
|
+
case "down":
|
|
125
|
+
return { from: "50% -20%", to: "50% 120%" };
|
|
126
|
+
default:
|
|
127
|
+
return { from: "-20% 50%", to: "120% 50%" };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** 剥离后仍平贴的那一块。towardRight 从左下角往右揭,否则从右下角往左揭。amount 0 整页,1 几乎揭完。 */
|
|
131
|
+
function peelFlatClip(towardRight, amount) {
|
|
132
|
+
const a = Math.min(1, Math.max(0, amount));
|
|
133
|
+
if (towardRight) {
|
|
134
|
+
const x = (a * 78).toFixed(1);
|
|
135
|
+
const y = (100 - a * 78).toFixed(1);
|
|
136
|
+
return `polygon(0% 0%, 100% 0%, 100% 100%, ${x}% ${y}%)`;
|
|
137
|
+
}
|
|
138
|
+
const x = (100 - a * 78).toFixed(1);
|
|
139
|
+
const y = (100 - a * 78).toFixed(1);
|
|
140
|
+
return `polygon(0% 0%, 100% 0%, ${x}% ${y}%, 0% 100%)`;
|
|
141
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.morphPairsWithIssues = exports.morphIssueCount = exports.morphCandidateFromShape = exports.formatMorphReadinessSummary = exports.formatMorphReadinessScoreLine = exports.formatMorphReadinessLine = exports.formatMorphPairCoverageBreakdownLine = exports.formatMorphMatchReasonBreakdown = exports.formatMorphLowestPathLine = exports.formatMorphDeckStatsLine = exports.formatMorphDeckReadinessLine = exports.formatMorphDeckChromeLines = exports.findWeakestMorphPair = exports.findStrongestMorphPair = exports.findMostIssueMorphPair = exports.findLowestPathCoverageMorphPair = exports.findHighestPathCoverageMorphPair = exports.findFirstIssueMorphPair = exports.filterMorphDeckEntries = exports.exportMorphUnmatchedShapesText = exports.exportMorphReadinessText = exports.exportMorphPairCompactText = exports.exportMorphPairCoverageText = exports.exportMorphIssuesCompactText = exports.exportMorphDeckReadinessText = exports.exportMorphDeckIssuesCompactText = exports.exportMorphDeckFilteredCompactText = exports.exportMorphDeckCompactText = exports.exportMorphDeckAuditText = exports.exportMorphAuditText = exports.countMorphPairsWithIssues = exports.countMorphPairsClean = exports.collectUnmatchedMorphShapesInDeck = exports.collectMorphCandidatesFromSlide = exports.averagePathMorphCoveragePercent = exports.averageMorphReadinessPercent = exports.averageMorphIssuesPerPair = exports.auditMorphSlides = exports.auditMorphDeck = exports.rectPathFromSize = exports.polygonPointsToPath = exports.pathToAbsolute = exports.parsePathCommands = exports.linePathFromPoints = exports.morphPathSignature = exports.morphPathCompatible = exports.makeMorphPathTween = exports.flattenPathToPoints = exports.ellipsePathFromSize = exports.alignClosedPolylines = void 0;
|
|
18
|
+
exports.runTransition = exports.registerTransition = exports.listTransitions = exports.getTransition = exports.wheelSpokes = exports.wheelPolygon = exports.stripsClips = exports.splitToken = exports.splitParamsFromToken = exports.splitMotion = exports.rippleAt = exports.peelFlatClip = exports.glitterToken = exports.glitterSweep = exports.glitterParamsFromToken = exports.cellMask = exports.morphSimilarity = exports.morphMatchReason = exports.morphGeometryHash = exports.matchMorphShapePairs = exports.summarizeMorphMatchReasons = exports.pathMorphCoveragePercent = exports.countMorphDeckIssues = exports.morphReadinessPercent = void 0;
|
|
19
|
+
var morph_path_1 = require("./morph-path");
|
|
20
|
+
Object.defineProperty(exports, "alignClosedPolylines", { enumerable: true, get: function () { return morph_path_1.alignClosedPolylines; } });
|
|
21
|
+
Object.defineProperty(exports, "ellipsePathFromSize", { enumerable: true, get: function () { return morph_path_1.ellipsePathFromSize; } });
|
|
22
|
+
Object.defineProperty(exports, "flattenPathToPoints", { enumerable: true, get: function () { return morph_path_1.flattenPathToPoints; } });
|
|
23
|
+
Object.defineProperty(exports, "makeMorphPathTween", { enumerable: true, get: function () { return morph_path_1.makeMorphPathTween; } });
|
|
24
|
+
Object.defineProperty(exports, "morphPathCompatible", { enumerable: true, get: function () { return morph_path_1.morphPathCompatible; } });
|
|
25
|
+
Object.defineProperty(exports, "morphPathSignature", { enumerable: true, get: function () { return morph_path_1.morphPathSignature; } });
|
|
26
|
+
Object.defineProperty(exports, "linePathFromPoints", { enumerable: true, get: function () { return morph_path_1.linePathFromPoints; } });
|
|
27
|
+
Object.defineProperty(exports, "parsePathCommands", { enumerable: true, get: function () { return morph_path_1.parsePathCommands; } });
|
|
28
|
+
Object.defineProperty(exports, "pathToAbsolute", { enumerable: true, get: function () { return morph_path_1.pathToAbsolute; } });
|
|
29
|
+
Object.defineProperty(exports, "polygonPointsToPath", { enumerable: true, get: function () { return morph_path_1.polygonPointsToPath; } });
|
|
30
|
+
Object.defineProperty(exports, "rectPathFromSize", { enumerable: true, get: function () { return morph_path_1.rectPathFromSize; } });
|
|
31
|
+
var morph_audit_1 = require("./morph-audit");
|
|
32
|
+
Object.defineProperty(exports, "auditMorphDeck", { enumerable: true, get: function () { return morph_audit_1.auditMorphDeck; } });
|
|
33
|
+
Object.defineProperty(exports, "auditMorphSlides", { enumerable: true, get: function () { return morph_audit_1.auditMorphSlides; } });
|
|
34
|
+
Object.defineProperty(exports, "averageMorphIssuesPerPair", { enumerable: true, get: function () { return morph_audit_1.averageMorphIssuesPerPair; } });
|
|
35
|
+
Object.defineProperty(exports, "averageMorphReadinessPercent", { enumerable: true, get: function () { return morph_audit_1.averageMorphReadinessPercent; } });
|
|
36
|
+
Object.defineProperty(exports, "averagePathMorphCoveragePercent", { enumerable: true, get: function () { return morph_audit_1.averagePathMorphCoveragePercent; } });
|
|
37
|
+
Object.defineProperty(exports, "collectMorphCandidatesFromSlide", { enumerable: true, get: function () { return morph_audit_1.collectMorphCandidatesFromSlide; } });
|
|
38
|
+
Object.defineProperty(exports, "collectUnmatchedMorphShapesInDeck", { enumerable: true, get: function () { return morph_audit_1.collectUnmatchedMorphShapesInDeck; } });
|
|
39
|
+
Object.defineProperty(exports, "countMorphPairsClean", { enumerable: true, get: function () { return morph_audit_1.countMorphPairsClean; } });
|
|
40
|
+
Object.defineProperty(exports, "countMorphPairsWithIssues", { enumerable: true, get: function () { return morph_audit_1.countMorphPairsWithIssues; } });
|
|
41
|
+
Object.defineProperty(exports, "exportMorphAuditText", { enumerable: true, get: function () { return morph_audit_1.exportMorphAuditText; } });
|
|
42
|
+
Object.defineProperty(exports, "exportMorphDeckAuditText", { enumerable: true, get: function () { return morph_audit_1.exportMorphDeckAuditText; } });
|
|
43
|
+
Object.defineProperty(exports, "exportMorphDeckCompactText", { enumerable: true, get: function () { return morph_audit_1.exportMorphDeckCompactText; } });
|
|
44
|
+
Object.defineProperty(exports, "exportMorphDeckFilteredCompactText", { enumerable: true, get: function () { return morph_audit_1.exportMorphDeckFilteredCompactText; } });
|
|
45
|
+
Object.defineProperty(exports, "exportMorphDeckIssuesCompactText", { enumerable: true, get: function () { return morph_audit_1.exportMorphDeckIssuesCompactText; } });
|
|
46
|
+
Object.defineProperty(exports, "exportMorphDeckReadinessText", { enumerable: true, get: function () { return morph_audit_1.exportMorphDeckReadinessText; } });
|
|
47
|
+
Object.defineProperty(exports, "exportMorphIssuesCompactText", { enumerable: true, get: function () { return morph_audit_1.exportMorphIssuesCompactText; } });
|
|
48
|
+
Object.defineProperty(exports, "exportMorphPairCoverageText", { enumerable: true, get: function () { return morph_audit_1.exportMorphPairCoverageText; } });
|
|
49
|
+
Object.defineProperty(exports, "exportMorphPairCompactText", { enumerable: true, get: function () { return morph_audit_1.exportMorphPairCompactText; } });
|
|
50
|
+
Object.defineProperty(exports, "exportMorphReadinessText", { enumerable: true, get: function () { return morph_audit_1.exportMorphReadinessText; } });
|
|
51
|
+
Object.defineProperty(exports, "exportMorphUnmatchedShapesText", { enumerable: true, get: function () { return morph_audit_1.exportMorphUnmatchedShapesText; } });
|
|
52
|
+
Object.defineProperty(exports, "filterMorphDeckEntries", { enumerable: true, get: function () { return morph_audit_1.filterMorphDeckEntries; } });
|
|
53
|
+
Object.defineProperty(exports, "findFirstIssueMorphPair", { enumerable: true, get: function () { return morph_audit_1.findFirstIssueMorphPair; } });
|
|
54
|
+
Object.defineProperty(exports, "findHighestPathCoverageMorphPair", { enumerable: true, get: function () { return morph_audit_1.findHighestPathCoverageMorphPair; } });
|
|
55
|
+
Object.defineProperty(exports, "findLowestPathCoverageMorphPair", { enumerable: true, get: function () { return morph_audit_1.findLowestPathCoverageMorphPair; } });
|
|
56
|
+
Object.defineProperty(exports, "findMostIssueMorphPair", { enumerable: true, get: function () { return morph_audit_1.findMostIssueMorphPair; } });
|
|
57
|
+
Object.defineProperty(exports, "findStrongestMorphPair", { enumerable: true, get: function () { return morph_audit_1.findStrongestMorphPair; } });
|
|
58
|
+
Object.defineProperty(exports, "findWeakestMorphPair", { enumerable: true, get: function () { return morph_audit_1.findWeakestMorphPair; } });
|
|
59
|
+
Object.defineProperty(exports, "formatMorphDeckChromeLines", { enumerable: true, get: function () { return morph_audit_1.formatMorphDeckChromeLines; } });
|
|
60
|
+
Object.defineProperty(exports, "formatMorphDeckReadinessLine", { enumerable: true, get: function () { return morph_audit_1.formatMorphDeckReadinessLine; } });
|
|
61
|
+
Object.defineProperty(exports, "formatMorphDeckStatsLine", { enumerable: true, get: function () { return morph_audit_1.formatMorphDeckStatsLine; } });
|
|
62
|
+
Object.defineProperty(exports, "formatMorphLowestPathLine", { enumerable: true, get: function () { return morph_audit_1.formatMorphLowestPathLine; } });
|
|
63
|
+
Object.defineProperty(exports, "formatMorphMatchReasonBreakdown", { enumerable: true, get: function () { return morph_audit_1.formatMorphMatchReasonBreakdown; } });
|
|
64
|
+
Object.defineProperty(exports, "formatMorphPairCoverageBreakdownLine", { enumerable: true, get: function () { return morph_audit_1.formatMorphPairCoverageBreakdownLine; } });
|
|
65
|
+
Object.defineProperty(exports, "formatMorphReadinessLine", { enumerable: true, get: function () { return morph_audit_1.formatMorphReadinessLine; } });
|
|
66
|
+
Object.defineProperty(exports, "formatMorphReadinessScoreLine", { enumerable: true, get: function () { return morph_audit_1.formatMorphReadinessScoreLine; } });
|
|
67
|
+
Object.defineProperty(exports, "formatMorphReadinessSummary", { enumerable: true, get: function () { return morph_audit_1.formatMorphReadinessSummary; } });
|
|
68
|
+
Object.defineProperty(exports, "morphCandidateFromShape", { enumerable: true, get: function () { return morph_audit_1.morphCandidateFromShape; } });
|
|
69
|
+
Object.defineProperty(exports, "morphIssueCount", { enumerable: true, get: function () { return morph_audit_1.morphIssueCount; } });
|
|
70
|
+
Object.defineProperty(exports, "morphPairsWithIssues", { enumerable: true, get: function () { return morph_audit_1.morphPairsWithIssues; } });
|
|
71
|
+
Object.defineProperty(exports, "morphReadinessPercent", { enumerable: true, get: function () { return morph_audit_1.morphReadinessPercent; } });
|
|
72
|
+
Object.defineProperty(exports, "countMorphDeckIssues", { enumerable: true, get: function () { return morph_audit_1.countMorphDeckIssues; } });
|
|
73
|
+
Object.defineProperty(exports, "pathMorphCoveragePercent", { enumerable: true, get: function () { return morph_audit_1.pathMorphCoveragePercent; } });
|
|
74
|
+
Object.defineProperty(exports, "summarizeMorphMatchReasons", { enumerable: true, get: function () { return morph_audit_1.summarizeMorphMatchReasons; } });
|
|
75
|
+
var morph_match_1 = require("./morph-match");
|
|
76
|
+
Object.defineProperty(exports, "matchMorphShapePairs", { enumerable: true, get: function () { return morph_match_1.matchMorphShapePairs; } });
|
|
77
|
+
Object.defineProperty(exports, "morphGeometryHash", { enumerable: true, get: function () { return morph_match_1.morphGeometryHash; } });
|
|
78
|
+
Object.defineProperty(exports, "morphMatchReason", { enumerable: true, get: function () { return morph_match_1.morphMatchReason; } });
|
|
79
|
+
Object.defineProperty(exports, "morphSimilarity", { enumerable: true, get: function () { return morph_match_1.morphSimilarity; } });
|
|
80
|
+
__exportStar(require("./types"), exports);
|
|
81
|
+
var geometry_1 = require("./geometry");
|
|
82
|
+
Object.defineProperty(exports, "cellMask", { enumerable: true, get: function () { return geometry_1.cellMask; } });
|
|
83
|
+
Object.defineProperty(exports, "glitterParamsFromToken", { enumerable: true, get: function () { return geometry_1.glitterParamsFromToken; } });
|
|
84
|
+
Object.defineProperty(exports, "glitterSweep", { enumerable: true, get: function () { return geometry_1.glitterSweep; } });
|
|
85
|
+
Object.defineProperty(exports, "glitterToken", { enumerable: true, get: function () { return geometry_1.glitterToken; } });
|
|
86
|
+
Object.defineProperty(exports, "peelFlatClip", { enumerable: true, get: function () { return geometry_1.peelFlatClip; } });
|
|
87
|
+
Object.defineProperty(exports, "rippleAt", { enumerable: true, get: function () { return geometry_1.rippleAt; } });
|
|
88
|
+
Object.defineProperty(exports, "splitMotion", { enumerable: true, get: function () { return geometry_1.splitMotion; } });
|
|
89
|
+
Object.defineProperty(exports, "splitParamsFromToken", { enumerable: true, get: function () { return geometry_1.splitParamsFromToken; } });
|
|
90
|
+
Object.defineProperty(exports, "splitToken", { enumerable: true, get: function () { return geometry_1.splitToken; } });
|
|
91
|
+
Object.defineProperty(exports, "stripsClips", { enumerable: true, get: function () { return geometry_1.stripsClips; } });
|
|
92
|
+
Object.defineProperty(exports, "wheelPolygon", { enumerable: true, get: function () { return geometry_1.wheelPolygon; } });
|
|
93
|
+
Object.defineProperty(exports, "wheelSpokes", { enumerable: true, get: function () { return geometry_1.wheelSpokes; } });
|
|
94
|
+
var registry_1 = require("./registry");
|
|
95
|
+
Object.defineProperty(exports, "getTransition", { enumerable: true, get: function () { return registry_1.getTransition; } });
|
|
96
|
+
Object.defineProperty(exports, "listTransitions", { enumerable: true, get: function () { return registry_1.listTransitions; } });
|
|
97
|
+
Object.defineProperty(exports, "registerTransition", { enumerable: true, get: function () { return registry_1.registerTransition; } });
|
|
98
|
+
Object.defineProperty(exports, "runTransition", { enumerable: true, get: function () { return registry_1.runTransition; } });
|