tui-image-editor-angular3 14.0.2

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.
Files changed (148) hide show
  1. package/README.md +155 -0
  2. package/esm2020/lib/consts.mjs +170 -0
  3. package/esm2020/lib/i18n/en.mjs +129 -0
  4. package/esm2020/lib/i18n/nl.mjs +128 -0
  5. package/esm2020/lib/i18n/translation.service.mjs +40 -0
  6. package/esm2020/lib/interfaces/command.mjs +2 -0
  7. package/esm2020/lib/interfaces/history-item.mjs +343 -0
  8. package/esm2020/lib/interfaces/image-size.mjs +2 -0
  9. package/esm2020/lib/interfaces/tools-config.mjs +2 -0
  10. package/esm2020/lib/menus/buttons/crop/crop.component.mjs +22 -0
  11. package/esm2020/lib/menus/buttons/delete/delete.component.mjs +40 -0
  12. package/esm2020/lib/menus/buttons/delete-all/delete-all.component.mjs +27 -0
  13. package/esm2020/lib/menus/buttons/download/download.component.mjs +40 -0
  14. package/esm2020/lib/menus/buttons/drag/drag.component.mjs +41 -0
  15. package/esm2020/lib/menus/buttons/draw/draw.component.mjs +22 -0
  16. package/esm2020/lib/menus/buttons/filter/filter.component.mjs +22 -0
  17. package/esm2020/lib/menus/buttons/flip/flip.component.mjs +22 -0
  18. package/esm2020/lib/menus/buttons/history/history.component.mjs +41 -0
  19. package/esm2020/lib/menus/buttons/icon/icon.component.mjs +22 -0
  20. package/esm2020/lib/menus/buttons/load/load.component.mjs +23 -0
  21. package/esm2020/lib/menus/buttons/mask/mask.component.mjs +22 -0
  22. package/esm2020/lib/menus/buttons/redo/redo.component.mjs +36 -0
  23. package/esm2020/lib/menus/buttons/reset/reset.component.mjs +28 -0
  24. package/esm2020/lib/menus/buttons/rotate/rotate.component.mjs +22 -0
  25. package/esm2020/lib/menus/buttons/shape/shape.component.mjs +22 -0
  26. package/esm2020/lib/menus/buttons/text/text.component.mjs +22 -0
  27. package/esm2020/lib/menus/buttons/undo/undo.component.mjs +36 -0
  28. package/esm2020/lib/menus/buttons/zoom-in/zoom-in.component.mjs +45 -0
  29. package/esm2020/lib/menus/buttons/zoom-out/zoom-out.component.mjs +20 -0
  30. package/esm2020/lib/services/history.service.mjs +86 -0
  31. package/esm2020/lib/services/tools.config-manager.service.mjs +45 -0
  32. package/esm2020/lib/submenus/crop/crop.component.mjs +76 -0
  33. package/esm2020/lib/submenus/draw/draw.component.mjs +149 -0
  34. package/esm2020/lib/submenus/filter/filter.component.mjs +345 -0
  35. package/esm2020/lib/submenus/flip/flip.component.mjs +39 -0
  36. package/esm2020/lib/submenus/icon/icon.component.mjs +119 -0
  37. package/esm2020/lib/submenus/mask/mask.component.mjs +69 -0
  38. package/esm2020/lib/submenus/rotate/rotate.component.mjs +57 -0
  39. package/esm2020/lib/submenus/shape/shape.component.mjs +163 -0
  40. package/esm2020/lib/submenus/text/text.component.mjs +175 -0
  41. package/esm2020/lib/svg-definitions/svg-definitions.component.mjs +12 -0
  42. package/esm2020/lib/tui-image-editor.component.mjs +294 -0
  43. package/esm2020/lib/tui-image-editor.module.mjs +136 -0
  44. package/esm2020/lib/utils.mjs +173 -0
  45. package/esm2020/public-api.mjs +8 -0
  46. package/esm2020/tui-image-editor-angular2.mjs +5 -0
  47. package/esm2020/tui-image-editor-angular3.mjs +5 -0
  48. package/fesm2015/tui-image-editor-angular2.mjs +3166 -0
  49. package/fesm2015/tui-image-editor-angular2.mjs.map +1 -0
  50. package/fesm2015/tui-image-editor-angular3.mjs +3166 -0
  51. package/fesm2015/tui-image-editor-angular3.mjs.map +1 -0
  52. package/fesm2020/tui-image-editor-angular2.mjs +3126 -0
  53. package/fesm2020/tui-image-editor-angular2.mjs.map +1 -0
  54. package/fesm2020/tui-image-editor-angular3.mjs +3126 -0
  55. package/fesm2020/tui-image-editor-angular3.mjs.map +1 -0
  56. package/index.d.ts +5 -0
  57. package/lib/consts.d.ts +144 -0
  58. package/lib/consts.d.ts.map +1 -0
  59. package/lib/i18n/en.d.ts +128 -0
  60. package/lib/i18n/en.d.ts.map +1 -0
  61. package/lib/i18n/nl.d.ts +127 -0
  62. package/lib/i18n/nl.d.ts.map +1 -0
  63. package/lib/i18n/translation.service.d.ts +14 -0
  64. package/lib/i18n/translation.service.d.ts.map +1 -0
  65. package/lib/interfaces/command.d.ts +4 -0
  66. package/lib/interfaces/command.d.ts.map +1 -0
  67. package/lib/interfaces/history-item.d.ts +26 -0
  68. package/lib/interfaces/history-item.d.ts.map +1 -0
  69. package/lib/interfaces/image-size.d.ts +6 -0
  70. package/lib/interfaces/image-size.d.ts.map +1 -0
  71. package/lib/interfaces/tools-config.d.ts +14 -0
  72. package/lib/interfaces/tools-config.d.ts.map +1 -0
  73. package/lib/menus/buttons/crop/crop.component.d.ts +10 -0
  74. package/lib/menus/buttons/crop/crop.component.d.ts.map +1 -0
  75. package/lib/menus/buttons/delete/delete.component.d.ts +13 -0
  76. package/lib/menus/buttons/delete/delete.component.d.ts.map +1 -0
  77. package/lib/menus/buttons/delete-all/delete-all.component.d.ts +11 -0
  78. package/lib/menus/buttons/delete-all/delete-all.component.d.ts.map +1 -0
  79. package/lib/menus/buttons/download/download.component.d.ts +9 -0
  80. package/lib/menus/buttons/download/download.component.d.ts.map +1 -0
  81. package/lib/menus/buttons/drag/drag.component.d.ts +11 -0
  82. package/lib/menus/buttons/drag/drag.component.d.ts.map +1 -0
  83. package/lib/menus/buttons/draw/draw.component.d.ts +10 -0
  84. package/lib/menus/buttons/draw/draw.component.d.ts.map +1 -0
  85. package/lib/menus/buttons/filter/filter.component.d.ts +10 -0
  86. package/lib/menus/buttons/filter/filter.component.d.ts.map +1 -0
  87. package/lib/menus/buttons/flip/flip.component.d.ts +10 -0
  88. package/lib/menus/buttons/flip/flip.component.d.ts.map +1 -0
  89. package/lib/menus/buttons/history/history.component.d.ts +13 -0
  90. package/lib/menus/buttons/history/history.component.d.ts.map +1 -0
  91. package/lib/menus/buttons/icon/icon.component.d.ts +10 -0
  92. package/lib/menus/buttons/icon/icon.component.d.ts.map +1 -0
  93. package/lib/menus/buttons/load/load.component.d.ts +9 -0
  94. package/lib/menus/buttons/load/load.component.d.ts.map +1 -0
  95. package/lib/menus/buttons/mask/mask.component.d.ts +10 -0
  96. package/lib/menus/buttons/mask/mask.component.d.ts.map +1 -0
  97. package/lib/menus/buttons/redo/redo.component.d.ts +12 -0
  98. package/lib/menus/buttons/redo/redo.component.d.ts.map +1 -0
  99. package/lib/menus/buttons/reset/reset.component.d.ts +12 -0
  100. package/lib/menus/buttons/reset/reset.component.d.ts.map +1 -0
  101. package/lib/menus/buttons/rotate/rotate.component.d.ts +10 -0
  102. package/lib/menus/buttons/rotate/rotate.component.d.ts.map +1 -0
  103. package/lib/menus/buttons/shape/shape.component.d.ts +10 -0
  104. package/lib/menus/buttons/shape/shape.component.d.ts.map +1 -0
  105. package/lib/menus/buttons/text/text.component.d.ts +10 -0
  106. package/lib/menus/buttons/text/text.component.d.ts.map +1 -0
  107. package/lib/menus/buttons/undo/undo.component.d.ts +12 -0
  108. package/lib/menus/buttons/undo/undo.component.d.ts.map +1 -0
  109. package/lib/menus/buttons/zoom-in/zoom-in.component.d.ts +12 -0
  110. package/lib/menus/buttons/zoom-in/zoom-in.component.d.ts.map +1 -0
  111. package/lib/menus/buttons/zoom-out/zoom-out.component.d.ts +9 -0
  112. package/lib/menus/buttons/zoom-out/zoom-out.component.d.ts.map +1 -0
  113. package/lib/services/history.service.d.ts +45 -0
  114. package/lib/services/history.service.d.ts.map +1 -0
  115. package/lib/services/tools.config-manager.service.d.ts +12 -0
  116. package/lib/services/tools.config-manager.service.d.ts.map +1 -0
  117. package/lib/submenus/crop/crop.component.d.ts +23 -0
  118. package/lib/submenus/crop/crop.component.d.ts.map +1 -0
  119. package/lib/submenus/draw/draw.component.d.ts +32 -0
  120. package/lib/submenus/draw/draw.component.d.ts.map +1 -0
  121. package/lib/submenus/filter/filter.component.d.ts +70 -0
  122. package/lib/submenus/filter/filter.component.d.ts.map +1 -0
  123. package/lib/submenus/flip/flip.component.d.ts +10 -0
  124. package/lib/submenus/flip/flip.component.d.ts.map +1 -0
  125. package/lib/submenus/icon/icon.component.d.ts +24 -0
  126. package/lib/submenus/icon/icon.component.d.ts.map +1 -0
  127. package/lib/submenus/mask/mask.component.d.ts +16 -0
  128. package/lib/submenus/mask/mask.component.d.ts.map +1 -0
  129. package/lib/submenus/rotate/rotate.component.d.ts +12 -0
  130. package/lib/submenus/rotate/rotate.component.d.ts.map +1 -0
  131. package/lib/submenus/shape/shape.component.d.ts +31 -0
  132. package/lib/submenus/shape/shape.component.d.ts.map +1 -0
  133. package/lib/submenus/text/text.component.d.ts +31 -0
  134. package/lib/submenus/text/text.component.d.ts.map +1 -0
  135. package/lib/svg-definitions/svg-definitions.component.d.ts +6 -0
  136. package/lib/svg-definitions/svg-definitions.component.d.ts.map +1 -0
  137. package/lib/tui-image-editor.component.d.ts +71 -0
  138. package/lib/tui-image-editor.component.d.ts.map +1 -0
  139. package/lib/tui-image-editor.module.d.ts +48 -0
  140. package/lib/tui-image-editor.module.d.ts.map +1 -0
  141. package/lib/utils.d.ts +45 -0
  142. package/lib/utils.d.ts.map +1 -0
  143. package/package.json +43 -0
  144. package/public-api.d.ts +4 -0
  145. package/public-api.d.ts.map +1 -0
  146. package/src/checkboxes.scss +95 -0
  147. package/src/theme.scss +936 -0
  148. package/tui-image-editor-angular2.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-image-editor-angular3.mjs","sources":["../../../projects/tui-image-editor-angular2/src/lib/i18n/en.ts","../../../projects/tui-image-editor-angular2/src/lib/i18n/nl.ts","../../../projects/tui-image-editor-angular2/src/lib/i18n/translation.service.ts","../../../projects/tui-image-editor-angular2/src/lib/consts.ts","../../../projects/tui-image-editor-angular2/src/lib/utils.ts","../../../projects/tui-image-editor-angular2/src/lib/interfaces/history-item.ts","../../../projects/tui-image-editor-angular2/src/lib/services/history.service.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/load/load.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/load/load.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/history/history.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/history/history.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/download/download.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/download/download.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/zoom-in/zoom-in.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/zoom-in/zoom-in.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/zoom-out/zoom-out.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/zoom-out/zoom-out.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/drag/drag.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/drag/drag.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/undo/undo.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/undo/undo.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/redo/redo.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/redo/redo.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/reset/reset.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/reset/reset.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/delete/delete.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/delete/delete.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/delete-all/delete-all.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/delete-all/delete-all.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/crop/crop.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/crop/crop.component.html","../../../projects/tui-image-editor-angular2/src/lib/submenus/crop/crop.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/crop/crop.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/flip/flip.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/flip/flip.component.html","../../../projects/tui-image-editor-angular2/src/lib/submenus/flip/flip.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/flip/flip.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/rotate/rotate.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/rotate/rotate.component.html","../../../projects/tui-image-editor-angular2/src/lib/submenus/rotate/rotate.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/rotate/rotate.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/draw/draw.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/draw/draw.component.html","../../../projects/tui-image-editor-angular2/src/lib/services/tools.config-manager.service.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/draw/draw.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/draw/draw.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/shape/shape.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/shape/shape.component.html","../../../projects/tui-image-editor-angular2/src/lib/submenus/shape/shape.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/shape/shape.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/icon/icon.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/icon/icon.component.html","../../../projects/tui-image-editor-angular2/src/lib/submenus/icon/icon.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/icon/icon.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/text/text.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/text/text.component.html","../../../projects/tui-image-editor-angular2/src/lib/submenus/text/text.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/text/text.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/mask/mask.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/mask/mask.component.html","../../../projects/tui-image-editor-angular2/src/lib/submenus/mask/mask.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/mask/mask.component.html","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/filter/filter.component.ts","../../../projects/tui-image-editor-angular2/src/lib/menus/buttons/filter/filter.component.html","../../../projects/tui-image-editor-angular2/src/lib/submenus/filter/filter.component.ts","../../../projects/tui-image-editor-angular2/src/lib/submenus/filter/filter.component.html","../../../projects/tui-image-editor-angular2/src/lib/tui-image-editor.component.ts","../../../projects/tui-image-editor-angular2/src/lib/tui-image-editor.component.html","../../../projects/tui-image-editor-angular2/src/lib/svg-definitions/svg-definitions.component.ts","../../../projects/tui-image-editor-angular2/src/lib/svg-definitions/svg-definitions.component.html","../../../projects/tui-image-editor-angular2/src/lib/tui-image-editor.module.ts","../../../projects/tui-image-editor-angular2/src/public-api.ts","../../../projects/tui-image-editor-angular2/src/tui-image-editor-angular3.ts"],"sourcesContent":["export const en = {\r\n 'tui-image-editor-angular-menus-buttons-crop-tooltip': 'Crop',\r\n 'tui-image-editor-angular-menus-buttons-delete': 'Delete',\r\n 'tui-image-editor-angular-menus-buttons-deleteAll': 'Delete all',\r\n 'tui-image-editor-angular-menus-buttons-download': 'Download',\r\n 'tui-image-editor-angular-menus-buttons-drag': 'Drag',\r\n 'tui-image-editor-angular-menus-buttons-draw': 'Draw',\r\n 'tui-image-editor-angular-menus-buttons-filter': 'Filter',\r\n 'tui-image-editor-angular-menus-buttons-flip': 'Flip',\r\n 'tui-image-editor-angular-menus-buttons-history': 'History',\r\n 'tui-image-editor-angular-menus-buttons-icon': 'Icon',\r\n 'tui-image-editor-angular-menus-buttons-load': 'Load image',\r\n 'tui-image-editor-angular-menus-buttons-mask': 'Mask',\r\n 'tui-image-editor-angular-menus-buttons-redo': 'Redo',\r\n 'tui-image-editor-angular-menus-buttons-reset': 'Reset',\r\n 'tui-image-editor-angular-menus-buttons-rotate': 'Rotate',\r\n 'tui-image-editor-angular-menus-buttons-shape': 'Shape',\r\n 'tui-image-editor-angular-menus-buttons-text': 'Text',\r\n 'tui-image-editor-angular-menus-buttons-undo': 'Undo',\r\n 'tui-image-editor-angular-menus-buttons-zoomIn': 'ZoomIn',\r\n 'tui-image-editor-angular-menus-buttons-zoomOut': 'ZoomOut',\r\n\r\n 'tui-image-editor-angular-submenus-crop-custom': 'Custom',\r\n 'tui-image-editor-angular-submenus-crop-square': 'Square',\r\n 'tui-image-editor-angular-submenus-crop-apply': 'Apply',\r\n 'tui-image-editor-angular-submenus-crop-cancel': 'Cancel',\r\n 'tui-image-editor-angular-submenus-flip-x': 'Flip X',\r\n 'tui-image-editor-angular-submenus-flip-y': 'Flip Y',\r\n 'tui-image-editor-angular-submenus-flip-reset': 'Reset',\r\n 'tui-image-editor-angular-submenus-rotate-slider': 'Rotation',\r\n 'tui-image-editor-angular-submenus-draw-free': 'Free',\r\n 'tui-image-editor-angular-submenus-draw-straight': 'Straight',\r\n 'tui-image-editor-angular-submenus-draw-color': 'Color',\r\n 'tui-image-editor-angular-submenus-draw-strokeWidth': 'Stroke width',\r\n 'tui-image-editor-angular-submenus-shape-rectangle': 'Rectangle',\r\n 'tui-image-editor-angular-submenus-shape-circle': 'Circle',\r\n 'tui-image-editor-angular-submenus-shape-triangle': 'Triangle',\r\n 'tui-image-editor-angular-submenus-shape-fill': 'Fill',\r\n 'tui-image-editor-angular-submenus-shape-stroke': 'Stroke',\r\n 'tui-image-editor-angular-submenus-shape-strokeWidth': 'Stroke width',\r\n 'tui-image-editor-angular-submenus-icon-arrow1': 'Arrow-1',\r\n 'tui-image-editor-angular-submenus-icon-arrow2': 'Arrow-2',\r\n 'tui-image-editor-angular-submenus-icon-arrow3': 'Arrow-3',\r\n 'tui-image-editor-angular-submenus-icon-star1': 'Star-1',\r\n 'tui-image-editor-angular-submenus-icon-star2': 'Star-2',\r\n 'tui-image-editor-angular-submenus-icon-polygon': 'Polygon',\r\n 'tui-image-editor-angular-submenus-icon-location': 'Location',\r\n 'tui-image-editor-angular-submenus-icon-heart': 'Heart',\r\n 'tui-image-editor-angular-submenus-icon-bubble': 'Bubble',\r\n 'tui-image-editor-angular-submenus-icon-customIcon': 'Custom icon',\r\n 'tui-image-editor-angular-submenus-icon-color': 'Color',\r\n 'tui-image-editor-angular-submenus-text-bold': 'Bold',\r\n 'tui-image-editor-angular-submenus-text-italic': 'Italic',\r\n 'tui-image-editor-angular-submenus-text-underline': 'Underline',\r\n 'tui-image-editor-angular-submenus-text-left': 'Left',\r\n 'tui-image-editor-angular-submenus-text-center': 'Center',\r\n 'tui-image-editor-angular-submenus-text-right': 'Right',\r\n 'tui-image-editor-angular-submenus-text-color': 'Color',\r\n 'tui-image-editor-angular-submenus-text-textSize': 'Text size',\r\n 'tui-image-editor-angular-submenus-mask-loadMaskImage': 'Load mask image',\r\n 'tui-image-editor-angular-submenus-mask-apply': 'Apply',\r\n 'tui-image-editor-angular-submenus-filter-grayscale': 'Grayscale',\r\n 'tui-image-editor-angular-submenus-filter-invert': 'Invert',\r\n 'tui-image-editor-angular-submenus-filter-sepia': 'Sepia',\r\n 'tui-image-editor-angular-submenus-filter-sepia2': 'Sepia 2',\r\n 'tui-image-editor-angular-submenus-filter-blur': 'Blur',\r\n 'tui-image-editor-angular-submenus-filter-sharpen': 'Sharpen',\r\n 'tui-image-editor-angular-submenus-filter-emboss': 'Emboss',\r\n 'tui-image-editor-angular-submenus-filter-removeWhite': 'Remove white',\r\n 'tui-image-editor-angular-submenus-filter-removeWhite-distance': 'Distance',\r\n 'tui-image-editor-angular-submenus-filter-brightness': 'Brightness',\r\n 'tui-image-editor-angular-submenus-filter-noise': 'Noise',\r\n 'tui-image-editor-angular-submenus-filter-pixelate': 'Pixelate',\r\n 'tui-image-editor-angular-submenus-filter-colorFilter': 'Color filter',\r\n 'tui-image-editor-angular-submenus-filter-colorFilter-threshold': 'Threshold',\r\n 'tui-image-editor-angular-submenus-filter-tint': 'Tint',\r\n 'tui-image-editor-angular-submenus-filter-multiply': 'Multiply',\r\n 'tui-image-editor-angular-submenus-filter-blend': 'Blend',\r\n\r\n 'tui-image-editor-angular-history-noItems': 'No history available',\r\n 'tui-image-editor-angular-history-text-added': 'Added',\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-left':\r\n 'Align left',\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-center':\r\n 'Align center',\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-right':\r\n 'Align right',\r\n 'tui-image-editor-angular-history-text-styleChange-underline': 'Underline',\r\n 'tui-image-editor-angular-history-text-styleChange-underline-true':\r\n 'Underline',\r\n 'tui-image-editor-angular-history-text-styleChange-underline-false':\r\n 'Not underlined',\r\n 'tui-image-editor-angular-history-text-styleChange-fontStyle-normal':\r\n 'Not italic',\r\n 'tui-image-editor-angular-history-text-styleChange-fontStyle-italic':\r\n 'Italic',\r\n 'tui-image-editor-angular-history-text-styleChange-fontWeight-normal':\r\n 'Normal fontweight',\r\n 'tui-image-editor-angular-history-text-styleChange-fontWeight-bold': 'Bold',\r\n 'tui-image-editor-angular-history-text-styleChange-fontSize':\r\n 'Fontsize {{0}}',\r\n 'tui-image-editor-angular-history-text-fill': 'Color',\r\n 'tui-image-editor-angular-history-text-general': 'Text',\r\n 'tui-image-editor-angular-history-text-details': 'Moved/Resized',\r\n 'tui-image-editor-angular-history-mask-general': 'Mask',\r\n 'tui-image-editor-angular-history-mask-details': 'Moved/Resized',\r\n 'tui-image-editor-angular-history-mask-added': 'Added',\r\n 'tui-image-editor-angular-history-mask-apply': 'Applied',\r\n 'tui-image-editor-angular-history-crop': 'Crop',\r\n 'tui-image-editor-angular-history-flip': 'Flip',\r\n 'tui-image-editor-angular-history-flip-reset': 'Reset',\r\n 'tui-image-editor-angular-history-flip-flipX': 'X',\r\n 'tui-image-editor-angular-history-flip-flipY': 'Y',\r\n 'tui-image-editor-angular-history-rotate': 'Rotate',\r\n 'tui-image-editor-angular-history-draw-general': 'Drawing',\r\n 'tui-image-editor-angular-history-draw-details': 'Added/Moved/Resized',\r\n 'tui-image-editor-angular-history-draw-strokeWidth': 'Width {{0}}',\r\n 'tui-image-editor-angular-history-draw-stroke': 'Color',\r\n 'tui-image-editor-angular-history-icon-general': 'Icon',\r\n 'tui-image-editor-angular-history-icon-details': 'Added/Moved/Resized',\r\n 'tui-image-editor-angular-history-icon-colorChange':'Color changed',\r\n 'tui-image-editor-angular-history-icon-added': 'Added',\r\n 'tui-image-editor-angular-history-icon-fill': 'Color',\r\n 'tui-image-editor-angular-history-load': 'Image loaded',\r\n 'tui-image-editor-angular-history-delete': 'Delete',\r\n 'tui-image-editor-angular-history-delete-all': 'All',\r\n 'tui-image-editor-angular-history-delete-draw': 'Drawing',\r\n 'tui-image-editor-angular-history-delete-shape': 'Shape',\r\n 'tui-image-editor-angular-history-delete-icon': 'Icon',\r\n 'tui-image-editor-angular-history-delete-text': 'Text',\r\n 'tui-image-editor-angular-history-delete-mask': 'Mask',\r\n 'tui-image-editor-angular-history-shape-general': 'Shape',\r\n 'tui-image-editor-angular-history-shape-details': 'Added/Moved/Resized',\r\n 'tui-image-editor-angular-history-applyFilter': 'Apply filter',\r\n 'tui-image-editor-angular-history-removeFilter': 'Remove filter',\r\n 'tui-image-editor-angular-history-shape-strokeWidth': 'Stroke width',\r\n 'tui-image-editor-angular-history-shape-stroke': 'Stroke',\r\n 'tui-image-editor-angular-history-shape-fill': 'Fill',\r\n};\r\n","export const nl = {\r\n 'tui-image-editor-angular-menus-buttons-crop-tooltip': 'Crop',\r\n 'tui-image-editor-angular-menus-buttons-delete': 'Verwijderen',\r\n 'tui-image-editor-angular-menus-buttons-deleteAll': 'Alles verwijderen',\r\n 'tui-image-editor-angular-menus-buttons-download': 'Downloaden',\r\n 'tui-image-editor-angular-menus-buttons-drag': 'Slepen',\r\n 'tui-image-editor-angular-menus-buttons-draw': 'Tekenen',\r\n 'tui-image-editor-angular-menus-buttons-filter': 'Filters',\r\n 'tui-image-editor-angular-menus-buttons-flip': 'Âfbeelding draaien',\r\n 'tui-image-editor-angular-menus-buttons-history': 'Historiek',\r\n 'tui-image-editor-angular-menus-buttons-icon': 'Icoon',\r\n 'tui-image-editor-angular-menus-buttons-load': 'Afbeelding laden',\r\n 'tui-image-editor-angular-menus-buttons-mask': 'Masker',\r\n 'tui-image-editor-angular-menus-buttons-redo': 'Herhalen',\r\n 'tui-image-editor-angular-menus-buttons-reset': 'Reset',\r\n 'tui-image-editor-angular-menus-buttons-rotate': 'Roteren',\r\n 'tui-image-editor-angular-menus-buttons-shape': 'Vorm',\r\n 'tui-image-editor-angular-menus-buttons-text': 'Tekst',\r\n 'tui-image-editor-angular-menus-buttons-undo': 'Ongedaan maken',\r\n 'tui-image-editor-angular-menus-buttons-zoomIn': 'Inzoomen',\r\n 'tui-image-editor-angular-menus-buttons-zoomOut': 'Uitzoomen',\r\n\r\n 'tui-image-editor-angular-submenus-crop-custom': 'Aangepast',\r\n 'tui-image-editor-angular-submenus-crop-square': 'Vierkant',\r\n 'tui-image-editor-angular-submenus-crop-apply': 'Toepassen',\r\n 'tui-image-editor-angular-submenus-crop-cancel': 'Annuleren',\r\n 'tui-image-editor-angular-submenus-flip-x': 'Horizontaal',\r\n 'tui-image-editor-angular-submenus-flip-y': 'Verticaal',\r\n 'tui-image-editor-angular-submenus-flip-reset': 'Annuleren',\r\n 'tui-image-editor-angular-submenus-rotate-slider': 'Rotatie',\r\n 'tui-image-editor-angular-submenus-draw-free': 'Vrij',\r\n 'tui-image-editor-angular-submenus-draw-straight': 'Rechte lijn',\r\n 'tui-image-editor-angular-submenus-draw-color': 'Kleur',\r\n 'tui-image-editor-angular-submenus-draw-strokeWidth': 'Lijndikte',\r\n 'tui-image-editor-angular-submenus-shape-rectangle': 'Rechthoek',\r\n 'tui-image-editor-angular-submenus-shape-circle': 'Cirkel',\r\n 'tui-image-editor-angular-submenus-shape-triangle': 'Driehoek',\r\n 'tui-image-editor-angular-submenus-shape-fill': 'Opvulling',\r\n 'tui-image-editor-angular-submenus-shape-stroke': 'Randkleur',\r\n 'tui-image-editor-angular-submenus-shape-strokeWidth': 'Randdikte',\r\n 'tui-image-editor-angular-submenus-icon-arrow1': 'Pijl-1',\r\n 'tui-image-editor-angular-submenus-icon-arrow2': 'Pijl-2',\r\n 'tui-image-editor-angular-submenus-icon-arrow3': 'Pijl-3',\r\n 'tui-image-editor-angular-submenus-icon-star1': 'Ster-1',\r\n 'tui-image-editor-angular-submenus-icon-star2': 'Ster-2',\r\n 'tui-image-editor-angular-submenus-icon-polygon': 'Polygoon',\r\n 'tui-image-editor-angular-submenus-icon-location': 'Locatie',\r\n 'tui-image-editor-angular-submenus-icon-heart': 'Hart',\r\n 'tui-image-editor-angular-submenus-icon-bubble': 'Bubbel',\r\n 'tui-image-editor-angular-submenus-icon-customIcon': 'Eigen icoon',\r\n 'tui-image-editor-angular-submenus-icon-color': 'Kleur',\r\n 'tui-image-editor-angular-submenus-text-bold': 'Vet',\r\n 'tui-image-editor-angular-submenus-text-italic': 'Cursief',\r\n 'tui-image-editor-angular-submenus-text-underline': 'Onderstreept',\r\n 'tui-image-editor-angular-submenus-text-left': 'Links',\r\n 'tui-image-editor-angular-submenus-text-center': 'Midden',\r\n 'tui-image-editor-angular-submenus-text-right': 'Rechts',\r\n 'tui-image-editor-angular-submenus-text-color': 'Kleur',\r\n 'tui-image-editor-angular-submenus-text-textSize': 'Tekstgrootte',\r\n 'tui-image-editor-angular-submenus-mask-loadMaskImage': 'Masker laden',\r\n 'tui-image-editor-angular-submenus-mask-apply': 'Toepassen',\r\n 'tui-image-editor-angular-submenus-filter-grayscale': 'Grijstinten',\r\n 'tui-image-editor-angular-submenus-filter-invert': 'Kleuren omkeren',\r\n 'tui-image-editor-angular-submenus-filter-sepia': 'Sepia',\r\n 'tui-image-editor-angular-submenus-filter-sepia2': 'Sepia 2',\r\n 'tui-image-editor-angular-submenus-filter-blur': 'Wazig maken',\r\n 'tui-image-editor-angular-submenus-filter-sharpen': 'Scherpte',\r\n 'tui-image-editor-angular-submenus-filter-emboss': 'Reliëf',\r\n 'tui-image-editor-angular-submenus-filter-removeWhite': 'Wit verwijderen',\r\n 'tui-image-editor-angular-submenus-filter-removeWhite-distance': 'Afstand',\r\n 'tui-image-editor-angular-submenus-filter-brightness': 'Helderheid',\r\n 'tui-image-editor-angular-submenus-filter-noise': 'Ruis',\r\n 'tui-image-editor-angular-submenus-filter-pixelate': 'Pixelate',\r\n 'tui-image-editor-angular-submenus-filter-colorFilter': 'Kleurfilter',\r\n 'tui-image-editor-angular-submenus-filter-colorFilter-threshold': 'Drempel',\r\n 'tui-image-editor-angular-submenus-filter-tint': 'Tint',\r\n 'tui-image-editor-angular-submenus-filter-multiply': 'Vermenigvuldigen',\r\n 'tui-image-editor-angular-submenus-filter-blend': 'Mengsel',\r\n\r\n 'tui-image-editor-angular-history-noItems': 'Nog geen historiek beschikbaar',\r\n 'tui-image-editor-angular-history-text-added': 'Toegevoegd',\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-left':\r\n 'Links uitlijnen',\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-center':\r\n 'Centreren',\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-right':\r\n 'Rechts uitlijnen',\r\n 'tui-image-editor-angular-history-text-styleChange-underline-true':\r\n 'Onderstrepen',\r\n 'tui-image-editor-angular-history-text-styleChange-underline-false':\r\n 'Niet onderstrepen',\r\n 'tui-image-editor-angular-history-text-styleChange-fontStyle-normal':\r\n 'Niet-cursief',\r\n 'tui-image-editor-angular-history-text-styleChange-fontStyle-italic':\r\n 'Cursief',\r\n 'tui-image-editor-angular-history-text-styleChange-fontWeight-normal':\r\n 'Niet vet',\r\n 'tui-image-editor-angular-history-text-styleChange-fontWeight-bold': 'Vet',\r\n 'tui-image-editor-angular-history-text-styleChange-fontSize':\r\n 'Tekstgrootte {{0}}',\r\n 'tui-image-editor-angular-history-text-fill': 'Kleur',\r\n 'tui-image-editor-angular-history-text-general': 'Tekst',\r\n 'tui-image-editor-angular-history-text-details':\r\n 'Verplaatst/Vergroot/Verkleind',\r\n 'tui-image-editor-angular-history-mask-general': 'Masker',\r\n 'tui-image-editor-angular-history-mask-details':\r\n 'Verplaatst/Vergroot/Verkleind',\r\n 'tui-image-editor-angular-history-mask-added': 'Toegevoegd',\r\n 'tui-image-editor-angular-history-mask-apply': 'Uitgevoerd',\r\n 'tui-image-editor-angular-history-crop': 'Bijsnijden',\r\n 'tui-image-editor-angular-history-flip': 'Omdraaien',\r\n 'tui-image-editor-angular-history-flip-reset': 'Reset',\r\n 'tui-image-editor-angular-history-flip-flipX': 'X',\r\n 'tui-image-editor-angular-history-flip-flipY': 'Y',\r\n 'tui-image-editor-angular-history-rotate': 'Draaien',\r\n 'tui-image-editor-angular-history-draw-general': 'Tekening',\r\n 'tui-image-editor-angular-history-draw-details':\r\n 'Toegevoegd/Verplaatst/Vergroot/Verkleind',\r\n 'tui-image-editor-angular-history-draw-strokeWidth': 'Lijndikte {{0}}',\r\n 'tui-image-editor-angular-history-draw-stroke': 'Kleur',\r\n 'tui-image-editor-angular-history-icon-general': 'Icoon',\r\n 'tui-image-editor-angular-history-icon-details':\r\n 'Toegevoegd/Verplaatst/Vergroot/Verkleind',\r\n 'tui-image-editor-angular-history-icon-colorChange':'Kleur gewijzigd',\r\n 'tui-image-editor-angular-history-icon-added': 'Toegevoegd',\r\n 'tui-image-editor-angular-history-icon-fill': 'Kleur',\r\n 'tui-image-editor-angular-history-load': 'Foto geladen',\r\n 'tui-image-editor-angular-history-delete': 'Verwijderen',\r\n 'tui-image-editor-angular-history-delete-all': 'Alle',\r\n 'tui-image-editor-angular-history-delete-draw': 'Tekening',\r\n 'tui-image-editor-angular-history-delete-shape': 'Vorm',\r\n 'tui-image-editor-angular-history-delete-icon': 'Icoon',\r\n 'tui-image-editor-angular-history-delete-text': 'Tekst',\r\n 'tui-image-editor-angular-history-delete-mask': 'Masker',\r\n 'tui-image-editor-angular-history-shape-general': 'Vorm',\r\n 'tui-image-editor-angular-history-shape-details':\r\n 'Toegevoegd/Verplaatst/Vergroot/Verkleind',\r\n 'tui-image-editor-angular-history-applyFilter': 'Filter toepassen',\r\n 'tui-image-editor-angular-history-removeFilter': 'Filter verwijderen',\r\n 'tui-image-editor-angular-history-shape-strokeWidth': 'Randdikte',\r\n 'tui-image-editor-angular-history-shape-stroke': 'Randkleur',\r\n 'tui-image-editor-angular-history-shape-fill': 'Opvulling',\r\n};\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { en } from './en';\r\nimport { nl } from './nl';\r\n\r\n@Injectable()\r\nexport class TranslationService {\r\n private availableLanguages = { en, nl };\r\n\r\n get window(): Window {\r\n return this.document.defaultView;\r\n }\r\n\r\n constructor(@Inject(DOCUMENT) readonly document: any, public service: TranslateService) {\r\n Object.keys(this.availableLanguages).forEach((language) => {\r\n this.service.setTranslation(language, this.availableLanguages[language], true);\r\n });\r\n let browserLanguages = window.navigator.languages;\r\n let firstSupportedBrowserLanguage = browserLanguages.find((item) => Object.keys(this.availableLanguages).some((key) => key == item));\r\n service.use(firstSupportedBrowserLanguage || 'nl');\r\n }\r\n\r\n changeLanguage(lang: string) {\r\n this.service.use(lang);\r\n }\r\n\r\n loadCustomMessages(lang: string, messagesJson) {\r\n this.service.setTranslation(lang, messagesJson, true);\r\n }\r\n\r\n getTranslation(key: string, params?: Object) {\r\n return this.service.instant(key, params);\r\n }\r\n}\r\n","export enum zoomModes {\r\n DEFAULT = 'normal',\r\n ZOOM = 'zoom',\r\n HAND = 'hand',\r\n}\r\n\r\nexport enum eventNames {\r\n OBJECT_ACTIVATED = 'objectActivated',\r\n OBJECT_MOVED = 'objectMoved',\r\n OBJECT_SCALED = 'objectScaled',\r\n OBJECT_CREATED = 'objectCreated',\r\n OBJECT_ROTATED = 'objectRotated',\r\n OBJECT_ADDED = 'objectAdded',\r\n OBJECT_MODIFIED = 'objectModified',\r\n TEXT_EDITING = 'textEditing',\r\n TEXT_CHANGED = 'textChanged',\r\n ICON_CREATE_RESIZE = 'iconCreateResize',\r\n ICON_CREATE_END = 'iconCreateEnd',\r\n ADD_TEXT = 'addText',\r\n ADD_OBJECT = 'addObject',\r\n ADD_OBJECT_AFTER = 'addObjectAfter',\r\n MOUSE_DOWN = 'mousedown',\r\n MOUSE_UP = 'mouseup',\r\n MOUSE_MOVE = 'mousemove',\r\n // UNDO/REDO Events\r\n REDO_STACK_CHANGED = 'redoStackChanged',\r\n UNDO_STACK_CHANGED = 'undoStackChanged',\r\n SELECTION_CLEARED = 'selectionCleared',\r\n SELECTION_CREATED = 'selectionCreated',\r\n EXECUTE_COMMAND = 'executeCommand',\r\n AFTER_UNDO = 'afterUndo',\r\n AFTER_REDO = 'afterRedo',\r\n ZOOM_CHANGED = 'zoomChanged',\r\n HAND_STARTED = 'handStarted',\r\n HAND_STOPPED = 'handStopped',\r\n KEY_DOWN = 'keydown',\r\n KEY_UP = 'keyup',\r\n}\r\n\r\nexport enum commandNames {\r\n TEXT = 'Text',\r\n MASK = 'Image',\r\n CROP = 'Crop',\r\n DRAW = 'Draw',\r\n ICON = 'Icon',\r\n LOAD = 'Load',\r\n SHAPE = 'Shape',\r\n CLEAR_OBJECTS = 'clearObjects',\r\n LOAD_IMAGE = 'loadImage',\r\n FLIP_IMAGE = 'flip',\r\n ROTATE_IMAGE = 'rotate',\r\n ADD_OBJECT = 'addObject',\r\n REMOVE_OBJECT = 'removeObject',\r\n APPLY_FILTER = 'applyFilter',\r\n REMOVE_FILTER = 'removeFilter',\r\n ADD_ICON = 'addIcon',\r\n CHANGE_ICON_COLOR = 'changeIconColor',\r\n ADD_SHAPE = 'addShape',\r\n CHANGE_SHAPE = 'changeShape',\r\n ADD_TEXT = 'addText',\r\n CHANGE_TEXT = 'changeText',\r\n CHANGE_TEXT_STYLE = 'changeTextStyle',\r\n ADD_IMAGE_OBJECT = 'addImageObject',\r\n RESIZE_CANVAS_DIMENSION = 'resizeCanvasDimension',\r\n SET_OBJECT_PROPERTIES = 'setObjectProperties',\r\n SET_OBJECT_POSITION = 'setObjectPosition',\r\n CHANGE_SELECTION = 'changeSelection',\r\n}\r\n\r\nexport enum historyNames {\r\n LOAD_IMAGE = 'Load',\r\n LOAD_MASK_IMAGE = 'Mask',\r\n ADD_MASK_IMAGE = 'Mask',\r\n ADD_IMAGE_OBJECT = 'Mask',\r\n CROP = 'Crop',\r\n APPLY_FILTER = 'Apply filter',\r\n REMOVE_FILTER = 'Remove filter',\r\n CHANGE_SHAPE = 'Shape',\r\n CHANGE_ICON_COLOR = 'Icon',\r\n ADD_TEXT = 'Text',\r\n CHANGE_TEXT_STYLE = 'Text',\r\n REMOVE_OBJECT = 'Delete',\r\n CLEAR_OBJECTS = 'Delete',\r\n}\r\n\r\nexport enum filterType {\r\n VINTAGE = 'vintage',\r\n SEPIA2 = 'sepia2',\r\n REMOVE_COLOR = 'removeColor',\r\n COLOR_FILTER = 'colorFilter',\r\n REMOVE_WHITE = 'removeWhite',\r\n BLEND_COLOR = 'blendColor',\r\n BLEND = 'blend',\r\n TINT = 'tint',\r\n MULTIPLY = 'multiply',\r\n BLEND_OR_TINT_OR_MULTIPLY = 'blend_tint_multiply',\r\n REMOVE_COLOR_OR_WHITE = 'removeColor_removeWhite',\r\n BRIGHTNESS = 'brightness',\r\n NOISE = 'noise',\r\n PIXELATE = 'pixelate',\r\n SHARPEN = 'sharpen',\r\n INVERT = 'invert',\r\n EMBOSS = 'emboss',\r\n SEPIA = 'sepia',\r\n GRAYSCALE = 'grayscale',\r\n BLUR = 'blur',\r\n}\r\n\r\nexport enum drawingModes {\r\n NORMAL = 'NORMAL',\r\n CROPPER = 'CROPPER',\r\n FREE_DRAWING = 'FREE_DRAWING',\r\n LINE_DRAWING = 'LINE_DRAWING',\r\n TEXT = 'TEXT',\r\n SHAPE = 'SHAPE',\r\n ICON = 'ICON',\r\n ZOOM = 'ZOOM',\r\n}\r\n\r\nexport const defaultIconPath = {\r\n 'icon-arrow': 'M40 12V0l24 24-24 24V36H0V12h40z',\r\n 'icon-arrow-2':\r\n 'M49,32 H3 V22 h46 l-18,-18 h12 l23,23 L43,50 h-12 l18,-18 z ',\r\n 'icon-arrow-3':\r\n 'M43.349998,27 L17.354,53 H1.949999 l25.996,-26 L1.949999,1 h15.404 L43.349998,27 z ',\r\n 'icon-star':\r\n 'M35,54.557999 l-19.912001,10.468 l3.804,-22.172001 l-16.108,-15.7 l22.26,-3.236 L35,3.746 l9.956,20.172001 l22.26,3.236 l-16.108,15.7 l3.804,22.172001 z ',\r\n 'icon-star-2':\r\n 'M17,31.212 l-7.194,4.08 l-4.728,-6.83 l-8.234,0.524 l-1.328,-8.226 l-7.644,-3.14 l2.338,-7.992 l-5.54,-6.18 l5.54,-6.176 l-2.338,-7.994 l7.644,-3.138 l1.328,-8.226 l8.234,0.522 l4.728,-6.83 L17,-24.312 l7.194,-4.08 l4.728,6.83 l8.234,-0.522 l1.328,8.226 l7.644,3.14 l-2.338,7.992 l5.54,6.178 l-5.54,6.178 l2.338,7.992 l-7.644,3.14 l-1.328,8.226 l-8.234,-0.524 l-4.728,6.83 z ',\r\n 'icon-polygon': 'M3,31 L19,3 h32 l16,28 l-16,28 H19 z ',\r\n 'icon-location':\r\n 'M24 62C8 45.503 0 32.837 0 24 0 10.745 10.745 0 24 0s24 10.745 24 24c0 8.837-8 21.503-24 38zm0-28c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10z',\r\n 'icon-heart':\r\n 'M49.994999,91.349998 l-6.96,-6.333 C18.324001,62.606995 2.01,47.829002 2.01,29.690998 C2.01,14.912998 13.619999,3.299999 28.401001,3.299999 c8.349,0 16.362,5.859 21.594,12 c5.229,-6.141 13.242001,-12 21.591,-12 c14.778,0 26.390999,11.61 26.390999,26.390999 c0,18.138 -16.314001,32.916 -41.025002,55.374001 l-6.96,6.285 z ',\r\n 'icon-bubble':\r\n 'M44 48L34 58V48H12C5.373 48 0 42.627 0 36V12C0 5.373 5.373 0 12 0h40c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-8z',\r\n};\r\n\r\nexport enum cropModes {\r\n PRESET_SQUARE = 'preset-square',\r\n PRESET_3_2 = 'preset-3-2',\r\n PRESET_4_3 = 'preset-4-3',\r\n PRESET_5_4 = 'preset-5-4',\r\n PRESET_7_5 = 'preset-7-5',\r\n PRESET_16_9 = 'preset-16-9',\r\n PRESET_NONE = 'preset-none',\r\n}\r\n\r\nexport const defaultColors: string[] = [\r\n '#000000',\r\n '#2a2a2a',\r\n '#545454',\r\n '#7e7e7e',\r\n '#a8a8a8',\r\n '#d2d2d2',\r\n '#ffffff',\r\n '#ff4040',\r\n '#ff6518',\r\n '#ffbb3b',\r\n '#03bd9e',\r\n '#00a9ff',\r\n '#515ce6',\r\n '#9e5fff',\r\n '#ff5583',\r\n];\r\n\r\nexport enum objectTypes {\r\n icon = 'icon',\r\n image = 'image',\r\n itext = 'i-text',\r\n text = 'text',\r\n straightLine = 'line',\r\n line = 'path',\r\n shapeRect = 'rect',\r\n shapeCircle = 'circle',\r\n shapeTriangle = 'triangle',\r\n}\r\n","import { commandNames, eventNames, filterType, historyNames } from './consts';\r\nimport { Command } from './interfaces/command';\r\n\r\nexport function isFileApiSupported(): boolean {\r\n return !!(window.File && window.FileList && window.FileReader);\r\n}\r\n\r\nexport function isSilentCommand(command: string | Command) {\r\n return typeof command === 'string'\r\n ? commandNames.LOAD_IMAGE === command\r\n : commandNames.LOAD_IMAGE === command.name;\r\n}\r\n\r\nexport function getHistoryTitle(command): { name: string; detail: any } {\r\n const {\r\n FLIP_IMAGE,\r\n ROTATE_IMAGE,\r\n ADD_TEXT,\r\n APPLY_FILTER,\r\n REMOVE_FILTER,\r\n CHANGE_SHAPE,\r\n CHANGE_ICON_COLOR,\r\n CHANGE_TEXT_STYLE,\r\n CLEAR_OBJECTS,\r\n ADD_IMAGE_OBJECT,\r\n REMOVE_OBJECT,\r\n } = commandNames;\r\n const { name, args } = command;\r\n let historyInfo;\r\n\r\n switch (name) {\r\n case FLIP_IMAGE:\r\n historyInfo = {\r\n name,\r\n detail: args[1] === 'reset' ? args[1] : args[1].slice(4),\r\n };\r\n break;\r\n case ROTATE_IMAGE:\r\n historyInfo = { name, detail: args[2] };\r\n break;\r\n case APPLY_FILTER:\r\n historyInfo = {\r\n name: historyNames.APPLY_FILTER,\r\n detail: getFilterType(args[1], args[2]),\r\n };\r\n break;\r\n case REMOVE_FILTER:\r\n historyInfo = { name: historyNames.REMOVE_FILTER, detail: args[1] };\r\n break;\r\n case CHANGE_SHAPE:\r\n historyInfo = { name: historyNames.CHANGE_SHAPE, detail: 'Change' };\r\n break;\r\n case CHANGE_ICON_COLOR:\r\n historyInfo = { name: historyNames.CHANGE_ICON_COLOR, detail: 'Change' };\r\n break;\r\n case CHANGE_TEXT_STYLE:\r\n historyInfo = { name: historyNames.CHANGE_TEXT_STYLE, detail: 'Change' };\r\n break;\r\n case REMOVE_OBJECT:\r\n historyInfo = { name: historyNames.REMOVE_OBJECT, detail: args[2] };\r\n break;\r\n case CLEAR_OBJECTS:\r\n historyInfo = { name: historyNames.CLEAR_OBJECTS, detail: 'All' };\r\n break;\r\n case ADD_IMAGE_OBJECT:\r\n historyInfo = { name: historyNames.ADD_IMAGE_OBJECT, detail: 'Add' };\r\n break;\r\n case ADD_TEXT:\r\n historyInfo = { name: historyNames.ADD_TEXT };\r\n break;\r\n\r\n default:\r\n historyInfo = { name };\r\n break;\r\n }\r\n\r\n if (args[1] === 'mask') {\r\n historyInfo = { name: historyNames.LOAD_MASK_IMAGE, detail: 'Apply' };\r\n }\r\n\r\n return historyInfo;\r\n}\r\n\r\nexport function getFilterType(\r\n type: string,\r\n { useAlpha = true, mode = null } = {}\r\n): string {\r\n const {\r\n VINTAGE,\r\n REMOVE_COLOR,\r\n BLEND_COLOR,\r\n SEPIA2,\r\n COLOR_FILTER,\r\n REMOVE_WHITE,\r\n BLEND,\r\n } = filterType;\r\n\r\n let filterName;\r\n\r\n switch (type) {\r\n case VINTAGE:\r\n filterName = SEPIA2;\r\n break;\r\n case REMOVE_COLOR:\r\n filterName = useAlpha ? COLOR_FILTER : REMOVE_WHITE;\r\n break;\r\n case BLEND_COLOR:\r\n filterName = mode === 'add' ? BLEND : mode;\r\n break;\r\n default:\r\n filterName = type;\r\n }\r\n\r\n return toStartOfCapital(filterName);\r\n}\r\n\r\nfunction toStartOfCapital(str): string {\r\n return str.replace(/[a-z]/, (first) => first.toUpperCase());\r\n}\r\n\r\nexport function dataUrlToBlob(dataUrl: string): Blob {\r\n const {\r\n groups: { mime, base64data },\r\n } = /data:(?<mime>.+);base64,(?<base64data>.+)/.exec(dataUrl);\r\n\r\n const byteCharacters = atob(base64data);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n return new Blob([byteArray], { type: mime });\r\n}\r\n\r\nexport const emptyCropRectValues = {\r\n LEFT: 0,\r\n TOP: 0,\r\n WIDTH: 0.5,\r\n HEIGHT: 0.5,\r\n};\r\n\r\n/**\r\n * Check if cropRect is Empty.\r\n * @param {Object} cropRect - cropRect object\r\n * @param {Number} cropRect.left - cropRect left position value\r\n * @param {Number} cropRect.top - cropRect top position value\r\n * @param {Number} cropRect.width - cropRect width value\r\n * @param {Number} cropRect.height - cropRect height value\r\n * @returns {boolean}\r\n */\r\nexport function isEmptyCropzone(cropRect) {\r\n const { left, top, width, height } = cropRect;\r\n const { LEFT, TOP, WIDTH, HEIGHT } = emptyCropRectValues;\r\n\r\n return left === LEFT && top === TOP && width === WIDTH && height === HEIGHT;\r\n}\r\n\r\nexport function clearSelection(imageEditor: any, fire_event: boolean = true) {\r\n imageEditor.discardSelection();\r\n if (fire_event) {\r\n imageEditor.fire(eventNames.OBJECT_ACTIVATED, null);\r\n imageEditor.fire(eventNames.SELECTION_CLEARED, null); \r\n }\r\n}\r\n\r\nexport function getActiveObjectId(imageEditor: any): number | null {\r\n if (imageEditor != null) {\r\n let activeObject = imageEditor._graphics.getActiveObject();\r\n if (activeObject) {\r\n let activeObjectId = imageEditor._graphics.getObjectId(activeObject);\r\n return activeObjectId;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport async function removeFilter(\r\n imageEditor: any,\r\n type: string,\r\n isSilent: boolean\r\n) {\r\n if (imageEditor != null) {\r\n if (isSilent) {\r\n await imageEditor.executeSilent('removeFilter', type);\r\n } else {\r\n await imageEditor.execute('removeFilter', type);\r\n }\r\n }\r\n}\r\n\r\nexport function rgbaToObject(\r\n rgba: string\r\n): { r: number; g: number; b: number; hexString: string; alpha: number } {\r\n if (rgba.startsWith('rgba')) {\r\n const {\r\n groups: { r, g, b, a },\r\n } = /rgba\\(\\s*(?<r>\\d+)\\s*,\\s*(?<g>\\d+)\\s*,\\s*(?<b>\\d+)\\s*,\\s*(?<a>[0-9.]+)\\s*\\)/.exec(\r\n rgba\r\n );\r\n\r\n let parsedR = parseInt(r);\r\n let parsedG = parseInt(g);\r\n let parsedB = parseInt(b);\r\n\r\n return {\r\n r: parsedR,\r\n g: parsedG,\r\n b: parsedB,\r\n hexString: `#${(parsedR <= 15 ? '0' : '') + parsedR.toString(16)}${\r\n (parsedG <= 15 ? '0' : '') + parsedG.toString(16)\r\n }${(parsedB <= 15 ? '0' : '') + parsedB.toString(16)}`,\r\n alpha: parseFloat(a),\r\n };\r\n }\r\n return rgbToObject(rgba);\r\n}\r\n\r\nexport function rgbToObject(\r\n rgb: string\r\n): { r: number; g: number; b: number; hexString: string; alpha: number } {\r\n if (rgb.startsWith('rgb')) {\r\n const {\r\n groups: { r, g, b },\r\n } = /rgb\\(\\s*(?<r>\\d+)\\s*,\\s*(?<g>\\d+)\\s*,\\s*(?<b>\\d+)\\s*\\)/.exec(rgb);\r\n\r\n let parsedR = parseInt(r);\r\n let parsedG = parseInt(g);\r\n let parsedB = parseInt(b);\r\n\r\n return {\r\n r: parsedR,\r\n g: parsedG,\r\n b: parsedB,\r\n hexString: `#${(parsedR <= 15 ? '0' : '') + parsedR.toString(16)}${\r\n (parsedG <= 15 ? '0' : '') + parsedG.toString(16)\r\n }${(parsedB <= 15 ? '0' : '') + parsedB.toString(16)}`,\r\n alpha: 1,\r\n };\r\n }\r\n return null;\r\n}\r\n","import { commandNames, filterType, historyNames, objectTypes } from '../consts';\r\nimport { TranslationService } from '../i18n/translation.service';\r\nimport { getFilterType } from '../utils';\r\nimport { Command } from './command';\r\n\r\nexport enum HistoryItemType {\r\n Shape = 0,\r\n Icon = 1,\r\n Text = 2,\r\n Mask = 3,\r\n Crop = 4,\r\n Draw = 5,\r\n Rotate = 6,\r\n Flip = 7,\r\n Load = 8,\r\n Delete = 9,\r\n Image = 10,\r\n ApplyFilter = 11,\r\n RemoveFilter = 12,\r\n}\r\n\r\nexport class HistoryItem {\r\n type: HistoryItemType;\r\n name: string;\r\n detail: string;\r\n args: any[];\r\n filterType?: filterType;\r\n\r\n constructor(\r\n command: string | Command,\r\n translationService: TranslationService,\r\n imageEditor: any\r\n ) {\r\n if (typeof command === 'string') {\r\n if (command === commandNames.TEXT) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-details'\r\n );\r\n this.type = HistoryItemType.Text;\r\n } else if (command === commandNames.MASK) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-mask-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-mask-details'\r\n );\r\n this.type = HistoryItemType.Mask;\r\n } else if (command === commandNames.CROP) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-crop'\r\n );\r\n this.type = HistoryItemType.Crop;\r\n } else if (command === commandNames.DRAW) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-draw-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-draw-details'\r\n );\r\n this.type = HistoryItemType.Draw;\r\n } else if (command === commandNames.ICON) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-icon-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-icon-details'\r\n );\r\n this.type = HistoryItemType.Icon;\r\n } else if (command === commandNames.LOAD) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-load'\r\n );\r\n this.type = HistoryItemType.Load;\r\n } else if (command === commandNames.SHAPE) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-shape-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-shape-details'\r\n );\r\n this.type = HistoryItemType.Shape;\r\n } else {\r\n this.name = command;\r\n }\r\n } else {\r\n switch (command.name) {\r\n case commandNames.FLIP_IMAGE:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-flip'\r\n );\r\n switch (command.args[1]) {\r\n case 'reset':\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-flip-reset'\r\n );\r\n break;\r\n case 'flipX':\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-flip-flipX'\r\n );\r\n break;\r\n case 'flipY':\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-flip-flipY'\r\n );\r\n break;\r\n }\r\n this.type = HistoryItemType.Flip;\r\n break;\r\n case commandNames.ROTATE_IMAGE:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-rotate'\r\n );\r\n this.detail = command.args[2] + '°';\r\n this.type = HistoryItemType.Rotate;\r\n this.args = [command.args[2]];\r\n break;\r\n case commandNames.APPLY_FILTER:\r\n if (command.args?.length >= 3 && command.args[1] === 'mask') {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-mask-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-mask-apply'\r\n );\r\n this.type = HistoryItemType.Mask;\r\n } else {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-applyFilter'\r\n );\r\n this.detail = getFilterType(command.args[1], command.args[2]);\r\n this.type = HistoryItemType.ApplyFilter;\r\n if (\r\n command.args[1] === filterType.REMOVE_COLOR &&\r\n command.args[2] != null\r\n ) {\r\n this.filterType =\r\n command.args[2].useAlpha == null\r\n ? filterType.REMOVE_COLOR\r\n : filterType.REMOVE_WHITE;\r\n this.detail =\r\n command.args[2].useAlpha == null\r\n ? translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-colorFilter'\r\n )\r\n : translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-removeWhite'\r\n );\r\n this.args = [command.args[2].distance];\r\n } else if (\r\n command.args[1] === filterType.BLEND_COLOR &&\r\n command.args[2] != null\r\n ) {\r\n if (command.args[2].mode === 'tint') {\r\n this.filterType = filterType.TINT;\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-tint'\r\n );\r\n } else if (command.args[2].mode === 'multiply') {\r\n this.filterType = filterType.MULTIPLY;\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-multiply'\r\n );\r\n } else if (command.args[2].mode === 'add') {\r\n this.filterType = filterType.BLEND;\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-blend'\r\n );\r\n }\r\n this.args = [command.args[2].color];\r\n } else if (\r\n command.args[1] === filterType.NOISE &&\r\n command.args[2] != null\r\n ) {\r\n this.filterType = filterType.NOISE;\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-noise'\r\n );\r\n this.args = [command.args[2].noise];\r\n } else if (\r\n command.args[1] === filterType.BRIGHTNESS &&\r\n command.args[2] != null\r\n ) {\r\n this.filterType = filterType.BRIGHTNESS;\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-brightness'\r\n );\r\n this.args = [command.args[2].brightness];\r\n } else if (\r\n command.args[1] === filterType.PIXELATE &&\r\n command.args[2] != null\r\n ) {\r\n this.filterType = filterType.PIXELATE;\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-pixelate'\r\n );\r\n this.args = [command.args[2].blocksize];\r\n } else if (command.args[1] === filterType.GRAYSCALE) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-grayscale'\r\n );\r\n } else if (command.args[1] === filterType.SEPIA) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-sepia'\r\n );\r\n } else if (command.args[1] === filterType.BLUR) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-blur'\r\n );\r\n } else if (command.args[1] === filterType.INVERT) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-invert'\r\n );\r\n } else if (command.args[1] === filterType.VINTAGE) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-sepia2'\r\n );\r\n } else if (command.args[1] === filterType.SHARPEN) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-sharpen'\r\n );\r\n } else if (command.args[1] === filterType.EMBOSS) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-emboss'\r\n );\r\n }\r\n }\r\n break;\r\n case commandNames.REMOVE_FILTER:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-removeFilter'\r\n );\r\n if (command.args[1] === filterType.BLEND_COLOR) {\r\n this.filterType = filterType.BLEND_OR_TINT_OR_MULTIPLY;\r\n this.detail = `${translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-tint'\r\n )} | ${translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-multiply'\r\n )} | ${translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-blend'\r\n )}`;\r\n } else if (command.args[1] === filterType.REMOVE_COLOR) {\r\n this.filterType = filterType.REMOVE_COLOR_OR_WHITE;\r\n this.detail = `${translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-removeWhite'\r\n )} | ${translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-colorFilter'\r\n )}`;\r\n } else if (command.args[1] === filterType.GRAYSCALE) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-grayscale'\r\n );\r\n } else if (command.args[1] === filterType.SEPIA) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-sepia'\r\n );\r\n } else if (command.args[1] === filterType.BLUR) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-blur'\r\n );\r\n } else if (command.args[1] === filterType.INVERT) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-invert'\r\n );\r\n } else if (command.args[1] === filterType.VINTAGE) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-sepia2'\r\n );\r\n } else if (command.args[1] === filterType.SHARPEN) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-sharpen'\r\n );\r\n } else if (command.args[1] === filterType.EMBOSS) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-submenus-filter-emboss'\r\n );\r\n }\r\n this.type = HistoryItemType.RemoveFilter;\r\n break;\r\n case commandNames.CHANGE_SHAPE:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-shape-general'\r\n );\r\n if (command.args?.length >= 3) {\r\n let changedProperties = command.args[2];\r\n if (changedProperties.strokeWidth) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-shape-strokeWidth'\r\n );\r\n } else if (changedProperties.stroke) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-shape-stroke'\r\n );\r\n } else if (changedProperties.fill) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-shape-fill'\r\n );\r\n }\r\n }\r\n this.type = HistoryItemType.Shape;\r\n break;\r\n case commandNames.CHANGE_ICON_COLOR:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-icon-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-icon-colorChange'\r\n );\r\n this.type = HistoryItemType.Icon;\r\n break;\r\n case commandNames.CHANGE_TEXT_STYLE:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-general'\r\n );\r\n this.type = HistoryItemType.Text;\r\n if (\r\n command.args?.length >= 3 &&\r\n typeof command.args[2] === 'object'\r\n ) {\r\n let textStyleArg = command.args[2];\r\n if (textStyleArg.textAlign) {\r\n switch (textStyleArg.textAlign) {\r\n case 'left':\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-left'\r\n );\r\n break;\r\n case 'center':\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-center'\r\n );\r\n break;\r\n case 'right':\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-textAlignment-right'\r\n );\r\n break;\r\n }\r\n } else if (\r\n textStyleArg.textDecoration ||\r\n textStyleArg.underline != null\r\n ) {\r\n if (textStyleArg.underline) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-underline-true'\r\n );\r\n } else if (textStyleArg.underline === false) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-underline-false'\r\n );\r\n }\r\n } else if (textStyleArg.fontStyle) {\r\n if (textStyleArg.fontStyle === 'normal') {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-fontStyle-normal'\r\n );\r\n } else if (textStyleArg.fontStyle === 'italic') {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-fontStyle-italic'\r\n );\r\n }\r\n } else if (textStyleArg.fontWeight) {\r\n if (textStyleArg.fontWeight === 'normal') {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-fontWeight-normal'\r\n );\r\n } else if (textStyleArg.fontWeight === 'bold') {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-fontWeight-bold'\r\n );\r\n }\r\n } else if (textStyleArg.fontSize) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-styleChange-fontSize',\r\n { 0: textStyleArg.fontSize }\r\n );\r\n } else if (textStyleArg.fill) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-fill'\r\n );\r\n }\r\n }\r\n break;\r\n case commandNames.REMOVE_OBJECT:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-delete'\r\n );\r\n switch (command.args[2]) {\r\n case commandNames.DRAW:\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-delete-draw'\r\n );\r\n break;\r\n case commandNames.SHAPE:\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-delete-shape'\r\n );\r\n break;\r\n case commandNames.ICON:\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-delete-icon'\r\n );\r\n break;\r\n case commandNames.TEXT:\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-delete-text'\r\n );\r\n break;\r\n case commandNames.MASK:\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-delete-mask'\r\n );\r\n break;\r\n }\r\n this.type = HistoryItemType.Delete;\r\n break;\r\n case commandNames.CLEAR_OBJECTS:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-delete'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-delete-all'\r\n );\r\n this.type = HistoryItemType.Delete;\r\n break;\r\n case commandNames.ADD_IMAGE_OBJECT:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-mask-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-mask-added'\r\n );\r\n this.type = HistoryItemType.Image;\r\n break;\r\n case commandNames.ADD_TEXT:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-text-added'\r\n );\r\n this.type = HistoryItemType.Text;\r\n break;\r\n case commandNames.SET_OBJECT_PROPERTIES:\r\n if (command.args?.length >= 3) {\r\n let objectId = command.args[1];\r\n var props = imageEditor?.getObjectProperties(objectId, ['type']);\r\n console.debug(props);\r\n if (props?.type) {\r\n if (\r\n [objectTypes.line, objectTypes.straightLine].indexOf(\r\n props.type\r\n ) > -1\r\n ) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-draw-general'\r\n );\r\n this.type = HistoryItemType.Draw;\r\n let changedProperties = command.args[2];\r\n if (changedProperties?.strokeWidth) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-draw-strokeWidth',\r\n { 0: changedProperties.strokeWidth }\r\n );\r\n } else if (changedProperties?.stroke) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-draw-stroke'\r\n );\r\n }\r\n } else if (props.type === objectTypes.icon) {\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-icon-general'\r\n );\r\n this.type = HistoryItemType.Icon;\r\n let changedProperties = command.args[2];\r\n if (changedProperties?.fill) {\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-icon-fill'\r\n );\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case commandNames.ADD_ICON:\r\n this.name = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-icon-general'\r\n );\r\n this.detail = translationService.getTranslation(\r\n 'tui-image-editor-angular-history-icon-added'\r\n );\r\n this.type = HistoryItemType.Icon;\r\n break;\r\n default:\r\n this.name = command.name;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { historyNames } from '../consts';\r\nimport { TranslationService } from '../i18n/translation.service';\r\nimport { Command } from '../interfaces/command';\r\nimport { HistoryItem } from '../interfaces/history-item';\r\nimport { getHistoryTitle } from '../utils';\r\n\r\n@Injectable()\r\nexport class HistoryService {\r\n public items: HistoryItem[] = [];\r\n public historyIndex: number = -1;\r\n public onChangeEmitter: BehaviorSubject<HistoryItem[]> = new BehaviorSubject(\r\n []\r\n );\r\n\r\n constructor(private translationService: TranslationService) {}\r\n\r\n /**\r\n * Get list's length\r\n */\r\n private get listLength(): number {\r\n return this.items.length;\r\n }\r\n\r\n /**\r\n * Clear history\r\n */\r\n clear() {\r\n if (this.listLength > 0) {\r\n this.deleteListItemElement(0, this.listLength);\r\n this.historyIndex = -1;\r\n }\r\n }\r\n\r\n /**\r\n * Whether history menu has disabled item\r\n */\r\n private hasDisabledItem(): boolean {\r\n return this.listLength - 1 > this.historyIndex;\r\n }\r\n\r\n /**\r\n * Push list item element\r\n */\r\n private pushListItemElement(item: HistoryItem) {\r\n this.items.push(item);\r\n }\r\n\r\n public add(command: string | Command, imageEditor: any) {\r\n console.debug(command);\r\n\r\n if (typeof command === 'string' && command === historyNames.LOAD_IMAGE) {\r\n this.deleteListItemElement(0, this.listLength);\r\n }\r\n\r\n if (this.hasDisabledItem()) {\r\n this.deleteListItemElement(this.historyIndex + 1, this.listLength);\r\n }\r\n\r\n if (\r\n typeof command === 'string' &&\r\n command === historyNames.ADD_MASK_IMAGE\r\n ) {\r\n imageEditor?.clearRedoStack();\r\n imageEditor?.clearUndoStack();\r\n this.deleteListItemElement(0, this.listLength);\r\n } else {\r\n this.pushListItemElement(\r\n new HistoryItem(command, this.translationService, imageEditor)\r\n );\r\n this.historyIndex = this.listLength - 1;\r\n }\r\n }\r\n\r\n /**\r\n * Select previous history of current selected history\r\n */\r\n prev() {\r\n this.historyIndex -= 1;\r\n }\r\n\r\n /**\r\n * Select next history of current selected history\r\n */\r\n next() {\r\n this.historyIndex += 1;\r\n }\r\n\r\n /**\r\n * Delete list item element\r\n * @param {number} start - start index to delete\r\n * @param {number} end - end index to delete\r\n */\r\n private deleteListItemElement(start: number, end: number) {\r\n this.items.splice(start, end - start + 1);\r\n }\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-load',\r\n templateUrl: './load.component.html',\r\n styleUrls: ['./load.component.css'],\r\n})\r\nexport class LoadComponent {\r\n @Output() loadImage: EventEmitter<File> = new EventEmitter<File>();\r\n\r\n constructor() {}\r\n\r\n onImageChosen(event) {\r\n let selectedFile = event.target.files[0];\r\n if (selectedFile != null) {\r\n this.loadImage.emit(selectedFile);\r\n }\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-load' | translate\"\r\n class=\"tie-btn-load tui-image-editor-item help enabled button-background\"\r\n>\r\n <!-- <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-file-upload\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-file-upload\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-file-upload\" class=\"hover use-default\"></use>\r\n </svg> -->\r\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M30.3168 5.05286H26.9987V1.73477C26.9987 0.847753 26.276 0.125 25.389 0.125H25.3397C24.4362 0.125 23.7135 0.847753 23.7135 1.73477V5.05286H20.4118C19.5248 5.05286 18.8021 5.77562 18.7856 6.66263V6.71191C18.7856 7.61535 19.5084 8.33811 20.4118 8.33811H23.7135V11.6398C23.7135 12.5268 24.4362 13.266 25.3397 13.2495H25.389C26.276 13.2495 26.9987 12.5268 26.9987 11.6398V8.33811H30.3168C31.2038 8.33811 31.9266 7.61535 31.9266 6.72834V6.66263C31.9266 5.77562 31.2038 5.05286 30.3168 5.05286ZM22.0709 11.6398V9.98073H20.4118C19.5412 9.98073 18.7199 9.63578 18.0957 9.02801C17.488 8.40381 17.143 7.5825 17.143 6.66263C17.143 6.07129 17.3073 5.52922 17.5865 5.05286H4.00204C2.19516 5.05286 0.716797 6.53122 0.716797 8.33811V28.0496C0.716797 29.8564 2.19516 31.3348 4.00204 31.3348H23.7135C25.5204 31.3348 26.9987 29.8564 26.9987 28.0496V14.4487C26.5059 14.7279 25.9475 14.9086 25.3233 14.9086C23.5328 14.8922 22.0709 13.4302 22.0709 11.6398ZM22.0052 28.0496H5.64466C4.97119 28.0496 4.57696 27.2775 4.98761 26.7355L8.24 22.4154C8.58495 21.9554 9.25843 21.9883 9.58695 22.4482L12.2151 26.4069L16.5024 20.6906C16.8309 20.2635 17.4715 20.2471 17.8001 20.6742L22.6458 26.719C23.0729 27.2611 22.6951 28.0496 22.0052 28.0496Z\" fill=\"#207C80\"/>\r\n </svg>\r\n <input\r\n type=\"file\"\r\n class=\"tui-image-editor-load-btn\"\r\n accept=\"image/*,.heic\"\r\n (change)=\"onImageChosen($event)\"\r\n />\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { eventNames } from '../../../consts';\r\nimport { HistoryItem } from '../../../interfaces/history-item';\r\nimport { HistoryService } from '../../../services/history.service';\r\nimport { getHistoryTitle, isSilentCommand } from '../../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-history',\r\n templateUrl: './history.component.html',\r\n styleUrls: ['./history.component.css'],\r\n})\r\nexport class HistoryComponent {\r\n @Input() imageEditor: any;\r\n\r\n constructor(private historyService: HistoryService) {}\r\n\r\n get items(): HistoryItem[] {\r\n return this.historyService.items;\r\n }\r\n\r\n get historyIndex(): number {\r\n return this.historyService.historyIndex;\r\n }\r\n\r\n public onclickHistoryItem(index: number) {\r\n if (index !== this.historyIndex) {\r\n const count = Math.abs(index - this.historyIndex);\r\n\r\n if (index < this.historyIndex) {\r\n this.imageEditor?.undo(count).then(() => {\r\n this.historyService.onChangeEmitter.next(this.items.slice(0, index + 1));\r\n });\r\n } else {\r\n this.imageEditor?.redo(count).then(() => {\r\n this.historyService.onChangeEmitter.next(this.items.slice(0, index + 1));\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","<div\r\n [ngbPopover]=\"popupContent\"\r\n popoverClass=\"tie-history-popover\"\r\n autoClose=\"outside\"\r\n container=\"body\"\r\n class=\"tie-btn-history tui-image-editor-item help enabled\"\r\n>\r\n <div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-history' | translate\"\r\n class=\"tui-image-editor-d-flex tui-image-editor-align-items-center\"\r\n >\r\n <svg class=\"svg_ic-menu tui-image-editor-d-flex\">\r\n <use xlink:href=\"#ic-history\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-history\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-history\" class=\"hover use-default\"></use>\r\n </svg>\r\n </div>\r\n</div>\r\n\r\n<ng-template #popupContent>\r\n <div class=\"tie-panel-history\">\r\n <ul class=\"history-list\" *ngIf=\"items.length > 0\">\r\n <li\r\n [class]=\"\r\n 'history-item ' +\r\n (itemNr > historyIndex ? 'disabled-item' : '') +\r\n (itemNr == historyIndex ? 'selected-item' : '')\r\n \"\r\n *ngFor=\"let item of items; index as itemNr\"\r\n >\r\n <div\r\n class=\"tui-image-editor-history-item history tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center\"\r\n (click)=\"onclickHistoryItem(itemNr)\"\r\n >\r\n <div\r\n class=\"history-item-icon tui-image-editor-d-flex tui-image-editor-align-items-center\"\r\n >\r\n <svg *ngIf=\"item.type == 8\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-load\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-load\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg *ngIf=\"item.type == 5\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-draw\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-draw\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg *ngIf=\"item.type == 6\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-rotate\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-rotate\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg *ngIf=\"item.type == 4\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-crop\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-crop\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg *ngIf=\"item.type == 7\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-flip\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-flip\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg *ngIf=\"item.type == 2\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-text\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-text\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg\r\n *ngIf=\"item.type == 3 || item.type == 10\"\r\n class=\"svg_ic-submenu\"\r\n >\r\n <use\r\n xlink:href=\"#ic-history-mask\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-mask\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg *ngIf=\"item.type == 0\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-shape\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-shape\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg *ngIf=\"item.type == 1\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-icon\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-icon\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg\r\n *ngIf=\"item.type == 11 || item.type == 12\"\r\n class=\"svg_ic-submenu\"\r\n >\r\n <use\r\n xlink:href=\"#ic-history-filter\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-filter\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n <svg *ngIf=\"item.type == 9\" class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-delete\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-history-delete\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <div class=\"history-item-text\">\r\n <div>{{ item.name }}</div>\r\n <div class=\"history-item-text-details\" *ngIf=\"item.detail\">\r\n {{ item.detail }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"itemNr == historyIndex\"\r\n class=\"history-item-checkbox tui-image-editor-d-flex tui-image-editor-align-items-center\"\r\n >\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-history-check\"\r\n class=\"normal use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"items.length === 0\" class=\"tui-image-editor-px-2\">\r\n {{ \"tui-image-editor-angular-history-noItems\" | translate }}\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { dataUrlToBlob } from '../../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-download',\r\n templateUrl: './download.component.html',\r\n styleUrls: ['./download.component.css'],\r\n})\r\nexport class DownloadComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() imageEditor: any;\r\n\r\n constructor() {}\r\n\r\n downloadImage() {\r\n if (this.imageChosen && this.imageEditor != null) {\r\n const dataURL = this.imageEditor.toDataURL();\r\n if (window.fetch) {\r\n fetch(dataURL)\r\n .then((res) => res.blob())\r\n .then((blob) => {\r\n var link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.target = '_blank';\r\n link.click();\r\n });\r\n } else {\r\n let blob = dataUrlToBlob(dataURL);\r\n var link = document.createElement('a');\r\n link.target = '_blank';\r\n link.href = window.URL.createObjectURL(blob);\r\n link.click();\r\n }\r\n }\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-download' | translate\"\r\n class=\"tie-btn-download tui-image-editor-item help enabled\"\r\n (click)=\"downloadImage()\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use href=\"#ic-file-download\" class=\"normal use-default\"></use>\r\n <use href=\"#ic-file-download\" class=\"active use-default\"></use>\r\n <use href=\"#ic-file-download\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { drawingModes, zoomModes } from '../../../consts';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-zoom-in',\r\n templateUrl: './zoom-in.component.html',\r\n styleUrls: ['./zoom-in.component.css'],\r\n})\r\nexport class ZoomInComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() imageEditor: any;\r\n\r\n constructor() {}\r\n\r\n get isSelected(): boolean {\r\n if (this.imageEditor == null) {\r\n return false;\r\n }\r\n const zoomMode = this.imageEditor?._graphics.getZoomMode();\r\n return (\r\n this.imageEditor.getDrawingMode() == drawingModes.ZOOM &&\r\n zoomMode !== zoomModes.HAND\r\n );\r\n }\r\n\r\n startZoom() {\r\n this.imageEditor?.startDrawingMode(drawingModes.ZOOM);\r\n this.zoomIn();\r\n }\r\n\r\n private zoomIn() {\r\n this.imageEditor?.deactivateAll();\r\n this.toggleZoomMode();\r\n }\r\n\r\n private toggleZoomMode() {\r\n const zoomMode = this.imageEditor?._graphics.getZoomMode();\r\n\r\n this.imageEditor?.stopDrawingMode();\r\n if (zoomMode !== zoomModes.ZOOM) {\r\n this.imageEditor?.startDrawingMode(drawingModes.ZOOM);\r\n this.imageEditor?._graphics.startZoomInMode();\r\n } else {\r\n this.imageEditor?._graphics.endZoomInMode();\r\n }\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-zoomIn' | translate\"\r\n [class]=\"\r\n 'tie-btn-zoomIn tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled ' : 'disabled ') +\r\n (isSelected ? 'active ' : '')\r\n \"\r\n (click)=\"imageChosen ? startZoom() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-zoom-in\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-in\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-in\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-zoom-out',\r\n templateUrl: './zoom-out.component.html',\r\n styleUrls: ['./zoom-out.component.css'],\r\n})\r\nexport class ZoomOutComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() imageEditor: any;\r\n\r\n constructor() {}\r\n\r\n zoomOut() {\r\n this.imageEditor?._graphics.zoomOut();\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-zoomOut' | translate\"\r\n [class]=\"\r\n 'tie-btn-zoomOut tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled ' : 'disabled ')\r\n \"\r\n (click)=\"imageChosen ? zoomOut() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-zoom-out\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-out\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-out\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { drawingModes, zoomModes } from '../../../consts';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-drag',\r\n templateUrl: './drag.component.html',\r\n styleUrls: ['./drag.component.css'],\r\n})\r\nexport class DragComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() imageEditor: any;\r\n\r\n constructor() {}\r\n\r\n get isSelected(): boolean {\r\n if (this.imageEditor == null) {\r\n return false;\r\n }\r\n const zoomMode = this.imageEditor?._graphics.getZoomMode();\r\n return (\r\n this.imageEditor.getDrawingMode() == drawingModes.ZOOM &&\r\n zoomMode === zoomModes.HAND\r\n );\r\n }\r\n\r\n startDrag() {\r\n this.imageEditor?.deactivateAll();\r\n this.toggleHandMode();\r\n }\r\n\r\n toggleHandMode() {\r\n const zoomMode = this.imageEditor?._graphics.getZoomMode();\r\n\r\n this.imageEditor?.stopDrawingMode();\r\n if (zoomMode !== zoomModes.HAND) {\r\n this.imageEditor?.startDrawingMode(drawingModes.ZOOM);\r\n this.imageEditor?._graphics.startHandMode();\r\n } else {\r\n this.imageEditor?._graphics.endHandMode();\r\n }\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-drag' | translate\"\r\n [class]=\"\r\n 'tie-btn-hand tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled ' : 'disabled ') +\r\n (isSelected ? 'active ' : '')\r\n \"\r\n (click)=\"imageChosen ? startDrag() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-hand\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-hand\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-hand\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { eventNames } from '../../../consts';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-undo',\r\n templateUrl: './undo.component.html',\r\n styleUrls: ['./undo.component.css'],\r\n})\r\nexport class UndoComponent implements OnChanges {\r\n @Input() imageEditor: any;\r\n @Output() cancelCroppingRequested: EventEmitter<any> = new EventEmitter<any>();\r\n public undoStackSize: number = 0;\r\n\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var that = this;\r\n if (changes['imageEditor'] && changes['imageEditor'].currentValue != null) {\r\n this.imageEditor.on(\r\n eventNames.UNDO_STACK_CHANGED,\r\n function (length: number) {\r\n that.undoStackSize = length;\r\n }\r\n );\r\n }\r\n }\r\n\r\n undo() {\r\n if (this.imageEditor!=null && !this.imageEditor.isEmptyUndoStack()) {\r\n this.cancelCroppingRequested.emit();\r\n this.imageEditor.deactivateAll();\r\n this.imageEditor.undo();\r\n }\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-undo' | translate\"\r\n [class]=\"\r\n 'tie-btn-undo tui-image-editor-item help ' +\r\n (undoStackSize != 0 ? 'enabled' : 'disabled')\r\n \"\r\n (click)=\"undoStackSize != 0 ? undo() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-undo\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-undo\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-undo\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { eventNames } from '../../../consts';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-redo',\r\n templateUrl: './redo.component.html',\r\n styleUrls: ['./redo.component.css'],\r\n})\r\nexport class RedoComponent implements OnChanges {\r\n @Input() imageEditor: any;\r\n @Output() cancelCroppingRequested: EventEmitter<any> = new EventEmitter<any>();\r\n public redoStackSize: number = 0;\r\n\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var that = this;\r\n if (changes['imageEditor'] && changes['imageEditor'].currentValue != null) {\r\n this.imageEditor.on(\r\n eventNames.REDO_STACK_CHANGED,\r\n function (length: number) {\r\n that.redoStackSize = length;\r\n }\r\n );\r\n }\r\n }\r\n\r\n redo() {\r\n if (this.imageEditor!=null && !this.imageEditor.isEmptyRedoStack()) {\r\n this.cancelCroppingRequested.emit();\r\n this.imageEditor.deactivateAll();\r\n this.imageEditor.redo();\r\n }\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-redo' | translate\"\r\n [class]=\"\r\n 'tie-btn-redo tui-image-editor-item help ' +\r\n (redoStackSize != 0 ? 'enabled' : 'disabled')\r\n \"\r\n (click)=\"redoStackSize != 0 ? redo() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-redo\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-redo\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-redo\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-reset',\r\n templateUrl: './reset.component.html',\r\n styleUrls: ['./reset.component.css'],\r\n})\r\nexport class ResetComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() imageEditor: any;\r\n @Output() cancelCroppingRequested: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() resetImage: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor() {}\r\n \r\n reset() {\r\n this.cancelCroppingRequested.emit();\r\n this.resetImage.emit();\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-reset' | translate\"\r\n [class]=\"\r\n 'tie-btn-reset tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled' : 'disabled')\r\n \"\r\n (click)=\"imageChosen ? reset() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-reset\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-reset\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-reset\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { eventNames } from '../../../consts';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-delete',\r\n templateUrl: './delete.component.html',\r\n styleUrls: ['./delete.component.css'],\r\n})\r\nexport class DeleteComponent implements OnChanges {\r\n @Input() imageChosen: boolean;\r\n @Input() imageEditor: any;\r\n @Output()\r\n cancelCroppingRequested: EventEmitter<any> = new EventEmitter<any>();\r\n public activeObjectId: number;\r\n\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var that = this;\r\n if (changes['imageEditor'] && changes['imageEditor'].currentValue != null) {\r\n this.imageEditor.on(eventNames.OBJECT_ACTIVATED, function (props) {\r\n that.activeObjectId = props?.id;\r\n });\r\n }\r\n }\r\n\r\n deleteActiveObject() {\r\n if (this.activeObjectId != null) {\r\n this.cancelCroppingRequested.emit();\r\n try {\r\n this.imageEditor.removeActiveObject();\r\n } catch (_err) {}\r\n this.activeObjectId = null;\r\n }\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-delete' | translate\"\r\n [class]=\"\r\n 'tie-btn-delete tui-image-editor-item help ' +\r\n (activeObjectId != null ? 'enabled' : '')\r\n \"\r\n (click)=\"activeObjectId != null ? deleteActiveObject() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-delete\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-delete\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-delete\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-delete-all',\r\n templateUrl: './delete-all.component.html',\r\n styleUrls: ['./delete-all.component.css'],\r\n})\r\nexport class DeleteAllComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() imageEditor: any;\r\n @Output()\r\n cancelCroppingRequested: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor() {}\r\n\r\n deleteAll() {\r\n if (this.imageEditor != null && this.imageChosen) {\r\n this.cancelCroppingRequested.emit();\r\n this.imageEditor.clearObjects();\r\n }\r\n }\r\n}\r\n","<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-deleteAll' | translate\"\r\n [class]=\"\r\n 'tie-btn-deleteAll tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled' : 'disabled')\r\n \"\r\n (click)=\"deleteAll()\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-delete-all\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-delete-all\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-delete-all\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-crop',\r\n templateUrl: './crop.component.html',\r\n styleUrls: ['./crop.component.css'],\r\n})\r\nexport class CropComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('crop') : null\"\r\n [title]=\"\r\n 'tui-image-editor-angular-menus-buttons-crop-tooltip' | translate\r\n \"\r\n [class]=\"\r\n 'tie-btn-crop tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { cropModes, eventNames, historyNames } from '../../consts';\r\nimport { isEmptyCropzone } from '../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-crop',\r\n templateUrl: './crop.component.html',\r\n styleUrls: ['./crop.component.css'],\r\n})\r\nexport class CropComponent implements OnChanges {\r\n @Input() imageEditor: any;\r\n public activeCropMode: cropModes = cropModes.PRESET_NONE;\r\n public CROPMODE_PRESET_NONE: cropModes = cropModes.PRESET_NONE;\r\n public CROPMODE_PRESET_SQUARE: cropModes = cropModes.PRESET_SQUARE;\r\n public CROPMODE_PRESET_16_9: cropModes = cropModes.PRESET_16_9;\r\n public CROPMODE_PRESET_3_2: cropModes = cropModes.PRESET_3_2;\r\n public CROPMODE_PRESET_4_3: cropModes = cropModes.PRESET_4_3;\r\n public CROPMODE_PRESET_5_4: cropModes = cropModes.PRESET_5_4;\r\n public CROPMODE_PRESET_7_5: cropModes = cropModes.PRESET_7_5;\r\n @Output()\r\n cancelCroppingRequested: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['imageEditor'] && changes['imageEditor'].currentValue != null) {\r\n this.imageEditor.startDrawingMode('CROPPER');\r\n }\r\n }\r\n\r\n setCropMode(cropMode: cropModes) {\r\n this.activeCropMode = cropMode;\r\n switch (cropMode) {\r\n case cropModes.PRESET_SQUARE:\r\n this.setCropzoneRect(1 / 1);\r\n break;\r\n case cropModes.PRESET_3_2:\r\n this.setCropzoneRect(3 / 2);\r\n break;\r\n case cropModes.PRESET_4_3:\r\n this.setCropzoneRect(4 / 3);\r\n break;\r\n case cropModes.PRESET_5_4:\r\n this.setCropzoneRect(5 / 4);\r\n break;\r\n case cropModes.PRESET_7_5:\r\n this.setCropzoneRect(7 / 5);\r\n break;\r\n case cropModes.PRESET_16_9:\r\n this.setCropzoneRect(16 / 9);\r\n break;\r\n }\r\n }\r\n\r\n setCropzoneRect(mode: number) {\r\n this.imageEditor.setCropzoneRect(mode);\r\n }\r\n\r\n applyCrop() {\r\n if (this.imageEditor != null) {\r\n const cropRect = this.imageEditor.getCropzoneRect();\r\n if (cropRect && !isEmptyCropzone(cropRect)) {\r\n this.imageEditor\r\n .crop(cropRect)\r\n .then(() => {\r\n this.cancelCrop();\r\n this.imageEditor._invoker.fire(\r\n eventNames.EXECUTE_COMMAND,\r\n historyNames.CROP\r\n );\r\n })\r\n ['catch']((message) => Promise.reject(message));\r\n }\r\n }\r\n }\r\n\r\n cancelCrop() {\r\n this.cancelCroppingRequested.emit();\r\n }\r\n}\r\n","<div class=\"tui-image-editor-menu-crop\">\r\n <div class=\"tui-image-editor-submenu-item\">\r\n <div\r\n class=\"tui-image-editor-d-flex tui-image-editor-justify-content-center\"\r\n >\r\n <div\r\n class=\"tie-crop-preset-button tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center tui-image-editor-overflowable-x tui-image-editor-py-3\"\r\n >\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-none ' +\r\n (activeCropMode == CROPMODE_PRESET_NONE ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_NONE)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-shape-rectangle\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-shape-rectangle\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-custom\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-square ' +\r\n (activeCropMode == CROPMODE_PRESET_SQUARE ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_SQUARE)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-square\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-3-2 ' +\r\n (activeCropMode == CROPMODE_PRESET_3_2 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_3_2)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 3:2 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-4-3 ' +\r\n (activeCropMode == CROPMODE_PRESET_4_3 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_4_3)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 4:3 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-5-4 ' +\r\n (activeCropMode == CROPMODE_PRESET_5_4 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_5_4)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 5:4 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-7-5 ' +\r\n (activeCropMode == CROPMODE_PRESET_7_5 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_7_5)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 7:5 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-16-9 ' +\r\n (activeCropMode == CROPMODE_PRESET_16_9 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_16_9)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 16:9 </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"tie-crop-button action tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-mb-3\"\r\n >\r\n <div\r\n class=\"tui-image-editor-button apply tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center\"\r\n (click)=\"applyCrop()\"\r\n >\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-apply\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-apply\" class=\"active use-default\"></use>\r\n </svg>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-apply\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-button cancel tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center\"\r\n (click)=\"cancelCrop()\"\r\n >\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-cancel\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-cancel\" class=\"active use-default\"></use>\r\n </svg>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-cancel\" | translate }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-flip',\r\n templateUrl: './flip.component.html',\r\n styleUrls: ['./flip.component.css'],\r\n})\r\nexport class FlipComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('flip') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-flip' | translate\"\r\n [class]=\"\r\n 'tie-btn-flip tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-flip\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-flip\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-flip\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-flip',\r\n templateUrl: './flip.component.html',\r\n styleUrls: ['./flip.component.css'],\r\n})\r\nexport class FlipComponent {\r\n @Input() imageEditor: any;\r\n\r\n constructor() {}\r\n\r\n async flipX() {\r\n try {\r\n await this.imageEditor?.flipX();\r\n } catch (_err) {\r\n console.error(_err);\r\n }\r\n }\r\n\r\n async flipY() {\r\n try {\r\n await this.imageEditor?.flipY();\r\n } catch (_err) {\r\n console.error(_err);\r\n }\r\n }\r\n\r\n async resetFlip() {\r\n try {\r\n await this.imageEditor?.resetFlip();\r\n } catch (_err) {\r\n console.error(_err);\r\n }\r\n }\r\n}\r\n","<div class=\"tui-image-editor-menu-flip\">\r\n <div\r\n class=\"tie-flip-button tui-image-editor-submenu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-my-3\"\r\n >\r\n <div>\r\n <div class=\"tui-image-editor-button flipX\" (click)=\"flipX()\">\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-flip-x\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-flip-x\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-flip-x\" | translate }}\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-button flipY\" (click)=\"flipY()\">\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-flip-y\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-flip-y\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-flip-y\" | translate }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div>\r\n <div class=\"tui-image-editor-button resetFlip\" (click)=\"resetFlip()\">\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-flip-reset\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-flip-reset\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-flip-reset\" | translate }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-rotate',\r\n templateUrl: './rotate.component.html',\r\n styleUrls: ['./rotate.component.css'],\r\n})\r\nexport class RotateComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('rotate') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-rotate' | translate\"\r\n [class]=\"\r\n 'tie-btn-rotate tui-image-editor-item normal ' +\r\n (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-rotate\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-rotate\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-rotate\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-rotate',\r\n templateUrl: './rotate.component.html',\r\n styleUrls: ['./rotate.component.css'],\r\n})\r\nexport class RotateComponent {\r\n @Input() imageEditor: any;\r\n @Input() rotation: number;\r\n @Output() rotationChange = new EventEmitter<number>();\r\n\r\n constructor() {}\r\n\r\n async rotateImage(rotationAngle: number) {\r\n const newAngle = this.rotation + rotationAngle;\r\n const isRotatable = newAngle >= -360 && newAngle <= 360;\r\n if (isRotatable) {\r\n try {\r\n await this.imageEditor?.setAngle(newAngle);\r\n this.rotation = newAngle;\r\n this.rotationChange.emit(newAngle);\r\n } catch (_err) {\r\n console.error(_err);\r\n }\r\n }\r\n }\r\n\r\n async rotationChanged(\r\n currentRotationValue: number | Event,\r\n isSilent: boolean\r\n ) {\r\n let rotationValueToUse =\r\n typeof currentRotationValue === 'number'\r\n ? currentRotationValue\r\n : this.rotation;\r\n\r\n let functionToExecute = () => {\r\n this.imageEditor\r\n ?.setAngle(rotationValueToUse, isSilent)\r\n .catch((_err) => {\r\n console.error(_err);\r\n })\r\n .finally(() => {\r\n this.rotationChange.emit(rotationValueToUse);\r\n });\r\n };\r\n if (isSilent) {\r\n functionToExecute();\r\n } else {\r\n setTimeout(functionToExecute);\r\n }\r\n }\r\n}\r\n","<div class=\"tui-image-editor-menu-rotate\">\r\n <div class=\"tui-image-editor-submenu-item\">\r\n <div class=\"tie-rotate-button tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-justify-content-center tui-image-editor-my-3\">\r\n <div class=\"tui-image-editor-button clockwise\" (click)=\"rotateImage(30)\">\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-rotate-clockwise\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-rotate-clockwise\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label> 30° </label>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-button counterclockwise\"\r\n (click)=\"rotateImage(-30)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-rotate-counterclockwise\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-rotate-counterclockwise\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label> -30° </label>\r\n </div>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-newline tui-image-editor-range-wrap tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-my-3\"\r\n >\r\n <label class=\"range\">{{\r\n \"tui-image-editor-angular-submenus-rotate-slider\" | translate\r\n }}</label>\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"rotation\"\r\n (ngModelChange)=\"rotationChanged($event, true)\"\r\n (change)=\"rotationChanged($event, false)\"\r\n min=\"-360\"\r\n max=\"360\"\r\n />\r\n <input\r\n type=\"number\"\r\n min=\"-360\"\r\n max=\"360\"\r\n step=\"1\"\r\n class=\"tie-rotate-range-value tui-image-editor-range-value\"\r\n [(ngModel)]=\"rotation\"\r\n (ngModelChange)=\"rotationChanged($event, true)\"\r\n (change)=\"rotationChanged($event, false)\"\r\n />\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-draw',\r\n templateUrl: './draw.component.html',\r\n styleUrls: ['./draw.component.css'],\r\n})\r\nexport class DrawComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('draw') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-draw' | translate\"\r\n [class]=\"\r\n 'tie-btn-draw tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-draw\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-draw\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-draw\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ToolConfig, PenConfig, TextConfig } from '../interfaces/tools-config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToolsConfigService {\r\n private defaultConfig: ToolConfig = {\r\n pen: {\r\n drawStrokeWidthValue:5,\r\n drawType: 'free',\r\n drawStrokeColor:'rgb(60, 60, 60)'\r\n },\r\n text: {\r\n fontSize: 16,\r\n fontFamily: 'Arial',\r\n color: '#000000',\r\n },\r\n };\r\n\r\n private configSubject = new BehaviorSubject<ToolConfig>(this.defaultConfig);\r\n config$ = this.configSubject.asObservable();\r\n\r\n updateConfig(tool: keyof ToolConfig, newConfig: Partial<PenConfig | TextConfig>) {\r\n const currentConfig = this.configSubject.getValue();\r\n const updatedToolConfig = { ...currentConfig[tool], ...newConfig };\r\n this.configSubject.next({\r\n ...currentConfig,\r\n [tool]: updatedToolConfig,\r\n });\r\n }\r\n\r\n changePenConfig(newConfig: Partial<PenConfig>) {\r\n const currentConf=this.configSubject.getValue();\r\n this.updateConfig('pen', {...currentConf.pen,...newConfig});\r\n }\r\n\r\n changeTextConfig(newConfig: Partial<TextConfig>) {\r\n this.updateConfig('text', {...this.defaultConfig.text,...newConfig});\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ToolsConfigService } from '../../services/tools.config-manager.service';\r\nimport { ToolConfig, PenConfig, TextConfig } from '../../interfaces/tools-config';\r\nimport { defaultColors, eventNames } from '../../consts';\r\nimport { clearSelection, getActiveObjectId } from '../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-draw',\r\n templateUrl: './draw.component.html',\r\n styleUrls: ['./draw.component.css'],\r\n})\r\nexport class DrawComponent implements OnChanges, OnDestroy {\r\n @Input() imageEditor: any;\r\n @Input() defaultDrawShapeColors: string[] = defaultColors;\r\n public drawStrokeWidthValue: number = 12;\r\n public drawType: 'free' | 'line';\r\n public drawStrokeColor: string = 'rgba(0, 169, 255, 1)';\r\n public activeObjectId: number;\r\n public onObjectActivatedEventListener: any;\r\n\r\n constructor(\r\n private toolConfigService: ToolsConfigService\r\n ) {\r\n this.onObjectActivatedEventListener = this.onObjectActivated.bind(this);\r\n this.toolConfigService.config$.subscribe(config => {\r\n const {drawType,drawStrokeColor,drawStrokeWidthValue} = config.pen;\r\n this.drawStrokeWidthValue=drawStrokeWidthValue;\r\n this.drawType=drawType;\r\n this.drawStrokeColor=drawStrokeColor;\r\n });\r\n \r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var that = this;\r\n if (changes['imageEditor']) {\r\n this.activeObjectId = getActiveObjectId(\r\n changes['imageEditor'].currentValue\r\n );\r\n this.checkActiveObject(this.activeObjectId, true);\r\n changes['imageEditor'].previousValue?.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n changes['imageEditor'].currentValue?.on(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.imageEditor) {\r\n this.imageEditor.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n this.onObjectActivatedEventListener\r\n );\r\n }\r\n }\r\n\r\n private onObjectActivated(props) {\r\n this.activeObjectId = props?.id;\r\n this.checkActiveObject(this.activeObjectId);\r\n }\r\n\r\n private checkActiveObject(\r\n activeObjectId: number,\r\n enableDrawModeIfNoActiveObject: boolean = false\r\n ) {\r\n let ifNoActiveObject = () => {\r\n this.setDrawMode('free', {\r\n width: this.drawStrokeWidthValue,\r\n color: this.drawStrokeColor,\r\n });\r\n };\r\n if (activeObjectId != null) {\r\n var props = this.imageEditor?.getObjectProperties(activeObjectId, [\r\n 'type',\r\n 'strokeWidth',\r\n 'stroke',\r\n ]);\r\n if (props && (props.type === 'path' || props.type === 'line')) {\r\n this.drawStrokeWidthValue = props.strokeWidth;\r\n this.drawStrokeColor = props.stroke;\r\n } else if (enableDrawModeIfNoActiveObject) {\r\n ifNoActiveObject();\r\n }\r\n } else if (enableDrawModeIfNoActiveObject) {\r\n ifNoActiveObject();\r\n }\r\n }\r\n\r\n drawStrokeWidthChanged(currentStrokeWidth: number | Event, isSilent: boolean) {\r\n this.setDrawMode(this.drawType, {\r\n width: typeof currentStrokeWidth === \"number\" ? currentStrokeWidth : this.drawStrokeWidthValue,\r\n color: this.drawStrokeColor,\r\n });\r\n this.strokeChangeActiveObject('strokeWidth', isSilent);\r\n this.toolConfigService.changePenConfig({drawStrokeWidthValue:(typeof currentStrokeWidth === \"number\" ? currentStrokeWidth : this.drawStrokeWidthValue)})\r\n }\r\n\r\n setDrawType(type: 'free' | 'line') {\r\n clearSelection(this.imageEditor);\r\n if (this.drawType != type) {\r\n this.drawType = type;\r\n this.setDrawMode(this.drawType, {\r\n width: this.drawStrokeWidthValue,\r\n color: this.drawStrokeColor,\r\n });\r\n this.toolConfigService.changePenConfig({drawType:type})\r\n } else {\r\n this.drawType = null;\r\n this.imageEditor.stopDrawingMode();\r\n }\r\n }\r\n\r\n drawStrokeColorChanged(currentStrokeColor: string) {\r\n this.setDrawMode(this.drawType, {\r\n width: this.drawStrokeWidthValue,\r\n color: currentStrokeColor,\r\n });\r\n this.strokeChangeActiveObject('strokeColor', false);\r\n this.toolConfigService.changePenConfig({drawStrokeColor:currentStrokeColor})\r\n }\r\n\r\n setDrawMode(\r\n type: 'free' | 'line' | null,\r\n settings: {\r\n width: number;\r\n color: string;\r\n arrowType?: {\r\n tail: 'chevron' | 'triangle';\r\n head: 'chevron' | 'triangle';\r\n };\r\n }\r\n ) {\r\n this.drawType = type;\r\n this.imageEditor.stopDrawingMode();\r\n if (type === 'free') {\r\n clearSelection(this.imageEditor);\r\n this.imageEditor.startDrawingMode('FREE_DRAWING', settings);\r\n } else if (type === 'line') {\r\n clearSelection(this.imageEditor);\r\n this.imageEditor.startDrawingMode('LINE_DRAWING', settings);\r\n }\r\n }\r\n\r\n strokeChangeActiveObject(\r\n changedProperty: 'strokeWidth' | 'strokeColor',\r\n isSilent: boolean\r\n ) {\r\n if (\r\n this.activeObjectId != null &&\r\n getActiveObjectId(this.imageEditor) == this.activeObjectId\r\n ) {\r\n var props = this.imageEditor.getObjectProperties(\r\n this.activeObjectId,\r\n 'type'\r\n );\r\n if (props != null && (props.type === 'path' || props.type === 'line')) {\r\n let parameters = null;\r\n switch (changedProperty) {\r\n case 'strokeWidth':\r\n parameters = {\r\n strokeWidth: this.drawStrokeWidthValue,\r\n };\r\n break;\r\n case 'strokeColor':\r\n parameters = {\r\n stroke: this.drawStrokeColor,\r\n };\r\n break;\r\n }\r\n if (isSilent) {\r\n this.imageEditor.setObjectPropertiesQuietly(\r\n this.activeObjectId,\r\n parameters\r\n );\r\n } else {\r\n setTimeout(() => {\r\n this.imageEditor.setObjectProperties(\r\n this.activeObjectId,\r\n parameters\r\n );\r\n });\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"tui-image-editor-menu-draw\">\r\n <div class=\"tui-image-editor-submenu-item\">\r\n <div class=\"tie-draw-line-select-button\">\r\n <div\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-my-3\"\r\n >\r\n <div\r\n (click)=\"setDrawType('free')\"\r\n [class]=\"\r\n 'tui-image-editor-button free ' +\r\n (drawType == 'free' ? 'active' : '')\r\n \"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-draw-free\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-draw-free\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-draw-free\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n (click)=\"setDrawType('line')\"\r\n [class]=\"\r\n 'tui-image-editor-button line ' +\r\n (drawType == 'line' ? 'active' : '')\r\n \"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-draw-line\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-draw-line\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-draw-straight\" | translate }}\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div\r\n class=\"tie-draw-color tui-image-editor-button tui-image-editor-button-color-picker tui-image-editor-d-flex tui-image-editor-flex-column\"\r\n title=\"Color\"\r\n >\r\n <label>\r\n <input\r\n readonly\r\n class=\"tie-draw-color-picker\"\r\n [style.background]=\"drawStrokeColor\"\r\n [(colorPicker)]=\"drawStrokeColor\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpPresetColors]=\"defaultDrawShapeColors\"\r\n [cpUseRootViewContainer]=\"true\"\r\n (colorPickerChange)=\"drawStrokeColorChanged($event)\"\r\n />\r\n <div>\r\n {{ \"tui-image-editor-angular-submenus-draw-color\" | translate }}\r\n </div></label\r\n >\r\n </div>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-newline tui-image-editor-range-wrap tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-my-3\"\r\n >\r\n <label class=\"range\">{{\r\n \"tui-image-editor-angular-submenus-draw-strokeWidth\" | translate\r\n }}</label>\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"drawStrokeWidthValue\"\r\n (ngModelChange)=\"drawStrokeWidthChanged($event, true)\"\r\n (change)=\"drawStrokeWidthChanged($event, false)\"\r\n min=\"5\"\r\n max=\"30\"\r\n />\r\n <input\r\n type=\"number\"\r\n min=\"5\"\r\n max=\"30\"\r\n step=\"1\"\r\n class=\"tie-draw-range-value tui-image-editor-range-value\"\r\n [(ngModel)]=\"drawStrokeWidthValue\"\r\n (ngModelChange)=\"drawStrokeWidthChanged($event, true)\"\r\n (change)=\"drawStrokeWidthChanged($event, false)\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-shape',\r\n templateUrl: './shape.component.html',\r\n styleUrls: ['./shape.component.css'],\r\n})\r\nexport class ShapeComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('shape') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-shape' | translate\"\r\n [class]=\"\r\n 'tie-btn-shape tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-shape\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-shape\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-shape\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { defaultColors, eventNames } from '../../consts';\r\nimport { clearSelection, getActiveObjectId } from '../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-shape',\r\n templateUrl: './shape.component.html',\r\n styleUrls: ['./shape.component.css'],\r\n})\r\nexport class ShapeComponent implements OnChanges, OnDestroy {\r\n @Input() imageEditor: any;\r\n @Input() defaultShapeStrokeColors: string[] = defaultColors;\r\n @Input() defaultShapeFillColors: string[] = defaultColors;\r\n public shapeStrokeWidthValue: number = 3;\r\n public shapeFillColor: string = 'rgba(255, 255, 255, 0)';\r\n public shapeStrokeColor: string = 'rgba(0, 169, 255, 1)';\r\n public shapeType: 'circle' | 'triangle' | 'rect';\r\n public activeObjectId: number;\r\n public onObjectActivatedEventListener: any;\r\n public onObjectAddedEventListener: any;\r\n\r\n constructor() {\r\n this.onObjectActivatedEventListener = this.onObjectActivated.bind(this);\r\n this.onObjectAddedEventListener = this.onObjectAdded.bind(this);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var that = this;\r\n if (changes['imageEditor']) {\r\n this.activeObjectId = getActiveObjectId(\r\n changes['imageEditor'].currentValue\r\n );\r\n this.checkActiveObject(this.activeObjectId);\r\n\r\n changes['imageEditor'].previousValue?.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n changes['imageEditor'].currentValue?.on(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n\r\n changes['imageEditor'].previousValue?.off(\r\n eventNames.OBJECT_ADDED,\r\n that.onObjectAddedEventListener\r\n );\r\n changes['imageEditor'].currentValue?.on(\r\n eventNames.OBJECT_ADDED,\r\n that.onObjectAddedEventListener\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.imageEditor) {\r\n this.imageEditor.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n this.onObjectActivatedEventListener\r\n );\r\n this.imageEditor.off(\r\n eventNames.OBJECT_ADDED,\r\n this.onObjectAddedEventListener\r\n );\r\n }\r\n }\r\n\r\n private onObjectActivated(props) {\r\n this.activeObjectId = props?.id;\r\n this.checkActiveObject(this.activeObjectId);\r\n }\r\n\r\n private onObjectAdded(props) {\r\n if (props && ['rect', 'circle', 'triangle'].indexOf(props.type) > -1) {\r\n this.shapeType = null;\r\n this.imageEditor?.stopDrawingMode();\r\n }\r\n }\r\n\r\n private checkActiveObject(activeObjectId: number) {\r\n if (activeObjectId != null) {\r\n var props = this.imageEditor?.getObjectProperties(activeObjectId, [\r\n 'type',\r\n 'strokeWidth',\r\n 'stroke',\r\n 'fill',\r\n ]);\r\n if (props && ['rect', 'circle', 'triangle'].indexOf(props.type) > -1) {\r\n this.shapeStrokeWidthValue = props.strokeWidth;\r\n this.shapeFillColor =\r\n typeof props.fill == 'object' && props.fill.type == 'color'\r\n ? props.fill.color\r\n : props.fill == null || props.fill.trim() == ''\r\n ? 'rgba(255, 255, 255, 0)'\r\n : props.fill;\r\n this.shapeStrokeColor =\r\n props.stroke == null || props.stroke.trim() == ''\r\n ? 'rgba(255, 255, 255, 0)'\r\n : props.stroke;\r\n }\r\n }\r\n }\r\n\r\n shapeStrokeWidthChanged(currentStrokeWidth: number | Event, isSilent: boolean) {\r\n this.setDrawingShape(this.shapeType, {\r\n fill: this.shapeFillColor,\r\n stroke: this.shapeStrokeColor,\r\n strokeWidth: typeof currentStrokeWidth === \"number\" ? currentStrokeWidth : this.shapeStrokeWidthValue,\r\n });\r\n this.shapeChangeActiveObject('strokeWidth', isSilent);\r\n }\r\n\r\n shapeColorChanged(type: 'stroke' | 'fill', currentColor: string) {\r\n switch (type) {\r\n case 'fill':\r\n this.setDrawingShape(this.shapeType, {\r\n fill: currentColor,\r\n stroke: this.shapeStrokeColor,\r\n strokeWidth: this.shapeStrokeWidthValue,\r\n });\r\n break;\r\n case 'stroke':\r\n this.setDrawingShape(this.shapeType, {\r\n fill: this.shapeFillColor,\r\n stroke: currentColor,\r\n strokeWidth: this.shapeStrokeWidthValue,\r\n });\r\n break;\r\n }\r\n this.shapeChangeActiveObject(\r\n type == 'stroke' ? 'strokeColor' : 'fillColor'\r\n );\r\n }\r\n\r\n setShapeType(type: 'circle' | 'triangle' | 'rect') {\r\n clearSelection(this.imageEditor);\r\n if (this.shapeType != type) {\r\n this.shapeType = type;\r\n this.imageEditor.startDrawingMode('SHAPE');\r\n this.setDrawingShape(this.shapeType, {\r\n fill: this.shapeFillColor,\r\n stroke: this.shapeStrokeColor,\r\n strokeWidth: this.shapeStrokeWidthValue,\r\n });\r\n } else {\r\n this.shapeType = null;\r\n this.imageEditor.stopDrawingMode();\r\n }\r\n }\r\n\r\n setDrawingShape(\r\n type: 'circle' | 'triangle' | 'rect',\r\n options: {\r\n fill: string;\r\n stroke: string;\r\n strokeWidth: number;\r\n }\r\n ) {\r\n this.imageEditor.setDrawingShape(type, options);\r\n }\r\n\r\n shapeChangeActiveObject(\r\n changedProperty: 'strokeWidth' | 'strokeColor' | 'fillColor',\r\n isSilent: boolean = false\r\n ) {\r\n if (\r\n this.activeObjectId != null &&\r\n getActiveObjectId(this.imageEditor) == this.activeObjectId\r\n ) {\r\n var props = this.imageEditor.getObjectProperties(\r\n this.activeObjectId,\r\n 'type'\r\n );\r\n if (\r\n props != null &&\r\n ['rect', 'circle', 'triangle'].indexOf(props.type) > -1\r\n ) {\r\n let parameters = null;\r\n switch (changedProperty) {\r\n case 'strokeWidth':\r\n parameters = {\r\n strokeWidth: this.shapeStrokeWidthValue,\r\n };\r\n break;\r\n case 'strokeColor':\r\n parameters = {\r\n stroke: this.shapeStrokeColor,\r\n };\r\n break;\r\n case 'fillColor':\r\n parameters = {\r\n fill: this.shapeFillColor,\r\n };\r\n break;\r\n }\r\n let functionToExecute = () => {\r\n this.imageEditor.changeShape(\r\n this.activeObjectId,\r\n parameters,\r\n isSilent\r\n );\r\n };\r\n if (isSilent) {\r\n functionToExecute();\r\n } else {\r\n setTimeout(functionToExecute);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"tui-image-editor-menu-shape\">\r\n <div class=\"tui-image-editor-submenu-item\">\r\n <div class=\"tui-image-editor-d-flex tui-image-editor-justify-content-center\">\r\n <div class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-overflowable-x tui-image-editor-py-3\">\r\n <div class=\"tie-shape-button\">\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button rect ' +\r\n (shapeType == 'rect' ? 'active' : '')\r\n \"\r\n (click)=\"setShapeType('rect')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-shape-rectangle\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-shape-rectangle\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{\r\n \"tui-image-editor-angular-submenus-shape-rectangle\" | translate\r\n }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button circle ' +\r\n (shapeType == 'circle' ? 'active' : '')\r\n \"\r\n (click)=\"setShapeType('circle')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-shape-circle\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-shape-circle\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-shape-circle\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button triangle ' +\r\n (shapeType == 'triangle' ? 'active' : '')\r\n \"\r\n (click)=\"setShapeType('triangle')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-shape-triangle\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-shape-triangle\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{\r\n \"tui-image-editor-angular-submenus-shape-triangle\" | translate\r\n }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div class=\"tie-shape-color-button tui-image-editor-d-flex tui-image-editor-flex-row\">\r\n <div\r\n class=\"tie-color-fill tui-image-editor-button tui-image-editor-button-color-picker tui-image-editor-d-flex tui-image-editor-flex-column\"\r\n title=\"Fill\"\r\n >\r\n <label>\r\n <input\r\n readonly\r\n class=\"tie-draw-color-picker\"\r\n [(colorPicker)]=\"shapeFillColor\"\r\n [style.background]=\"shapeFillColor\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpPresetColors]=\"defaultShapeFillColors\"\r\n (colorPickerChange)=\"shapeColorChanged('fill', $event)\"\r\n [cpUseRootViewContainer]=\"true\"\r\n />\r\n <div>\r\n {{ \"tui-image-editor-angular-submenus-shape-fill\" | translate }}\r\n </div></label\r\n >\r\n </div>\r\n <div\r\n class=\"tie-color-stroke tui-image-editor-button tui-image-editor-button-color-picker tui-image-editor-d-flex tui-image-editor-flex-column\"\r\n title=\"Stroke\"\r\n >\r\n <label>\r\n <input\r\n readonly\r\n class=\"tie-draw-color-picker\"\r\n [(colorPicker)]=\"shapeStrokeColor\"\r\n [style.background]=\"shapeStrokeColor\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpPresetColors]=\"defaultShapeStrokeColors\"\r\n (colorPickerChange)=\"shapeColorChanged('stroke', $event)\"\r\n [cpUseRootViewContainer]=\"true\"\r\n />\r\n <div>\r\n {{\r\n \"tui-image-editor-angular-submenus-shape-stroke\" | translate\r\n }}\r\n </div></label\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-newline tui-image-editor-range-wrap tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-justify-content-center tui-image-editor-align-items-center tui-image-editor-mb-3\"\r\n >\r\n <label class=\"range\">{{\r\n \"tui-image-editor-angular-submenus-shape-strokeWidth\" | translate\r\n }}</label>\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"shapeStrokeWidthValue\"\r\n (ngModelChange)=\"shapeStrokeWidthChanged($event, true)\"\r\n (change)=\"shapeStrokeWidthChanged($event, false)\"\r\n min=\"2\"\r\n max=\"300\"\r\n />\r\n <input\r\n type=\"number\"\r\n min=\"2\"\r\n max=\"300\"\r\n step=\"1\"\r\n class=\"tie-draw-range-value tui-image-editor-range-value\"\r\n [(ngModel)]=\"shapeStrokeWidthValue\"\r\n (ngModelChange)=\"shapeStrokeWidthChanged($event, true)\"\r\n (change)=\"shapeStrokeWidthChanged($event, false)\"\r\n />\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-icon',\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./icon.component.css'],\r\n})\r\nexport class IconComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('icon') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-icon' | translate\"\r\n [class]=\"\r\n 'tie-btn-icon tui-image-editor-item normal ' +\r\n (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-icon\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-icon\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-icon\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport ImageTracer from 'tui-image-editor/src/js/helper/imagetracer';\r\nimport { defaultColors, eventNames } from '../../consts';\r\nimport { clearSelection, getActiveObjectId } from '../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-icon',\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./icon.component.css'],\r\n})\r\nexport class IconComponent implements OnChanges, OnDestroy {\r\n @Input() imageEditor: any;\r\n @Input() defaultIconColors: string[] = defaultColors;\r\n public iconColor: string = 'rgba(255, 187, 59, 1)';\r\n public iconType:\r\n | 'icon-arrow'\r\n | 'icon-arrow-2'\r\n | 'icon-arrow-3'\r\n | 'icon-star'\r\n | 'icon-star-2'\r\n | 'icon-polygon'\r\n | 'icon-location'\r\n | 'icon-heart'\r\n | 'icon-bubble';\r\n public activeObjectId: number;\r\n public onObjectActivatedEventListener: any;\r\n public onObjectAddedEventListener: any;\r\n\r\n constructor() {\r\n this.onObjectActivatedEventListener = this.onObjectActivated.bind(this);\r\n this.onObjectAddedEventListener = this.onObjectAdded.bind(this);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var that = this;\r\n if (changes['imageEditor']) {\r\n this.activeObjectId = getActiveObjectId(changes['imageEditor'].currentValue);\r\n this.checkActiveObject(this.activeObjectId);\r\n\r\n changes['imageEditor'].previousValue?.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n changes['imageEditor'].currentValue?.on(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n\r\n changes['imageEditor'].previousValue?.off(\r\n eventNames.OBJECT_ADDED,\r\n that.onObjectAddedEventListener\r\n );\r\n changes['imageEditor'].currentValue?.on(\r\n eventNames.OBJECT_ADDED,\r\n that.onObjectAddedEventListener\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.imageEditor) {\r\n this.imageEditor.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n this.onObjectActivatedEventListener\r\n );\r\n this.imageEditor.off(\r\n eventNames.OBJECT_ADDED,\r\n this.onObjectAddedEventListener\r\n );\r\n }\r\n }\r\n\r\n private onObjectActivated(props) {\r\n this.activeObjectId = props?.id;\r\n this.checkActiveObject(this.activeObjectId);\r\n }\r\n\r\n private onObjectAdded(props) {\r\n if (props && props.type === 'icon') {\r\n this.setActiveIconType(this.iconType, false);\r\n }\r\n }\r\n\r\n private checkActiveObject(activeObjectId: number) {\r\n if (activeObjectId != null) {\r\n var props = this.imageEditor?.getObjectProperties(activeObjectId, [\r\n 'type',\r\n 'fill',\r\n ]);\r\n if (props && props.type === 'icon') {\r\n this.iconColor =\r\n typeof props.fill == 'object' && props.fill.type == 'color'\r\n ? props.fill.color\r\n : props.fill == null || props.fill.trim() == ''\r\n ? 'rgba(255, 187, 59, 1)'\r\n : props.fill;\r\n }\r\n }\r\n }\r\n\r\n setActiveIconType(\r\n newIconType:\r\n | 'icon-arrow'\r\n | 'icon-arrow-2'\r\n | 'icon-arrow-3'\r\n | 'icon-star'\r\n | 'icon-star-2'\r\n | 'icon-polygon'\r\n | 'icon-location'\r\n | 'icon-heart'\r\n | 'icon-bubble',\r\n discardSelection: boolean = true\r\n ) {\r\n if (discardSelection) {\r\n clearSelection(this.imageEditor);\r\n }\r\n if (this.iconType != newIconType) {\r\n this.iconType = newIconType;\r\n this.imageEditor.startDrawingMode('ICON');\r\n this.imageEditor.setDrawingIcon(newIconType, this.iconColor);\r\n this.imageEditor.changeCursor('crosshair');\r\n } else {\r\n this.iconType = null;\r\n this.imageEditor.stopDrawingMode();\r\n this.imageEditor.changeCursor('default');\r\n }\r\n }\r\n\r\n iconColorChanged(currentColor: string) {\r\n this.iconChangeActiveObject();\r\n }\r\n\r\n iconChangeActiveObject() {\r\n if (\r\n this.activeObjectId != null &&\r\n getActiveObjectId(this.imageEditor) == this.activeObjectId\r\n ) {\r\n var props = this.imageEditor.getObjectProperties(\r\n this.activeObjectId,\r\n 'type'\r\n );\r\n if (props.type === 'icon') {\r\n this.imageEditor.setObjectProperties(this.activeObjectId, {\r\n fill: this.iconColor,\r\n });\r\n }\r\n }\r\n }\r\n\r\n registerIcon(obj) {\r\n this.imageEditor.registerIcons(obj);\r\n }\r\n\r\n onIconChosen(event) {\r\n let selectedFile = event.target.files[0];\r\n if (selectedFile != null) {\r\n var imgUrl = URL.createObjectURL(selectedFile);\r\n const imagetracer = new ImageTracer();\r\n imagetracer.imageToSVG(\r\n imgUrl,\r\n (svgstr) => {\r\n const [, svgPath] = svgstr.match(/path[^>]*d=\"([^\"]*)\"/);\r\n const iconObj = {};\r\n iconObj[selectedFile.name] = svgPath;\r\n this.registerIcon(iconObj);\r\n this.imageEditor.addIcon(selectedFile.name, {\r\n fill: this.iconColor,\r\n left: 100,\r\n top: 100,\r\n });\r\n },\r\n ImageTracer.tracerDefaultOption()\r\n );\r\n }\r\n }\r\n}\r\n","<div class=\"tui-image-editor-menu-icon\">\r\n <div\r\n class=\"tui-image-editor-submenu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-flex-nowrap\"\r\n >\r\n <div class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-overflowable-x tui-image-editor-py-3\">\r\n <div class=\"tie-icon-add-button tui-image-editor-d-flex tui-image-editor-flex-row\">\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-arrow' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-arrow\"\r\n (click)=\"setActiveIconType('icon-arrow')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-icon-arrow\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-icon-arrow\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-arrow1\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-arrow-2' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-arrow-2\"\r\n (click)=\"setActiveIconType('icon-arrow-2')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-icon-arrow-2\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-icon-arrow-2\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-arrow2\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-arrow-3' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-arrow-3\"\r\n (click)=\"setActiveIconType('icon-arrow-3')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-icon-arrow-3\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-icon-arrow-3\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-arrow3\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-star' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-star\"\r\n (click)=\"setActiveIconType('icon-star')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-icon-star\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-icon-star\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-star1\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-star-2' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-star-2\"\r\n (click)=\"setActiveIconType('icon-star-2')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-icon-star-2\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-icon-star-2\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-star2\" | translate }}\r\n </label>\r\n </div>\r\n\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-polygon' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-polygon\"\r\n (click)=\"setActiveIconType('icon-polygon')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-icon-polygon\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-icon-polygon\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-polygon\" | translate }}\r\n </label>\r\n </div>\r\n\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-location' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-location\"\r\n (click)=\"setActiveIconType('icon-location')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-icon-location\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-icon-location\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-location\" | translate }}\r\n </label>\r\n </div>\r\n\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-heart' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-heart\"\r\n (click)=\"setActiveIconType('icon-heart')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-icon-heart\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-icon-heart\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-heart\" | translate }}\r\n </label>\r\n </div>\r\n\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button ' +\r\n (iconType == 'icon-bubble' ? 'active' : '')\r\n \"\r\n data-icontype=\"icon-bubble\"\r\n (click)=\"setActiveIconType('icon-bubble')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-icon-bubble\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-icon-bubble\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-icon-bubble\" | translate }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div class=\"tie-icon-add-button\">\r\n <div class=\"tui-image-editor-button\" style=\"margin: 0\">\r\n <div>\r\n <input\r\n type=\"file\"\r\n accept=\"image/*\"\r\n class=\"tie-icon-image-file\"\r\n (change)=\"onIconChosen($event)\"\r\n />\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-icon-load\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-icon-load\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{\r\n \"tui-image-editor-angular-submenus-icon-customIcon\" | translate\r\n }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div>\r\n <div\r\n class=\"tie-icon-color tui-image-editor-button tui-image-editor-button-color-picker tui-image-editor-d-flex tui-image-editor-flex-column\"\r\n title=\"Color\"\r\n >\r\n <label>\r\n <input\r\n readonly\r\n class=\"tie-icon-color-picker\"\r\n [(colorPicker)]=\"iconColor\"\r\n [style.background]=\"iconColor\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpPresetColors]=\"defaultIconColors\"\r\n (colorPickerChange)=\"iconColorChanged($event)\"\r\n [cpUseRootViewContainer]=\"true\"\r\n />\r\n <div>\r\n {{ \"tui-image-editor-angular-submenus-icon-color\" | translate }}\r\n </div></label\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-text',\r\n templateUrl: './text.component.html',\r\n styleUrls: ['./text.component.css'],\r\n})\r\nexport class TextComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('text') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-text' | translate\"\r\n [class]=\"\r\n 'tie-btn-text tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-text\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-text\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-text\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { defaultColors, eventNames } from '../../consts';\r\nimport { getActiveObjectId } from '../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-text',\r\n templateUrl: './text.component.html',\r\n styleUrls: ['./text.component.css'],\r\n})\r\nexport class TextComponent implements OnChanges, OnDestroy {\r\n @Input() imageEditor: any;\r\n public activeObjectId: number;\r\n @Input() defaultTextColors: string[] = defaultColors;\r\n public textColor: string = 'rgba(255, 187, 59, 1)';\r\n public textSizeValue: number = 50;\r\n public textAlign: 'left' | 'center' | 'right' = 'left';\r\n public textFontFamily = 'Noto Sans';\r\n public textFontStyle: 'normal' | 'italic' = 'normal';\r\n public textFontWeight: 'normal' | 'bold' = 'normal';\r\n public textDecoration:\r\n | 'underline'\r\n | 'line-through'\r\n | 'overline'\r\n | null = null;\r\n public onObjectActivatedEventListener: any;\r\n public onTextAddedEventListener: any;\r\n\r\n constructor() {\r\n this.onObjectActivatedEventListener = this.onObjectActivated.bind(this);\r\n this.onTextAddedEventListener = this.onTextAdded.bind(this);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var that = this;\r\n if (changes['imageEditor']) {\r\n this.activeObjectId = getActiveObjectId(\r\n changes['imageEditor'].currentValue\r\n );\r\n this.checkActiveObject(this.activeObjectId);\r\n changes['imageEditor'].currentValue?.startDrawingMode('TEXT');\r\n\r\n changes['imageEditor'].previousValue?.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n changes['imageEditor'].currentValue?.on(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n\r\n changes['imageEditor'].previousValue?.off(\r\n eventNames.ADD_TEXT,\r\n that.onTextAddedEventListener\r\n );\r\n changes['imageEditor'].currentValue?.on(\r\n eventNames.ADD_TEXT,\r\n that.onTextAddedEventListener\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.imageEditor) {\r\n this.imageEditor.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n this.onObjectActivatedEventListener\r\n );\r\n this.imageEditor.off(eventNames.ADD_TEXT, this.onTextAddedEventListener);\r\n }\r\n }\r\n\r\n private onObjectActivated(props) {\r\n this.activeObjectId = props?.id;\r\n this.checkActiveObject(this.activeObjectId);\r\n }\r\n\r\n private onTextAdded(e) {\r\n this.imageEditor\r\n .addText('Edit text', {\r\n position: e.originPosition,\r\n styles: {\r\n fill: this.textColor,\r\n fontFamily: this.textFontFamily,\r\n fontSize: this.textSizeValue,\r\n fontStyle: this.textFontStyle,\r\n fontWeight: this.textFontWeight,\r\n textAlign: this.textAlign,\r\n textDecoration: this.textDecoration,\r\n underline: this.textDecoration == 'underline',\r\n },\r\n })\r\n .then(() => {\r\n this.imageEditor.changeCursor('default');\r\n this.imageEditor?.startDrawingMode('TEXT');\r\n });\r\n }\r\n\r\n private checkActiveObject(activeObjectId: number) {\r\n if (activeObjectId != null) {\r\n var props = this.imageEditor?.getObjectProperties(activeObjectId, [\r\n 'type',\r\n 'fill',\r\n 'textAlign',\r\n 'textDecoration',\r\n 'fontFamily',\r\n 'fontStyle',\r\n 'fontWeight',\r\n 'fontSize',\r\n ]);\r\n if (props && (props.type === 'i-text' || props.type === 'text')) {\r\n this.textAlign = props.textAlign;\r\n this.textColor = props.fill;\r\n this.textDecoration = props.textDecoration;\r\n this.textFontFamily = props.fontFamily;\r\n this.textFontStyle = props.fontStyle;\r\n this.textFontWeight = props.fontWeight;\r\n this.textSizeValue = props.fontSize;\r\n this.imageEditor?.startDrawingMode('TEXT');\r\n }\r\n }\r\n }\r\n\r\n changeTextAlignment(newValue: 'left' | 'center' | 'right') {\r\n this.textAlign = newValue;\r\n this.textChangeActiveObject('textAlign');\r\n }\r\n\r\n changeTextFontStyle(newFontStyle: 'normal' | 'italic') {\r\n this.textFontStyle = newFontStyle;\r\n this.textChangeActiveObject('fontStyle');\r\n }\r\n\r\n changeTextFontWeight(newFontWeight: 'normal' | 'bold') {\r\n this.textFontWeight = newFontWeight;\r\n this.textChangeActiveObject('fontWeight');\r\n }\r\n\r\n changeTextDecoration(\r\n newTextDecoration: 'underline' | 'line-through' | 'overline' | null\r\n ) {\r\n this.textDecoration = newTextDecoration;\r\n this.textChangeActiveObject('textDecoration');\r\n }\r\n\r\n textSizeValueChanged(currentTextSizeValue: number, isSilent: boolean) {\r\n this.textChangeActiveObject('fontSize', isSilent);\r\n }\r\n\r\n textColorChanged(currentColor: string) {\r\n this.textChangeActiveObject('color');\r\n }\r\n\r\n textChangeActiveObject(\r\n type:\r\n | 'color'\r\n | 'fontFamily'\r\n | 'fontSize'\r\n | 'fontStyle'\r\n | 'fontWeight'\r\n | 'textAlign'\r\n | 'textDecoration',\r\n isSilent: boolean = false\r\n ) {\r\n if (\r\n this.activeObjectId != null &&\r\n getActiveObjectId(this.imageEditor) == this.activeObjectId\r\n ) {\r\n var props = this.imageEditor.getObjectProperties(\r\n this.activeObjectId,\r\n 'type'\r\n );\r\n let parameters = null;\r\n if (props.type === 'i-text' || props.type === 'text') {\r\n switch (type) {\r\n case 'color':\r\n parameters = {\r\n fill: this.textColor,\r\n };\r\n break;\r\n case 'fontFamily':\r\n parameters = {\r\n fontFamily: this.textFontFamily,\r\n };\r\n break;\r\n case 'fontSize':\r\n parameters = {\r\n fontSize: this.textSizeValue,\r\n };\r\n break;\r\n case 'fontStyle':\r\n parameters = {\r\n fontStyle: this.textFontStyle,\r\n };\r\n break;\r\n case 'fontWeight':\r\n parameters = {\r\n fontWeight: this.textFontWeight,\r\n };\r\n break;\r\n case 'textAlign':\r\n parameters = {\r\n textAlign: this.textAlign,\r\n };\r\n break;\r\n case 'textDecoration':\r\n parameters = {\r\n textDecoration: this.textDecoration,\r\n };\r\n break;\r\n }\r\n let functionToExecute = () => {\r\n this.imageEditor.changeTextStyle(\r\n this.activeObjectId,\r\n parameters,\r\n isSilent\r\n );\r\n };\r\n if (isSilent) {\r\n functionToExecute();\r\n } else {\r\n setTimeout(functionToExecute);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"tui-image-editor-menu-text\">\r\n <div class=\"tui-image-editor-submenu-item\">\r\n <div\r\n class=\"tui-image-editor-d-flex tui-image-editor-justify-content-center\"\r\n [style.maxWidth]=\"'100%'\"\r\n >\r\n <div\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-overflowable-x tui-image-editor-py-3\"\r\n >\r\n <div\r\n class=\"tie-text-effect-button tui-image-editor-d-flex tui-image-editor-flex-row\"\r\n >\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button bold ' +\r\n (textFontWeight == 'bold' ? 'active' : '')\r\n \"\r\n (click)=\"\r\n changeTextFontWeight(textFontWeight == 'bold' ? 'normal' : 'bold')\r\n \"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-text-bold\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-text-bold\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-text-bold\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button italic ' +\r\n (textFontStyle == 'italic' ? 'active' : '')\r\n \"\r\n (click)=\"\r\n changeTextFontStyle(\r\n textFontStyle == 'italic' ? 'normal' : 'italic'\r\n )\r\n \"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-text-italic\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-text-italic\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-text-italic\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button underline ' +\r\n (textDecoration == 'underline' ? 'active' : '')\r\n \"\r\n (click)=\"\r\n changeTextDecoration(\r\n textDecoration == 'underline' ? null : 'underline'\r\n )\r\n \"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-text-underline\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-text-underline\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{\r\n \"tui-image-editor-angular-submenus-text-underline\" | translate\r\n }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div\r\n class=\"tie-text-align-button tui-image-editor-d-flex tui-image-editor-flex-row\"\r\n >\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button left ' +\r\n (textAlign == 'left' ? 'active' : '')\r\n \"\r\n (click)=\"changeTextAlignment('left')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-text-align-left\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-text-align-left\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-text-left\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button center ' +\r\n (textAlign == 'center' ? 'active' : '')\r\n \"\r\n (click)=\"changeTextAlignment('center')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-text-align-center\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-text-align-center\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-text-center\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button right ' +\r\n (textAlign == 'right' ? 'active' : '')\r\n \"\r\n (click)=\"changeTextAlignment('right')\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-text-align-right\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-text-align-right\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-text-right\" | translate }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div>\r\n <div\r\n class=\"tie-text-color tui-image-editor-button tui-image-editor-button-color-picker tui-image-editor-d-flex tui-image-editor-flex-column\"\r\n title=\"Color\"\r\n >\r\n <label>\r\n <input\r\n readonly\r\n class=\"tie-text-color-picker\"\r\n [(colorPicker)]=\"textColor\"\r\n [style.background]=\"textColor\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpPresetColors]=\"defaultTextColors\"\r\n (colorPickerChange)=\"textColorChanged($event)\"\r\n [cpUseRootViewContainer]=\"true\"\r\n />\r\n <div>\r\n {{ \"tui-image-editor-angular-submenus-text-color\" | translate }}\r\n </div></label\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-newline tui-image-editor-range-wrap tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-mb-3\"\r\n >\r\n <label class=\"range\">\r\n {{\r\n \"tui-image-editor-angular-submenus-text-textSize\" | translate\r\n }}</label\r\n >\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"textSizeValue\"\r\n (ngModelChange)=\"textSizeValueChanged($event, true)\"\r\n (change)=\"textSizeValueChanged($event, false)\"\r\n min=\"10\"\r\n max=\"100\"\r\n />\r\n <input\r\n type=\"number\"\r\n min=\"10\"\r\n max=\"100\"\r\n step=\"1\"\r\n class=\"tie-text-range-value tui-image-editor-range-value\"\r\n [(ngModel)]=\"textSizeValue\"\r\n (ngModelChange)=\"textSizeValueChanged($event, true)\"\r\n (change)=\"textSizeValueChanged($event, false)\"\r\n />\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-mask',\r\n templateUrl: './mask.component.html',\r\n styleUrls: ['./mask.component.css'],\r\n})\r\nexport class MaskComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('mask') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-mask' | translate\"\r\n [class]=\"\r\n 'tie-btn-mask tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-mask\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-mask\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-mask\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { eventNames, historyNames } from '../../consts';\r\nimport { getActiveObjectId, isFileApiSupported } from '../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-mask',\r\n templateUrl: './mask.component.html',\r\n styleUrls: ['./mask.component.css'],\r\n})\r\nexport class MaskComponent implements OnChanges, OnDestroy {\r\n @Input() imageEditor: any;\r\n public activeObjectId: number;\r\n public onObjectActivatedEventListener: any;\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n\r\n constructor() {\r\n this.onObjectActivatedEventListener = this.onObjectActivated.bind(this);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var that = this;\r\n if (changes['imageEditor']) {\r\n this.activeObjectId = getActiveObjectId(\r\n changes['imageEditor'].currentValue\r\n );\r\n changes['imageEditor'].previousValue?.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n changes['imageEditor'].currentValue?.on(\r\n eventNames.OBJECT_ACTIVATED,\r\n that.onObjectActivatedEventListener\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.imageEditor) {\r\n this.imageEditor.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n this.onObjectActivatedEventListener\r\n );\r\n }\r\n }\r\n\r\n private onObjectActivated(props) {\r\n this.activeObjectId = props?.id;\r\n }\r\n\r\n onMaskChosen(event) {\r\n let selectedFile = event.target.files[0];\r\n if (selectedFile != null) {\r\n if (!isFileApiSupported()) {\r\n alert('This browser does not support file-api');\r\n }\r\n\r\n let imgUrl = URL.createObjectURL(selectedFile);\r\n this.imageEditor\r\n .loadImageFromURL(this.imageEditor.toDataURL(), 'FilterImage')\r\n .then(() => {\r\n this.imageEditor.addImageObject(imgUrl).then(() => {\r\n URL.revokeObjectURL(selectedFile);\r\n });\r\n this.imageEditor._invoker.fire(\r\n eventNames.EXECUTE_COMMAND,\r\n historyNames.LOAD_MASK_IMAGE\r\n );\r\n if (this.fileInput != null) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n });\r\n }\r\n }\r\n\r\n applyMask() {\r\n if (\r\n this.activeObjectId != null &&\r\n getActiveObjectId(this.imageEditor) == this.activeObjectId\r\n ) {\r\n var props = this.imageEditor.getObjectProperties(\r\n this.activeObjectId,\r\n 'type'\r\n );\r\n if (props.type === 'image') {\r\n this.imageEditor.applyFilter('mask', {\r\n maskObjId: this.activeObjectId,\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"tui-image-editor-menu-mask\">\r\n <div class=\"tui-image-editor-submenu-item\">\r\n <div class=\"tui-image-editor-d-flex tui-image-editor-justify-content-center tui-image-editor-my-3\">\r\n <div class=\"tui-image-editor-button\">\r\n <div>\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n accept=\"image/*\"\r\n class=\"tie-mask-image-file\"\r\n (change)=\"onMaskChosen($event)\"\r\n />\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-mask-load\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-mask-load\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{\r\n \"tui-image-editor-angular-submenus-mask-loadMaskImage\" | translate\r\n }}\r\n </label>\r\n </div>\r\n </div>\r\n <div\r\n class=\"tie-mask-apply tui-image-editor-newline apply tui-image-editor-my-3\"\r\n (click)=\"applyMask()\"\r\n >\r\n <div\r\n class=\"tui-image-editor-button apply tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center tui-image-editor-justify-content-center\"\r\n >\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-apply\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-apply\" class=\"active use-default\"></use>\r\n </svg>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-mask-apply\" | translate }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-menus-buttons-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.css'],\r\n})\r\nexport class FilterComponent {\r\n @Input() imageChosen: boolean;\r\n @Input() selected: boolean = false;\r\n @Output() clicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor() {}\r\n}\r\n","<div\r\n (click)=\"imageChosen ? clicked.emit('filter') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-filter' | translate\"\r\n [class]=\"\r\n 'tie-btn-filter tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <!-- <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-filter\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-filter\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-filter\" class=\"hover use-default\"></use>\r\n </svg> -->\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 22 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M11.0014 12.7391C14.243 12.7391 16.8709 10.1112 16.8709 6.86957C16.8709 3.62789 14.243 1 11.0014 1C7.75969 1 5.13179 3.62789 5.13179 6.86957C5.13179 10.1112 7.75969 12.7391 11.0014 12.7391Z\" stroke=\"#8a8a8a\" stroke-width=\"1.5\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9144 19C18.1561 19 20.784 16.3721 20.784 13.1304C20.784 9.88876 18.1561 7.26087 14.9144 7.26087C11.6727 7.26087 9.04484 9.88876 9.04484 13.1304C9.04484 16.3721 11.6727 19 14.9144 19Z\" stroke=\"#8a8a8a\" stroke-width=\"1.5\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.08832 19C10.33 19 12.9579 16.3721 12.9579 13.1304C12.9579 9.88876 10.33 7.26087 7.08832 7.26087C3.84664 7.26087 1.21875 9.88876 1.21875 13.1304C1.21875 16.3721 3.84664 19 7.08832 19Z\" stroke=\"#8a8a8a\" stroke-width=\"1.5\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { defaultColors, filterType, historyNames } from '../../consts';\r\nimport { HistoryItem, HistoryItemType } from '../../interfaces/history-item';\r\nimport { HistoryService } from '../../services/history.service';\r\nimport { removeFilter, rgbaToObject } from '../../utils';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-submenus-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.css'],\r\n})\r\nexport class FilterComponent implements OnInit, OnDestroy {\r\n @Input() imageEditor: any;\r\n public activeObjectId: number;\r\n\r\n public filterBlurChecked: boolean = false;\r\n public filterBlurValue: number = 0.1;\r\n\r\n public filterGrayscaleChecked: boolean = false;\r\n public filterSepiaChecked: boolean = false;\r\n public filterEmbossChecked: boolean = false;\r\n public filterInvertChecked: boolean = false;\r\n public filterVintageChecked: boolean = false;\r\n public filterSharpenChecked: boolean = false;\r\n\r\n public filterWhiteRemovalChecked: boolean = false;\r\n public filterWhiteRemovalDistance: number = 0.5;\r\n\r\n public filterBrightnessChecked: boolean = false;\r\n public filterBrightnessValue: number = 0;\r\n\r\n public filterNoiseChecked: boolean = false;\r\n public filterNoiseValue: number = 100;\r\n\r\n public filterPixelateChecked: boolean = false;\r\n public filterPixelateValue: number = 15;\r\n\r\n public filterColorFilterChecked: boolean = false;\r\n public filterColorFilterThreshold: number = 0;\r\n\r\n public defaultFilterTintColors: string[] = defaultColors;\r\n public filterTintChecked: boolean = false;\r\n public filterTintColor: string = 'rgba(3, 189, 158, 0.7)';\r\n\r\n public defaultFilterMultiplyColors: string[] = defaultColors;\r\n public filterMultiplyChecked: boolean = false;\r\n public filterMultiplyColor: string = 'rgb(81, 92, 230)';\r\n\r\n public defaultFilterBlendColors: string[] = defaultColors;\r\n public filterBlendChecked: boolean = false;\r\n public filterBlendColor: string = 'rgba(255, 187, 59, 1)';\r\n\r\n private historyServiceSubscription: Subscription;\r\n\r\n constructor(private historyService: HistoryService) {}\r\n\r\n ngOnInit(): void {\r\n this.historyServiceSubscription = this.historyService.onChangeEmitter.subscribe(\r\n (items) =>\r\n items != null && items.length != 0\r\n ? this.rebindFields(items)\r\n : this.rebindFields(this.historyService.items)\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.historyServiceSubscription?.unsubscribe();\r\n }\r\n\r\n public rebindFields(items: HistoryItem[]) {\r\n console.debug(items);\r\n if (this.imageEditor != null) {\r\n this.filterBlurChecked = this.imageEditor.hasFilter('blur');\r\n this.filterBrightnessChecked = this.imageEditor.hasFilter('brightness');\r\n if (this.filterBrightnessChecked) {\r\n this.filterBrightnessValue = this.getAppliedFilterArgument(\r\n items,\r\n filterType.BRIGHTNESS,\r\n 0\r\n );\r\n }\r\n this.filterColorFilterChecked =\r\n this.imageEditor.hasFilter('removeColor') &&\r\n this.hasAppliedFilter(items, filterType.REMOVE_COLOR);\r\n if (this.filterColorFilterChecked) {\r\n this.filterColorFilterThreshold = this.getAppliedFilterArgument(\r\n items,\r\n filterType.REMOVE_COLOR,\r\n 0\r\n );\r\n }\r\n this.filterEmbossChecked = this.imageEditor.hasFilter('emboss');\r\n this.filterGrayscaleChecked = this.imageEditor.hasFilter('grayscale');\r\n this.filterInvertChecked = this.imageEditor.hasFilter('invert');\r\n this.filterNoiseChecked = this.imageEditor.hasFilter('noise');\r\n if (this.filterNoiseChecked) {\r\n this.filterNoiseValue = this.getAppliedFilterArgument(\r\n items,\r\n filterType.NOISE,\r\n 0\r\n );\r\n }\r\n this.filterPixelateChecked = this.imageEditor.hasFilter('pixelate');\r\n if (this.filterPixelateChecked) {\r\n this.filterPixelateValue = this.getAppliedFilterArgument(\r\n items,\r\n filterType.PIXELATE,\r\n 0\r\n );\r\n }\r\n this.filterSepiaChecked = this.imageEditor.hasFilter('sepia');\r\n this.filterSharpenChecked = this.imageEditor.hasFilter('sharpen');\r\n this.filterVintageChecked = this.imageEditor.hasFilter('vintage');\r\n this.filterWhiteRemovalChecked =\r\n this.imageEditor.hasFilter('removeColor') &&\r\n this.hasAppliedFilter(items, filterType.REMOVE_WHITE);\r\n if (this.filterWhiteRemovalChecked) {\r\n this.filterWhiteRemovalDistance = this.getAppliedFilterArgument(\r\n items,\r\n filterType.REMOVE_WHITE,\r\n 0\r\n );\r\n }\r\n\r\n this.filterMultiplyChecked =\r\n this.imageEditor.hasFilter('blendColor') &&\r\n this.hasAppliedFilter(items, filterType.MULTIPLY);\r\n if (this.filterMultiplyChecked) {\r\n this.filterMultiplyColor = this.getAppliedFilterArgument(\r\n items,\r\n filterType.MULTIPLY,\r\n 0\r\n );\r\n }\r\n this.filterTintChecked =\r\n this.imageEditor.hasFilter('blendColor') &&\r\n this.hasAppliedFilter(items, filterType.TINT);\r\n if (this.filterTintChecked) {\r\n this.filterTintColor = this.getAppliedFilterArgument(\r\n items,\r\n filterType.TINT,\r\n 0\r\n );\r\n }\r\n this.filterBlendChecked =\r\n this.imageEditor.hasFilter('blendColor') &&\r\n this.hasAppliedFilter(items, filterType.BLEND);\r\n if (this.filterBlendChecked) {\r\n this.filterBlendColor = this.getAppliedFilterArgument(\r\n items,\r\n filterType.BLEND,\r\n 0\r\n );\r\n }\r\n }\r\n }\r\n\r\n private getAppliedFilterArgument(\r\n items: HistoryItem[],\r\n type: filterType,\r\n index: number\r\n ): any {\r\n let validItems = items.filter(\r\n (f) => f.filterType === type && f.type === HistoryItemType.ApplyFilter\r\n );\r\n return validItems[validItems.length - 1].args[index];\r\n }\r\n\r\n private hasAppliedFilter(\r\n historyItems: HistoryItem[],\r\n type: filterType\r\n ): boolean {\r\n let hasFilter = false;\r\n for (let i = 0; i < historyItems.length; i++) {\r\n let item = historyItems[i];\r\n if (\r\n item.type === HistoryItemType.ApplyFilter &&\r\n item.filterType === type\r\n ) {\r\n hasFilter = true;\r\n } else if (\r\n hasFilter == true &&\r\n [filterType.TINT, filterType.BLEND, filterType.MULTIPLY].some(\r\n (t) => t === type\r\n ) &&\r\n item.type === HistoryItemType.RemoveFilter &&\r\n item.filterType === filterType.BLEND_OR_TINT_OR_MULTIPLY\r\n ) {\r\n hasFilter = false;\r\n } else if (\r\n hasFilter == true &&\r\n [filterType.REMOVE_COLOR, filterType.REMOVE_WHITE].some(\r\n (t) => t === type\r\n ) &&\r\n item.type === HistoryItemType.RemoveFilter &&\r\n item.filterType === filterType.REMOVE_COLOR_OR_WHITE\r\n ) {\r\n hasFilter = false;\r\n }\r\n }\r\n return hasFilter;\r\n }\r\n\r\n filterWhiteRemovalCheckedChanged(newValue: boolean) {\r\n this.filterApply('white-removal');\r\n }\r\n\r\n filterWhiteRemovalDistanceChanged(newValue: number, isSilent: boolean) {\r\n this.filterApply('white-removal', isSilent);\r\n }\r\n\r\n filterBrightnessCheckedChanged(newValue: boolean) {\r\n this.filterApply('brightness');\r\n }\r\n\r\n filterBrightnessValueChanged(newValue: number, isSilent: boolean) {\r\n this.filterApply('brightness', isSilent);\r\n }\r\n\r\n filterNoiseCheckedChanged(newValue: boolean) {\r\n this.filterApply('noise');\r\n }\r\n\r\n filterNoiseValueChanged(newValue: number, isSilent: boolean) {\r\n this.filterApply('noise', isSilent);\r\n }\r\n\r\n filterPixelateCheckedChanged(newValue: boolean) {\r\n this.filterApply('pixelate');\r\n }\r\n\r\n filterPixelateValueChanged(newValue: number, isSilent: boolean) {\r\n this.filterApply('pixelate', isSilent);\r\n }\r\n\r\n filterColorFilterCheckedChanged(newValue: boolean) {\r\n this.filterApply('removeColor');\r\n }\r\n\r\n filterColorFilterThresholdChanged(newValue: number, isSilent: boolean) {\r\n this.filterApply('removeColor', isSilent);\r\n }\r\n\r\n filterTintColorChanged(newColor: string) {\r\n this.filterApply('tint');\r\n }\r\n\r\n filterTintCheckedChanged(newValue: boolean) {\r\n this.filterApply('tint');\r\n if (this.filterTintChecked) {\r\n this.filterMultiplyChecked = false;\r\n this.filterBlendChecked = false;\r\n }\r\n }\r\n\r\n filterMultiplyColorChanged(newColor: string) {\r\n this.filterApply('multiply');\r\n }\r\n\r\n filterMultiplyCheckedChanged(newValue: boolean) {\r\n this.filterApply('multiply');\r\n if (this.filterMultiplyChecked) {\r\n this.filterTintChecked = false;\r\n this.filterBlendChecked = false;\r\n }\r\n }\r\n\r\n filterBlendColorChanged(newColor: string) {\r\n this.filterApply('blend');\r\n }\r\n\r\n filterBlendCheckedChanged(newValue: boolean) {\r\n this.filterApply('blend');\r\n if (this.filterBlendChecked) {\r\n this.filterMultiplyChecked = false;\r\n this.filterTintChecked = false;\r\n }\r\n }\r\n\r\n filterBlurCheckedChanged(newValue: boolean) {\r\n this.filterApply('blur');\r\n }\r\n\r\n filterGrayscaleCheckedChanged(newValue: boolean) {\r\n this.filterApply('grayscale');\r\n }\r\n\r\n filterSepiaCheckedChanged(newValue: boolean) {\r\n this.filterApply('sepia');\r\n }\r\n\r\n filterEmbossCheckedChanged(newValue: boolean) {\r\n this.filterApply('emboss');\r\n }\r\n\r\n filterInvertCheckedChanged(newValue: boolean) {\r\n this.filterApply('invert');\r\n }\r\n\r\n filterVintageCheckedChanged(newValue: boolean) {\r\n this.filterApply('vintage');\r\n }\r\n\r\n filterSharpenCheckedChanged(newValue: boolean) {\r\n this.filterApply('sharpen');\r\n }\r\n\r\n filterApply(\r\n type:\r\n | 'white-removal'\r\n | 'brightness'\r\n | 'noise'\r\n | 'pixelate'\r\n | 'removeColor'\r\n | 'blur'\r\n | 'blend'\r\n | 'multiply'\r\n | 'tint'\r\n | 'grayscale'\r\n | 'sepia'\r\n | 'emboss'\r\n | 'invert'\r\n | 'vintage'\r\n | 'sharpen',\r\n isSilent: boolean = false\r\n ) {\r\n switch (type) {\r\n case 'white-removal':\r\n this.filterApplyConfirmed(\r\n this.filterWhiteRemovalChecked,\r\n 'removeColor',\r\n {\r\n color: '#FFFFFF',\r\n useAlpha: false,\r\n distance: this.filterWhiteRemovalDistance,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'brightness':\r\n this.filterApplyConfirmed(\r\n this.filterBrightnessChecked,\r\n 'brightness',\r\n {\r\n brightness: this.filterBrightnessValue,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'noise':\r\n this.filterApplyConfirmed(\r\n this.filterNoiseChecked,\r\n 'noise',\r\n {\r\n noise: this.filterNoiseValue,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'pixelate':\r\n this.filterApplyConfirmed(\r\n this.filterPixelateChecked,\r\n 'pixelate',\r\n {\r\n blocksize: this.filterPixelateValue,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'removeColor':\r\n this.filterApplyConfirmed(\r\n this.filterColorFilterChecked,\r\n 'removeColor',\r\n {\r\n color: '#FFFFFF',\r\n distance: this.filterColorFilterThreshold,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'blur':\r\n this.filterApplyConfirmed(\r\n this.filterBlurChecked,\r\n 'blur',\r\n {\r\n blur: this.filterBlurValue,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'blend':\r\n this.filterApplyConfirmed(\r\n this.filterBlendChecked,\r\n 'blendColor',\r\n {\r\n mode: 'add',\r\n color: this.filterBlendColor,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'multiply':\r\n this.filterApplyConfirmed(\r\n this.filterMultiplyChecked,\r\n 'blendColor',\r\n {\r\n mode: 'multiply',\r\n color: this.filterMultiplyColor,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'tint':\r\n let rgbTint = rgbaToObject(this.filterTintColor);\r\n\r\n this.filterApplyConfirmed(\r\n this.filterTintChecked,\r\n 'blendColor',\r\n {\r\n mode: 'tint',\r\n color: rgbTint.hexString,\r\n alpha: rgbTint.alpha,\r\n },\r\n isSilent\r\n );\r\n break;\r\n case 'grayscale':\r\n this.filterApplyConfirmed(\r\n this.filterGrayscaleChecked,\r\n type,\r\n {},\r\n isSilent\r\n );\r\n break;\r\n case 'sepia':\r\n this.filterApplyConfirmed(this.filterSepiaChecked, type, {}, isSilent);\r\n break;\r\n case 'emboss':\r\n this.filterApplyConfirmed(this.filterEmbossChecked, type, {}, isSilent);\r\n break;\r\n case 'invert':\r\n this.filterApplyConfirmed(this.filterInvertChecked, type, {}, isSilent);\r\n break;\r\n case 'vintage':\r\n this.filterApplyConfirmed(\r\n this.filterVintageChecked,\r\n type,\r\n {},\r\n isSilent\r\n );\r\n break;\r\n case 'sharpen':\r\n this.filterApplyConfirmed(\r\n this.filterSharpenChecked,\r\n type,\r\n {},\r\n isSilent\r\n );\r\n break;\r\n }\r\n }\r\n\r\n async filterApplyConfirmed(\r\n applying: boolean,\r\n type:\r\n | 'removeColor'\r\n | 'brightness'\r\n | 'noise'\r\n | 'pixelate'\r\n | 'blur'\r\n | 'blendColor'\r\n | 'grayscale'\r\n | 'sepia'\r\n | 'emboss'\r\n | 'invert'\r\n | 'vintage'\r\n | 'sharpen',\r\n options: any,\r\n isSilent: boolean = false\r\n ) {\r\n let functionToExecute = async () => {\r\n if (applying) {\r\n if (type === 'blendColor' && this.imageEditor.hasFilter('blendColor')) {\r\n switch (options.mode) {\r\n case 'add':\r\n this.filterTintChecked = false;\r\n this.filterMultiplyChecked = false;\r\n break;\r\n case 'multiply':\r\n this.filterTintChecked = false;\r\n this.filterBlendChecked = false;\r\n break;\r\n case 'tint':\r\n this.filterBlendChecked = false;\r\n this.filterMultiplyChecked = false;\r\n break;\r\n }\r\n await removeFilter(this.imageEditor, type, isSilent);\r\n } else if (\r\n type === 'removeColor' &&\r\n this.imageEditor.hasFilter('removeColor')\r\n ) {\r\n if (options.useAlpha != null) {\r\n this.filterColorFilterChecked = false;\r\n } else {\r\n this.filterWhiteRemovalChecked = false;\r\n }\r\n await removeFilter(this.imageEditor, type, isSilent);\r\n }\r\n await this.imageEditor.applyFilter(type, options, isSilent);\r\n } else if (this.imageEditor.hasFilter(type)) {\r\n await removeFilter(this.imageEditor, type, isSilent);\r\n if (type == 'blendColor') {\r\n this.filterTintChecked = false;\r\n this.filterMultiplyChecked = false;\r\n this.filterBlendChecked = false;\r\n }\r\n }\r\n };\r\n if (isSilent) {\r\n await functionToExecute();\r\n } else {\r\n setTimeout(async () => {\r\n await functionToExecute();\r\n });\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"tui-image-editor-menu-filter tui-image-editor-d-flex tui-image-editor-justify-content-center\"\r\n>\r\n <div\r\n class=\"tui-image-editor-submenu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-overflowable-x tui-image-editor-py-3\"\r\n >\r\n <div class=\"tui-image-editor-submenu-align\">\r\n <div\r\n class=\"tui-image-editor-checkbox-wrap fixed-width tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-wrap tui-image-editor-justify-content-center\"\r\n >\r\n <div class=\"tui-image-editor-checkbox tui-image-editor-align-self-center\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-grayscale\"\r\n [(ngModel)]=\"filterGrayscaleChecked\"\r\n (ngModelChange)=\"filterGrayscaleCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-grayscale\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox tui-image-editor-align-self-center\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-invert\"\r\n [(ngModel)]=\"filterInvertChecked\"\r\n (ngModelChange)=\"filterInvertCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-invert\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox tui-image-editor-align-self-center\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-sepia\"\r\n [(ngModel)]=\"filterSepiaChecked\"\r\n (ngModelChange)=\"filterSepiaCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-sepia\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox tui-image-editor-align-self-center\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-vintage\"\r\n [(ngModel)]=\"filterVintageChecked\"\r\n (ngModelChange)=\"filterVintageCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-sepia2\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox tui-image-editor-align-self-center\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-blur\"\r\n [(ngModel)]=\"filterBlurChecked\"\r\n (ngModelChange)=\"filterBlurCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-blur\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox tui-image-editor-align-self-center\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-sharpen\"\r\n [(ngModel)]=\"filterSharpenChecked\"\r\n (ngModelChange)=\"filterSharpenCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-sharpen\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox tui-image-editor-align-self-center\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-emboss\"\r\n [(ngModel)]=\"filterEmbossChecked\"\r\n (ngModelChange)=\"filterEmbossCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-emboss\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div class=\"tui-image-editor-submenu-align\">\r\n <div\r\n class=\"tui-image-editor-checkbox-group tui-image-editor-disabled\"\r\n style=\"margin-bottom: 7px\"\r\n >\r\n <div class=\"tui-image-editor-checkbox-wrap\">\r\n <div class=\"tui-image-editor-checkbox\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-remove-white\"\r\n [(ngModel)]=\"filterWhiteRemovalChecked\"\r\n (ngModelChange)=\"filterWhiteRemovalCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-removeWhite\"\r\n | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-newline tui-image-editor-range-wrap short tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center\"\r\n >\r\n <label>{{\r\n \"tui-image-editor-angular-submenus-filter-removeWhite-distance\"\r\n | translate\r\n }}</label>\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"filterWhiteRemovalDistance\"\r\n (ngModelChange)=\"filterWhiteRemovalDistanceChanged($event, true)\"\r\n (change)=\"filterWhiteRemovalDistanceChanged($event, false)\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.001\"\r\n [disabled]=\"filterWhiteRemovalChecked == false\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox-group tui-image-editor-disabled\">\r\n <div class=\"tui-image-editor-checkbox\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-brightness\"\r\n [(ngModel)]=\"filterBrightnessChecked\"\r\n (ngModelChange)=\"filterBrightnessCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-brightness\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-range-wrap short tui-image-editor-d-flex tui-image-editor-flex-row align-items-center tui-image-editor-my-2\">\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"filterBrightnessValue\"\r\n (ngModelChange)=\"filterBrightnessValueChanged($event, true)\"\r\n (change)=\"filterBrightnessValueChanged($event, false)\"\r\n min=\"-1\"\r\n max=\"1\"\r\n step=\"0.03\"\r\n [disabled]=\"filterBrightnessChecked == false\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox-group tui-image-editor-disabled\">\r\n <div class=\"tui-image-editor-checkbox\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-noise\"\r\n [(ngModel)]=\"filterNoiseChecked\"\r\n (ngModelChange)=\"filterNoiseCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-noise\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-range-wrap short tui-image-editor-d-flex tui-image-editor-flex-row align-items-center tui-image-editor-my-2\">\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"filterNoiseValue\"\r\n (ngModelChange)=\"filterNoiseValueChanged($event, true)\"\r\n (change)=\"filterNoiseValueChanged($event, false)\"\r\n min=\"0\"\r\n max=\"1000\"\r\n step=\"10\"\r\n [disabled]=\"filterNoiseChecked == false\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition only-left-right\">\r\n <div></div>\r\n </div>\r\n <div class=\"tui-image-editor-submenu-align\">\r\n <div class=\"tui-image-editor-checkbox-group tui-image-editor-disabled\">\r\n <div class=\"tui-image-editor-checkbox\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-pixelate\"\r\n [(ngModel)]=\"filterPixelateChecked\"\r\n (ngModelChange)=\"filterPixelateCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-pixelate\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div class=\"tui-image-editor-range-wrap short tui-image-editor-d-flex tui-image-editor-flex-row align-items-center tui-image-editor-my-2\">\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"filterPixelateValue\"\r\n (ngModelChange)=\"filterPixelateValueChanged($event, true)\"\r\n (change)=\"filterPixelateValueChanged($event, false)\"\r\n min=\"2\"\r\n max=\"20\"\r\n step=\"1\"\r\n [disabled]=\"filterPixelateChecked == false\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-checkbox-group tui-image-editor-disabled\">\r\n <div class=\"tui-image-editor-newline tui-image-editor-checkbox-wrap\">\r\n <div class=\"tui-image-editor-checkbox\">\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-color-filter\"\r\n [(ngModel)]=\"filterColorFilterChecked\"\r\n (ngModelChange)=\"filterColorFilterCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-colorFilter\"\r\n | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-newline tui-image-editor-range-wrap short\">\r\n <label>{{\r\n \"tui-image-editor-angular-submenus-filter-colorFilter-threshold\"\r\n | translate\r\n }}</label>\r\n <div class=\"tie-colorfilter-threshold-range tui-image-editor-range tui-image-editor-d-flex tui-image-editor-flex-row align-items-center tui-image-editor-my-2\">\r\n <input\r\n type=\"range\"\r\n [(ngModel)]=\"filterColorFilterThreshold\"\r\n (ngModelChange)=\"filterColorFilterThresholdChanged($event, true)\"\r\n (change)=\"filterColorFilterThresholdChanged($event, false)\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.02\"\r\n [disabled]=\"filterColorFilterChecked == false\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-partition\">\r\n <div></div>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center\"\r\n >\r\n <div class=\"filter-color-item\">\r\n <div\r\n [class]=\"\r\n 'tie-filter-tint-color tui-image-editor-button tui-image-editor-button-color-picker tui-image-editor-d-flex tui-image-editor-flex-column tui-image-editor-align-items-center ' +\r\n (filterTintChecked ? 'active' : '')\r\n \"\r\n [title]=\"'tui-image-editor-angular-submenus-filter-tint' | translate\"\r\n >\r\n <input\r\n readonly\r\n class=\"tie-filter-tint-color-picker tui-image-editor-mb-2\"\r\n [(colorPicker)]=\"filterTintColor\"\r\n [style.background]=\"filterTintColor\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpPresetColors]=\"defaultFilterTintColors\"\r\n (colorPickerChange)=\"filterTintColorChanged($event)\"\r\n [cpUseRootViewContainer]=\"true\"\r\n />\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-tint\"\r\n [(ngModel)]=\"filterTintChecked\"\r\n (ngModelChange)=\"filterTintCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-tint\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"filter-color-item\">\r\n <div\r\n [class]=\"\r\n 'tie-filter-multiply-color tui-image-editor-button tui-image-editor-button-color-picker tui-image-editor-d-flex tui-image-editor-flex-column tui-image-editor-align-items-center ' +\r\n (filterMultiplyChecked ? 'active' : '')\r\n \"\r\n [title]=\"\r\n 'tui-image-editor-angular-submenus-filter-multiply' | translate\r\n \"\r\n >\r\n <input\r\n readonly\r\n class=\"tie-filter-multiply-color-picker tui-image-editor-mb-2\"\r\n [(colorPicker)]=\"filterMultiplyColor\"\r\n [style.background]=\"filterMultiplyColor\"\r\n [cpOutputFormat]=\"'hex'\"\r\n [cpPresetColors]=\"defaultFilterMultiplyColors\"\r\n (colorPickerChange)=\"filterMultiplyColorChanged($event)\"\r\n [cpUseRootViewContainer]=\"true\"\r\n />\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-multiply\"\r\n [(ngModel)]=\"filterMultiplyChecked\"\r\n (ngModelChange)=\"filterMultiplyCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-multiply\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"filter-color-item\">\r\n <div\r\n [class]=\"\r\n 'tie-filter-blend-color tui-image-editor-button tui-image-editor-button-color-picker tui-image-editor-d-flex tui-image-editor-flex-column tui-image-editor-align-items-center ' +\r\n (filterBlendChecked ? 'active' : '')\r\n \"\r\n [title]=\"'tui-image-editor-angular-submenus-filter-blend' | translate\"\r\n >\r\n <input\r\n readonly\r\n class=\"tie-filter-blend-color-picker tui-image-editor-mb-2\"\r\n [(colorPicker)]=\"filterBlendColor\"\r\n [style.background]=\"filterBlendColor\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpPresetColors]=\"defaultFilterBlendColors\"\r\n (colorPickerChange)=\"filterBlendColorChanged($event)\"\r\n [cpUseRootViewContainer]=\"true\"\r\n />\r\n <label\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center tui-image-editor-flex-nowrap\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"tie-blend\"\r\n [(ngModel)]=\"filterBlendChecked\"\r\n (ngModelChange)=\"filterBlendCheckedChanged($event)\"\r\n />\r\n <span>{{\r\n \"tui-image-editor-angular-submenus-filter-blend\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n cropModes,\r\n defaultIconPath,\r\n drawingModes,\r\n eventNames,\r\n historyNames,\r\n objectTypes,\r\n zoomModes,\r\n} from './consts';\r\nimport { Command } from './interfaces/command';\r\nimport { HistoryItem, HistoryItemType } from './interfaces/history-item';\r\nimport { ImageSize } from './interfaces/image-size';\r\nimport { HistoryService } from './services/history.service';\r\nimport { FilterComponent } from './submenus/filter/filter.component';\r\nimport heic2any from \"heic2any\";\r\nimport {\r\n clearSelection,\r\n dataUrlToBlob,\r\n isFileApiSupported,\r\n isSilentCommand,\r\n} from './utils';\r\n// const ImageEditor = require('tui-image-editor');\r\nimport ImageEditor from 'tui-image-editor';\r\n\r\n@Component({\r\n selector: 'tui-image-editor',\r\n templateUrl: 'tui-image-editor.component.html',\r\n styleUrls: ['tui-image-editor.component.scss'],\r\n providers: [HistoryService],\r\n})\r\nexport class TuiImageEditorComponent\r\n implements OnInit, OnChanges, AfterViewInit, OnDestroy\r\n{\r\n @ViewChild('imageContainer') imageContainer: ElementRef;\r\n @ViewChild('loadBtn') loadBtn: ElementRef;\r\n @Output() onInitialization: EventEmitter<any> = new EventEmitter();\r\n @Input() options: {\r\n usageStatistics: boolean;\r\n selectionStyle?: {\r\n cornerStyle: string;\r\n cornerSize: number;\r\n cornerColor: string;\r\n cornerStrokeColor: string;\r\n transparentCorners: boolean;\r\n lineWidth: number;\r\n borderColor: string;\r\n rotatingPointOffset: number;\r\n };\r\n applyCropSelectionStyle: boolean;\r\n applyGroupSelectionStyle: boolean;\r\n } = {\r\n usageStatistics: false,\r\n selectionStyle: {\r\n cornerStyle: 'circle',\r\n cornerSize: 32,\r\n cornerColor: '#fff',\r\n cornerStrokeColor: '#fff',\r\n transparentCorners: false,\r\n lineWidth: 4,\r\n borderColor: '#fff',\r\n rotatingPointOffset: 500,\r\n },\r\n applyCropSelectionStyle: true,\r\n applyGroupSelectionStyle: true,\r\n };\r\n @Input() initialImage: string | File;\r\n @Input() template='default';\r\n public imageEditor: any;\r\n public imageLoaded= false;\r\n public initializeImgUrl: string = null;\r\n public imageChosen: boolean = false;\r\n public activeObjectId: number;\r\n public submenu:\r\n | 'crop'\r\n | 'flip'\r\n | 'rotate'\r\n | 'filter'\r\n | 'text'\r\n | 'icon'\r\n | 'shape'\r\n | 'draw'\r\n | 'mask'\r\n | null;\r\n showSubmenu=false;\r\n isMenuExpanded=false;\r\n public rotation: number = 0;\r\n public onObjectActivatedEventListener: any;\r\n public onExecuteCommandEventListener: any;\r\n public onAfterUndoEventListener: any;\r\n public onAfterRedoEventListener: any;\r\n private historyServiceSubscription: Subscription;\r\n\r\n constructor(private historyService: HistoryService) {\r\n this.onObjectActivatedEventListener = this.onObjectActivated.bind(this);\r\n this.onExecuteCommandEventListener = this.onExecuteCommand.bind(this);\r\n this.onAfterUndoEventListener = this.onAfterUndo.bind(this);\r\n this.onAfterRedoEventListener = this.onAfterRedo.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.historyServiceSubscription =\r\n this.historyService.onChangeEmitter.subscribe((items) =>\r\n this.onActiveHistoryElementChanged(items)\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n (changes['options'] && changes['options'].firstChange == false) ||\r\n (changes['initialImage'] && changes['initialImage'].firstChange == false)\r\n ) {\r\n this.destroyImageEditor();\r\n this.initializeImageEditor();\r\n }\r\n }\r\n\r\n initializeImageEditor() {\r\n this.historyService.clear();\r\n\r\n this.imageEditor = new ImageEditor(\r\n this.imageContainer.nativeElement,\r\n this.options\r\n );\r\n\r\n this.onInitialization.emit({\r\n imageEditor:this.imageEditor\r\n })\r\n\r\n console.debug(this.imageEditor);\r\n\r\n this.imageEditor.registerIcons(defaultIconPath);\r\n\r\n this.imageEditor.on(\r\n eventNames.OBJECT_ACTIVATED,\r\n this.onObjectActivatedEventListener\r\n );\r\n this.imageEditor._invoker.on(\r\n eventNames.EXECUTE_COMMAND,\r\n this.onExecuteCommandEventListener\r\n );\r\n this.imageEditor._invoker.on(\r\n eventNames.AFTER_UNDO,\r\n this.onAfterUndoEventListener\r\n );\r\n this.imageEditor._invoker.on(\r\n eventNames.AFTER_REDO,\r\n this.onAfterRedoEventListener\r\n );\r\n\r\n if (this.initialImage != null) {\r\n this.loadImage(this.initialImage);\r\n }\r\n }\r\n\r\n destroyImageEditor() {\r\n console.log('DISPOSING IMAGE EDITOR...');\r\n if (this.imageEditor != null) {\r\n this.imageEditor.off(\r\n eventNames.OBJECT_ACTIVATED,\r\n this.onObjectActivatedEventListener\r\n );\r\n this.imageEditor._invoker.off(\r\n eventNames.EXECUTE_COMMAND,\r\n this.onExecuteCommandEventListener\r\n );\r\n this.imageEditor._invoker.off(\r\n eventNames.AFTER_UNDO,\r\n this.onAfterUndoEventListener\r\n );\r\n this.imageEditor._invoker.off(\r\n eventNames.AFTER_REDO,\r\n this.onAfterRedoEventListener\r\n );\r\n const canvas = this.imageEditor._graphics._canvas;\r\n this.imageEditor.destroy();\r\n canvas.dispose();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n var that = this;\r\n this.loadBtn.nativeElement.style.zIndex = '1'\r\n this.imageContainer.nativeElement.style.zIndex = '-1'\r\n\r\n setTimeout(() => {\r\n // this.imageEditor.on(eventNames.SELECTION_CLEARED, function () {\r\n // that.activeObjectId = null;\r\n // if (that.submenu === 'text') {\r\n // that.imageEditor.changeCursor('text');\r\n // } else if (that.submenu !== 'draw' && that.submenu !== 'crop') {\r\n // that.imageEditor.stopDrawingMode();\r\n // }\r\n // });\r\n that.initializeImageEditor();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.initializeImgUrl != null) {\r\n URL.revokeObjectURL(this.initializeImgUrl);\r\n }\r\n this.destroyImageEditor();\r\n this.historyServiceSubscription?.unsubscribe();\r\n }\r\n\r\n private onObjectActivated(props) {\r\n console.debug(props);\r\n this.activeObjectId = props?.id;\r\n if (props?.id != null) {\r\n if (\r\n [\r\n objectTypes.shapeRect,\r\n objectTypes.shapeCircle,\r\n objectTypes.shapeTriangle,\r\n ].indexOf(props.type) > -1\r\n ) {\r\n this.showMenu('shape', false);\r\n } else if (\r\n props.type === objectTypes.line ||\r\n props.type === objectTypes.straightLine\r\n ) {\r\n this.showMenu('draw', false);\r\n } else if (\r\n props.type === objectTypes.itext ||\r\n props.type === objectTypes.text\r\n ) {\r\n this.showMenu('text', false);\r\n } else if (props.type === objectTypes.icon) {\r\n this.showMenu('icon', false);\r\n } else if (props.type === objectTypes.image) {\r\n this.showMenu('mask', false);\r\n }\r\n }\r\n }\r\n\r\n private onExecuteCommand(command: string | Command) {\r\n if (!isSilentCommand(command)) {\r\n this.historyService.add(command, this.imageEditor);\r\n }\r\n }\r\n\r\n private onAfterUndo() {\r\n this.historyService.prev();\r\n }\r\n\r\n private onAfterRedo() {\r\n this.historyService.next();\r\n }\r\n\r\n onLoad(event:any){\r\n this.loadBtn.nativeElement.style.zIndex = '-1'\r\n this.imageContainer.nativeElement.style.zIndex = '1'\r\n this.loadImage(event);\r\n }\r\n\r\n loadImage(file: string | File | Blob) {\r\n const type=(<any>file)?.name?.split('.').pop();\r\n if(type?.toLowerCase()==='heic'){\r\n heic2any({blob:<Blob>file}).then(data=>{\r\n file=<Blob>data;\r\n this.uploadIMage(file);\r\n }).catch(err=>{\r\n console.log(\"Err\",err)\r\n })\r\n }else{\r\n this.uploadIMage(file);\r\n } \r\n }\r\n\r\n uploadIMage(file:string | File | Blob){\r\n if (file != null) {\r\n let imageUrl: string = null;\r\n if (typeof file === 'string') {\r\n imageUrl = file;\r\n } else {\r\n if (!isFileApiSupported()) {\r\n alert('This browser does not support file-api');\r\n return;\r\n }\r\n imageUrl = URL.createObjectURL(file);\r\n }\r\n\r\n if (this.initializeImgUrl != null && imageUrl != this.initializeImgUrl) {\r\n URL.revokeObjectURL(this.initializeImgUrl);\r\n }\r\n\r\n this.initializeImgUrl = imageUrl;\r\n this.imageEditor\r\n .loadImageFromURL(this.initializeImgUrl, 'RandomFileName')\r\n .then((sizeValue: ImageSize) => {\r\n this.imageChosen = true;\r\n this.showMenu('draw',false);\r\n this.exitCropOnAction();\r\n this.imageEditor.clearUndoStack();\r\n this.imageEditor.clearRedoStack();\r\n this.historyService.clear();\r\n this.imageEditor._invoker.fire(\r\n eventNames.EXECUTE_COMMAND,\r\n historyNames.LOAD_IMAGE\r\n );\r\n })\r\n ['catch']((message) => Promise.reject(message));\r\n }\r\n }\r\n\r\n resetImage() {\r\n if (this.initializeImgUrl != null) {\r\n this.loadImage(this.initializeImgUrl);\r\n }\r\n }\r\n\r\n getImage(\r\n options: {\r\n format: 'jpeg' | 'png';\r\n quality: number;\r\n multiplier: number;\r\n left?: number;\r\n top?: number;\r\n width?: number;\r\n height?: number;\r\n } = {\r\n format: 'png',\r\n quality: 1,\r\n multiplier: 1,\r\n }\r\n ): string {\r\n if (this.imageChosen) {\r\n return this.imageEditor.toDataURL(options);\r\n }\r\n return null;\r\n }\r\n\r\n exitCropOnAction() {\r\n this.hideMenu('crop');\r\n }\r\n\r\n hideMenu(\r\n menuName:\r\n | 'crop'\r\n | 'flip'\r\n | 'rotate'\r\n | 'filter'\r\n | 'text'\r\n | 'icon'\r\n | 'shape'\r\n | 'draw'\r\n | 'mask'\r\n | null\r\n ) {\r\n if (this.submenu == menuName) {\r\n this.submenu = null;\r\n this.showSubmenu=false;\r\n clearSelection(this.imageEditor);\r\n this.imageEditor.stopDrawingMode();\r\n }\r\n }\r\n\r\n onActiveHistoryElementChanged(items: HistoryItem[]) {\r\n let rotationEvents = items.filter((i) => i.type === HistoryItemType.Rotate);\r\n if (rotationEvents.length > 0) {\r\n let lastRotationEvent = rotationEvents[rotationEvents.length - 1];\r\n this.rotation = lastRotationEvent.args[0];\r\n } else {\r\n this.rotation = 0;\r\n }\r\n }\r\n\r\n showMenu(\r\n menuName:\r\n | 'crop'\r\n | 'flip'\r\n | 'rotate'\r\n | 'filter'\r\n | 'text'\r\n | 'icon'\r\n | 'shape'\r\n | 'draw'\r\n | 'mask'\r\n | null,\r\n discardSelection: boolean = true\r\n ) {\r\n this.submenu = menuName;\r\n this.showSubmenu=true;\r\n if (discardSelection) {\r\n clearSelection(this.imageEditor);\r\n }\r\n this.imageEditor.stopDrawingMode();\r\n //this.stopShape();\r\n // this._changeMenu(menuName, toggle, discardSelection);\r\n\r\n // if (this.submenu == 'draw') {\r\n // this.setDrawMode('free', {\r\n // width: this.drawStrokeWidthValue,\r\n // color: this.drawStrokeColor,\r\n // });\r\n // }\r\n }\r\n}\r\n","<div *ngIf=\"template==='default';else newImageEditor\"\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-column tui-image-editor-justify-content-center tui-image-editor-h-100 tui-image-editor-w-100 tui-image-editor-container\">\r\n <div\r\n class=\"tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-wrap tui-image-editor-justify-content-center tui-image-editor-align-items-center\">\r\n <div\r\n class=\"tui-image-editor-help-menu tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-wrap tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-p-1\">\r\n <div></div>\r\n <!-- <div #loadBtn style=\"position: absolute;\"\r\n class=\"tui-image-editor-help-menu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap\">\r\n <tui-image-editor-menus-buttons-load (loadImage)=\"loadImage($event)\"></tui-image-editor-menus-buttons-load>\r\n <tui-image-editor-menus-buttons-download [imageChosen]=\"imageChosen\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-download>\r\n </div> -->\r\n <div\r\n class=\"tui-image-editor-help-menu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap\">\r\n <tui-image-editor-menus-buttons-zoom-in [imageChosen]=\"imageChosen\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-zoom-in>\r\n <tui-image-editor-menus-buttons-zoom-out [imageChosen]=\"imageChosen\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-zoom-out>\r\n <tui-image-editor-menus-buttons-drag [imageChosen]=\"imageChosen\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-drag>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-help-menu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap\">\r\n <tui-image-editor-menus-buttons-history [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-history>\r\n <tui-image-editor-menus-buttons-undo [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"></tui-image-editor-menus-buttons-undo>\r\n <tui-image-editor-menus-buttons-redo [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"></tui-image-editor-menus-buttons-redo>\r\n <tui-image-editor-menus-buttons-reset [imageChosen]=\"imageChosen\" [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"\r\n (resetImage)=\"resetImage()\"></tui-image-editor-menus-buttons-reset>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-help-menu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap\">\r\n <tui-image-editor-menus-buttons-delete [imageChosen]=\"imageChosen\" [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"></tui-image-editor-menus-buttons-delete>\r\n <tui-image-editor-menus-buttons-delete-all [imageChosen]=\"imageChosen\" [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"></tui-image-editor-menus-buttons-delete-all>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div #imageContainer\r\n class=\"tui-image-editor-flex-grow-1 tui-image-editor-d-flex tui-image-editor-align-items-center tui-image-editor-justify-content-center\"\r\n [style.height]=\"'0'\"></div> -->\r\n <div style=\"position: relative;height: 100%; display: flex; justify-content: center; align-items: center;\">\r\n <div #loadBtn style=\"position: absolute;\"\r\n class=\"tui-image-editor-help-menu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap\">\r\n <tui-image-editor-menus-buttons-load (loadImage)=\"onLoad($event)\"></tui-image-editor-menus-buttons-load>\r\n </div>\r\n <div style=\"position: absolute;height: 100%; width: 100%;\" #imageContainer\r\n class=\"tui-image-editor-flex-grow-1 tui-image-editor-d-flex tui-image-editor-align-items-center tui-image-editor-justify-content-center\">\r\n </div>\r\n </div>\r\n <div class=\"tui-image-editor-submenu\" *ngIf=\"submenu != null\">\r\n <tui-image-editor-submenus-crop *ngIf=\"submenu == 'crop'\" [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"></tui-image-editor-submenus-crop>\r\n <tui-image-editor-submenus-flip *ngIf=\"submenu == 'flip'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-flip>\r\n <tui-image-editor-submenus-rotate *ngIf=\"submenu == 'rotate'\" [imageEditor]=\"imageEditor\"\r\n [(rotation)]=\"rotation\"></tui-image-editor-submenus-rotate>\r\n <tui-image-editor-submenus-draw *ngIf=\"submenu == 'draw'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-draw>\r\n <tui-image-editor-submenus-shape *ngIf=\"submenu == 'shape'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-shape>\r\n <tui-image-editor-submenus-icon *ngIf=\"submenu == 'icon'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-icon>\r\n <tui-image-editor-submenus-text *ngIf=\"submenu == 'text'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-text>\r\n <tui-image-editor-submenus-mask *ngIf=\"submenu == 'mask'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-mask>\r\n <tui-image-editor-submenus-filter *ngIf=\"submenu == 'filter'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-filter>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-controls tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-justify-content-center\">\r\n <div\r\n class=\"tui-image-editor-menu tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center\">\r\n <tui-image-editor-menus-buttons-crop [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'crop'\"\r\n (clicked)=\"submenu == 'crop' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-crop>\r\n <tui-image-editor-menus-buttons-flip [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'flip'\"\r\n (clicked)=\"submenu == 'flip' ? hideMenu($event) : showMenu($event)\">\r\n </tui-image-editor-menus-buttons-flip>\r\n <tui-image-editor-menus-buttons-rotate [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'rotate'\"\r\n (clicked)=\"submenu == 'rotate' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-rotate>\r\n <tui-image-editor-menus-buttons-draw [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'draw'\"\r\n (clicked)=\"submenu == 'draw' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-draw>\r\n <tui-image-editor-menus-buttons-shape [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'shape'\"\r\n (clicked)=\"submenu == 'shape' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-shape>\r\n <tui-image-editor-menus-buttons-icon [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'icon'\"\r\n (clicked)=\"submenu == 'icon' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-icon>\r\n <tui-image-editor-menus-buttons-text [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'text'\"\r\n (clicked)=\"submenu == 'text' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-text>\r\n <tui-image-editor-menus-buttons-mask [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'mask'\"\r\n (clicked)=\"submenu == 'mask' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-mask>\r\n <tui-image-editor-menus-buttons-filter [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'filter'\"\r\n (clicked)=\"submenu == 'filter' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-filter>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #newImageEditor>\r\n <div class=\"new-template tui-image-editor-container\">\r\n <div class=\"image-load-container\">\r\n <div style=\"position: relative;height: 100%; display: flex; justify-content: center; align-items: center;\">\r\n <div #loadBtn style=\"position: absolute;\"\r\n class=\"tui-image-editor-help-menu-item tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap\">\r\n <tui-image-editor-menus-buttons-load (loadImage)=\"onLoad($event)\"></tui-image-editor-menus-buttons-load>\r\n </div>\r\n <div style=\"position: absolute;height: 100%; width: 100%;\" #imageContainer\r\n class=\"tui-image-editor-flex-grow-1 tui-image-editor-d-flex tui-image-editor-align-items-center tui-image-editor-justify-content-center\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tools-container\" style=\"position: relative;\" [style.width.px]=\"isMenuExpanded ? 160 : 80\">\r\n <div class=\"primary-tools\">\r\n <div class=\"selected-option\" style=\"cursor: pointer;\" (click)=\"showSubmenu=!showSubmenu\">\r\n <svg *ngIf=\"!showSubmenu\" width=\"18\" height=\"16\" viewBox=\"0 0 18 16\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.7\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.3809 2.67601H17.0011C17.5527 2.67601 18 3.12327 18 3.67491C18 4.22654 17.5527 4.6738 17.0011 4.6738H9.38083C8.94507 6.20757 7.53168 7.33419 5.86014 7.33419C4.18856 7.33419 2.77524 6.20757 2.33944 4.6738H0.998897C0.447224 4.6738 0 4.22651 0 3.67487C0 3.12323 0.447224 2.67597 0.998897 2.67601H2.33951C2.77527 1.14224 4.18863 0.015625 5.86021 0.015625C7.53175 0.015625 8.9451 1.14224 9.3809 2.67601ZM4.19868 3.67484C4.19868 4.59097 4.944 5.33632 5.86017 5.33632C6.77635 5.33632 7.52166 4.59097 7.52166 3.67484C7.52166 2.7587 6.77635 2.01335 5.86017 2.01335C4.944 2.01335 4.19868 2.7587 4.19868 3.67484ZM15.6581 11.3275H17.0011C17.5528 11.3275 18 11.7748 18 12.3264C18 12.8781 17.5528 13.3253 17.0011 13.3253H15.6581C15.2224 14.8591 13.809 15.9857 12.1374 15.9857C10.4659 15.9857 9.05254 14.8591 8.61674 13.3253H0.998897C0.447224 13.3253 0 12.8781 0 12.3264C0 11.7748 0.447224 11.3275 0.998897 11.3275H8.61674C9.05251 9.79378 10.4659 8.66716 12.1374 8.66716C13.809 8.66716 15.2223 9.79378 15.6581 11.3275ZM10.476 12.3264C10.476 13.2426 11.2213 13.9879 12.1374 13.9879C13.0536 13.9879 13.799 13.2426 13.7989 12.3264C13.7989 11.4103 13.0536 10.665 12.1374 10.665C11.2213 10.665 10.476 11.4103 10.476 12.3264Z\"\r\n fill=\"#25282B\" />\r\n </svg>\r\n <svg *ngIf=\"showSubmenu\" width=\"42\" height=\"40\" viewBox=\"0 0 42 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"42\" height=\"40\" rx=\"8\" fill=\"#25282B\" fill-opacity=\"0.1\" />\r\n <g opacity=\"0.7\">\r\n <path\r\n d=\"M16.1375 25.9935C15.8433 26.0108 15.554 25.9119 15.3305 25.7176C14.8898 25.2691 14.8898 24.5447 15.3305 24.0962L24.9801 14.3337C25.4384 13.8998 26.1576 13.9239 26.5865 14.3876C26.9744 14.807 26.997 15.4515 26.6395 15.8976L16.9331 25.7176C16.7125 25.9091 16.4278 26.0078 16.1375 25.9935Z\"\r\n fill=\"#25282B\" />\r\n <path\r\n d=\"M25.7732 25.9938C25.475 25.9925 25.1893 25.8728 24.9776 25.6603L15.328 15.8978C14.9197 15.4155 14.9752 14.6896 15.452 14.2765C15.8775 13.9078 16.5051 13.9078 16.9306 14.2765L26.637 24.039C27.0952 24.473 27.1189 25.2007 26.6899 25.6643C26.6728 25.6827 26.6552 25.7006 26.637 25.7178C26.3993 25.9269 26.0865 26.0268 25.7732 25.9938Z\"\r\n fill=\"#25282B\" />\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"hr\">\r\n\r\n </div>\r\n <div class=\"menu\">\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-draw #penMenu [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'draw'\"\r\n (clicked)=\"submenu == 'draw' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-draw>\r\n </div>\r\n <!-- <div class=\"eraser\">\r\n \r\n </div> -->\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-text [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'text'\"\r\n (clicked)=\"submenu == 'text' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-text>\r\n </div>\r\n <div class=\"tool-icon-group\">\r\n <tui-image-editor-menus-buttons-zoom-in [imageChosen]=\"imageChosen\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-zoom-in>\r\n <tui-image-editor-menus-buttons-zoom-out [imageChosen]=\"imageChosen\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-zoom-out>\r\n <tui-image-editor-menus-buttons-drag [imageChosen]=\"imageChosen\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-drag>\r\n </div>\r\n <div class=\"tool-icon-group\">\r\n <tui-image-editor-menus-buttons-history\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-history>\r\n <tui-image-editor-menus-buttons-undo [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"></tui-image-editor-menus-buttons-undo>\r\n <tui-image-editor-menus-buttons-redo [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"></tui-image-editor-menus-buttons-redo>\r\n <tui-image-editor-menus-buttons-reset [imageChosen]=\"imageChosen\" [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"\r\n (resetImage)=\"resetImage()\"></tui-image-editor-menus-buttons-reset>\r\n </div>\r\n\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-crop [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'crop'\"\r\n (clicked)=\"submenu == 'crop' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-crop>\r\n </div>\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-flip [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'flip'\"\r\n (clicked)=\"submenu == 'flip' ? hideMenu($event) : showMenu($event)\">\r\n </tui-image-editor-menus-buttons-flip>\r\n </div>\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-rotate [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'rotate'\"\r\n (clicked)=\"submenu == 'rotate' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-rotate>\r\n </div>\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-shape [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'shape'\"\r\n (clicked)=\"submenu == 'shape' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-shape>\r\n </div>\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-icon [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'icon'\"\r\n (clicked)=\"submenu == 'icon' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-icon>\r\n </div>\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-mask [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'mask'\"\r\n (clicked)=\"submenu == 'mask' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-mask>\r\n </div>\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-filter [imageChosen]=\"imageChosen\" [selected]=\"submenu == 'filter'\"\r\n (clicked)=\"submenu == 'filter' ? hideMenu($event) : showMenu($event)\"></tui-image-editor-menus-buttons-filter>\r\n </div>\r\n <div class=\"tool-icon\">\r\n <tui-image-editor-menus-buttons-download [imageChosen]=\"imageChosen\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-menus-buttons-download>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"sub-menu\">\r\n <div class=\"tui-image-editor-submenu new\" [style.right.px]=\"isMenuExpanded ? 160 : 80\"\r\n *ngIf=\"submenu != null && showSubmenu\">\r\n <tui-image-editor-submenus-crop *ngIf=\"submenu == 'crop'\" [imageEditor]=\"imageEditor\"\r\n (cancelCroppingRequested)=\"exitCropOnAction()\"></tui-image-editor-submenus-crop>\r\n <tui-image-editor-submenus-flip *ngIf=\"submenu == 'flip'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-flip>\r\n <tui-image-editor-submenus-rotate *ngIf=\"submenu == 'rotate'\" [imageEditor]=\"imageEditor\"\r\n [(rotation)]=\"rotation\"></tui-image-editor-submenus-rotate>\r\n <tui-image-editor-submenus-draw *ngIf=\"submenu == 'draw'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-draw>\r\n <tui-image-editor-submenus-shape *ngIf=\"submenu == 'shape'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-shape>\r\n <tui-image-editor-submenus-icon *ngIf=\"submenu == 'icon'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-icon>\r\n <tui-image-editor-submenus-text *ngIf=\"submenu == 'text'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-text>\r\n <tui-image-editor-submenus-mask *ngIf=\"submenu == 'mask'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-mask>\r\n <tui-image-editor-submenus-filter *ngIf=\"submenu == 'filter'\"\r\n [imageEditor]=\"imageEditor\"></tui-image-editor-submenus-filter>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"toggler\" (click)=\"isMenuExpanded=!isMenuExpanded\" style=\"cursor: pointer;\">\r\n <svg *ngIf=\"!isMenuExpanded\" width=\"18\" height=\"16\" viewBox=\"0 0 18 16\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M0.864575 7.34425C0.503475 7.70535 0.503475 8.29473 0.864575 8.65583L7.93771 15.7287C8.29937 16.0904 8.88768 16.0904 9.2493 15.7287L9.64494 15.3331C10.0069 14.9711 10.007 14.3831 9.64498 14.0211L4.27939 8.65599C3.91733 8.29401 3.91733 7.7059 4.27939 7.34393L9.64494 1.97882C10.007 1.6168 10.007 1.02885 9.6449 0.66683L9.24926 0.27119C8.88816 -0.0899105 8.29877 -0.0899105 7.93767 0.27119L0.864575 7.34425ZM15.4293 0.27111C15.7907 -0.0903898 16.3796 -0.0903499 16.741 0.27111L17.1367 0.66675C17.498 1.02805 17.498 1.61744 17.1367 1.97878L11.7714 7.34393C11.4094 7.70595 11.4094 8.29398 11.7714 8.65599L17.1367 14.0211C17.4982 14.3825 17.4981 14.9717 17.1367 15.3331L16.7411 15.7288C16.3795 16.0904 15.7909 16.0904 15.4293 15.7288L8.98444 9.28372C7.17658 11.0898 7.63387 10.6318 8.98312 9.2824L8.35659 8.65583C7.99525 8.29449 7.99529 7.70554 8.35659 7.34421L15.4293 0.27111Z\"\r\n fill=\"#515355\" />\r\n </svg>\r\n <svg *ngIf=\"isMenuExpanded\" width=\"18\" height=\"16\" viewBox=\"0 0 18 16\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M17.1354 8.65575C17.4965 8.29465 17.4965 7.70527 17.1354 7.34417L10.0623 0.27127C9.70063 -0.0903886 9.11232 -0.0903885 8.7507 0.271271L8.35506 0.666911C7.99308 1.02889 7.993 1.61688 8.35502 1.97894L13.7206 7.34401C14.0827 7.70599 14.0827 8.2941 13.7206 8.65607L8.35506 14.0212C7.993 14.3832 7.99304 14.9712 8.3551 15.3332L8.75074 15.7288C9.11184 16.0899 9.70123 16.0899 10.0623 15.7288L17.1354 8.65575ZM2.57075 15.7289C2.20929 16.0904 1.62042 16.0904 1.25896 15.7289L0.863319 15.3333C0.50202 14.972 0.50198 14.3826 0.863319 14.0212L6.22863 8.65607C6.59065 8.29406 6.59065 7.70603 6.22863 7.34401L0.86328 1.9789C0.50182 1.61748 0.50186 1.02829 0.86328 0.666871L1.25892 0.27123C1.62054 -0.0903879 2.20909 -0.090428 2.57071 0.27123L9.01556 6.71628C10.8234 4.91023 10.3661 5.36824 9.01688 6.7176L9.64341 7.34417C10.0047 7.70551 10.0047 8.29446 9.64341 8.6558L2.57075 15.7289Z\"\r\n fill=\"#515355\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tui-image-editor-svg-definitions',\r\n templateUrl: './svg-definitions.component.html'\r\n})\r\nexport class SvgDefinitionsComponent {\r\n\r\n constructor() { }\r\n\r\n}\r\n","\r\n<svg\r\nxmlns=\"http://www.w3.org/2000/svg\"\r\nxmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\ndisplay=\"none\"\r\n>\r\n<defs id=\"tui-image-editor-svg-default-icons\">\r\n <symbol id=\"ic-apply\" viewBox=\"0 0 24 24\">\r\n <path d=\"M0 0h24v24H0z\" stroke=\"none\" fill=\"none\"></path>\r\n <path fill=\"none\" stroke=\"inherit\" d=\"M4 12.011l5 5L20.011 6\"></path>\r\n </symbol>\r\n <symbol id=\"ic-cancel\" viewBox=\"0 0 24 24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\" stroke=\"none\"></path>\r\n <path fill=\"none\" stroke=\"inherit\" d=\"M6 6l12 12M18 6L6 18\"></path>\r\n </symbol>\r\n <symbol id=\"ic-crop\" viewBox=\"0 0 24 24\">\r\n <path d=\"M0 0h24v24H0z\" stroke=\"none\" fill=\"none\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M4 0h1v20a1 1 0 0 1-1-1V0zM20 17h-1V5h1v12zm0 2v5h-1v-5h1z\"\r\n ></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M5 19h19v1H5zM4.762 4v1H0V4h4.762zM7 4h12a1 1 0 0 1 1 1H7V4z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-delete-all\" viewBox=\"0 0 24 24\">\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M5 23H3a1 1 0 0 1-1-1V6h1v16h2v1zm16-10h-1V6h1v7zM9 13H8v-3h1v3zm3 0h-1v-3h1v3zm3 0h-1v-3h1v3zM14.794 3.794L13 2h-3L8.206 3.794A.963.963 0 0 1 8 2.5l.703-1.055A1 1 0 0 1 9.535 1h3.93a1 1 0 0 1 .832.445L15 2.5a.965.965 0 0 1-.206 1.294zM14.197 4H8.803h5.394z\"\r\n ></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M0 3h23v1H0zM11.286 21H8.714L8 23H7l1-2.8V20h.071L9.5 16h1l1.429 4H12v.2l1 2.8h-1l-.714-2zm-.357-1L10 17.4 9.071 20h1.858zM20 22h3v1h-4v-7h1v6zm-5 0h3v1h-4v-7h1v6z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-delete\" viewBox=\"0 0 24 24\">\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M3 6v16h17V6h1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6h1zM14.794 3.794L13 2h-3L8.206 3.794A.963.963 0 0 1 8 2.5l.703-1.055A1 1 0 0 1 9.535 1h3.93a1 1 0 0 1 .832.445L15 2.5a.965.965 0 0 1-.206 1.294zM14.197 4H8.803h5.394z\"\r\n ></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M0 3h23v1H0zM8 10h1v6H8v-6zm3 0h1v6h-1v-6zm3 0h1v6h-1v-6z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-draw-free\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n d=\"M2.5 20.929C2.594 10.976 4.323 6 7.686 6c5.872 0 2.524 19 7.697 19s1.89-14.929 6.414-14.929 1.357 10.858 5.13 10.858c1.802 0 2.657-2.262 2.566-6.786\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-draw-line\" viewBox=\"0 0 32 32\">\r\n <path fill=\"none\" stroke=\"inherit\" d=\"M2 15.5h28\"></path>\r\n </symbol>\r\n <symbol id=\"ic-draw\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n d=\"M2.5 21.5H5c.245 0 .48-.058.691-.168l.124-.065.14.01c.429.028.85-.127 1.16-.437L22.55 5.405a.5.5 0 0 0 0-.707l-3.246-3.245a.5.5 0 0 0-.707 0L3.162 16.888a1.495 1.495 0 0 0-.437 1.155l.01.14-.065.123c-.111.212-.17.448-.17.694v2.5z\"\r\n ></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M16.414 3.707l3.89 3.89-.708.706-3.889-3.889z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-filter\" viewBox=\"0 0 24 24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\" stroke=\"none\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M12 7v1H2V7h10zm6 0h4v1h-4V7zM12 16v1h10v-1H12zm-6 0H2v1h4v-1z\"\r\n ></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M8.5 20a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-1a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM15.5 11a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-1a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-flip-reset\" viewBox=\"0 0 31 32\">\r\n <path fill=\"none\" stroke=\"none\" d=\"M31 0H0v32h31z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M28 16a8 8 0 0 1-8 8H3v-1h1v-7H3a8 8 0 0 1 8-8h17v1h-1v7h1zM11 9a7 7 0 0 0-7 7v7h16a7 7 0 0 0 7-7V9H11z\"\r\n ></path>\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"square\"\r\n d=\"M24 5l3.5 3.5L24 12M7 20l-3.5 3.5L7 27\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-flip-x\" viewBox=\"0 0 32 32\">\r\n <path fill=\"none\" stroke=\"none\" d=\"M32 32H0V0h32z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M17 32h-1V0h1zM27.167 11l.5 3h-1.03l-.546-3h1.076zm-.5-3h-1.122L25 5h-5V4h5.153a1 1 0 0 1 .986.836L26.667 8zm1.5 9l.5 3h-.94l-.545-3h.985zm1 6l.639 3.836A1 1 0 0 1 28.819 28H26v-1h3l-.726-4h.894zM23 28h-3v-1h3v1zM13 4v1H7L3 27h10v1H3.18a1 1 0 0 1-.986-1.164l3.666-22A1 1 0 0 1 6.847 4H13z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-flip-y\" viewBox=\"0 0 32 32\">\r\n <path fill=\"none\" stroke=\"none\" d=\"M0 0v32h32V0z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M0 16v1h32v-1zM11 27.167l3 .5v-1.03l-3-.546v1.076zm-3-.5v-1.122L5 25v-5H4v5.153a1 1 0 0 0 .836.986L8 26.667zm9 1.5l3 .5v-.94l-3-.545v.985zm6 1l3.836.639A1 1 0 0 0 28 28.82V26h-1v3l-4-.727v.894zM28 23v-3h-1v3h1zM4 13h1V7l22-4v10h1V3.18a1 1 0 0 0-1.164-.986l-22 3.667A1 1 0 0 0 4 6.847V13z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-flip\" viewBox=\"0 0 24 24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\" stroke=\"none\"></path>\r\n <path\r\n fill=\"inherit\"\r\n stroke=\"none\"\r\n d=\"M11 0h1v24h-1zM19 21v-1h2v-2h1v2a1 1 0 0 1-1 1h-2zm-2 0h-3v-1h3v1zm5-5h-1v-3h1v3zm0-5h-1V8h1v3zm0-5h-1V4h-2V3h2a1 1 0 0 1 1 1v2zm-5-3v1h-3V3h3zM9 3v1H2v16h7v1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-history\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"none\"\r\n d=\"M0 0H24V24H0z\"\r\n transform=\"translate(-740 -16) translate(547 8) translate(193 8)\"\r\n ></path>\r\n <path\r\n fill=\"inherit\"\r\n stroke=\"none\"\r\n d=\"M12.5 1C18.299 1 23 5.701 23 11.5S18.299 22 12.5 22c-5.29 0-9.665-3.911-10.394-8.999h1.012C3.838 17.534 7.764 21 12.5 21c5.247 0 9.5-4.253 9.5-9.5S17.747 2 12.5 2C8.49 2 5.06 4.485 3.666 8H3h4v1H2V4h1v3.022C4.68 3.462 8.303 1 12.5 1zm.5 5l-.001 5.291 2.537 2.537-.708.708L12.292 12H12V6h1z\"\r\n transform=\"translate(-740 -16) translate(547 8) translate(193 8)\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-history-check\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n stroke=\"#555555\"\r\n d=\"M4.5 -1L1.5 2 6.5 7\"\r\n transform=\"translate(-60 -804) translate(60 804) translate(2 3) rotate(-90 4 3)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-crop\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M0 0H12V12H0z\"\r\n transform=\"translate(-84 -804) translate(84 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M2 0h1v10c-.552 0-1-.448-1-1V0zM10 9v3H9V9h1zM9 2h1v6H9V2z\"\r\n transform=\"translate(-84 -804) translate(84 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M2 9H12V10H2zM9 2c.513 0 .936.386.993.883L10 3H3V2h6zM2 3H0V2h2v1z\"\r\n transform=\"translate(-84 -804) translate(84 804)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-draw\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M0 1H12V13H0z\"\r\n transform=\"translate(-156 -804) translate(156 803)\"\r\n ></path>\r\n <path\r\n stroke=\"#434343\"\r\n d=\"M9.622 1.584l1.835 1.658-8.31 8.407L.5 12.5V11l9.122-9.416z\"\r\n transform=\"translate(-156 -804) translate(156 803)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M7.628 3.753L10.378 3.753 10.378 4.253 7.628 4.253z\"\r\n transform=\"translate(-156 -804) translate(156 803) rotate(45 9.003 4.003)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-filter\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M0 0H12V12H0z\"\r\n transform=\"translate(-276 -804) translate(276 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M12 3v1H9V3h3zM7 4H0V3h7v1z\"\r\n transform=\"translate(-276 -804) translate(276 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M12 8v1H9V8h3zM7 9H0V8h7v1z\"\r\n transform=\"translate(-276 -804) translate(276 804) matrix(-1 0 0 1 12 0)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M8 1c1.105 0 2 .895 2 2s-.895 2-2 2-2-.895-2-2 .895-2 2-2zm0 1c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zM4 7c1.105 0 2 .895 2 2s-.895 2-2 2-2-.895-2-2 .895-2 2-2zm0 1c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z\"\r\n transform=\"translate(-276 -804) translate(276 804)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-flip\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M0 0H12V12H0z\"\r\n transform=\"translate(-108 -804) translate(108 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M6 0L7 0 7 12 6 12zM11 10V9h1v1.5c0 .276-.224.5-.5.5H10v-1h1zM5 1v1H1v8h4v1H.5c-.276 0-.5-.224-.5-.5v-9c0-.276.224-.5.5-.5H5zm7 5v2h-1V6h1zm0-3v2h-1V3h1zM9 1v1H7V1h2zm2.5 0c.276 0 .5.224.5.5V2h-2V1h1.5zM9 11H7v-1h2v1z\"\r\n transform=\"translate(-108 -804) translate(108 804)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-icon\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M0 0H12V12H0z\"\r\n transform=\"translate(-204 -804) translate(204 804)\"\r\n ></path>\r\n <path\r\n stroke=\"#434343\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"1.1\"\r\n d=\"M6 9.568L2.601 11 2.975 7.467 0.5 4.82 4.13 4.068 6 1 7.87 4.068 11.5 4.82 9.025 7.467 9.399 11z\"\r\n transform=\"translate(-204 -804) translate(204 804)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-mask\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(-252 -804) translate(252 804)\">\r\n <path d=\"M0 0H12V12H0z\"></path>\r\n <circle cx=\"6\" cy=\"6\" r=\"2.5\" stroke=\"#444\"></circle>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M11.5 0c.276 0 .5.224.5.5v11c0 .276-.224.5-.5.5H.5c-.276 0-.5-.224-.5-.5V.5C0 .224.224 0 .5 0h11zM11 1H1v10h10V1z\"\r\n ></path>\r\n </g>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-rotate\" viewBox=\"0 0 12 12\">\r\n <defs>\r\n <path\r\n id=\"rfn4rylffa\"\r\n d=\"M7 12c-.335 0-.663-.025-.983-.074C3.171 11.492 1 9.205 1 6.444c0-1.363.534-2.613 1.415-3.58\"\r\n ></path>\r\n <mask\r\n id=\"6f9gn2dysb\"\r\n width=\"6\"\r\n height=\"9.136\"\r\n x=\"0\"\r\n y=\"0\"\r\n maskUnits=\"objectBoundingBox\"\r\n >\r\n <use xlink:href=\"#rfn4rylffa\" stroke=\"434343\"></use>\r\n </mask>\r\n </defs>\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(-132 -804) translate(132 804)\">\r\n <path d=\"M0 0.5H12V12.5H0z\"></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M6.5 1C9.538 1 12 3.462 12 6.5c0 2.37-1.5 4.39-3.6 5.163l-.407-.916C9.744 10.13 11 8.462 11 6.5 11 4.015 8.985 2 6.5 2c-.777 0-1.509.197-2.147.544L4 1.75l-.205-.04C4.594 1.258 5.517 1 6.5 1z\"\r\n ></path>\r\n <use\r\n stroke=\"#434343\"\r\n stroke-dasharray=\"2 1.25\"\r\n stroke-width=\"1\"\r\n mask=\"url(#6f9gn2dysb)\"\r\n xlink:href=\"#rfn4rylffa\"\r\n ></use>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M4.279 0L6 1.75 4.25 3.571 3.543 2.864 4.586 1.75 3.572 0.707z\"\r\n transform=\"matrix(-1 0 0 1 9.543 0)\"\r\n ></path>\r\n </g>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-shape\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M0 0H12V12H0z\"\r\n transform=\"translate(-180 -804) translate(180 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M11.5 4c.276 0 .5.224.5.5v7c0 .276-.224.5-.5.5h-7c-.276 0-.5-.224-.5-.5V8.8h1V11h6V5H8.341l-.568-1H11.5z\"\r\n transform=\"translate(-180 -804) translate(180 804)\"\r\n ></path>\r\n <path\r\n stroke=\"#434343\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4.5 0.5L8.5 7.611 0.5 7.611z\"\r\n transform=\"translate(-180 -804) translate(180 804)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-text\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M0 0H12V12H0z\"\r\n transform=\"translate(-228 -804) translate(228 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M2 1h8c.552 0 1 .448 1 1H1c0-.552.448-1 1-1z\"\r\n transform=\"translate(-228 -804) translate(228 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M1 1H2V3H1zM10 1H11V3H10zM5.5 1L6.5 1 6.5 11 5.5 11z\"\r\n transform=\"translate(-228 -804) translate(228 804)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M4 10H8V11H4z\"\r\n transform=\"translate(-228 -804) translate(228 804)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-load\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M0 0H12V12H0z\"\r\n transform=\"translate(-324 -805) translate(324 805)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M5 0c.552 0 1 .448 1 1v1h5.5c.276 0 .5.224.5.5v8c0 .276-.224.5-.5.5H.5c-.276 0-.5-.224-.5-.5V1c0-.552.448-1 1-1h4zm0 1H1v9h10V3H5V1z\"\r\n transform=\"translate(-324 -805) translate(324 805)\"\r\n ></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M1 2L5 2 5 3 1 3z\"\r\n transform=\"translate(-324 -805) translate(324 805)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-delete\" viewBox=\"0 0 12 12\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <g fill=\"#434343\">\r\n <path\r\n d=\"M2 9h8V1h1v8.5c0 .276-.224.5-.5.5h-9c-.276 0-.5-.224-.5-.5V1h1v8zM0 0H12V1H0z\"\r\n transform=\"translate(-300 -804) translate(300 804) translate(0 2)\"\r\n ></path>\r\n <path\r\n d=\"M4 3H5V7H4zM7 3H8V7H7z\"\r\n transform=\"translate(-300 -804) translate(300 804) translate(0 2)\"\r\n ></path>\r\n <path\r\n d=\"M4 1h4V0h1v1.5c0 .276-.224.5-.5.5h-5c-.276 0-.5-.224-.5-.5V0h1v1z\"\r\n transform=\"translate(-300 -804) translate(300 804) matrix(1 0 0 -1 0 2)\"\r\n ></path>\r\n </g>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-group\" viewBox=\"0 0 24 24\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(-348 -804) translate(348 804)\">\r\n <path d=\"M0 0H12V12H0z\"></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M1 9v2h1v1H.5c-.276 0-.5-.224-.5-.5V9h1zm11 1v1.5c0 .276-.224.5-.5.5H9v-1h2v-1h1zm-4 1v1H6v-1h2zm-3 0v1H3v-1h2zm7-4v2h-1V7h1zM1 6v2H0V6h1zm11-2v2h-1V4h1zM1 3v2H0V3h1zm10.5-3c.276 0 .5.224.5.5V3h-1V1h-1V0h1.5zM6 0v1H4V0h2zm3 0v1H7V0h2zM0 .5C0 .224.224 0 .5 0H3v1H1v1H0V.5zM9.5 4c.276 0 .5.224.5.5v5c0 .276-.224.5-.5.5h-5c-.276 0-.5-.224-.5-.5V8.355c.317.094.652.145 1 .145V9h4V5h-.5c0-.348-.05-.683-.145-1H9.5z\"\r\n ></path>\r\n <circle cx=\"5\" cy=\"5\" r=\"2.5\" stroke=\"#434343\"></circle>\r\n </g>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-icon-arrow-2\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M21.793 18.5H2.5v-5h18.935l-7.6-8h5.872l10.5 10.5-10.5 10.5h-5.914l8-8z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-icon-arrow-3\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M25.288 16.42L14.208 27.5H6.792l11.291-11.291L6.826 4.5h7.381l11.661 11.661-.58.258z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-icon-arrow\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n d=\"M2.5 11.5v9h18v5.293L30.293 16 20.5 6.207V11.5h-18z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-icon-bubble\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M22.207 24.5L16.5 30.207V24.5H8A6.5 6.5 0 0 1 1.5 18V9A6.5 6.5 0 0 1 8 2.5h16A6.5 6.5 0 0 1 30.5 9v9a6.5 6.5 0 0 1-6.5 6.5h-1.793z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-icon-heart\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill-rule=\"nonzero\"\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n d=\"M15.996 30.675l1.981-1.79c7.898-7.177 10.365-9.718 12.135-13.012.922-1.716 1.377-3.37 1.377-5.076 0-4.65-3.647-8.297-8.297-8.297-2.33 0-4.86 1.527-6.817 3.824l-.38.447-.381-.447C13.658 4.027 11.126 2.5 8.797 2.5 4.147 2.5.5 6.147.5 10.797c0 1.714.46 3.375 1.389 5.098 1.775 3.288 4.26 5.843 12.123 12.974l1.984 1.806z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-icon-load\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M17.314 18.867l1.951-2.53 4 5.184h-17l6.5-8.84 4.549 6.186z\"\r\n ></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M18.01 4a11.798 11.798 0 0 0 0 1H3v24h24V14.986a8.738 8.738 0 0 0 1 0V29a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h15.01z\"\r\n ></path>\r\n <path stroke=\"none\" fill=\"inherit\" d=\"M25 3h1v9h-1z\"></path>\r\n <path fill=\"none\" stroke=\"inherit\" d=\"M22 6l3.5-3.5L29 6\"></path>\r\n </symbol>\r\n <symbol id=\"ic-icon-location\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n d=\"M16 31.28C23.675 23.302 27.5 17.181 27.5 13c0-6.351-5.149-11.5-11.5-11.5S4.5 6.649 4.5 13c0 4.181 3.825 10.302 11.5 18.28z\"\r\n ></path>\r\n <circle fill=\"none\" stroke=\"inherit\" cx=\"16\" cy=\"13\" r=\"4.5\"></circle>\r\n </symbol>\r\n <symbol id=\"ic-icon-polygon\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n d=\"M.576 16L8.29 29.5h15.42L31.424 16 23.71 2.5H8.29L.576 16z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-icon-star-2\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n d=\"M19.446 31.592l2.265-3.272 3.946.25.636-3.94 3.665-1.505-1.12-3.832 2.655-2.962-2.656-2.962 1.12-3.832-3.664-1.505-.636-3.941-3.946.25-2.265-3.271L16 3.024 12.554 1.07 10.289 4.34l-3.946-.25-.636 3.941-3.665 1.505 1.12 3.832L.508 16.33l2.656 2.962-1.12 3.832 3.664 1.504.636 3.942 3.946-.25 2.265 3.27L16 29.638l3.446 1.955z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-icon-star\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n d=\"M25.292 29.878l-1.775-10.346 7.517-7.327-10.388-1.51L16 1.282l-4.646 9.413-10.388 1.51 7.517 7.327-1.775 10.346L16 24.993l9.292 4.885z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-icon\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M11.923 19.136L5.424 22l.715-7.065-4.731-5.296 6.94-1.503L11.923 2l3.574 6.136 6.94 1.503-4.731 5.296L18.42 22z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-mask-load\" viewBox=\"0 0 32 32\">\r\n <path stroke=\"none\" fill=\"none\" d=\"M0 0h32v32H0z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M18.01 4a11.798 11.798 0 0 0 0 1H3v24h24V14.986a8.738 8.738 0 0 0 1 0V29a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h15.01zM15 23a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-1a5 5 0 1 0 0-10 5 5 0 0 0 0 10z\"\r\n ></path>\r\n <path stroke=\"none\" fill=\"inherit\" d=\"M25 3h1v9h-1z\"></path>\r\n <path fill=\"none\" stroke=\"inherit\" d=\"M22 6l3.5-3.5L29 6\"></path>\r\n </symbol>\r\n <symbol id=\"ic-mask\" viewBox=\"0 0 24 24\">\r\n <circle cx=\"12\" cy=\"12\" r=\"4.5\" stroke=\"inherit\" fill=\"none\"></circle>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M2 1h20a1 1 0 0 1 1 1v20a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zm0 1v20h20V2H2z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-redo\" viewBox=\"0 0 24 24\">\r\n <path d=\"M0 0h24v24H0z\" opacity=\".5\" fill=\"none\" stroke=\"none\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M21 6H9a6 6 0 1 0 0 12h12v1H9A7 7 0 0 1 9 5h12v1z\"\r\n ></path>\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"square\"\r\n d=\"M19 3l2.5 2.5L19 8\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-reset\" viewBox=\"0 0 24 24\">\r\n <path d=\"M0 0h24v24H0z\" opacity=\".5\" stroke=\"none\" fill=\"none\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M2 13v-1a7 7 0 0 1 7-7h13v1h-1v5h1v1a7 7 0 0 1-7 7H2v-1h1v-5H2zm7-7a6 6 0 0 0-6 6v6h12a6 6 0 0 0 6-6V6H9z\"\r\n ></path>\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"square\"\r\n d=\"M19 3l2.5 2.5L19 8M5 16l-2.5 2.5L5 21\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-rotate-clockwise\" viewBox=\"0 0 32 32\">\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M29 17h-.924c0 6.627-5.373 12-12 12-6.628 0-12-5.373-12-12C4.076 10.398 9.407 5.041 16 5V4C8.82 4 3 9.82 3 17s5.82 13 13 13 13-5.82 13-13z\"\r\n ></path>\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"square\"\r\n d=\"M16 1.5l4 3-4 3\"\r\n ></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n fill-rule=\"nonzero\"\r\n d=\"M16 4h4v1h-4z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-rotate-counterclockwise\" viewBox=\"0 0 32 32\">\r\n <path\r\n stroke=\"none\"\r\n d=\"M3 17h.924c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.602-5.331-11.96-11.924-12V4c7.18 0 13 5.82 13 13s-5.82 13-13 13S3 24.18 3 17z\"\r\n ></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n fill-rule=\"nonzero\"\r\n d=\"M12 4h4v1h-4z\"\r\n ></path>\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"square\"\r\n d=\"M16 1.5l-4 3 4 3\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-rotate\" viewBox=\"0 0 24 24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\" stroke=\"none\"></path>\r\n <path\r\n fill=\"inherit\"\r\n stroke=\"none\"\r\n d=\"M8.349 22.254a10.002 10.002 0 0 1-2.778-1.719l.65-.76a9.002 9.002 0 0 0 2.495 1.548l-.367.931zm2.873.704l.078-.997a9 9 0 1 0-.557-17.852l-.14-.99A10.076 10.076 0 0 1 12.145 3c5.523 0 10 4.477 10 10s-4.477 10-10 10c-.312 0-.62-.014-.924-.042zm-7.556-4.655a9.942 9.942 0 0 1-1.253-2.996l.973-.234a8.948 8.948 0 0 0 1.124 2.693l-.844.537zm-1.502-5.91A9.949 9.949 0 0 1 2.88 9.23l.925.382a8.954 8.954 0 0 0-.644 2.844l-.998-.062zm2.21-5.686c.687-.848 1.51-1.58 2.436-2.166l.523.852a9.048 9.048 0 0 0-2.188 1.95l-.771-.636z\"\r\n ></path>\r\n <path\r\n stroke=\"inherit\"\r\n fill=\"none\"\r\n stroke-linecap=\"square\"\r\n d=\"M13 1l-2.5 2.5L13 6\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-shape-circle\" viewBox=\"0 0 32 32\">\r\n <circle cx=\"16\" cy=\"16\" r=\"14.5\" fill=\"none\" stroke=\"inherit\"></circle>\r\n </symbol>\r\n <symbol id=\"ic-shape-rectangle\" viewBox=\"0 0 32 32\">\r\n <rect\r\n width=\"27\"\r\n height=\"27\"\r\n x=\"2.5\"\r\n y=\"2.5\"\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n rx=\"1\"\r\n ></rect>\r\n </symbol>\r\n <symbol id=\"ic-shape-triangle\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M16 2.5l15.5 27H.5z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-shape\" viewBox=\"0 0 24 24\">\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M14.706 8H21a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-4h1v4h12V9h-5.706l-.588-1z\"\r\n ></path>\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M8.5 1.5l7.5 13H1z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-text-align-center\" viewBox=\"0 0 32 32\">\r\n <path stroke=\"none\" fill=\"none\" d=\"M0 0h32v32H0z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M2 5h28v1H2zM8 12h16v1H8zM2 19h28v1H2zM8 26h16v1H8z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-text-align-left\" viewBox=\"0 0 32 32\">\r\n <path stroke=\"none\" fill=\"none\" d=\"M0 0h32v32H0z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M2 5h28v1H2zM2 12h16v1H2zM2 19h28v1H2zM2 26h16v1H2z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-text-align-right\" viewBox=\"0 0 32 32\">\r\n <path stroke=\"none\" fill=\"none\" d=\"M0 0h32v32H0z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M2 5h28v1H2zM14 12h16v1H14zM2 19h28v1H2zM14 26h16v1H14z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-text-bold\" viewBox=\"0 0 32 32\">\r\n <path fill=\"none\" stroke=\"none\" d=\"M0 0h32v32H0z\"></path>\r\n <path stroke=\"none\" fill=\"inherit\" d=\"M7 2h2v2H7zM7 28h2v2H7z\"></path>\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-width=\"2\"\r\n d=\"M9 3v12h9a6 6 0 1 0 0-12H9zM9 15v14h10a7 7 0 0 0 0-14H9z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-text-italic\" viewBox=\"0 0 32 32\">\r\n <path fill=\"none\" stroke=\"none\" d=\"M0 0h32v32H0z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M15 2h5v1h-5zM11 29h5v1h-5zM17 3h1l-4 26h-1z\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-text-underline\" viewBox=\"0 0 32 32\">\r\n <path stroke=\"none\" fill=\"none\" d=\"M0 0h32v32H0z\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M8 2v14a8 8 0 1 0 16 0V2h1v14a9 9 0 0 1-18 0V2h1zM3 29h26v1H3z\"\r\n ></path>\r\n <path stroke=\"none\" fill=\"inherit\" d=\"M5 2h5v1H5zM22 2h5v1h-5z\"></path>\r\n </symbol>\r\n <symbol id=\"ic-text\" viewBox=\"0 0 24 24\">\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M4 3h15a1 1 0 0 1 1 1H3a1 1 0 0 1 1-1zM3 4h1v1H3zM19 4h1v1h-1z\"\r\n ></path>\r\n <path stroke=\"none\" fill=\"inherit\" d=\"M11 3h1v18h-1z\"></path>\r\n <path stroke=\"none\" fill=\"inherit\" d=\"M10 20h3v1h-3z\"></path>\r\n </symbol>\r\n <symbol id=\"ic-undo\" viewBox=\"0 0 24 24\">\r\n <path d=\"M24 0H0v24h24z\" opacity=\".5\" fill=\"none\" stroke=\"none\"></path>\r\n <path\r\n stroke=\"none\"\r\n fill=\"inherit\"\r\n d=\"M3 6h12a6 6 0 1 1 0 12H3v1h12a7 7 0 0 0 0-14H3v1z\"\r\n ></path>\r\n <path\r\n fill=\"none\"\r\n stroke=\"inherit\"\r\n stroke-linecap=\"square\"\r\n d=\"M5 3L2.5 5.5 5 8\"\r\n ></path>\r\n </symbol>\r\n <symbol id=\"ic-zoom-in\" viewBox=\"0 0 24 24\">\r\n <g transform=\"translate(-229 -290) translate(229 290)\">\r\n <circle cx=\"10.5\" cy=\"10.5\" r=\"9\" stroke=\"inherit\" fill=\"none\"></circle>\r\n <path\r\n fill=\"inherit\"\r\n d=\"M18.828 15.828H19.828V22.828H18.828z\"\r\n transform=\"rotate(-45 19.328 19.328)\"\r\n ></path>\r\n <path fill=\"inherit\" d=\"M7 10H14V11H7z\"></path>\r\n <path fill=\"inherit\" d=\"M10 7H11V14H10z\"></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-zoom-out\" viewBox=\"0 0 24 24\">\r\n <g transform=\"translate(-263 -290) translate(263 290)\">\r\n <circle cx=\"10.5\" cy=\"10.5\" r=\"9\" stroke=\"inherit\" fill=\"none\"></circle>\r\n <path\r\n fill=\"inherit\"\r\n d=\"M18.828 15.828H19.828V22.828H18.828z\"\r\n transform=\"rotate(-45 19.328 19.328)\"\r\n ></path>\r\n <path fill=\"inherit\" d=\"M7 10H14V11H7z\"></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-hand\" viewBox=\"0 0 24 24\">\r\n <g fill=\"none\" fill-rule=\"evenodd\" stroke-linejoin=\"round\">\r\n <path\r\n fill=\"inherit\"\r\n fill-rule=\"nonzero\"\r\n d=\"M8.672 3.36c1.328 0 2.114.78 2.29 1.869l.014.101.023.006v1.042l-.638-.185c-.187-.055-.323-.211-.354-.399L10 5.713c0-.825-.42-1.353-1.328-1.353C7.695 4.36 7 5.041 7 5.713v7.941c0 .439-.524.665-.843.364l-1.868-1.761c-.595-.528-1.316-.617-1.918-.216-.522.348-.562 1.203-.18 1.8L7.738 22h11.013l.285-.518c1.247-2.326 1.897-4.259 1.96-5.785l.004-.239V8.035c0-.656-.5-1.17-1-1.17-.503 0-1 .456-1 1.17 0 .333-.32.573-.64.48L18 8.41V7.368l.086.026.042-.136c.279-.805.978-1.332 1.738-1.388L20 5.865c1.057 0 2 .967 2 2.17v7.423c0 1.929-.845 4.352-2.521 7.29-.09.156-.255.252-.435.252H7.474c-.166 0-.321-.082-.414-.219l-5.704-8.39c-.653-1.019-.584-2.486.46-3.182 1-.666 2.216-.516 3.148.31L6 12.495V5.713c0-1.18 1.058-2.263 2.49-2.348z\"\r\n transform=\"translate(-297 -290) translate(297 290)\"\r\n ></path>\r\n <path\r\n fill=\"inherit\"\r\n fill-rule=\"nonzero\"\r\n d=\"M12.5 1.5c1.325 0 2.41 1.032 2.495 2.336L15 4v7.22h-1V4c0-.828-.672-1.5-1.5-1.5-.78 0-1.42.595-1.493 1.356L11 4v7.22h-1V4c0-1.38 1.12-2.5 2.5-2.5z\"\r\n transform=\"translate(-297 -290) translate(297 290)\"\r\n ></path>\r\n <path\r\n fill=\"inherit\"\r\n fill-rule=\"nonzero\"\r\n d=\"M16.5 3.5c1.325 0 2.41 1.032 2.495 2.336L19 6v6.3h-1V6c0-.828-.672-1.5-1.5-1.5-.78 0-1.42.595-1.493 1.356L15 6v2.44h-1V6c0-1.38 1.12-2.5 2.5-2.5z\"\r\n transform=\"translate(-297 -290) translate(297 290)\"\r\n ></path>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-history-rotate\" viewBox=\"0 0 24 24\">\r\n <g fill=\"none\" stroke=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(-132 -804) translate(132 804)\">\r\n <path d=\"M0 0.5H12V12.5H0z\"></path>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M6.5 1C9.538 1 12 3.462 12 6.5c0 2.37-1.5 4.39-3.6 5.163l-.407-.916C9.744 10.13 11 8.462 11 6.5 11 4.015 8.985 2 6.5 2c-.777 0-1.509.197-2.147.544L4 1.75l-.205-.04C4.594 1.258 5.517 1 6.5 1z\"\r\n ></path>\r\n <use\r\n stroke=\"#434343\"\r\n stroke-dasharray=\"2 1.25\"\r\n stroke-width=\"1\"\r\n mask=\"url(#6f9gn2dysb)\"\r\n xlink:href=\"#rfn4rylffa\"\r\n ></use>\r\n <path\r\n fill=\"#434343\"\r\n d=\"M4.279 0L6 1.75 4.25 3.571 3.543 2.864 4.586 1.75 3.572 0.707z\"\r\n transform=\"matrix(-1 0 0 1 9.543 0)\"\r\n ></path>\r\n </g>\r\n </g>\r\n </symbol>\r\n <symbol id=\"ic-file-upload\" viewBox=\"-53 1 511 511.99906\">\r\n <path\r\n d=\"M 276.410156 3.957031 C 274.0625 1.484375 270.84375 0 267.507812 0 L 67.777344 0 C 30.921875 0 0.5 30.300781 0.5 67.152344 L 0.5 444.84375 C 0.5 481.699219 30.921875 512 67.777344 512 L 338.863281 512 C 375.71875 512 406.140625 481.699219 406.140625 444.84375 L 406.140625 144.941406 C 406.140625 141.726562 404.65625 138.636719 402.554688 136.285156 Z M 279.996094 43.65625 L 364.464844 132.328125 L 309.554688 132.328125 C 293.230469 132.328125 279.996094 119.21875 279.996094 102.894531 Z M 338.863281 487.265625 L 67.777344 487.265625 C 44.652344 487.265625 25.234375 468.097656 25.234375 444.84375 L 25.234375 67.152344 C 25.234375 44.027344 44.527344 24.734375 67.777344 24.734375 L 255.261719 24.734375 L 255.261719 102.894531 C 255.261719 132.945312 279.503906 157.0625 309.554688 157.0625 L 381.40625 157.0625 L 381.40625 444.84375 C 381.40625 468.097656 362.113281 487.265625 338.863281 487.265625 Z M 338.863281 487.265625 \"\r\n />\r\n <path\r\n d=\"M 305.101562 401.933594 L 101.539062 401.933594 C 94.738281 401.933594 89.171875 407.496094 89.171875 414.300781 C 89.171875 421.101562 94.738281 426.667969 101.539062 426.667969 L 305.226562 426.667969 C 312.027344 426.667969 317.59375 421.101562 317.59375 414.300781 C 317.59375 407.496094 312.027344 401.933594 305.101562 401.933594 Z M 305.101562 401.933594 \"\r\n />\r\n <path\r\n d=\"M 140 268.863281 L 190.953125 214.074219 L 190.953125 349.125 C 190.953125 355.925781 196.519531 361.492188 203.320312 361.492188 C 210.125 361.492188 215.6875 355.925781 215.6875 349.125 L 215.6875 214.074219 L 266.640625 268.863281 C 269.113281 271.457031 272.332031 272.820312 275.667969 272.820312 C 278.636719 272.820312 281.730469 271.707031 284.078125 269.480469 C 289.027344 264.78125 289.398438 256.988281 284.699219 252.042969 L 212.226562 174.253906 C 209.875 171.78125 206.660156 170.296875 203.199219 170.296875 C 199.734375 170.296875 196.519531 171.78125 194.171875 174.253906 L 121.699219 252.042969 C 117 256.988281 117.371094 264.902344 122.316406 269.480469 C 127.511719 274.179688 135.300781 273.808594 140 268.863281 Z M 140 268.863281 \"\r\n />\r\n </symbol>\r\n <symbol id=\"ic-file-download\" viewBox=\"-53 1 511 511.99906\">\r\n <path\r\n d=\"M 276.410156 3.957031 C 274.0625 1.484375 270.84375 0 267.507812 0 L 67.777344 0 C 30.921875 0 0.5 30.300781 0.5 67.152344 L 0.5 444.84375 C 0.5 481.699219 30.921875 512 67.777344 512 L 338.863281 512 C 375.71875 512 406.140625 481.699219 406.140625 444.84375 L 406.140625 144.941406 C 406.140625 141.726562 404.65625 138.636719 402.554688 136.285156 Z M 279.996094 43.65625 L 364.464844 132.328125 L 309.554688 132.328125 C 293.230469 132.328125 279.996094 119.21875 279.996094 102.894531 Z M 338.863281 487.265625 L 67.777344 487.265625 C 44.652344 487.265625 25.234375 468.097656 25.234375 444.84375 L 25.234375 67.152344 C 25.234375 44.027344 44.527344 24.734375 67.777344 24.734375 L 255.261719 24.734375 L 255.261719 102.894531 C 255.261719 132.945312 279.503906 157.0625 309.554688 157.0625 L 381.40625 157.0625 L 381.40625 444.84375 C 381.40625 468.097656 362.113281 487.265625 338.863281 487.265625 Z M 338.863281 487.265625 \"\r\n />\r\n <path\r\n d=\"M 305.101562 401.933594 L 101.539062 401.933594 C 94.738281 401.933594 89.171875 407.496094 89.171875 414.300781 C 89.171875 421.101562 94.738281 426.667969 101.539062 426.667969 L 305.226562 426.667969 C 312.027344 426.667969 317.59375 421.101562 317.59375 414.300781 C 317.59375 407.496094 312.027344 401.933594 305.101562 401.933594 Z M 305.101562 401.933594 \"\r\n />\r\n <path\r\n d=\"M 194.292969 357.535156 C 196.644531 360.007812 199.859375 361.492188 203.320312 361.492188 C 206.785156 361.492188 210 360.007812 212.347656 357.535156 L 284.820312 279.746094 C 289.519531 274.796875 289.148438 266.882812 284.203125 262.308594 C 279.253906 257.609375 271.339844 257.976562 266.765625 262.925781 L 215.6875 317.710938 L 215.6875 182.664062 C 215.6875 175.859375 210.121094 170.296875 203.320312 170.296875 C 196.519531 170.296875 190.953125 175.859375 190.953125 182.664062 L 190.953125 317.710938 L 140 262.925781 C 135.300781 257.980469 127.507812 257.609375 122.5625 262.308594 C 117.617188 267.007812 117.246094 274.800781 121.945312 279.746094 Z M 194.292969 357.535156 \"\r\n />\r\n </symbol>\r\n</defs>\r\n</svg>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { TuiImageEditorComponent } from './tui-image-editor.component';\r\nimport { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\nimport { LoadComponent } from './menus/buttons/load/load.component';\r\nimport { HistoryComponent } from './menus/buttons/history/history.component';\r\nimport { SvgDefinitionsComponent } from './svg-definitions/svg-definitions.component';\r\nimport { DownloadComponent } from './menus/buttons/download/download.component';\r\nimport { ZoomInComponent } from './menus/buttons/zoom-in/zoom-in.component';\r\nimport { ZoomOutComponent } from './menus/buttons/zoom-out/zoom-out.component';\r\nimport { DragComponent } from './menus/buttons/drag/drag.component';\r\nimport { UndoComponent } from './menus/buttons/undo/undo.component';\r\nimport { RedoComponent } from './menus/buttons/redo/redo.component';\r\nimport { ResetComponent } from './menus/buttons/reset/reset.component';\r\nimport { DeleteComponent } from './menus/buttons/delete/delete.component';\r\nimport { DeleteAllComponent } from './menus/buttons/delete-all/delete-all.component';\r\nimport { CropComponent } from './menus/buttons/crop/crop.component';\r\nimport { CropComponent as SubmenusCropComponent } from './submenus/crop/crop.component';\r\nimport { FlipComponent } from './menus/buttons/flip/flip.component';\r\nimport { FlipComponent as SubmenusFlipComponent } from './submenus/flip/flip.component';\r\nimport { RotateComponent } from './menus/buttons/rotate/rotate.component';\r\nimport { RotateComponent as SubmenusRotateComponent } from './submenus/rotate/rotate.component';\r\nimport { DrawComponent } from './menus/buttons/draw/draw.component';\r\nimport { DrawComponent as SubmenusDrawComponent } from './submenus/draw/draw.component';\r\nimport { ShapeComponent } from './menus/buttons/shape/shape.component';\r\nimport { ShapeComponent as SubmenusShapeComponent } from './submenus/shape/shape.component';\r\nimport { IconComponent } from './menus/buttons/icon/icon.component';\r\nimport { IconComponent as SubmenusIconComponent } from './submenus/icon/icon.component';\r\nimport { TextComponent } from './menus/buttons/text/text.component';\r\nimport { TextComponent as SubmenusTextComponent } from './submenus/text/text.component';\r\nimport { MaskComponent } from './menus/buttons/mask/mask.component';\r\nimport { MaskComponent as SubmenusMaskComponent } from './submenus/mask/mask.component';\r\nimport { FilterComponent } from './menus/buttons/filter/filter.component';\r\nimport { FilterComponent as SubmenusFilterComponent } from './submenus/filter/filter.component';\r\nimport { TranslationService } from './i18n/translation.service';\r\n\r\nexport const translateModule = TranslateModule.forRoot();\r\n\r\n@NgModule({\r\n declarations: [\r\n TuiImageEditorComponent,\r\n LoadComponent,\r\n HistoryComponent,\r\n SvgDefinitionsComponent,\r\n DownloadComponent,\r\n ZoomInComponent,\r\n ZoomOutComponent,\r\n DragComponent,\r\n UndoComponent,\r\n RedoComponent,\r\n ResetComponent,\r\n DeleteComponent,\r\n DeleteAllComponent,\r\n CropComponent,\r\n SubmenusCropComponent,\r\n FlipComponent,\r\n SubmenusFlipComponent,\r\n RotateComponent,\r\n SubmenusRotateComponent,\r\n DrawComponent,\r\n SubmenusDrawComponent,\r\n ShapeComponent,\r\n SubmenusShapeComponent,\r\n IconComponent,\r\n SubmenusIconComponent,\r\n TextComponent,\r\n SubmenusTextComponent,\r\n MaskComponent,\r\n SubmenusMaskComponent,\r\n FilterComponent,\r\n SubmenusFilterComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n translateModule,\r\n ColorPickerModule,\r\n NgbPopoverModule,\r\n ],\r\n exports: [TuiImageEditorComponent, SvgDefinitionsComponent],\r\n providers: [TranslationService],\r\n})\r\nexport class TuiImageEditorModule {\r\n static forRoot() {\r\n return {\r\n ngModule: TuiImageEditorModule,\r\n providers: [],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of tui-image-editor\r\n */\r\n\r\nexport * from './lib/i18n/translation.service';\r\nexport * from './lib/tui-image-editor.component';\r\nexport * from './lib/svg-definitions/svg-definitions.component';\r\nexport * from './lib/tui-image-editor.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslationService","i1.HistoryService","i4","CropComponent","FlipComponent","RotateComponent","i1","i2","DrawComponent","i1.ToolsConfigService","i3","ShapeComponent","IconComponent","TextComponent","MaskComponent","FilterComponent","i3.LoadComponent","i4.HistoryComponent","i5.DownloadComponent","i6.ZoomInComponent","i7.ZoomOutComponent","i8.DragComponent","i9.UndoComponent","i10.RedoComponent","i11.ResetComponent","i12.DeleteComponent","i13.DeleteAllComponent","i14.CropComponent","i15.CropComponent","i16.FlipComponent","i17.FlipComponent","i18.RotateComponent","i19.RotateComponent","i20.DrawComponent","i21.DrawComponent","i22.ShapeComponent","i23.ShapeComponent","i24.IconComponent","i25.IconComponent","i26.TextComponent","i27.TextComponent","i28.MaskComponent","i29.MaskComponent","i30.FilterComponent","i31.FilterComponent","SubmenusCropComponent","SubmenusFlipComponent","SubmenusRotateComponent","SubmenusDrawComponent","SubmenusShapeComponent","SubmenusIconComponent","SubmenusTextComponent","SubmenusMaskComponent","SubmenusFilterComponent"],"mappings":"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"}