123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- import ExpressionPropertyInterface from './ExpressionValueFactory';
- import propertyGroupFactory from './PropertyGroupFactory';
- import PropertyInterface from './PropertyInterface';
- const EffectsExpressionInterface = (function () {
- var ob = {
- createEffectsInterface: createEffectsInterface,
- };
- function createEffectsInterface(elem, propertyGroup) {
- if (elem.effectsManager) {
- var effectElements = [];
- var effectsData = elem.data.ef;
- var i;
- var len = elem.effectsManager.effectElements.length;
- for (i = 0; i < len; i += 1) {
- effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));
- }
- var effects = elem.data.ef || [];
- var groupInterface = function (name) {
- i = 0;
- len = effects.length;
- while (i < len) {
- if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {
- return effectElements[i];
- }
- i += 1;
- }
- return null;
- };
- Object.defineProperty(groupInterface, 'numProperties', {
- get: function () {
- return effects.length;
- },
- });
- return groupInterface;
- }
- return null;
- }
- function createGroupInterface(data, elements, propertyGroup, elem) {
- function groupInterface(name) {
- var effects = data.ef;
- var i = 0;
- var len = effects.length;
- while (i < len) {
- if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {
- if (effects[i].ty === 5) {
- return effectElements[i];
- }
- return effectElements[i]();
- }
- i += 1;
- }
- throw new Error();
- }
- var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);
- var effectElements = [];
- var i;
- var len = data.ef.length;
- for (i = 0; i < len; i += 1) {
- if (data.ef[i].ty === 5) {
- effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));
- } else {
- effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));
- }
- }
- if (data.mn === 'ADBE Color Control') {
- Object.defineProperty(groupInterface, 'color', {
- get: function () {
- return effectElements[0]();
- },
- });
- }
- Object.defineProperties(groupInterface, {
- numProperties: {
- get: function () {
- return data.np;
- },
- },
- _name: { value: data.nm },
- propertyGroup: { value: _propertyGroup },
- });
- groupInterface.enabled = data.en !== 0;
- groupInterface.active = groupInterface.enabled;
- return groupInterface;
- }
- function createValueInterface(element, type, elem, propertyGroup) {
- var expressionProperty = ExpressionPropertyInterface(element.p);
- function interfaceFunction() {
- if (type === 10) {
- return elem.comp.compInterface(element.p.v);
- }
- return expressionProperty();
- }
- if (element.p.setGroupProperty) {
- element.p.setGroupProperty(PropertyInterface('', propertyGroup));
- }
- return interfaceFunction;
- }
- return ob;
- }());
- export default EffectsExpressionInterface;
|