@lottiefiles/relottie-parse
Version:
Parse Lottie JSON format to LAST
1,789 lines (1,787 loc) • 58.9 kB
JavaScript
import { constantNumValues, constantStrValues } from './chunk-X5PT7L37.js';
import { TITLES } from '@lottiefiles/last';
var {
boolean: BT,
collection: CT,
custom: CUSTOM,
element: ET,
intBoolean: IBT,
number: NT,
object: OT,
string: ST
} = TITLES;
var animatedPropEntity = (parentTitle, kTitle) => {
return {
defaultTitle: `${parentTitle}-static`,
dependents: [
{
key: "k",
type: "Array",
title: kTitle,
childType: "Object",
parentTitle
},
{
key: "a",
type: "Constant",
title: IBT.animated,
parentTitle: {
defaultValue: 0,
values: {
0: `${parentTitle}-static`,
1: parentTitle
}
}
}
]
};
};
var animatedValueProp = {
...animatedPropEntity(OT.animatedValue, CT.keyframeList)
};
var animatedShapeProp = {
...animatedPropEntity(OT.animatedShape, CT.shapeKeyframeList)
};
var animatedPositionProp = {
...animatedPropEntity(OT.animatedPosition, CT.positionKeyframeList)
};
var animatedColorProp = {
...animatedPropEntity(OT.animatedColor, CT.keyframeList)
};
var animatedMultidimensionalProp = {
...animatedPropEntity(OT.animatedMultidimensional, CT.keyframeList)
};
var objectEntity = {
[CT.composition]: {
defaultTitle: OT.layerPrecomposition,
dependents: [
{
key: "ty",
type: "Constant",
title: NT.layerType,
parentTitle: {
prefix: "layer",
defaultValue: 0,
values: {
0: "precomposition",
1: "solid-color",
2: "image",
3: "null",
4: "shape",
5: "text",
6: "audio",
7: "video-placeholder",
8: "image-sequence",
9: "video",
10: "image-placeholder",
11: "guide",
12: "adjustment",
13: "camera",
14: "light",
15: "data"
}
}
}
]
},
[CT.shapeList]: {
defaultTitle: OT.shapeRectangle,
dependents: [
{
key: "ty",
type: "Constant",
title: ST.shapeType,
parentTitle: {
prefix: "shape",
defaultValue: "rc",
values: {
rc: "rectangle",
el: "ellipse",
// aka shape-polygon but default sy: 1
sr: "star",
sh: "path",
fl: "fill",
st: "stroke",
gf: "gradient-fill",
gs: "gradient-stroke",
gr: "group",
tr: "transform",
rd: "rounded-corners",
pb: "pucker-bloat",
mm: "merge",
tw: "twist",
op: "offset-path",
zz: "zig-zag",
"": "modifier",
rp: "repeater",
tm: "trim"
}
}
},
{
key: "sy",
type: "Constant",
title: NT.shapePolygonStarType,
parentTitle: {
prefix: "shape",
defaultValue: 1,
values: {
1: "star",
// NOTE: how to support it?
2: "polygon"
}
}
}
]
},
[CT.assets]: {
defaultTitle: OT.assetPrecomposition,
dependents: [
{ key: "w", type: "Number", title: NT.width, parentTitle: OT.assetImage },
{ key: "h", type: "Number", title: NT.height, parentTitle: OT.assetImage },
{
key: "t",
type: "Constant",
title: ST.assetType,
parentTitle: {
prefix: "asset",
defaultValue: "seq",
values: {
seq: "image",
3: "data-source"
}
}
},
{ key: "layers", type: "Array", title: CT.composition, parentTitle: OT.assetPrecomposition },
{ key: "mn", type: "String", title: ST.matchName, parentTitle: OT.assetPrecomposition },
{ key: "fr", type: "Number", title: NT.framerate, parentTitle: OT.assetPrecomposition },
{
key: "xt",
// integer-boolean
type: "Number",
title: IBT.extraComposition,
parentTitle: OT.assetPrecomposition
},
{ key: "p", type: "String", title: ST.filename, parentTitle: OT.assetFile },
{ key: "u", type: "String", title: ST.path, parentTitle: OT.assetFile },
{ key: "e", type: "Number", title: IBT.embedded, parentTitle: OT.assetFile }
]
},
[CT.effectList]: {
defaultTitle: OT.effectCustom,
dependents: [
{
key: "ty",
type: "Constant",
title: NT.effectType,
parentTitle: {
prefix: "effect",
defaultValue: 5,
values: {
25: "drop-shadow",
21: "fill",
29: "gaussian-blur",
28: "matte3",
24: "pro-levels",
22: "stroke",
20: "tint",
23: "tritone",
26: "radial-wipe",
32: "wavy",
34: "puppet",
33: "spherize",
7: "paint-over-transparent",
31: "mesh-warp",
27: "displacement-map",
5: "custom"
}
}
}
]
},
[CT.effectParamList]: {
defaultTitle: OT.effectParamSlider,
dependents: [
{
key: "ty",
type: "Constant",
title: NT.effectValueType,
parentTitle: {
defaultValue: 0,
prefix: "effect-param",
values: {
4: "checkbox",
2: "color",
7: "dropdown",
6: "ignored",
10: "layer",
3: "point",
0: "slider",
1: "angle"
}
}
}
]
},
[CT.layerStyleList]: {
defaultTitle: OT.layerStyleStroke,
dependents: [
{
key: "ty",
type: "Constant",
title: NT.layerStyleType,
parentTitle: {
prefix: CT.layerStyle,
defaultValue: 0,
values: {
0: "stroke",
1: "drop-shadow",
2: "inner-shadow",
3: "outer-glow",
4: "inner-glow",
5: "bevel-emboss",
6: "satin",
7: "color-overlay",
8: "gradient-overlay"
}
}
}
]
},
[ET.animatedPositionProp]: {
...animatedPositionProp
},
[ET.animatedShapeProp]: {
...animatedShapeProp
},
[ET.animatedShapeBezier]: {
defaultTitle: OT.bezier
},
[ET.animatedColorProp]: {
...animatedColorProp
},
[ET.animatedMultidimensionalProp]: {
...animatedMultidimensionalProp
},
[ET.anchorPoint]: {
...animatedPositionProp
},
[CT.keyframeList]: {
defaultTitle: OT.keyframe
},
[CT.keyframeValue]: {
defaultTitle: OT.bezier
},
[CT.keyframeEndValue]: {
defaultTitle: OT.bezier
},
[CT.positionKeyframeList]: {
defaultTitle: OT.positionKeyframe
},
[ET.keyframeInTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.keyframeListInTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.keyframeValueInTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.positionKeyframeInTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.positionKeyframeListInTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.keyframeBezierHandleInTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.shapeKeyframeInTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.keyframeOutTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.keyframeListOutTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.keyframeValueOutTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.positionKeyframeOutTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.positionKeyframeListOutTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.keyframeBezierHandleOutTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.shapeKeyframeOutTangent]: {
defaultTitle: OT.keyframeBezierHandle
},
[ET.translation]: {
defaultTitle: OT.animatedPositionStatic,
dependents: [
{
key: "k",
type: "Array",
title: CT.positionKeyframeList,
childType: "Object",
parentTitle: OT.animatedPosition
},
{
key: "a",
type: "Constant",
title: IBT.animated,
parentTitle: {
defaultValue: 0,
values: {
0: OT.animatedPositionStatic,
1: OT.animatedPosition
}
}
},
{
key: "s",
type: "Boolean",
title: BT.splitEnabled,
parentTitle: OT.splitVector
},
{ key: "x", type: "Object", title: ET.animatedValueProp, parentTitle: OT.splitVector },
{ key: "y", type: "Object", title: ET.animatedValueProp, parentTitle: OT.splitVector },
{ key: "z", type: "Object", title: ET.animatedValueProp, parentTitle: OT.splitVector }
]
},
[ET.layerTransformScale]: {
...animatedMultidimensionalProp
},
[ET.shapeTransformScale]: {
...animatedMultidimensionalProp
},
[ET.transformRepeaterScale]: {
...animatedMultidimensionalProp
},
[ET.textStyleScale]: {
...animatedMultidimensionalProp
},
[ET.rotationClockwise]: {
...animatedValueProp
},
[ET.polygonRotationClockwise]: {
...animatedValueProp
},
[ET.rotationX]: {
...animatedValueProp
},
[ET.rotationY]: {
...animatedValueProp
},
[ET.rotationZ]: {
...animatedValueProp
},
[ET.layerTransformSkew]: {
...animatedValueProp
},
[ET.shapeTransformSkew]: {
...animatedValueProp
},
[ET.transformRepeaterSkew]: {
...animatedValueProp
},
[ET.textStyleSkew]: {
...animatedValueProp
},
[ET.layerTransformSkewAxis]: {
...animatedValueProp
},
[ET.shapeTransformSkewAxis]: {
...animatedValueProp
},
[ET.transformRepeaterSkewAxis]: {
...animatedValueProp
},
[ET.textStyleSkewAxis]: {
...animatedValueProp
},
[ET.layerTransformOrientation]: {
...animatedMultidimensionalProp
},
[ET.shapeTransformOrientation]: {
...animatedMultidimensionalProp
},
[ET.transformRepeaterOrientation]: {
...animatedMultidimensionalProp
},
[ET.textStyleOrientation]: {
...animatedMultidimensionalProp
},
[ET.shapeRectangleSize]: {
...animatedMultidimensionalProp
},
[ET.layerStyleStrokeSize]: {
...animatedMultidimensionalProp
},
[ET.rounded]: {
...animatedValueProp
},
[ET.audioLevel]: {
...animatedMultidimensionalProp
},
[ET.shapeEllipseSize]: {
...animatedMultidimensionalProp
},
[ET.shapeGradientFillStartPoint]: {
...animatedMultidimensionalProp
},
[ET.shapeGradientStrokeStartPoint]: {
...animatedMultidimensionalProp
},
[ET.shapeGradientFillEndPoint]: {
...animatedMultidimensionalProp
},
[ET.shapeGradientStrokeEndPoint]: {
...animatedMultidimensionalProp
},
[ET.splitX]: {
...animatedValueProp
},
[ET.splitY]: {
...animatedValueProp
},
[ET.splitZ]: {
...animatedValueProp
},
[ET.effectValueAngle]: {
...animatedValueProp
},
[ET.effectValueCheckbox]: {
...animatedValueProp
},
[ET.effectValueColor]: {
...animatedColorProp
},
[ET.effectValueDropdown]: {
...animatedValueProp
},
[ET.effectValueLayer]: {
...animatedValueProp
},
[ET.effectValuePoint]: {
...animatedMultidimensionalProp
},
[ET.effectValueSlider]: {
...animatedValueProp
},
[ET.shapeFillOpacity]: {
...animatedValueProp
},
[ET.shapeGradientFillOpacity]: {
...animatedValueProp
},
[ET.shapeGradientStrokeOpacity]: {
...animatedValueProp
},
[ET.layerStyleOpacity]: {
...animatedValueProp
},
[ET.shapeStrokeOpacity]: {
...animatedValueProp
},
[ET.transformOpacity]: {
...animatedValueProp
},
[ET.maskOpacity]: {
...animatedValueProp
},
[ET.timeRemapping]: {
...animatedValueProp
},
[ET.dilate]: {
...animatedValueProp
},
[ET.perspective]: {
...animatedValueProp
},
[ET.highlightLength]: {
...animatedValueProp
},
[ET.highlightAngle]: {
...animatedValueProp
},
[OT.strokeDashDefault]: {
...animatedValueProp
},
[ET.miterLimitAlternative]: {
...animatedValueProp
},
[ET.shapePolygonOuterRadius]: {
...animatedValueProp
},
[ET.shapeStarOuterRadius]: {
...animatedValueProp
},
[ET.shapePolygonOuterRoundness]: {
...animatedValueProp
},
[ET.shapeStarOuterRoundness]: {
...animatedValueProp
},
[ET.shapePolygonPoints]: {
...animatedValueProp
},
[ET.shapeStarPoints]: {
...animatedValueProp
},
[ET.shapeZigZagsPoints]: {
...animatedValueProp
},
[ET.innerRadius]: {
...animatedValueProp
},
[ET.innerRoundness]: {
...animatedValueProp
},
[ET.amount]: {
...animatedValueProp
},
[ET.copies]: {
...animatedValueProp
},
[ET.shapeTrimOffset]: {
...animatedValueProp
},
[ET.radius]: {
...animatedValueProp
},
[CT.shapeKeyframeList]: {
defaultTitle: OT.shapeKeyframe
},
[CT.shapeKeyframeStart]: {
defaultTitle: OT.bezier
},
[OT.animatedShapeStatic]: {
defaultTitle: OT.bezier
},
[ET.shapeTrimStart]: {
...animatedValueProp
},
[ET.shapeTrimEnd]: {
...animatedValueProp
},
[ET.angle]: {
...animatedValueProp
},
[ET.miterLimit]: {
...animatedValueProp
},
[ET.roundness]: {
...animatedValueProp
},
[ET.shapeZigZagSize]: {
...animatedValueProp
},
[OT.layerStyleChokeSpread]: {
...animatedValueProp
},
[ET.chokeSpread]: {
...animatedValueProp
},
[ET.layerStyleBlendMode]: {
...animatedValueProp
},
[ET.blurSize]: {
...animatedValueProp
},
[ET.noise]: {
...animatedValueProp
},
[ET.distance]: {
...animatedValueProp
},
[ET.layerStyleColor]: {
...animatedColorProp
},
[ET.layerConceal]: {
...animatedValueProp
},
[ET.range]: {
...animatedValueProp
},
[ET.jitter]: {
...animatedValueProp
},
[ET.source]: {
...animatedValueProp
},
[ET.strength]: {
...animatedValueProp
},
[ET.bevelStyle]: {
...animatedValueProp
},
[ET.technique]: {
...animatedValueProp
},
[ET.soften]: {
...animatedValueProp
},
[ET.globalAngle]: {
...animatedValueProp
},
[ET.altitude]: {
...animatedValueProp
},
[ET.highlightMode]: {
...animatedValueProp
},
[ET.highlightColor]: {
...animatedValueProp
},
[ET.highlightOpacity]: {
...animatedValueProp
},
[ET.shadowMode]: {
...animatedValueProp
},
[ET.shadowColor]: {
...animatedColorProp
},
[ET.shadowOpacity]: {
...animatedValueProp
},
[ET.invert]: {
...animatedValueProp
},
[ET.smoothness]: {
...animatedValueProp
},
[ET.reverse]: {
...animatedValueProp
},
[ET.align]: {
...animatedValueProp
},
[OT.gradientOverlay]: {
...animatedValueProp
},
[ET.firstMargin]: {
...animatedValueProp
},
[ET.lastMargin]: {
...animatedValueProp
},
[ET.reversePath]: {
...animatedValueProp
},
[ET.forceAlignment]: {
...animatedValueProp
},
[ET.perpendicularToPath]: {
...animatedValueProp
},
[ET.strokeWidth]: {
...animatedValueProp
},
[ET.strokeHue]: {
...animatedValueProp
},
[ET.strokeSaturation]: {
...animatedValueProp
},
[ET.strokeBrightness]: {
...animatedValueProp
},
[ET.strokeOpacity]: {
...animatedValueProp
},
[ET.textFillColor]: {
...animatedColorProp
},
[ET.textFillHue]: {
...animatedValueProp
},
[ET.textFillBrightness]: {
...animatedValueProp
},
[ET.textFillOpacity]: {
...animatedValueProp
},
[ET.letterSpacing]: {
...animatedValueProp
},
[ET.textBlur]: {
...animatedValueProp
},
[ET.lineSpacing]: {
...animatedValueProp
},
[ET.textMinEase]: {
...animatedValueProp
},
[ET.textMaxEase]: {
...animatedValueProp
},
[ET.textMaxAmount]: {
...animatedValueProp
},
[ET.textSelectorStart]: {
...animatedValueProp
},
[ET.textSelectorEnd]: {
...animatedValueProp
},
[ET.shape]: {
...animatedShapeProp
},
[ET.maskVertices]: {
...animatedShapeProp
},
[ET.shapeFillColor]: {
...animatedColorProp
},
[ET.shapeStrokeColor]: {
...animatedMultidimensionalProp
},
[CT.documentStrokeColor]: {
...animatedColorProp
},
[CT.documentFillColor]: {
...animatedColorProp
},
[ET.shapeTrimCenter]: {
...animatedMultidimensionalProp
},
[ET.textGroupAlignment]: {
...animatedMultidimensionalProp
},
[CT.masksProperties]: {
defaultTitle: OT.mask
},
[CT.textFontList]: {
defaultTitle: OT.textFont
},
[ET.startOpacity]: {
...animatedValueProp
},
[ET.endOpacity]: {
...animatedValueProp
},
[CT.strokeDashList]: {
defaultTitle: OT.strokeDashDefault,
dependents: [
{
key: "n",
type: "Constant",
title: ST.strokeDashType,
parentTitle: {
prefix: "stroke-dash",
defaultValue: "d",
values: {
d: "default",
g: "gap",
o: "offset"
}
}
}
]
},
[ET.strokeLength]: {
...animatedValueProp
},
[CT.markers]: {
defaultTitle: OT.marker
},
[ET.textCharacterData]: {
defaultTitle: OT.characterShapes,
dependents: [
{ key: "shapes", type: "Array", title: CT.shapeList, parentTitle: OT.characterShapes },
{ key: "refId", type: "String", title: ST.idReference, parentTitle: OT.characterPrecomp },
{ key: "ks", type: "Object", title: ET.layerTransform, parentTitle: OT.characterPrecomp },
{ key: "ip", type: "Number", title: NT.inPoint, parentTitle: OT.characterPrecomp },
{ key: "op", type: "Number", title: NT.outPoint, parentTitle: OT.characterPrecomp },
{ key: "sr", type: "Number", title: NT.timeStretch, parentTitle: OT.characterPrecomp },
{ key: "st", type: "Number", title: NT.timeStart, parentTitle: OT.characterPrecomp }
]
},
[CT.textDocumentKeyframes]: {
defaultTitle: OT.textDocumentKeyframe
},
[CT.textRanges]: {
defaultTitle: OT.textRange
},
[CT.extraCompositions]: {
defaultTitle: OT.assetPrecomposition
},
[ET.selectorSmoothness]: {
...animatedValueProp
}
};
var createDependentTitles = (parentTitle, targetTitle, dependentKey = "ty") => {
const entityMap = objectEntity[parentTitle];
const dependents = entityMap?.dependents;
const node = dependents?.find((item) => item.key === dependentKey);
if (node?.type !== "Constant") return {};
const { prefix, values } = node.parentTitle;
const prefixTitle = prefix ? `${prefix}-` : "";
const titles = Object.values(values);
const result = {};
for (const title of titles) {
if (typeof title === "string") result[prefixTitle + title] = targetTitle;
}
return result;
};
var arrayEntity = {};
var getNoKeyEntity = (node, parentTitle) => {
switch (node.type) {
case "Object":
return objectEntity[parentTitle] || { defaultTitle: parentTitle };
case "Array":
return arrayEntity[parentTitle] || { defaultTitle: parentTitle };
default:
throw new Error("The node.type has to be 'Array' or 'Object'");
}
};
var stringEntity = {
required: {
p: {
// assets starts
[OT.assetImage]: ST.filename,
[OT.assetPrecomposition]: ST.filename,
[OT.assetDataSource]: ST.filename,
[OT.assetFile]: ST.filename
// assets ends
},
sc: { [OT.layerSolidColor]: ST.hexColor },
ch: { [CT.textCharacters]: ST.character },
fName: { [OT.textFont]: ST.fontName },
fStyle: { [OT.textFont]: ST.fontStyle },
style: { [CT.textCharacters]: ST.fontStyle },
fFamily: {
[OT.textFont]: ST.fontFamily,
[CT.textCharacters]: ST.fontFamily
},
f: { [ET.textDocument]: ST.fontFamily },
t: { [ET.textDocument]: ST.text }
},
known: {
x: {
[OT.animatedValue]: ST.expression,
[OT.animatedValueStatic]: ST.expression,
[OT.animatedShape]: ST.expression,
[OT.animatedShapeStatic]: ST.expression,
[OT.animatedPosition]: ST.expression,
[OT.animatedPositionStatic]: ST.expression,
[OT.animatedColor]: ST.expression,
[OT.animatedColorStatic]: ST.expression,
[OT.animatedMultidimensional]: ST.expression,
[OT.animatedMultidimensionalStatic]: ST.expression,
[ET.textAnimatedDocument]: ST.expression
},
v: { [OT.animation]: ST.version },
cm: { [OT.marker]: ST.markerComment },
a: { [ET.metadata]: ST.author },
k: { [ET.metadata]: ST.keyword },
d: { [ET.metadata]: ST.description },
tc: { [ET.metadata]: ST.themeColor },
g: { [ET.metadata]: ST.generator },
id: {
// assets starts
[OT.assetImage]: ST.idAssetImage,
[OT.assetPrecomposition]: ST.idAssetPrecomposition,
[OT.assetDataSource]: ST.idAssetDataSource,
[OT.assetFile]: ST.idAssetFile
// assets ends
},
refId: {
[OT.layerAudio]: ST.idSound,
[OT.layerPrecomposition]: ST.idReference,
[OT.layerImage]: ST.idImage,
[OT.layerData]: ST.idDataSource,
[OT.characterPrecomp]: ST.idReference
},
u: {
// assets starts
[OT.assetImage]: ST.path,
[OT.assetPrecomposition]: ST.path,
[OT.assetDataSource]: ST.path,
[OT.assetFile]: ST.path
// assets ends
},
nm: {
[OT.animation]: ST.name,
// assets starts
[OT.assetImage]: ST.name,
[OT.assetPrecomposition]: ST.name,
[OT.assetDataSource]: ST.name,
[OT.assetFile]: ST.name,
// assets ends
[OT.textRange]: ST.name,
[ET.transformRepeater]: ST.name,
[OT.animatedValue]: ST.name,
[OT.animatedValueStatic]: ST.name,
[OT.animatedShape]: ST.name,
[OT.animatedShapeStatic]: ST.name,
[OT.animatedPosition]: ST.name,
[OT.animatedPositionStatic]: ST.name,
[OT.animatedColor]: ST.name,
[OT.animatedColorStatic]: ST.name,
[OT.animatedMultidimensional]: ST.name,
[OT.animatedMultidimensionalStatic]: ST.name,
...createDependentTitles(CT.effectParamList, ST.name),
...createDependentTitles(CT.effectList, ST.name),
[OT.mask]: ST.name,
...createDependentTitles(CT.composition, ST.name),
...createDependentTitles(CT.shapeList, ST.name),
[OT.strokeDashDefault]: ST.name,
[OT.strokeDashGap]: ST.name,
[OT.strokeDashOffset]: ST.name,
// layer-style-layer starts
[OT.layerStyleBevelEmboss]: ST.name,
[OT.layerStyleColorOverlay]: ST.name,
[OT.layerStyleDropShadow]: ST.name,
[OT.layerStyleGradientOverlay]: ST.name,
[OT.layerStyleInnerShadow]: ST.name,
[OT.layerStyleOuterGlow]: ST.name,
[OT.layerStyleSatin]: ST.name,
[OT.layerStyleStroke]: ST.name,
// layer-style-layer ends
[ET.layerTransform]: ST.name
},
mn: {
[OT.animation]: ST.matchName,
[OT.animatedValue]: ST.matchName,
[OT.animatedValueStatic]: ST.matchName,
[OT.animatedShape]: ST.matchName,
[OT.animatedShapeStatic]: ST.matchName,
[OT.animatedPosition]: ST.matchName,
[OT.animatedPositionStatic]: ST.matchName,
[OT.animatedColor]: ST.matchName,
[OT.animatedColorStatic]: ST.matchName,
[OT.animatedMultidimensional]: ST.matchName,
[OT.animatedMultidimensionalStatic]: ST.matchName,
...createDependentTitles(CT.effectParamList, ST.matchName),
...createDependentTitles(CT.effectList, ST.matchName),
[OT.mask]: ST.matchName,
...createDependentTitles(CT.composition, ST.matchName),
...createDependentTitles(CT.shapeList, ST.matchName),
[OT.strokeDashDefault]: ST.matchName,
[OT.strokeDashGap]: ST.matchName,
[OT.strokeDashOffset]: ST.matchName,
// layer-style-layer starts
[OT.layerStyleBevelEmboss]: ST.name,
[OT.layerStyleColorOverlay]: ST.name,
[OT.layerStyleDropShadow]: ST.name,
[OT.layerStyleGradientOverlay]: ST.name,
[OT.layerStyleInnerShadow]: ST.name,
[OT.layerStyleOuterGlow]: ST.name,
[OT.layerStyleSatin]: ST.name,
[OT.layerStyleStroke]: ST.name,
// layer-style-layer ends
[ET.transformRepeater]: ST.matchName
},
ln: {
...createDependentTitles(CT.composition, ST.idLayerXml),
...createDependentTitles(CT.shapeList, ST.idLayerXml)
},
cl: {
...createDependentTitles(CT.composition, ST.cssClass),
...createDependentTitles(CT.shapeList, ST.cssClass)
},
fPath: { [OT.textFont]: ST.fontPath },
fWeight: { [OT.textFont]: ST.fontWeight },
fClass: { [OT.textFont]: ST.fontCssClass },
tg: {
...createDependentTitles(CT.composition, ST.layerXmlTagName)
},
t: { [OT.assetImage]: ST.assetImageType },
sid: {
[OT.animatedValue]: ST.slotId,
[OT.animatedValueStatic]: ST.slotId,
[OT.animatedShape]: ST.slotId,
[OT.animatedShapeStatic]: ST.slotId,
[OT.animatedPosition]: ST.slotId,
[OT.animatedPositionStatic]: ST.slotId,
[OT.animatedColor]: ST.slotId,
[OT.animatedColorStatic]: ST.slotId,
[OT.animatedMultidimensional]: ST.slotId,
[OT.animatedMultidimensionalStatic]: ST.slotId,
[ET.textAnimatedDocument]: ST.slotId,
[OT.assetImage]: ST.slotId
}
}
};
var stringConstantEntity = {
required: {
ty: {
...createDependentTitles(CT.composition, NT.layerType),
...createDependentTitles(CT.shapeList, ST.shapeType)
}
},
known: {
mode: { [OT.mask]: ST.maskMode },
n: {
[OT.strokeDashDefault]: ST.strokeDashType,
[OT.strokeDashGap]: ST.strokeDashType,
[OT.strokeDashOffset]: ST.strokeDashType
},
t: { [OT.assetImage]: ST.assetImageType }
}
};
var numberEntity = {
required: {
ip: {
[OT.animation]: NT.inPoint,
...createDependentTitles(CT.composition, NT.inPoint)
},
op: {
[OT.animation]: NT.outPoint,
...createDependentTitles(CT.composition, NT.outPoint),
[OT.characterPrecomp]: NT.outPoint
},
p: { [ET.animatedGradientColors]: NT.count },
k: {
[OT.animatedValueStatic]: NT.staticValue,
[OT.animatedMultidimensionalStatic]: NT.staticValue,
[OT.animatedPositionStatic]: NT.staticValue,
[OT.animatedValue]: NT.staticValue
},
w: {
[OT.animation]: NT.width,
[OT.assetImage]: NT.width,
[OT.assetPrecomposition]: NT.width,
[CT.textCharacters]: NT.width,
[OT.layerPrecomposition]: NT.width
},
sw: {
[OT.layerSolidColor]: NT.width,
[ET.textDocument]: NT.width
},
h: {
[OT.animation]: NT.height,
[OT.assetImage]: NT.height,
[OT.assetPrecomposition]: NT.height,
[OT.layerPrecomposition]: NT.height
},
sh: { [OT.layerSolidColor]: NT.height },
size: { [CT.textCharacters]: NT.fontSize },
ls: { [ET.textDocument]: NT.baselineShift },
t: {
[OT.keyframe]: NT.keyframeTime,
[CT.keyframeList]: NT.keyframeListTime,
[CT.keyframeValue]: NT.keyframeValueTime,
[OT.positionKeyframe]: NT.positionKeyframeTime,
[CT.positionKeyframeList]: NT.positionKeyframeListTime,
[OT.keyframeBezierHandle]: NT.keyframeBezierHandleTime,
[OT.shapeKeyframe]: NT.shapeKeyframeTime,
[OT.textDocumentKeyframe]: NT.timeStart
},
s: {
[ET.textDocument]: NT.fontSize
},
x: {
[OT.keyframe]: NT.keyframeXAxis,
[CT.keyframeList]: NT.keyframeListXAxis,
[CT.keyframeValue]: NT.keyframeValueXAxis,
[OT.positionKeyframe]: NT.positionKeyframeXAxis,
[CT.positionKeyframeList]: NT.positionKeyframeListXAxis,
[OT.keyframeBezierHandle]: NT.keyframeBezierHandleXAxis
},
y: {
[OT.keyframe]: NT.keyframeYAxis,
[CT.keyframeList]: NT.keyframeListYAxis,
[CT.keyframeValue]: NT.keyframeValueYAxis,
[OT.positionKeyframe]: NT.positionKeyframeYAxis,
[CT.positionKeyframeList]: NT.positionKeyframeListYAxis,
[OT.keyframeBezierHandle]: NT.keyframeBezierHandleYAxis
}
},
known: {
v: { [OT.effectParamIgnored]: NT.effectValueIgnored },
tm: { [OT.marker]: NT.markerTime },
dr: { [OT.marker]: NT.markerDuration },
sa: { [ET.motionBlur]: NT.shutterAngle },
sp: { [ET.motionBlur]: NT.shutterPhase },
spf: { [ET.motionBlur]: NT.samplesPerFrame },
asl: { [ET.motionBlur]: NT.adaptiveSampleLimit },
ix: {
...createDependentTitles(CT.shapeList, NT.propertyIndex),
...createDependentTitles(CT.effectList, NT.propertyIndex),
...createDependentTitles(CT.effectParamList, NT.propertyIndex),
[OT.animatedValue]: NT.propertyIndex,
[OT.animatedValueStatic]: NT.propertyIndex,
[OT.animatedShape]: NT.propertyIndex,
[OT.animatedShapeStatic]: NT.propertyIndex,
[OT.animatedPosition]: NT.propertyIndex,
[OT.animatedPositionStatic]: NT.propertyIndex,
[OT.animatedColor]: NT.propertyIndex,
[OT.animatedColorStatic]: NT.propertyIndex,
[OT.animatedMultidimensional]: NT.propertyIndex,
[OT.animatedMultidimensionalStatic]: NT.propertyIndex
},
ind: {
...createDependentTitles(CT.composition, NT.compositionIndex),
[OT.shapePath]: NT.shapePathIndex
},
cix: {
...createDependentTitles(CT.shapeList, NT.expressionPropertyIndex)
},
fr: {
[OT.animation]: NT.framerate,
[OT.assetPrecomposition]: NT.framerate
},
sr: {
...createDependentTitles(CT.composition, NT.timeStretch),
[OT.characterPrecomp]: NT.timeStretch
},
st: {
...createDependentTitles(CT.composition, NT.timeStart),
[OT.characterPrecomp]: NT.timeStart
},
l: {
[OT.animatedMultidimensional]: NT.length,
[OT.animatedMultidimensionalStatic]: NT.length,
[OT.animatedPosition]: NT.length,
[OT.animatedPositionStatic]: NT.length,
[ET.translation]: NT.length
},
parent: {
...createDependentTitles(CT.composition, NT.parentIndex)
},
tp: {
// layer-visual starts
[OT.layerPrecomposition]: NT.matteParent,
[OT.layerShape]: NT.matteParent,
[OT.layerSolidColor]: NT.matteParent,
[OT.layerImage]: NT.matteParent,
[OT.layerNull]: NT.matteParent,
[OT.layerText]: NT.matteParent
// layer-visual ends
},
ml: {
// shape-base-stroke starts
[OT.shapeGradientStroke]: NT.miterLimitValue,
[OT.shapeStroke]: NT.miterLimitValue
// shape-base-stroke ends
},
np: {
[OT.shapeGroup]: NT.numberOfProperties,
...createDependentTitles(CT.effectList, NT.effectPropertyCount)
},
ip: {
[OT.characterPrecomp]: NT.inPoint
},
ascent: {
[OT.textFont]: NT.ascent
},
lh: {
[ET.textDocument]: NT.lineHeight
},
tr: {
[ET.textDocument]: NT.textTracking
},
ls: {
[ET.textDocument]: NT.baselineShift
}
}
};
var numberConstantEntity = {
required: {
ty: {
...createDependentTitles(CT.composition, NT.layerType),
...createDependentTitles(CT.layerStyleList, NT.layerStyleType),
...createDependentTitles(CT.effectParamList, NT.effectType),
...createDependentTitles(CT.effectList, NT.effectType)
},
bm: {
...createDependentTitles(CT.composition, NT.blendMode),
...createDependentTitles(CT.shapeList, NT.blendMode)
},
d: {
[OT.shapeEllipse]: NT.shapeDirection,
[OT.shapePath]: NT.shapeDirection,
[OT.shapePolygon]: NT.shapeDirection,
[OT.shapeStar]: NT.shapeDirection,
[OT.shapeRectangle]: NT.shapeDirection
},
t: {
[OT.assetDataSource]: NT.dataSourceType
},
origin: { [OT.textFont]: NT.fontPathOrigin },
b: {
[ET.textSelector]: NT.textBased
},
sh: {
[ET.textSelector]: NT.textShape
}
},
known: {
tt: {
// layer-visual starts
[OT.layerPrecomposition]: NT.matteMode,
[OT.layerShape]: NT.matteMode,
[OT.layerSolidColor]: NT.matteMode,
[OT.layerImage]: NT.matteMode,
[OT.layerNull]: NT.matteMode,
[OT.layerText]: NT.matteMode
// layer-visual ends
},
m: {
[OT.shapeRepeater]: NT.composite,
[OT.shapeTrim]: NT.trimMultipleShapes,
[ET.textFollowPath]: NT.textMask
},
mm: {
[OT.shapeMerge]: NT.mergeMode
},
r: {
[OT.shapeFill]: NT.fillRule,
[OT.shapeGradientFill]: NT.fillRule,
[ET.textSelector]: NT.rangeUnits
},
t: {
[OT.shapeGradientFill]: NT.gradientType,
[OT.shapeGradientStroke]: NT.gradientType
},
gt: {
[OT.layerStyleGradientOverlay]: NT.gradientType
},
lc: {
// shape-base-stroke starts
[OT.shapeGradientStroke]: NT.lineCap,
[OT.shapeStroke]: NT.lineCap
// shape-base-stroke ends
},
lj: {
// shape-base-stroke starts
[OT.shapeGradientStroke]: NT.lineJoin,
[OT.shapeStroke]: NT.lineJoin,
// shape-base-stroke ends
[OT.shapeOffsetPath]: NT.lineJoin
},
sy: {
[OT.shapePolygon]: NT.shapePolygonStarType,
[OT.shapeStar]: NT.shapePolygonStarType
},
g: {
[ET.textAlignmentOptions]: NT.textGrouping
},
j: {
[ET.textDocument]: NT.textJustify
},
ca: {
[ET.textDocument]: NT.textCaps
},
vj: {
[ET.textDocument]: NT.textVerticalJustify
}
}
};
var nullEntity = {
required: {},
known: {}
};
var integerBooleanEntity = {
required: {
t: { [ET.textSelector]: IBT.expressible }
},
known: {
rn: { [ET.textSelector]: IBT.randomize },
ddd: {
[OT.animation]: IBT.threedimensional,
...createDependentTitles(CT.composition, IBT.layerThreedimensional)
},
ao: {
// layer-visual starts
[OT.layerPrecomposition]: IBT.autoOrient,
[OT.layerShape]: IBT.autoOrient,
[OT.layerSolidColor]: IBT.autoOrient,
[OT.layerImage]: IBT.autoOrient,
[OT.layerNull]: IBT.autoOrient,
[OT.layerText]: IBT.autoOrient
// layer-visual ends
},
a: {
[OT.animatedValue]: IBT.animated,
[OT.animatedValueStatic]: IBT.animated,
[OT.animatedShape]: IBT.animated,
[OT.animatedShapeStatic]: IBT.animated,
[OT.animatedPosition]: IBT.animated,
[OT.animatedPositionStatic]: IBT.animated,
[OT.animatedColor]: IBT.animated,
[OT.animatedColorStatic]: IBT.animated,
[OT.animatedMultidimensional]: IBT.animated,
[OT.animatedMultidimensionalStatic]: IBT.animated
},
e: {
[OT.assetImage]: IBT.embedded,
[OT.assetDataSource]: IBT.embedded,
[OT.assetFile]: IBT.embedded
},
en: {
...createDependentTitles(CT.effectList, IBT.enabled)
},
xt: { [OT.assetPrecomposition]: IBT.extraComposition },
h: {
[OT.keyframe]: IBT.hold,
[CT.keyframeList]: IBT.hold,
[CT.keyframeValue]: IBT.hold,
[OT.positionKeyframe]: IBT.hold,
[CT.positionKeyframeList]: IBT.hold,
[OT.keyframeBezierHandle]: IBT.hold,
[OT.shapeKeyframe]: IBT.hold
},
ct: {
// layer-visual starts
[OT.layerPrecomposition]: IBT.collapseTransformNew,
[OT.layerShape]: IBT.collapseTransformNew,
[OT.layerSolidColor]: IBT.collapseTransformNew,
[OT.layerImage]: IBT.collapseTransformNew,
[OT.layerNull]: IBT.collapseTransformNew,
[OT.layerText]: IBT.collapseTransformNew
// layer-visual ends
},
td: {
// layer-visual starts
[OT.layerPrecomposition]: IBT.matteTarget,
[OT.layerShape]: IBT.matteTarget,
[OT.layerSolidColor]: IBT.matteTarget,
[OT.layerImage]: IBT.matteTarget,
[OT.layerNull]: IBT.matteTarget,
[OT.layerText]: IBT.matteTarget
// layer-visual ends
}
}
};
var booleanEntity = {
required: {
s: {
[OT.splitVector]: BT.splitEnabled
}
},
known: {
c: {
[OT.bezier]: BT.bezierClosed
},
inv: { [OT.mask]: BT.inverted },
hd: {
...createDependentTitles(CT.composition, BT.hidden),
...createDependentTitles(CT.shapeList, BT.hidden)
},
cp: {
// layer-visual starts
[OT.layerPrecomposition]: BT.collapseTransform,
[OT.layerShape]: BT.collapseTransform,
[OT.layerSolidColor]: BT.collapseTransform,
[OT.layerImage]: BT.collapseTransform,
[OT.layerNull]: BT.collapseTransform,
[OT.layerText]: BT.collapseTransform
// layer-visual ends
},
hasMask: {
// layer-visual starts
[OT.layerPrecomposition]: BT.hasMask,
[OT.layerShape]: BT.hasMask,
[OT.layerSolidColor]: BT.hasMask,
[OT.layerImage]: BT.hasMask,
[OT.layerNull]: BT.hasMask,
[OT.layerText]: BT.hasMask
// layer-visual ends
},
mb: {
// layer-visual starts
[OT.layerPrecomposition]: BT.motionBlurEnabled,
[OT.layerShape]: BT.motionBlurEnabled,
[OT.layerSolidColor]: BT.motionBlurEnabled,
[OT.layerImage]: BT.motionBlurEnabled,
[OT.layerNull]: BT.motionBlurEnabled,
[OT.layerText]: BT.motionBlurEnabled
// layer-visual ends
},
of: {
[ET.textDocument]: BT.strokeOverFill
}
}
};
var collectionEntity = {
required: {
assets: { [OT.animation]: CT.assets },
layers: {
[OT.animation]: CT.composition,
[OT.assetPrecomposition]: CT.composition
},
shapes: {
[OT.layerShape]: CT.shapeList,
[OT.characterShapes]: CT.shapeList
},
ef: {
...createDependentTitles(CT.effectList, CT.effectParamList)
},
i: {
[OT.bezier]: CT.bezierInTangents
},
o: { [OT.bezier]: CT.bezierOutTangents },
v: { [OT.bezier]: CT.bezierVertices },
k: {
[ET.textAnimatedDocument]: CT.textDocumentKeyframes,
[OT.animatedValue]: CT.keyframeList,
[OT.animatedValueStatic]: CT.staticValues,
[OT.animatedMultidimensional]: CT.keyframeList,
[OT.animatedMultidimensionalStatic]: CT.staticValues,
[OT.animatedPosition]: CT.positionKeyframeList,
[OT.animatedPositionStatic]: CT.staticValues,
[OT.animatedColor]: CT.keyframeList,
[OT.animatedShape]: CT.shapeKeyframeList,
[OT.animatedColorStatic]: CT.colorRgba
},
a: {
[ET.textAnimatorData]: CT.textRanges
},
x: {
[OT.keyframeBezierHandle]: CT.bezierXAxis
},
y: {
[OT.keyframeBezierHandle]: CT.bezierYAxis
},
s: {
[OT.shapeKeyframe]: CT.shapeKeyframeStart
},
fc: { [ET.textDocument]: CT.documentFillColor }
},
known: {
k: {
[ET.metadata]: CT.keywords
},
comps: { [OT.animation]: CT.extraCompositions },
chars: { [OT.animation]: CT.textCharacters },
markers: { [OT.animation]: CT.markers },
masksProperties: {
// layer-visual starts
[OT.layerPrecomposition]: CT.masksProperties,
[OT.layerShape]: CT.masksProperties,
[OT.layerSolidColor]: CT.masksProperties,
[OT.layerImage]: CT.masksProperties,
[OT.layerNull]: CT.masksProperties,
[OT.layerText]: CT.masksProperties
// layer-visual ends
},
ef: {
// layer-visual starts
[OT.layerPrecomposition]: CT.effectList,
[OT.layerShape]: CT.effectList,
[OT.layerSolidColor]: CT.effectList,
[OT.layerImage]: CT.effectList,
[OT.layerNull]: CT.effectList,
[OT.layerText]: CT.effectList
// layer-visual ends
},
sy: {
// layer-visual starts
[OT.layerPrecomposition]: CT.layerStyle,
[OT.layerShape]: CT.layerStyle,
[OT.layerSolidColor]: CT.layerStyle,
[OT.layerImage]: CT.layerStyle,
[OT.layerNull]: CT.layerStyle,
[OT.layerText]: CT.layerStyle
// layer-visual ends
},
d: {
// shape-base-stroke starts
[OT.shapeGradientStroke]: CT.strokeDashList,
[OT.shapeStroke]: CT.strokeDashList
// shape-base-stroke ends
},
it: { [OT.shapeGroup]: CT.shapeList },
s: {
[OT.keyframe]: CT.keyframeValue,
[CT.keyframeList]: CT.keyframeValue,
[OT.positionKeyframe]: CT.keyframeValue,
[CT.positionKeyframeList]: CT.keyframeValue,
[OT.keyframeBezierHandle]: CT.keyframeValue
},
e: {
[OT.keyframe]: CT.keyframeEndValue,
[CT.keyframeList]: CT.keyframeEndValue,
[CT.keyframeValue]: CT.keyframeEndValue,
[OT.positionKeyframe]: CT.keyframeEndValue,
[CT.positionKeyframeList]: CT.keyframeEndValue,
[OT.keyframeBezierHandle]: CT.keyframeEndValue,
[OT.shapeKeyframe]: CT.keyframeEndValue
},
to: {
[OT.positionKeyframe]: CT.positionKeyframeOutTangents
},
ti: {
[OT.positionKeyframe]: CT.positionKeyframeInTangents
},
sz: { [ET.textDocument]: CT.wrapSize },
sc: {
[ET.textDocument]: CT.documentStrokeColor
},
ps: {
[ET.textDocument]: CT.wrapPosition
},
list: {
[ET.textFonts]: CT.textFontList
}
}
};
var elementEntity = {
required: {
r: {
// transform starts
[ET.layerTransform]: ET.rotationClockwise,
[OT.shapeTransform]: ET.rotationClockwise,
[ET.transformRepeater]: ET.rotationClockwise,
[ET.textStyle]: ET.rotationClockwise,
// transform ends
[OT.shapePolygon]: ET.polygonRotationClockwise,
[OT.shapeStar]: ET.polygonRotationClockwise,
[OT.shapeRectangle]: ET.rounded,
[OT.shapeRoundedCorners]: ET.radius
},
au: { [OT.layerAudio]: ET.layerAudioSettings },
t: { [OT.layerText]: ET.textAnimatorData },
pe: { [OT.layerCamera]: ET.perspective },
ks: {
// layer-visual starts
[OT.layerPrecomposition]: ET.layerTransform,
[OT.layerShape]: ET.layerTransform,
[OT.layerSolidColor]: ET.layerTransform,
[OT.layerImage]: ET.layerTransform,
[OT.layerNull]: ET.layerTransform,
[OT.layerText]: ET.layerTransform,
// layer-visual ends
[OT.layerCamera]: ET.layerTransform,
[OT.shapePath]: ET.animatedShapeProp
},
p: {
[OT.shapeEllipse]: ET.animatedPositionProp,
[OT.shapePolygon]: ET.animatedPositionProp,
[OT.shapeStar]: ET.animatedPositionProp,
[OT.shapeRectangle]: ET.animatedPositionProp,
[ET.textAnimatorData]: ET.textFollowPath,
[ET.slot]: ET.slotProperty
},
s: {
[OT.shapeEllipse]: ET.shapeEllipseSize,
[OT.shapeGradientFill]: ET.shapeGradientFillStartPoint,
[OT.shapeGradientStroke]: ET.shapeGradientStrokeStartPoint,
[OT.shapeRectangle]: ET.shapeRectangleSize,
[OT.shapeTrim]: ET.shapeTrimStart,
[OT.textDocumentKeyframe]: ET.textDocument,
[OT.layerStyleStroke]: ET.blurSize,
[OT.layerStyleDropShadow]: ET.blurSize,
[OT.layerStyleInnerShadow]: ET.blurSize,
[OT.layerStyleBevelEmboss]: ET.blurSize,
[OT.layerStyleSatin]: ET.blurSize
},
o: {
[OT.shapeFill]: ET.shapeFillOpacity,
[OT.shapeGradientFill]: ET.shapeGradientFillOpacity,
[OT.shapeTrim]: ET.shapeTrimOffset,
// shape-base-stroke starts
[OT.shapeGradientStroke]: ET.strokeOpacity,
[OT.shapeStroke]: ET.strokeOpacity
// shape-base-stroke ends
},
c: {
[OT.shapeFill]: ET.shapeFillColor,
[OT.shapeRepeater]: ET.copies,
[OT.shapeStroke]: ET.shapeStrokeColor
},
e: {
[OT.shapeGradientFill]: ET.shapeGradientFillEndPoint,
[OT.shapeGradientStroke]: ET.shapeGradientStrokeEndPoint,
[OT.shapeTrim]: ET.shapeTrimEnd
},
g: {
[OT.shapeGradientFill]: ET.animatedGradientColors,
[OT.shapeGradientStroke]: ET.animatedGradientColors
},
or: {
[OT.shapePolygon]: ET.shapePolygonOuterRadius,
[OT.shapeStar]: ET.shapeStarOuterRadius
},
os: {
[OT.shapePolygon]: ET.shapePolygonOuterRoundness,
[OT.shapeStar]: ET.shapeStarOuterRoundness
},
pt: {
[OT.shapePolygon]: ET.shapePolygonPoints,
[OT.shapeStar]: ET.shapeStarPoints
},
ir: {
[OT.shapeStar]: ET.innerRadius
},
is: {
[OT.shapeStar]: ET.innerRoundness
},
tr: {
[OT.shapeRepeater]: ET.transformRepeater
},
data: {
[CT.textCharacters]: ET.textCharacterData
},
a: {
[ET.textSelector]: ET.textMaxAmount
},
d: {
[ET.textAnimatorData]: ET.textAnimatedDocument
},
k: {
[OT.animatedShapeStatic]: ET.animatedShapeBezier,
[ET.animatedGradientColors]: ET.animatedMultidimensionalProp
},
lv: { [ET.layerAudioSettings]: ET.audioLevel },
x: {
[OT.splitVector]: ET.splitX
},
y: {
[OT.splitVector]: ET.splitY
},
z: {
[OT.splitVector]: ET.splitZ
},
lc: {
[OT.layerStyleDropShadow]: ET.layerConceal
},
m: {
[ET.textAnimatorData]: ET.textAlignmentOptions
},
w: {
// shape-base-stroke starts
[OT.shapeGradientStroke]: ET.strokeWidth,
[OT.shapeStroke]: ET.strokeWidth
// shape-base-stroke ends
}
},
known: {
xe: {
[ET.textSelector]: ET.textMaxEase
},
ne: {
[ET.textSelector]: ET.textMinEase
},
meta: { [OT.animation]: ET.metadata },
[ET.metadata]: { [OT.animation]: ET.userMetadata },
mb: { [OT.animation]: ET.motionBlur },
fonts: { [OT.animation]: ET.textFonts },
v: {
[OT.strokeDashDefault]: ET.strokeLength,
[OT.strokeDashGap]: ET.strokeLength,
[OT.strokeDashOffset]: ET.strokeLength,
[OT.effectParamAngle]: ET.effectValueAngle,
[OT.effectParamCheckbox]: ET.effectValueCheckbox,
[OT.effectParamColor]: ET.effectValueColor,
[OT.effectParamDropdown]: ET.effectValueDropdown,
[OT.effectParamLayer]: ET.effectValueLayer,
[OT.effectParamPoint]: ET.effectValuePoint,
[OT.effectParamSlider]: ET.effectValueSlider
},
rx: {
// transform starts
[ET.layerTransform]: ET.rotationX,
[OT.shapeTransform]: ET.rotationX,
[ET.transformRepeater]: ET.rotationX,
[ET.textStyle]: ET.rotationX
// transform ends
},
ry: {
// transform starts
[ET.layerTransform]: ET.rotationY,
[OT.shapeTransform]: ET.rotationY,
[ET.transformRepeater]: ET.rotationY,
[ET.textStyle]: ET.rotationY
// transform ends
},
rz: {
// transform starts
[ET.layerTransform]: ET.rotationZ,
[OT.shapeTransform]: ET.rotationZ,
[ET.transformRepeater]: ET.rotationZ,
[ET.textStyle]: ET.rotationZ
// transform ends
},
or: {
// transform starts
[ET.layerTransform]: ET.layerTransformOrientation,
[OT.shapeTransform]: ET.shapeTransformOrientation,
[ET.transformRepeater]: ET.transformRepeaterOrientation,
[ET.textStyle]: ET.textStyleOrientation
// transform ends
},
a: {
// transform starts
[ET.layerTransform]: ET.anchorPoint,
[ET.transformRepeater]: ET.anchorPoint,
[OT.shapeTransform]: ET.anchorPoint,
[ET.textStyle]: ET.anchorPoint,
// transform ends
[OT.shapeGradientFill]: ET.highlightAngle,
[OT.shapeGradientStroke]: ET.highlightAngle,
[OT.shapePuckerBloat]: ET.amount,
[OT.shapeTwist]: ET.angle,
[OT.shapeOffsetPath]: ET.amount,
[OT.textRange]: ET.textStyle,
[ET.textFollowPath]: ET.forceAlignment,
[ET.textSelector]: ET.textMaxAmount,
[ET.textAlignmentOptions]: ET.textGroupAlignment,
[OT.layerStyleDropShadow]: ET.angle,
[OT.layerStyleInnerShadow]: ET.angle,
[OT.layerStyleBevelEmboss]: ET.angle,
[OT.layerStyleSatin]: ET.angle,
[OT.layerStyleGradientOverlay]: ET.angle
},
s: {
// transform starts
[ET.layerTransform]: ET.layerTransformScale,
[OT.shapeTransform]: ET.shapeTransformScale,
[ET.transformRepeater]: ET.transformRepeaterScale,
[ET.textStyle]: ET.textStyleScale,
// transform ends
[OT.shapeZigZags]: ET.shapeZigZagSize,
[OT.textRange]: ET.textSelector,
[OT.layerStyleStroke]: ET.layerStyleStrokeSize,
[OT.layerStyleGradientOverlay]: ET.gradientOverlayScale,
[ET.textSelector]: ET.textSelectorStart
},
o: {
// transform starts
[ET.layerTransform]: ET.transformOpacity,
[OT.shapeTransform]: ET.transformOpacity,
[ET.transformRepeater]: ET.transformOpacity,
[ET.textStyle]: ET.transformOpacity,
// transform ends
[ET.textSelector]: ET.shapeTrimOffset,
[OT.shapeFill]: ET.shapeFillOpacity,
[OT.shapeGradientFill]: ET.shapeGradientFillOpacity,
[OT.shapeGradientStroke]: ET.shapeGradientStrokeOpacity,
[OT.shapeStroke]: ET.shapeStrokeOpacity,
[OT.mask]: ET.maskOpacity,
[OT.shapeRepeater]: ET.shapeTrimOffset,
[OT.keyframe]: ET.keyframeOutTangent,
[CT.keyframeList]: ET.keyframeListOutTangent,
[CT.keyframeValue]: ET.keyframeValueOutTangent,
[OT.positionKeyframe]: ET.positionKeyframeOutTangent,
[CT.positionKeyframeList]: ET.positionKeyframeListOutTangent,
[OT.keyframeBezierHandle]: ET.keyframeBezierHandleOutTangent,
[OT.shapeKeyframe]: ET.shapeKeyframeOutTangent,
[OT.layerStyleDropShadow]: ET.layerStyleOpacity,
[OT.layerStyleInnerShadow]: ET.layerStyleOpacity,
[OT.layerStyleBevelEmboss]: ET.layerStyleOpacity,
[OT.layerStyleSatin]: ET.layerStyleOpacity,
[OT.layerStyleColorOverlay]: ET.layerStyleOpacity,
[OT.layerStyleGradientOverlay]: ET.layerStyleOpacity
},
i: {
[OT.keyframe]: ET.keyframeInTangent,
[CT.keyframeList]: ET.keyframeListInTangent,
[CT.keyframeValue]: ET.keyframeValueInTangent,
[OT.positionKeyframe]: ET.positionKeyframeInTangent,
[CT.positionKeyframeList]: ET.positionKeyframeListInTangent,
[OT.keyframeBezierHandle]: ET.keyframeBezierHandleInTangent,
[OT.shapeKeyframe]: ET.shapeKeyframeInTangent
},
sk: {
// transform starts