84 lines
2.0 KiB
Plaintext
84 lines
2.0 KiB
Plaintext
import {
|
|
extendPrototype,
|
|
} from './utils/functionExtensions';
|
|
import {
|
|
SliderEffect,
|
|
AngleEffect,
|
|
ColorEffect,
|
|
PointEffect,
|
|
LayerIndexEffect,
|
|
MaskIndexEffect,
|
|
CheckboxEffect,
|
|
NoValueEffect,
|
|
} from './effects/SliderEffect';
|
|
import DynamicPropertyContainer from './utils/helpers/dynamicProperties';
|
|
|
|
function EffectsManager(data, element) {
|
|
var effects = data.ef || [];
|
|
this.effectElements = [];
|
|
var i;
|
|
var len = effects.length;
|
|
var effectItem;
|
|
for (i = 0; i < len; i += 1) {
|
|
effectItem = new GroupEffect(effects[i], element);
|
|
this.effectElements.push(effectItem);
|
|
}
|
|
}
|
|
|
|
function GroupEffect(data, element) {
|
|
this.init(data, element);
|
|
}
|
|
|
|
extendPrototype([DynamicPropertyContainer], GroupEffect);
|
|
|
|
GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;
|
|
|
|
GroupEffect.prototype.init = function (data, element) {
|
|
this.data = data;
|
|
this.effectElements = [];
|
|
this.initDynamicPropertyContainer(element);
|
|
var i;
|
|
var len = this.data.ef.length;
|
|
var eff;
|
|
var effects = this.data.ef;
|
|
for (i = 0; i < len; i += 1) {
|
|
eff = null;
|
|
switch (effects[i].ty) {
|
|
case 0:
|
|
eff = new SliderEffect(effects[i], element, this);
|
|
break;
|
|
case 1:
|
|
eff = new AngleEffect(effects[i], element, this);
|
|
break;
|
|
case 2:
|
|
eff = new ColorEffect(effects[i], element, this);
|
|
break;
|
|
case 3:
|
|
eff = new PointEffect(effects[i], element, this);
|
|
break;
|
|
case 4:
|
|
case 7:
|
|
eff = new CheckboxEffect(effects[i], element, this);
|
|
break;
|
|
case 10:
|
|
eff = new LayerIndexEffect(effects[i], element, this);
|
|
break;
|
|
case 11:
|
|
eff = new MaskIndexEffect(effects[i], element, this);
|
|
break;
|
|
case 5:
|
|
eff = new EffectsManager(effects[i], element, this);
|
|
break;
|
|
// case 6:
|
|
default:
|
|
eff = new NoValueEffect(effects[i], element, this);
|
|
break;
|
|
}
|
|
if (eff) {
|
|
this.effectElements.push(eff);
|
|
}
|
|
}
|
|
};
|
|
|
|
export default EffectsManager;
|