RenderableDOMElement.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import {
  2. extendPrototype,
  3. createProxyFunction,
  4. } from '../../utils/functionExtensions';
  5. import RenderableElement from './RenderableElement';
  6. function RenderableDOMElement() {}
  7. (function () {
  8. var _prototype = {
  9. initElement: function (data, globalData, comp) {
  10. this.initFrame();
  11. this.initBaseData(data, globalData, comp);
  12. this.initTransform(data, globalData, comp);
  13. this.initHierarchy();
  14. this.initRenderable();
  15. this.initRendererElement();
  16. this.createContainerElements();
  17. this.createRenderableComponents();
  18. this.createContent();
  19. this.hide();
  20. },
  21. hide: function () {
  22. // console.log('HIDE', this);
  23. if (!this.hidden && (!this.isInRange || this.isTransparent)) {
  24. var elem = this.baseElement || this.layerElement;
  25. elem.style.display = 'none';
  26. this.hidden = true;
  27. }
  28. },
  29. show: function () {
  30. // console.log('SHOW', this);
  31. if (this.isInRange && !this.isTransparent) {
  32. if (!this.data.hd) {
  33. var elem = this.baseElement || this.layerElement;
  34. elem.style.display = 'block';
  35. }
  36. this.hidden = false;
  37. this._isFirstFrame = true;
  38. }
  39. },
  40. renderFrame: function () {
  41. // If it is exported as hidden (data.hd === true) no need to render
  42. // If it is not visible no need to render
  43. if (this.data.hd || this.hidden) {
  44. return;
  45. }
  46. this.renderTransform();
  47. this.renderRenderable();
  48. this.renderLocalTransform();
  49. this.renderElement();
  50. this.renderInnerContent();
  51. if (this._isFirstFrame) {
  52. this._isFirstFrame = false;
  53. }
  54. },
  55. renderInnerContent: function () {},
  56. prepareFrame: function (num) {
  57. this._mdf = false;
  58. this.prepareRenderableFrame(num);
  59. this.prepareProperties(num, this.isInRange);
  60. this.checkTransparency();
  61. },
  62. destroy: function () {
  63. this.innerElem = null;
  64. this.destroyBaseElement();
  65. },
  66. };
  67. extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);
  68. }());
  69. export default RenderableDOMElement;