EffectsManager.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import {
  2. extendPrototype,
  3. } from './utils/functionExtensions';
  4. import {
  5. SliderEffect,
  6. AngleEffect,
  7. ColorEffect,
  8. PointEffect,
  9. LayerIndexEffect,
  10. MaskIndexEffect,
  11. CheckboxEffect,
  12. NoValueEffect,
  13. } from './effects/SliderEffect';
  14. import DynamicPropertyContainer from './utils/helpers/dynamicProperties';
  15. function EffectsManager(data, element) {
  16. var effects = data.ef || [];
  17. this.effectElements = [];
  18. var i;
  19. var len = effects.length;
  20. var effectItem;
  21. for (i = 0; i < len; i += 1) {
  22. effectItem = new GroupEffect(effects[i], element);
  23. this.effectElements.push(effectItem);
  24. }
  25. }
  26. function GroupEffect(data, element) {
  27. this.init(data, element);
  28. }
  29. extendPrototype([DynamicPropertyContainer], GroupEffect);
  30. GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;
  31. GroupEffect.prototype.init = function (data, element) {
  32. this.data = data;
  33. this.effectElements = [];
  34. this.initDynamicPropertyContainer(element);
  35. var i;
  36. var len = this.data.ef.length;
  37. var eff;
  38. var effects = this.data.ef;
  39. for (i = 0; i < len; i += 1) {
  40. eff = null;
  41. switch (effects[i].ty) {
  42. case 0:
  43. eff = new SliderEffect(effects[i], element, this);
  44. break;
  45. case 1:
  46. eff = new AngleEffect(effects[i], element, this);
  47. break;
  48. case 2:
  49. eff = new ColorEffect(effects[i], element, this);
  50. break;
  51. case 3:
  52. eff = new PointEffect(effects[i], element, this);
  53. break;
  54. case 4:
  55. case 7:
  56. eff = new CheckboxEffect(effects[i], element, this);
  57. break;
  58. case 10:
  59. eff = new LayerIndexEffect(effects[i], element, this);
  60. break;
  61. case 11:
  62. eff = new MaskIndexEffect(effects[i], element, this);
  63. break;
  64. case 5:
  65. eff = new EffectsManager(effects[i], element, this);
  66. break;
  67. // case 6:
  68. default:
  69. eff = new NoValueEffect(effects[i], element, this);
  70. break;
  71. }
  72. if (eff) {
  73. this.effectElements.push(eff);
  74. }
  75. }
  76. };
  77. export default EffectsManager;