@lumen5/lottie-web 5.14.0
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/.babelrc.json +3 -0
- package/.eslintrc.json +46 -0
- package/.gitattributes +1 -0
- package/.github/FUNDING.yml +1 -0
- package/.github/ISSUE_TEMPLATE.md +22 -0
- package/.github/workflows/publish.yml +26 -0
- package/.github/workflows/testAnimations.yml +29 -0
- package/.github/workflows/updateScreenshots.yml +34 -0
- package/CHANGELOG.md +601 -0
- package/History.md +1230 -0
- package/LICENSE.md +21 -0
- package/README.md +351 -0
- package/bower.json +31 -0
- package/build/old_parser/bodymovin_parser.jsx +3023 -0
- package/build/old_parser/helperProject.aep +0 -0
- package/build/player/cjs/lottie.min.js +18229 -0
- package/build/player/cjs/lottie_canvas.min.js +16465 -0
- package/build/player/cjs/lottie_html.min.js +16312 -0
- package/build/player/cjs/lottie_light.min.js +11584 -0
- package/build/player/cjs/lottie_light_canvas.min.js +13518 -0
- package/build/player/cjs/lottie_light_html.min.js +12843 -0
- package/build/player/cjs/lottie_svg.min.js +15053 -0
- package/build/player/esm/lottie.min.js +18225 -0
- package/build/player/esm/lottie_canvas.min.js +16461 -0
- package/build/player/esm/lottie_html.min.js +16308 -0
- package/build/player/esm/lottie_light.min.js +11580 -0
- package/build/player/esm/lottie_light_canvas.min.js +13514 -0
- package/build/player/esm/lottie_light_html.min.js +12839 -0
- package/build/player/esm/lottie_svg.min.js +15049 -0
- package/build/player/lottie.d.ts +5 -0
- package/build/player/lottie.js +17151 -0
- package/build/player/lottie.min.js +1 -0
- package/build/player/lottie_canvas.js +15506 -0
- package/build/player/lottie_canvas.min.js +1 -0
- package/build/player/lottie_canvas_worker.js +18196 -0
- package/build/player/lottie_canvas_worker.min.js +15 -0
- package/build/player/lottie_html.d.ts +5 -0
- package/build/player/lottie_html.js +15354 -0
- package/build/player/lottie_html.min.js +1 -0
- package/build/player/lottie_light.d.ts +5 -0
- package/build/player/lottie_light.js +10854 -0
- package/build/player/lottie_light.min.js +1 -0
- package/build/player/lottie_light_canvas.d.ts +5 -0
- package/build/player/lottie_light_canvas.js +12666 -0
- package/build/player/lottie_light_canvas.min.js +1 -0
- package/build/player/lottie_light_html.d.ts +5 -0
- package/build/player/lottie_light_html.js +12029 -0
- package/build/player/lottie_light_html.min.js +1 -0
- package/build/player/lottie_svg.d.ts +5 -0
- package/build/player/lottie_svg.js +14179 -0
- package/build/player/lottie_svg.min.js +1 -0
- package/build/player/lottie_worker.js +18196 -0
- package/build/player/lottie_worker.min.js +15 -0
- package/docs/json/animation.json +101 -0
- package/docs/json/effects/angle.json +40 -0
- package/docs/json/effects/checkBox.json +40 -0
- package/docs/json/effects/color.json +40 -0
- package/docs/json/effects/customValue.json +4 -0
- package/docs/json/effects/dropDown.json +40 -0
- package/docs/json/effects/fill.json +55 -0
- package/docs/json/effects/group.json +41 -0
- package/docs/json/effects/index.json +51 -0
- package/docs/json/effects/layer.json +33 -0
- package/docs/json/effects/noValue.json +1 -0
- package/docs/json/effects/point.json +43 -0
- package/docs/json/effects/proLevels.json +130 -0
- package/docs/json/effects/slider.json +40 -0
- package/docs/json/effects/stroke.json +64 -0
- package/docs/json/effects/tint.json +43 -0
- package/docs/json/effects/tritone.json +46 -0
- package/docs/json/helpers/blendMode.json +71 -0
- package/docs/json/helpers/boolean.json +14 -0
- package/docs/json/helpers/composite.json +15 -0
- package/docs/json/helpers/lineCap.json +19 -0
- package/docs/json/helpers/lineJoin.json +19 -0
- package/docs/json/helpers/mask.json +80 -0
- package/docs/json/helpers/textBased.json +23 -0
- package/docs/json/helpers/textGrouping.json +23 -0
- package/docs/json/helpers/textShape.json +31 -0
- package/docs/json/helpers/transform.json +146 -0
- package/docs/json/layers/image.json +113 -0
- package/docs/json/layers/null.json +87 -0
- package/docs/json/layers/preComp.json +118 -0
- package/docs/json/layers/shape.json +157 -0
- package/docs/json/layers/solid.json +120 -0
- package/docs/json/layers/text.json +523 -0
- package/docs/json/properties/doubleKeyframe.json +50 -0
- package/docs/json/properties/multiDimensional.json +21 -0
- package/docs/json/properties/multiDimensionalKeyframed.json +35 -0
- package/docs/json/properties/offsetKeyframe.json +53 -0
- package/docs/json/properties/shape.json +27 -0
- package/docs/json/properties/shapeKeyframed.json +35 -0
- package/docs/json/properties/shapeProp.json +50 -0
- package/docs/json/properties/shapePropKeyframe.json +54 -0
- package/docs/json/properties/value.json +21 -0
- package/docs/json/properties/valueKeyframe.json +33 -0
- package/docs/json/properties/valueKeyframed.json +25 -0
- package/docs/json/shapes/ellipse.json +54 -0
- package/docs/json/shapes/fill.json +48 -0
- package/docs/json/shapes/gFill.json +107 -0
- package/docs/json/shapes/gStroke.json +137 -0
- package/docs/json/shapes/group.json +89 -0
- package/docs/json/shapes/merge.json +27 -0
- package/docs/json/shapes/rect.json +66 -0
- package/docs/json/shapes/repeater.json +63 -0
- package/docs/json/shapes/round.json +35 -0
- package/docs/json/shapes/shape.json +40 -0
- package/docs/json/shapes/star.json +133 -0
- package/docs/json/shapes/stroke.json +78 -0
- package/docs/json/shapes/transform.json +102 -0
- package/docs/json/shapes/trim.json +61 -0
- package/docs/json/sources/chars.json +61 -0
- package/docs/json/sources/image.json +31 -0
- package/docs/json/sources/precomp.json +39 -0
- package/index.d.ts +197 -0
- package/package.json +54 -0
- package/player/index.html +115 -0
- package/player/js/3rd_party/BezierEaser.js +158 -0
- package/player/js/3rd_party/howler.js +5 -0
- package/player/js/3rd_party/seedrandom.js +237 -0
- package/player/js/3rd_party/transformation-matrix.js +449 -0
- package/player/js/EffectsManager.js +83 -0
- package/player/js/animation/AnimationItem.js +809 -0
- package/player/js/animation/AnimationItemWorkerOverride.js +157 -0
- package/player/js/animation/AnimationManager.js +248 -0
- package/player/js/animation/AnimationManagerWorkerOverride.js +201 -0
- package/player/js/effects/EffectsManagerPlaceholder.js +5 -0
- package/player/js/effects/SliderEffect.js +37 -0
- package/player/js/effects/TransformEffect.js +44 -0
- package/player/js/elements/AudioElement.js +102 -0
- package/player/js/elements/BaseElement.js +78 -0
- package/player/js/elements/BaseTextElement.js +4 -0
- package/player/js/elements/CompElement.js +107 -0
- package/player/js/elements/FootageElement.js +47 -0
- package/player/js/elements/ImageElement.js +42 -0
- package/player/js/elements/NullElement.js +39 -0
- package/player/js/elements/ShapeElement.js +76 -0
- package/player/js/elements/SolidElement.js +23 -0
- package/player/js/elements/TextElement.js +94 -0
- package/player/js/elements/canvasElements/CVBaseElement.js +167 -0
- package/player/js/elements/canvasElements/CVCompBaseElement.js +11 -0
- package/player/js/elements/canvasElements/CVCompElement.js +57 -0
- package/player/js/elements/canvasElements/CVContextData.js +239 -0
- package/player/js/elements/canvasElements/CVEffects.js +57 -0
- package/player/js/elements/canvasElements/CVImageElement.js +58 -0
- package/player/js/elements/canvasElements/CVMaskElement.js +72 -0
- package/player/js/elements/canvasElements/CVShapeElement.js +521 -0
- package/player/js/elements/canvasElements/CVSolidElement.js +30 -0
- package/player/js/elements/canvasElements/CVTextElement.js +244 -0
- package/player/js/elements/canvasElements/effects/CVGaussianBlurEffect.js +29 -0
- package/player/js/elements/canvasElements/effects/CVTransformEffect.js +9 -0
- package/player/js/elements/helpers/FrameElement.js +54 -0
- package/player/js/elements/helpers/HierarchyElement.js +52 -0
- package/player/js/elements/helpers/RenderableDOMElement.js +72 -0
- package/player/js/elements/helpers/RenderableElement.js +87 -0
- package/player/js/elements/helpers/TransformElement.js +140 -0
- package/player/js/elements/helpers/shapes/CVShapeData.js +33 -0
- package/player/js/elements/helpers/shapes/ProcessedElement.js +6 -0
- package/player/js/elements/helpers/shapes/SVGElementsRenderer.js +239 -0
- package/player/js/elements/helpers/shapes/SVGFillStyleData.js +18 -0
- package/player/js/elements/helpers/shapes/SVGGradientFillStyleData.js +100 -0
- package/player/js/elements/helpers/shapes/SVGGradientStrokeStyleData.js +20 -0
- package/player/js/elements/helpers/shapes/SVGNoStyleData.js +15 -0
- package/player/js/elements/helpers/shapes/SVGShapeData.js +28 -0
- package/player/js/elements/helpers/shapes/SVGStrokeStyleData.js +21 -0
- package/player/js/elements/helpers/shapes/SVGStyleData.js +19 -0
- package/player/js/elements/helpers/shapes/SVGTransformData.js +11 -0
- package/player/js/elements/helpers/shapes/ShapeElement.js +5 -0
- package/player/js/elements/helpers/shapes/ShapeGroupData.js +9 -0
- package/player/js/elements/helpers/shapes/ShapeTransformManager.js +61 -0
- package/player/js/elements/htmlElements/HBaseElement.js +88 -0
- package/player/js/elements/htmlElements/HCameraElement.js +170 -0
- package/player/js/elements/htmlElements/HCompElement.js +61 -0
- package/player/js/elements/htmlElements/HEffects.js +3 -0
- package/player/js/elements/htmlElements/HImageElement.js +42 -0
- package/player/js/elements/htmlElements/HShapeElement.js +261 -0
- package/player/js/elements/htmlElements/HSolidElement.js +36 -0
- package/player/js/elements/htmlElements/HTextElement.js +290 -0
- package/player/js/elements/svgElements/SVGBaseElement.js +181 -0
- package/player/js/elements/svgElements/SVGCompElement.js +28 -0
- package/player/js/elements/svgElements/SVGEffects.js +70 -0
- package/player/js/elements/svgElements/SVGEffectsPlaceholder.js +3 -0
- package/player/js/elements/svgElements/SVGShapeElement.js +366 -0
- package/player/js/elements/svgElements/SVGTextElement.js +322 -0
- package/player/js/elements/svgElements/effects/SVGComposableEffect.js +22 -0
- package/player/js/elements/svgElements/effects/SVGDropShadowEffect.js +83 -0
- package/player/js/elements/svgElements/effects/SVGFillFilter.js +22 -0
- package/player/js/elements/svgElements/effects/SVGGaussianBlurEffect.js +44 -0
- package/player/js/elements/svgElements/effects/SVGMatte3Effect.js +101 -0
- package/player/js/elements/svgElements/effects/SVGProLevelsFilter.js +108 -0
- package/player/js/elements/svgElements/effects/SVGStrokeEffect.js +119 -0
- package/player/js/elements/svgElements/effects/SVGTintEffect.js +47 -0
- package/player/js/elements/svgElements/effects/SVGTransformEffect.js +10 -0
- package/player/js/elements/svgElements/effects/SVGTritoneFilter.js +43 -0
- package/player/js/main.js +21 -0
- package/player/js/mask.js +239 -0
- package/player/js/module.js +153 -0
- package/player/js/modules/canvas.js +22 -0
- package/player/js/modules/canvas_light.js +25 -0
- package/player/js/modules/full.js +70 -0
- package/player/js/modules/full_worker.js +0 -0
- package/player/js/modules/html.js +37 -0
- package/player/js/modules/html_light.js +25 -0
- package/player/js/modules/main.js +162 -0
- package/player/js/modules/svg.js +37 -0
- package/player/js/modules/svg_light.js +25 -0
- package/player/js/renderers/BaseRenderer.js +187 -0
- package/player/js/renderers/CanvasRenderer.js +67 -0
- package/player/js/renderers/CanvasRendererBase.js +318 -0
- package/player/js/renderers/CanvasRendererWorkerOverride.js +54 -0
- package/player/js/renderers/HybridRenderer.js +47 -0
- package/player/js/renderers/HybridRendererBase.js +344 -0
- package/player/js/renderers/SVGRenderer.js +82 -0
- package/player/js/renderers/SVGRendererBase.js +255 -0
- package/player/js/renderers/renderersManager.js +29 -0
- package/player/js/utils/BaseEvent.js +42 -0
- package/player/js/utils/DataManager.js +676 -0
- package/player/js/utils/DataManagerWorkerOverrides.js +13 -0
- package/player/js/utils/FontManager.js +443 -0
- package/player/js/utils/FontManagerWorkerOverride.js +16 -0
- package/player/js/utils/PolynomialBezier.js +253 -0
- package/player/js/utils/PropertyFactory.js +489 -0
- package/player/js/utils/SlotManager.js +17 -0
- package/player/js/utils/TransformProperty.js +251 -0
- package/player/js/utils/animationFramePolyFill.js +25 -0
- package/player/js/utils/asset_loader.js +53 -0
- package/player/js/utils/asset_loader_worker_override.js +3 -0
- package/player/js/utils/audio/AudioController.js +85 -0
- package/player/js/utils/audio/AudioElement.js +6 -0
- package/player/js/utils/bez.js +251 -0
- package/player/js/utils/common.js +280 -0
- package/player/js/utils/expressions/CompInterface.js +28 -0
- package/player/js/utils/expressions/EffectInterface.js +111 -0
- package/player/js/utils/expressions/ExpressionManager.js +752 -0
- package/player/js/utils/expressions/ExpressionPropertyDecorator.js +463 -0
- package/player/js/utils/expressions/ExpressionTextPropertyDecorator.js +40 -0
- package/player/js/utils/expressions/ExpressionValue.js +61 -0
- package/player/js/utils/expressions/ExpressionValueFactory.js +102 -0
- package/player/js/utils/expressions/Expressions.js +48 -0
- package/player/js/utils/expressions/FootageInterface.js +60 -0
- package/player/js/utils/expressions/InterfacesProvider.js +21 -0
- package/player/js/utils/expressions/LayerInterface.js +179 -0
- package/player/js/utils/expressions/MaskInterface.js +50 -0
- package/player/js/utils/expressions/ProjectInterface.js +31 -0
- package/player/js/utils/expressions/PropertyGroupFactory.js +13 -0
- package/player/js/utils/expressions/PropertyInterface.js +19 -0
- package/player/js/utils/expressions/ShapeInterface.js +543 -0
- package/player/js/utils/expressions/TextInterface.js +35 -0
- package/player/js/utils/expressions/TextSelectorPropertyDecorator.js +44 -0
- package/player/js/utils/expressions/TransformInterface.js +126 -0
- package/player/js/utils/expressions/expressionHelpers.js +86 -0
- package/player/js/utils/expressions/shapes/ShapePathInterface.js +47 -0
- package/player/js/utils/featureSupport.js +16 -0
- package/player/js/utils/filters.js +32 -0
- package/player/js/utils/functionExtensions.js +27 -0
- package/player/js/utils/getFontProperties.js +42 -0
- package/player/js/utils/helpers/arrays.js +43 -0
- package/player/js/utils/helpers/assetManager.js +96 -0
- package/player/js/utils/helpers/blendModes.js +26 -0
- package/player/js/utils/helpers/bufferManager.js +61 -0
- package/player/js/utils/helpers/dynamicProperties.js +29 -0
- package/player/js/utils/helpers/effectTypes.js +3 -0
- package/player/js/utils/helpers/html_elements.js +6 -0
- package/player/js/utils/helpers/propTypes.js +3 -0
- package/player/js/utils/helpers/shapeEnums.js +16 -0
- package/player/js/utils/helpers/svg_elements.js +8 -0
- package/player/js/utils/imagePreloader.js +213 -0
- package/player/js/utils/imagePreloaderWorkerOverride.js +3 -0
- package/player/js/utils/markers/markerParser.js +47 -0
- package/player/js/utils/pooling/bezier_length_pool.js +20 -0
- package/player/js/utils/pooling/point_pool.js +13 -0
- package/player/js/utils/pooling/pool_factory.js +44 -0
- package/player/js/utils/pooling/pooling.js +15 -0
- package/player/js/utils/pooling/segments_length_pool.js +24 -0
- package/player/js/utils/pooling/shapeCollection_pool.js +48 -0
- package/player/js/utils/pooling/shape_pool.js +44 -0
- package/player/js/utils/shapes/DashProperty.js +63 -0
- package/player/js/utils/shapes/GradientProperty.js +93 -0
- package/player/js/utils/shapes/MouseModifier.js +222 -0
- package/player/js/utils/shapes/OffsetPathModifier.js +306 -0
- package/player/js/utils/shapes/PuckerAndBloatModifier.js +80 -0
- package/player/js/utils/shapes/RepeaterModifier.js +232 -0
- package/player/js/utils/shapes/RoundCornersModifier.js +122 -0
- package/player/js/utils/shapes/ShapeCollection.js +29 -0
- package/player/js/utils/shapes/ShapeModifiers.js +71 -0
- package/player/js/utils/shapes/ShapePath.js +100 -0
- package/player/js/utils/shapes/ShapeProperty.js +546 -0
- package/player/js/utils/shapes/TrimModifier.js +359 -0
- package/player/js/utils/shapes/ZigZagModifier.js +174 -0
- package/player/js/utils/shapes/shapePathBuilder.js +20 -0
- package/player/js/utils/text/LetterProps.js +60 -0
- package/player/js/utils/text/TextAnimatorDataProperty.js +34 -0
- package/player/js/utils/text/TextAnimatorProperty.js +610 -0
- package/player/js/utils/text/TextProperty.js +461 -0
- package/player/js/utils/text/TextSelectorProperty.js +179 -0
- package/player/js/worker_wrapper.js +1029 -0
- package/rollup.config.js +215 -0
- package/tasks/build.js +773 -0
- package/tasks/build_worker.js +164 -0
- package/tasks/watch.js +34 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import CompExpressionInterface from './CompInterface';
|
|
2
|
+
import ExpressionManager from './ExpressionManager';
|
|
3
|
+
|
|
4
|
+
const Expressions = (function () {
|
|
5
|
+
var ob = {};
|
|
6
|
+
ob.initExpressions = initExpressions;
|
|
7
|
+
ob.resetFrame = ExpressionManager.resetFrame;
|
|
8
|
+
|
|
9
|
+
function initExpressions(animation) {
|
|
10
|
+
var stackCount = 0;
|
|
11
|
+
var registers = [];
|
|
12
|
+
|
|
13
|
+
function pushExpression() {
|
|
14
|
+
stackCount += 1;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function popExpression() {
|
|
18
|
+
stackCount -= 1;
|
|
19
|
+
if (stackCount === 0) {
|
|
20
|
+
releaseInstances();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function registerExpressionProperty(expression) {
|
|
25
|
+
if (registers.indexOf(expression) === -1) {
|
|
26
|
+
registers.push(expression);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function releaseInstances() {
|
|
31
|
+
var i;
|
|
32
|
+
var len = registers.length;
|
|
33
|
+
for (i = 0; i < len; i += 1) {
|
|
34
|
+
registers[i].release();
|
|
35
|
+
}
|
|
36
|
+
registers.length = 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
animation.renderer.compInterface = CompExpressionInterface(animation.renderer);
|
|
40
|
+
animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);
|
|
41
|
+
animation.renderer.globalData.pushExpression = pushExpression;
|
|
42
|
+
animation.renderer.globalData.popExpression = popExpression;
|
|
43
|
+
animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;
|
|
44
|
+
}
|
|
45
|
+
return ob;
|
|
46
|
+
}());
|
|
47
|
+
|
|
48
|
+
export default Expressions;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const FootageInterface = (function () {
|
|
2
|
+
var outlineInterfaceFactory = (function (elem) {
|
|
3
|
+
var currentPropertyName = '';
|
|
4
|
+
var currentProperty = elem.getFootageData();
|
|
5
|
+
function init() {
|
|
6
|
+
currentPropertyName = '';
|
|
7
|
+
currentProperty = elem.getFootageData();
|
|
8
|
+
return searchProperty;
|
|
9
|
+
}
|
|
10
|
+
function searchProperty(value) {
|
|
11
|
+
if (currentProperty[value]) {
|
|
12
|
+
currentPropertyName = value;
|
|
13
|
+
currentProperty = currentProperty[value];
|
|
14
|
+
if (typeof currentProperty === 'object') {
|
|
15
|
+
return searchProperty;
|
|
16
|
+
}
|
|
17
|
+
return currentProperty;
|
|
18
|
+
}
|
|
19
|
+
var propertyNameIndex = value.indexOf(currentPropertyName);
|
|
20
|
+
if (propertyNameIndex !== -1) {
|
|
21
|
+
var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);
|
|
22
|
+
currentProperty = currentProperty[index];
|
|
23
|
+
if (typeof currentProperty === 'object') {
|
|
24
|
+
return searchProperty;
|
|
25
|
+
}
|
|
26
|
+
return currentProperty;
|
|
27
|
+
}
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
return init;
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
var dataInterfaceFactory = function (elem) {
|
|
34
|
+
function interfaceFunction(value) {
|
|
35
|
+
if (value === 'Outline') {
|
|
36
|
+
return interfaceFunction.outlineInterface();
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interfaceFunction._name = 'Outline';
|
|
42
|
+
interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);
|
|
43
|
+
return interfaceFunction;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
return function (elem) {
|
|
47
|
+
function _interfaceFunction(value) {
|
|
48
|
+
if (value === 'Data') {
|
|
49
|
+
return _interfaceFunction.dataInterface;
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
_interfaceFunction._name = 'Data';
|
|
55
|
+
_interfaceFunction.dataInterface = dataInterfaceFactory(elem);
|
|
56
|
+
return _interfaceFunction;
|
|
57
|
+
};
|
|
58
|
+
}());
|
|
59
|
+
|
|
60
|
+
export default FootageInterface;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import LayerExpressionInterface from './LayerInterface';
|
|
2
|
+
import EffectsExpressionInterface from './EffectInterface';
|
|
3
|
+
import CompExpressionInterface from './CompInterface';
|
|
4
|
+
import ShapeExpressionInterface from './ShapeInterface';
|
|
5
|
+
import TextExpressionInterface from './TextInterface';
|
|
6
|
+
import FootageInterface from './FootageInterface';
|
|
7
|
+
|
|
8
|
+
var interfaces = {
|
|
9
|
+
layer: LayerExpressionInterface,
|
|
10
|
+
effects: EffectsExpressionInterface,
|
|
11
|
+
comp: CompExpressionInterface,
|
|
12
|
+
shape: ShapeExpressionInterface,
|
|
13
|
+
text: TextExpressionInterface,
|
|
14
|
+
footage: FootageInterface,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
function getInterface(type) {
|
|
18
|
+
return interfaces[type] || null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default getInterface;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getDescriptor,
|
|
3
|
+
} from '../functionExtensions';
|
|
4
|
+
import Matrix from '../../3rd_party/transformation-matrix';
|
|
5
|
+
import MaskManagerInterface from './MaskInterface';
|
|
6
|
+
import TransformExpressionInterface from './TransformInterface';
|
|
7
|
+
|
|
8
|
+
const LayerExpressionInterface = (function () {
|
|
9
|
+
function getMatrix(time) {
|
|
10
|
+
var toWorldMat = new Matrix();
|
|
11
|
+
if (time !== undefined) {
|
|
12
|
+
var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);
|
|
13
|
+
propMatrix.clone(toWorldMat);
|
|
14
|
+
} else {
|
|
15
|
+
var transformMat = this._elem.finalTransform.mProp;
|
|
16
|
+
transformMat.applyToMatrix(toWorldMat);
|
|
17
|
+
}
|
|
18
|
+
return toWorldMat;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function toWorldVec(arr, time) {
|
|
22
|
+
var toWorldMat = this.getMatrix(time);
|
|
23
|
+
toWorldMat.props[12] = 0;
|
|
24
|
+
toWorldMat.props[13] = 0;
|
|
25
|
+
toWorldMat.props[14] = 0;
|
|
26
|
+
return this.applyPoint(toWorldMat, arr);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function toWorld(arr, time) {
|
|
30
|
+
var toWorldMat = this.getMatrix(time);
|
|
31
|
+
return this.applyPoint(toWorldMat, arr);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function fromWorldVec(arr, time) {
|
|
35
|
+
var toWorldMat = this.getMatrix(time);
|
|
36
|
+
toWorldMat.props[12] = 0;
|
|
37
|
+
toWorldMat.props[13] = 0;
|
|
38
|
+
toWorldMat.props[14] = 0;
|
|
39
|
+
return this.invertPoint(toWorldMat, arr);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function fromWorld(arr, time) {
|
|
43
|
+
var toWorldMat = this.getMatrix(time);
|
|
44
|
+
return this.invertPoint(toWorldMat, arr);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function applyPoint(matrix, arr) {
|
|
48
|
+
if (this._elem.hierarchy && this._elem.hierarchy.length) {
|
|
49
|
+
var i;
|
|
50
|
+
var len = this._elem.hierarchy.length;
|
|
51
|
+
for (i = 0; i < len; i += 1) {
|
|
52
|
+
this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function invertPoint(matrix, arr) {
|
|
59
|
+
if (this._elem.hierarchy && this._elem.hierarchy.length) {
|
|
60
|
+
var i;
|
|
61
|
+
var len = this._elem.hierarchy.length;
|
|
62
|
+
for (i = 0; i < len; i += 1) {
|
|
63
|
+
this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return matrix.inversePoint(arr);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function fromComp(arr) {
|
|
70
|
+
var toWorldMat = new Matrix();
|
|
71
|
+
toWorldMat.reset();
|
|
72
|
+
this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);
|
|
73
|
+
if (this._elem.hierarchy && this._elem.hierarchy.length) {
|
|
74
|
+
var i;
|
|
75
|
+
var len = this._elem.hierarchy.length;
|
|
76
|
+
for (i = 0; i < len; i += 1) {
|
|
77
|
+
this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);
|
|
78
|
+
}
|
|
79
|
+
return toWorldMat.inversePoint(arr);
|
|
80
|
+
}
|
|
81
|
+
return toWorldMat.inversePoint(arr);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function sampleImage() {
|
|
85
|
+
return [1, 1, 1, 1];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return function (elem) {
|
|
89
|
+
var transformInterface;
|
|
90
|
+
|
|
91
|
+
function _registerMaskInterface(maskManager) {
|
|
92
|
+
_thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);
|
|
93
|
+
}
|
|
94
|
+
function _registerEffectsInterface(effects) {
|
|
95
|
+
_thisLayerFunction.effect = effects;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function _thisLayerFunction(name) {
|
|
99
|
+
switch (name) {
|
|
100
|
+
case 'ADBE Root Vectors Group':
|
|
101
|
+
case 'Contents':
|
|
102
|
+
case 2:
|
|
103
|
+
return _thisLayerFunction.shapeInterface;
|
|
104
|
+
case 1:
|
|
105
|
+
case 6:
|
|
106
|
+
case 'Transform':
|
|
107
|
+
case 'transform':
|
|
108
|
+
case 'ADBE Transform Group':
|
|
109
|
+
return transformInterface;
|
|
110
|
+
case 4:
|
|
111
|
+
case 'ADBE Effect Parade':
|
|
112
|
+
case 'effects':
|
|
113
|
+
case 'Effects':
|
|
114
|
+
return _thisLayerFunction.effect;
|
|
115
|
+
case 'ADBE Text Properties':
|
|
116
|
+
return _thisLayerFunction.textInterface;
|
|
117
|
+
default:
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
_thisLayerFunction.getMatrix = getMatrix;
|
|
122
|
+
_thisLayerFunction.invertPoint = invertPoint;
|
|
123
|
+
_thisLayerFunction.applyPoint = applyPoint;
|
|
124
|
+
_thisLayerFunction.toWorld = toWorld;
|
|
125
|
+
_thisLayerFunction.toWorldVec = toWorldVec;
|
|
126
|
+
_thisLayerFunction.fromWorld = fromWorld;
|
|
127
|
+
_thisLayerFunction.fromWorldVec = fromWorldVec;
|
|
128
|
+
_thisLayerFunction.toComp = toWorld;
|
|
129
|
+
_thisLayerFunction.fromComp = fromComp;
|
|
130
|
+
_thisLayerFunction.sampleImage = sampleImage;
|
|
131
|
+
_thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);
|
|
132
|
+
_thisLayerFunction._elem = elem;
|
|
133
|
+
transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);
|
|
134
|
+
var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');
|
|
135
|
+
Object.defineProperties(_thisLayerFunction, {
|
|
136
|
+
hasParent: {
|
|
137
|
+
get: function () {
|
|
138
|
+
return elem.hierarchy.length;
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
parent: {
|
|
142
|
+
get: function () {
|
|
143
|
+
return elem.hierarchy[0].layerInterface;
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
rotation: getDescriptor(transformInterface, 'rotation'),
|
|
147
|
+
scale: getDescriptor(transformInterface, 'scale'),
|
|
148
|
+
position: getDescriptor(transformInterface, 'position'),
|
|
149
|
+
opacity: getDescriptor(transformInterface, 'opacity'),
|
|
150
|
+
anchorPoint: anchorPointDescriptor,
|
|
151
|
+
anchor_point: anchorPointDescriptor,
|
|
152
|
+
transform: {
|
|
153
|
+
get: function () {
|
|
154
|
+
return transformInterface;
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
active: {
|
|
158
|
+
get: function () {
|
|
159
|
+
return elem.isInRange;
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
_thisLayerFunction.startTime = elem.data.st;
|
|
165
|
+
_thisLayerFunction.index = elem.data.ind;
|
|
166
|
+
_thisLayerFunction.source = elem.data.refId;
|
|
167
|
+
_thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;
|
|
168
|
+
_thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;
|
|
169
|
+
_thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;
|
|
170
|
+
_thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;
|
|
171
|
+
_thisLayerFunction._name = elem.data.nm;
|
|
172
|
+
|
|
173
|
+
_thisLayerFunction.registerMaskInterface = _registerMaskInterface;
|
|
174
|
+
_thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;
|
|
175
|
+
return _thisLayerFunction;
|
|
176
|
+
};
|
|
177
|
+
}());
|
|
178
|
+
|
|
179
|
+
export default LayerExpressionInterface;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createSizedArray,
|
|
3
|
+
} from '../helpers/arrays';
|
|
4
|
+
|
|
5
|
+
const MaskManagerInterface = (function () {
|
|
6
|
+
function MaskInterface(mask, data) {
|
|
7
|
+
this._mask = mask;
|
|
8
|
+
this._data = data;
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(MaskInterface.prototype, 'maskPath', {
|
|
11
|
+
get: function () {
|
|
12
|
+
if (this._mask.prop.k) {
|
|
13
|
+
this._mask.prop.getValue();
|
|
14
|
+
}
|
|
15
|
+
return this._mask.prop;
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {
|
|
19
|
+
get: function () {
|
|
20
|
+
if (this._mask.op.k) {
|
|
21
|
+
this._mask.op.getValue();
|
|
22
|
+
}
|
|
23
|
+
return this._mask.op.v * 100;
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
var MaskManager = function (maskManager) {
|
|
28
|
+
var _masksInterfaces = createSizedArray(maskManager.viewData.length);
|
|
29
|
+
var i;
|
|
30
|
+
var len = maskManager.viewData.length;
|
|
31
|
+
for (i = 0; i < len; i += 1) {
|
|
32
|
+
_masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var maskFunction = function (name) {
|
|
36
|
+
i = 0;
|
|
37
|
+
while (i < len) {
|
|
38
|
+
if (maskManager.masksProperties[i].nm === name) {
|
|
39
|
+
return _masksInterfaces[i];
|
|
40
|
+
}
|
|
41
|
+
i += 1;
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
};
|
|
45
|
+
return maskFunction;
|
|
46
|
+
};
|
|
47
|
+
return MaskManager;
|
|
48
|
+
}());
|
|
49
|
+
|
|
50
|
+
export default MaskManagerInterface;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const ProjectInterface = (function () {
|
|
2
|
+
function registerComposition(comp) {
|
|
3
|
+
this.compositions.push(comp);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
return function () {
|
|
7
|
+
function _thisProjectFunction(name) {
|
|
8
|
+
var i = 0;
|
|
9
|
+
var len = this.compositions.length;
|
|
10
|
+
while (i < len) {
|
|
11
|
+
if (this.compositions[i].data && this.compositions[i].data.nm === name) {
|
|
12
|
+
if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {
|
|
13
|
+
this.compositions[i].prepareFrame(this.currentFrame);
|
|
14
|
+
}
|
|
15
|
+
return this.compositions[i].compInterface;
|
|
16
|
+
}
|
|
17
|
+
i += 1;
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
_thisProjectFunction.compositions = [];
|
|
23
|
+
_thisProjectFunction.currentFrame = 0;
|
|
24
|
+
|
|
25
|
+
_thisProjectFunction.registerComposition = registerComposition;
|
|
26
|
+
|
|
27
|
+
return _thisProjectFunction;
|
|
28
|
+
};
|
|
29
|
+
}());
|
|
30
|
+
|
|
31
|
+
export default ProjectInterface;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const propertyGroupFactory = (function () {
|
|
2
|
+
return function (interfaceFunction, parentPropertyGroup) {
|
|
3
|
+
return function (val) {
|
|
4
|
+
val = val === undefined ? 1 : val;
|
|
5
|
+
if (val <= 0) {
|
|
6
|
+
return interfaceFunction;
|
|
7
|
+
}
|
|
8
|
+
return parentPropertyGroup(val - 1);
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}());
|
|
12
|
+
|
|
13
|
+
export default propertyGroupFactory;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const PropertyInterface = (function () {
|
|
2
|
+
return function (propertyName, propertyGroup) {
|
|
3
|
+
var interfaceFunction = {
|
|
4
|
+
_name: propertyName,
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
function _propertyGroup(val) {
|
|
8
|
+
val = val === undefined ? 1 : val;
|
|
9
|
+
if (val <= 0) {
|
|
10
|
+
return interfaceFunction;
|
|
11
|
+
}
|
|
12
|
+
return propertyGroup(val - 1);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return _propertyGroup;
|
|
16
|
+
};
|
|
17
|
+
}());
|
|
18
|
+
|
|
19
|
+
export default PropertyInterface;
|